关于IE插件,关于BHO的弹出窗口

关于IE插件,关于BHO的弹出窗口

      BHO(Browser Help Objects),是实现了特定接口的COM组件。开发好的BHO插件在注册表特定的位置注册好后,每当微软的浏览器启动,BHO实例就会被创建。在浏览 器工作的工程中,BHO会接收到很多事件,比如浏览器浏览新的地址、前进或后退、生成新的窗口、浏览器退出等等;BHO可以在这些事件的响应中实现与浏览 器的交互。
     关于IE插件的入门可以查看 http://hi.baidu.com/winnyang/blog/item/21e7367ef2b7643f0dd7da57.html (VC++开发BHO插件)。
     
     在打开新窗口的时候函数Invoke会响应DISPID_NEWWINDOW2事件(定义在头文件"EXDISPID.H")中。
   
      具体代码:
     
     case  DISPID_NEWWINDOW2:

        
/**/ /// 设置是否允许弹出窗口
        READYSTATE ReadyState;
        
/**/ /// mWebBrowser为浏览器指针
        mWebBrowser -> get_ReadyState( & ReadyState);

        
/**/ /// 阻止新窗口的创建
         if  (ReadyState != READYSTATE_COMPLETE)
        
{
            
*pDispParams->rgvarg[0].pboolVal = TRUE;
            
return S_OK;
        }

        
/**/ /// 不阻止
         else
        
{
            
*pDispParams->rgvarg[0].pboolVal = FALSE;
            
return S_OK;
        }

        
break ;



      另外 得到新窗口的URL可以响应DISPID_NEWWINDOW3消息。具体做法可以查看msdn..

你可能感兴趣的:(关于IE插件,关于BHO的弹出窗口)