C / C++ / Win32 / MFC
IWebBrower의 DocumentComplete 이벤트에서 마지막 호출인지 검사하기
Joon~~~
2009. 4. 21. 16:20
void CDlgWebPopup::DocumentCompleteExplorer1(LPDISPATCH pDisp, VARIANT* URL) { IUnknown* pUnk; LPDISPATCH lpWBDisp; pUnk = m_cWebBrowser.GetControlUnknown(); pUnk->QueryInterface(IID_IDispatch, (void**)&lpWBDisp); if(pDisp == lpWBDisp) { // 마지막 이벤트 } lpWBDisp->Release(); } |
보통의 웹페이지는 프레임을 포함하고 있기 때문에 페이지 로딩시 DocumentComplete가 여러 번 호출됩니다.
DocumentComplete 이벤트는 최상위의 웹브라우저 윈도우에 대해 마지막으로 호출됩니다.
IWebBrowser를 이용한다면 위와 같은 방법으로 DocumentComplete의 마지막 호출을 판단할 수 있습니다.
또는 LPDISPATCH pDisp 파라미트를 IWebBrowser2로 인터페이싱하요 TopLevelContainer 프로퍼티로도 판단이 가능합니다.