最近由于需要写一个这方面的网页过滤插件,因此可说得上是费尽了心机。参阅了很多资料,在这里感谢那些愿意把自己的心得拿出来与人分享的广大同行。
转载请说明来自飞天猪的博客园。另外如果发现有错误,请留言指正。谢谢。
浏览器帮助对象BHO(Browser Helper Object就是我们常说的IE插件)
你是否想要从你的程序中连接到那些已经被运行的Internet explorer实例并获取对Internet Explorer的全部控制?然后你可以告诉Internet Explorer到哪里去,去干什么。也许你想要处理Internet Explorer的一些事件或者是访问DHTML对象模型,你也可能需要控制任何Internet explorer 的行动。
在Internet Explorer的第三个版本或者更早的版本中要控制IE, 你不得不使用一个烦琐的,困难的并且有局限性的技术--动态数据交换(DDE)。DDE的其中一个局限性就是你不能够从Internet Explorer中收到事件。作为替代,你可以收到IE的消息通知,这种机制不是很稳定。如果你能够使用COM连接到一个正在运行的Internet Explorer实例,那么你就能够控制它并从收到他发出来的消息。
为了连接到一个正在运行的Internet Explorer实例,你可以使用浏览器帮助对象BHO,这是一个DLL,每当一个新的IE的实例被创建时,IE都会加载这个DLL。因此这个DLL可以控制IE的行为并监听到所有IE正在触发的事件。
接下来我们需要了解的是如何去创建和使用BHO来控制IE,以及如何在你的BHO中去处理IE的事件。