看到有些公司找程序员做ie插件(browser plug-in),所以就好奇的问一下!
还有其他浏览器NetScape,FireFox等其他不同内核的浏览器可不可以用ie的插件了?

解决方案 »

  1.   

    ie和explorer都提供了com接口,bho就是利用这些com接口对ie编程。
      

  2.   

    还没有见过IE之外的浏览器能加载BHO,连MSN Explorer都不行
      

  3.   

    谢谢各位,还有个问题:
    关于IE插件严格区分的问题,IE插件应该就是对IE功能的扩展了,但IE插件一定用到了bho吗(即在插件中组件一定实现了IObjectWithSite接口吗?)。其他给IE或网页中脚本调用的com组件能称为IE插件吗?如点击IE工具栏的某个快捷图标,IE执行某段脚本,该脚本加载某个Com组件,创建组件对象,该组件能不能称为IE插件???
      

  4.   

    照我的理解,既然是插件,双方应该能够通讯,普遍的做法是用连接点协议,那么
    IObjectWithSite : public IUnknown
        {
        public:
            virtual HRESULT STDMETHODCALLTYPE SetSite( 
                /* [in] */ IUnknown __RPC_FAR *pUnkSite) = 0;
            
            virtual HRESULT STDMETHODCALLTYPE GetSite( 
                /* [in] */ REFIID riid,
                /* [iid_is][out] */ void __RPC_FAR *__RPC_FAR *ppvSite) = 0;
            
        };
    实现该接口,其实是查找ie连接点ConnectionPoint,并建立连接(撤消连接)的过程。
    如果根据协议本身来理解。其实必须实现的应该是你需要调用的ie中的出接口。这个连接过程可以通过别的方式来连接。
    但是一般都是通过这种方式来连接。
    //====>IE执行某段脚本,该脚本加载某个Com组件,创建组件对象.该组件能不能称为IE插件???
    我觉得不应该称为IE插件(我是从生存期来理解的)
    以上是我个人的理解,欢迎指正…~~~~~~~
      

  5.   

    thanks!
    再问一个关于插件下载的问题:
    是不是大部分的ie插件都是通过网页中的脚本下载到本地和对其进行注册了?其注册表的修改是不是一般都是通过组件内部来处理(即编辑*.rgs文件即可)。为什么很多dll组件下载到本地\WINDOWS\Downloaded Program Files\却看不到该文件,并且ie加载该组件的时候也是通过该目录,但该目录根本就没有这个文件。是系统做了什么处理吗?
      

  6.   

    BHO和DownloadManager不是。rgs文件是编译之前修改才有用。
      

  7.   

    请问蒋晟兄那BHO和DownloadManager一般是如何下载和注册的了?