叶祖辉

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

Internet Explorer的BHO的对象必须实现IObjectWithSite接口.该接口是IE用来对插件进行管理和通讯的一个接口,其有SetSite和GetSite两个方法,当IE加载和卸载Band对象的时候,调用该接口的SetSite方法,我们可以通过SetSite传进来的IUnknown指针来获取我们所需要的接口:

 

1. 获取IE的框架窗口句柄:

     HWND  hWndParent;
    CComQIPtr<IOleWindow>  m_spWnd( pUnkSite );
    if( m_spWnd )m_spWnd->GetWindow( &hWndParent );

 

2. 获取IInputObjectSite接口管理输入:

    CComQIPtr<IInputObjectSite> spInputSite( pUnkSite );

 

3. 获取IWebBrowser2接口'

     CComQIPtr<IWebBrowser2> spBrowser;

     CComQIPtr<IServiceProvider>  spService = m_pUnkSite;
      if( spService != NULL )
      {
           spService->QueryService( SID_SWebBrowserApp, IID_IWebBrowser2,  (LPVOID*)&spBrowser );

           if( spBrowser != NULL )
          {
               spBrowser->Refresh();
          }
      }

posted on 2017-05-08 16:00  赵大海  阅读(261)  评论(0编辑  收藏  举报
友情链接:回力鞋官网 | 中老年女装 | 武汉托福培训 | 武汉英语培训机构 | 雅思培训一般多少钱