КОНТЕКСТ: я пытаюсь использовать IWebBrowser2 для создания небольшого встроенного браузера для просмотра локальных html-файлов. Я делаю это с помощью MFC и CWnd::CreateControl в частности. Все работает хорошо, за исключением одного момента: когда я нажимаю на html-ссылки, я получаю сообщения (в консоль отладки Visual C++) о COleException. Браузер хорошо открывает ссылки, и никаких других наблюдаемых эффектов, кроме сообщений в консоли, не наблюдается
Мне удалось отследить место заброса. Существует стек вызовов: После некоторого расследования я знаю, что MFC пытается вызвать «Invoke» для IDispatch IWebBrowser, чтобы получить состояние «ENABLED» управления веб-браузером. В свою очередь управление через возвращаемое значение сообщает, что такой запрос не может быть удовлетворен. MFC создает исключение (и перехватывает его самостоятельно) и загрязняет вывод отладки.
AfxThrowOleException(...)
COleDispatchDriver::InvokeHelperV(...)
COleControlSite::InvokeHelperV(...)
COleControlSite::InvokeHelper(...)
COleControlSite::GetProperty(...)
COleControlSite::GetStyle(...)
CWnd::GetStyle(...)
CWnd::OnDisplayChange(...)
CWnd::OnSettingChange(...)
CWnd::OnWndMsg(...)
CWnd::WindowProc(...)
AfxCallWndProc(...)
CWnd::SendMessageToDescendants(...)CWnd::SendMessageToDescendants(...)
CWnd::OnDisplayChange(...)
CWnd::OnSettingChange(...)
CDialog::OnSettingChange(...)
CWnd::OnWndMsg(...)
CWnd::WindowProc(...)
AfxCallWndProc(...)
AfxWndProc(...)
ВОПРОС: Что я могу сделать, чтобы избежать или подавить эти сообщения?
ДОПОЛНИТЕЛЬНАЯ ИНФОРМАЦИЯ: Это сообщение об ошибке:
Warning: constructing COleException, scode = DISP_E_MEMBERNOTFOUND ($80020003).
RaiseException: Thread=9f84aba4 Proc=8c24c980 'HtmlHelpBrowser.exe'
AKY=00000401 PC=03fb542c(coredll.dll+0x0004542c) RA=8000a700(NK.EXE+0x00009700) BVA=00000001 FSR=00000001
Я делаю все это на Windows CE 5.0 с Visual C++ 9.0.