【发布时间】:2011-08-27 11:04:00
【问题描述】:
上下文:
我正在尝试使用 IWebBrowser2 创建用于查看本地 html 文件的小型嵌入式浏览器。我在 MFC 和 CWnd::CreateControl 的帮助下做这件事。一切都很好,除了一个时刻:当我单击 html 链接时,我收到关于 COleException 的消息(到 Visual C++ 调试控制台)已被抛出。浏览器打开链接很好,没有其他可观察到的效果,除了控制台中的消息
我能追踪投掷的地方。有调用堆栈:
经过一番调查,我知道 MFC 尝试为 IWebBrowser 的 IDispatch 调用“Invoke”以接收 Web 浏览器控件的“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
我正在使用 Visual C++ 9.0 在 Windows CE 5.0 上完成所有这些工作。
【问题讨论】: