想要在嵌入标准C#App的WebBrowser控件中启用BHO

我有一个标准的winforms C#app,它上面拖着一个webbrowser控件。 我们还有一个C ++ BHO,当它在IE7或IE8中运行时,我们通常通过COM进行交互。

我没有看到任何方法告诉webbrowser控件加载BHO。 BHO不显示任何GUI或任何内容,它只是在从IE使用时侦听http流量。

任何帮助将不胜感激。 谢谢。

BHO只是实现IObjectWithSite的COM对象。 您可以创建BHO的实例,查询IObjectWithSite并调用IObjectWithSite :: SetSite,将webbrowser控件的IWebBrowser2指针作为参数传递。 当您关闭时,再次调用SetSite,传递NULL。

如果您正在托管由其他人编写的BHO,您也需要满足他们的要求,有些可能要求您的程序命名为“iexplore.exe”,有些可能要求您具有与特定版本的IE相同的窗口层次结构等。