Customizing AxWebBrowser, make it powerful
如你所知,AxWebBrowser所提供的功能着实有限,在实际应用当中,我们可能需要更自由的定制自己的浏览器组件。
我一直没有找到.NET下如同Delphi的WebBrowserEx或EmbedWB一样方便的WebBrowser组件,所以按自己的想法参考Using MSHTML Advanced Hosting Interfaces 和 Creating Front Ends with the WebBrowser Component两篇文章实现自己的浏览器助手。设计为浏览器助手的原因是,我不喜欢过多的引入自定义控件,在能达到相同的目的的情况下,我喜欢采用单元引入或自动绑定,从而达到灵活性和功能性的统一。
我通过反编译MsHtmHstInterop.dll来得到部分所需的mshtml中的接口定义,并加入自己的BrowserHelper实现。可惜我无法做到自己心目中的完美,所以所公布的源代码仅作参考,不对其中可能存在的错误作出任何形式的担保。
PS: 我附带了一个查询并下载射手网字幕的工程作为演示BrowserHelper的例子
PS: 这个例子工程中也用到了Castle中的NVelocity,这个是一个很好用的模板生成工具,上手也很容易,我是把网上的Velocity - VTL Reference Guide打印成小册子来学习的。
下载请点这里