IWebBrowser2.Navigate2在新会话期间失败INET_E_RESOURCE_NOT_FOUND(0x800C0005)

在我的ATL项目中,我有一个HTML浏览器主机的窗口。 我需要在运行时创build/销毁这个窗口。 当第三次调用IWebBrowser2.Navigate2时,它将触发带有状态INET_E_RESOURCE_NOT_FOUND (0x800C0005) 。 MSDN将其描述为未find服务器或代理服务器,但我调用的方法与以前会话中的URL完全相同。

我在我的代码中执行以下操作:

初始化程序:

 ole_obj_.CoCreateInstance(CLSID_WebBrowser); ole_obj_->SetClientSite(this); ole_obj_->DoVerb(OLEIVERB_SHOW, NULL, site, 0, GetHWND(), &rect); CComQIPtr<IWebBrowser2> webBrowser(ole_obj_); DispEventAdvise(webBrowser, &DIID_DWebBrowserEvents2); 

导航例程:

 CComQIPtr<IWebBrowser2> webBrowser(ole_obj_); webBrowser->Navigate2(&varUrl, 0, 0, 0, 0); 

销毁程序:

 DispEventUnadvise(ole_obj_, &DIID_DWebBrowserEvents2); ole_obj_->Close(OLECLOSE_NOSAVE); ole_obj_.Release(); 

有趣的事实,如果我评论ole_obj_->Close(OLECLOSE_NOSAVE); 它的工作,但当然我得到一个内存泄漏。

任何build议是受欢迎的。