为什么在做BHO时得不到IWebBrowser2的指针?
STDMETHODIMP CBHOTest::SetSite(IUnknown* punkSite)
{
   if(punkSite)
   {
CComQIPtr<IWebBrowser2, &IID_IWebBrowser2> _WebBrowser2;
_WebBrowser2= punkSite;
if (_WebBrowser2 == NULL)
MessageBox(NULL,"DEBUG:SetSite():_WebBrowser2==NULL.","DEBUG",0);
//问题就在这里,_WebBrowser2总是取不到值,总是==NULL,请问该怎么办?
    }
    return S_OK;
}

解决方案 »

  1.   

    CAxWindow wnd(m_hWnd); HRESULT hr = wnd.CreateControl(IDH_IEWINDOW);
    if (SUCCEEDED(hr))
    hr = wnd.SetExternalDispatch(static_cast<IIEWindowUI*>(this));
    if (SUCCEEDED(hr))
    hr = wnd.QueryControl(IID_IWebBrowser2, (void**)&m_spBrowser);
      

  2.   

    to firebolt2002
    谢谢你的方法,我没试,但我觉得应该能实现。
    我是想知道,有没有不用MFC就能得到IWebBrowse2指针的方法,
    请不吝赐教。
    PS:另外还想请教大家,作atl的时候使用的哪些头文件会跟MFC的头文件
    冲突,我只要用了atlbase.h,就不能用AFX.h,AFXWin.h,有什么解决的办法么?也就是如何在作atl的时候用MFC?