我所知道的是在IE以及Explorer启动时自动会根据注册表的信息加载已注册BHO,但是不知道如何让一个嵌入了WebBrowser控件的第三方应用程序也自动加载BHO?
各位是否知道有这个可能性?以及如何实现吗?谢谢!

解决方案 »

  1.   

    to atry:
    如何写注册表啊?需要添加一个Browser Helper Objects的key然后将BHO的clsid添加到其中就可以?我也尝试过,但是不起作用。是否可以给举个例子?
    多谢!
      

  2.   

    BHO模块的加载过程可以参考http://support.microsoft.com/kb/q179230/浏览器在创建BHO之后会查询BHO的IObjectWithSite接口并且调用其SetSite方法。传递的Site是浏览器的IWebBrowser2接口,同时支持IOleWindow、IOleCommandTarget等接口,并且支持IServiceProvider接口和SID_IInternetHostSecurityManager、SID_STopLevelBrowser等服务。很难判断BHO使用了浏览器的哪些特性,但是一些BHO会假定通过IOleWindow获得的是一个顶层窗口。浏览器也会查询BHO可能支持的其他接口并且适当调用BHO对IDeskBand、IObjectWithSite、IPersistStream、IInputObject、IDockingWindow等等接口的实现。