在WTL中创建WEBBrowser视图的问题
视图类的声明:
- C/C++ code
class CIEEWrapView : public CWindowImpl<CIEEWrapView, CAxWindow>, public IDispEventSimpleImpl<_nDispatchID, CIEEWrapView, &DIID_DWebBrowserEvents2>
在视图类的OnCreate中创建WEBBrowser:
- C/C++ code
LRESULT CIEEWrapView::OnCreate(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& /*bHandled*/){ LRESULT lRet = DefWindowProc(uMsg, wParam, lParam); // Connect events CComPtr<IWebBrowser2> spWebBrowser2; HRESULT hRet = QueryControl(IID_IWebBrowser2, (void**)&spWebBrowser2); //// 此处总是返回失败,不解 if(SUCCEEDED(hRet)) { if(FAILED(DispEventAdvise(spWebBrowser2, &DIID_DWebBrowserEvents2))) ATLASSERT(FALSE); } // Set host flag to indicate that we handle themes CComPtr<IAxWinAmbientDispatch> spHost; hRet = QueryHost(IID_IAxWinAmbientDispatch, (void**)&spHost); if(SUCCEEDED(hRet)) { const DWORD _DOCHOSTUIFLAG_THEME = 0x40000; hRet = spHost->put_DocHostFlags(DOCHOSTUIFLAG_NO3DBORDER | _DOCHOSTUIFLAG_THEME); ATLASSERT(SUCCEEDED(hRet)); } this->m_pWebBrowser = spWebBrowser2; ViewPage(_T("www.google.com")); return lRet;}
奇怪的的是QueryControl总是返回失败,这是为何?
[解决办法]
那就是查询失败喽.
至于为什么失败,不懂,友情UP吧