mshtml - IWebBrowser2 Quit 方法失败并出现 E_FAIL 结果

标签 mshtml iwebbrowser2 quit

我在自己的窗口中托管 Web 浏览器控件。以下是相关步骤:

CoGetClassObject(CLSID_WebBrowser, 
                 CLSCTX_INPROC_SERVER | CLSCTX_INPROC_HANDLER, 
                 NULL, IID_IClassFactory, (void **)&pClassFactory);

pClassFactory->CreateInstance(0, IID_IOleObject, (void **)&pObject);

pClassFactory->Release(); 

pObject->SetClientSite((IOleClientSite *)impl)
OleSetContainedObject((struct IUnknown *)pObject, true)
pObject->DoVerb(OLEIVERB_SHOW, NULL, (IOleClientSite *)impl, 0, hHpsWnd, &rect);

pWB->put_Visible(VARIANT_FALSE);

hr=pWB->Quit();

在上面的最后一条语句中,hr 返回值为 E_FAIL。我的代码中此失败的最终结果是泄漏大量资源。我做错了什么?

最佳答案

阅读文档 here它指出 WebBrowser 对象(即 CLSID_WebBrowser)从 Quit 方法返回错误,因为它在上下文中没有意义。 Quit 方法将退出 IE 的进程外版本,该版本也使用相同的接口(interface)进行通信。

我唯一可以建议的是仔细检查您是否正在释放与浏览器相关的所有 COM 对象。

关于mshtml - IWebBrowser2 Quit 方法失败并出现 E_FAIL 结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2001164/

相关文章:

delphi - 如何使用embeddedwb检测简单网页上是否按下了按钮

javascript - C++ - IWebBrowser2 - Javascript 未激活

qt - 退出 Qt 程序的正确方法?

c++ - 调用 HideUI 后,mshtml 失败并显示 FAST_FAIL_INCORRECT_STACK

vb.net - 如何在 VB.NET 中使用 MSHTML?

javascript - Rundll32.exe javascript

webbrowser-control - 使用嵌入式 WebBrowser 控件时如何绕过 Internet Explorer 增强安全性?

c# - 如何获取触发 downloadBegin() 事件的 URL?

matlab - 在matlab中退出和退出有什么危险吗?

ruby-on-rails - 我不断收到 QUIT 和 CONNECT HTTP 方法发送到我的服务器,它们是什么意思?