我有一个标准的winforms C#app,其上拖着一个webbrowser控件。我们还有一个C ++ BHO,当它在IE7或IE8中运行时,我们通常通过COM与之交互。
我没有看到任何方法告诉webbrowser控件加载BHO。 BHO不显示任何GUI或任何内容,它只是在从IE使用时监听http流量。
非常感谢任何帮助。 感谢。
答案 0 :(得分:2)
BHO只是实现IObjectWithSite的COM对象。您可以创建BHO的实例,查询IObjectWithSite并调用IObjectWithSite :: SetSite,将webbrowser控件的IWebBrowser2指针作为参数传递。当你关闭时,再次调用SetSite,传递NULL。
如果您正在托管由其他人编写的BHO,您也需要满足他们的要求,有些可能要求您的程序命名为“iexplore.exe”,有些可能要求您具有与特定IE版本相同的窗口层次结构等等。