大家都知道DWebBrowserEvents2 Members的DocumentComplete(Fires when a document is completely loaded and initialized)成员的作用。但是实际上直接在它里面处理加载完成后的事件是不行的, 我们还需要做一些处理才行。直接看代码:
//CComPtr<IWebBrowser2> m_spWebBrowser;
void __stdcall OnEventDocumentComplete(IDispatch* /*pDisp*/, VARIANT* /*URL*/)
{
ATLASSERT(m_spWebBrowser != NULL);
IDispatch *p_disp = NULL;
m_spWebBrowser->get_Document(&p_disp);
if (p_disp)
{
ATL::CComQIPtr<IHTMLDocument2, &IID_IHTMLDocument2> spDoc2 = p_disp;
BSTR bs_readyState;
spDoc2->get_readyState(&bs_readyState);
CString str;
str.Format(_T("%s"), bs_readyState);
if (str.Compare(_T("complete")) == 0)
{
// 这里才是处理页面最终加载完成的地方
}
}
}