Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/jpa/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mfc IID_IPersistStreamInit退出工作的QueryInterface方法_Mfc_Queryinterface - Fatal编程技术网

Mfc IID_IPersistStreamInit退出工作的QueryInterface方法

Mfc IID_IPersistStreamInit退出工作的QueryInterface方法,mfc,queryinterface,Mfc,Queryinterface,我有一个用于解析HTML文档数据的应用程序。该应用程序已经运行了几年,直到本周IID_IPersistStreamInit的QueryInterface方法开始失败。对QueryInterface的调用返回-2147467262,这使SucceedHR测试失败。你知道这为什么不起作用吗 谢谢, 韦德 您在什么时候执行上面的代码?如果未完成,则应仅在以下情况下执行: 导航到“关于:空白”以正确加载mshtml 在继续之前,确保调用DocumentComplete事件,这意味着导航已完成。 只有这样

我有一个用于解析HTML文档数据的应用程序。该应用程序已经运行了几年,直到本周IID_IPersistStreamInit的QueryInterface方法开始失败。对QueryInterface的调用返回-2147467262,这使SucceedHR测试失败。你知道这为什么不起作用吗

谢谢, 韦德


您在什么时候执行上面的代码?如果未完成,则应仅在以下情况下执行:

导航到“关于:空白”以正确加载mshtml 在继续之前,确保调用DocumentComplete事件,这意味着导航已完成。 只有这样,请求流接口才安全。有关更多信息,请参阅


现在,如果所有这些都被了解并处理好了,您可能会从另一个方向寻求解决方案。错误代码表示不支持此类接口。我将尝试找出包含该接口的组件,然后重新注册它。但考虑到您正在处理的是IE内容,我有点怀疑它的安装有问题。

我正在导航到本地机器上的网页或HTML文档。在按下按钮查看或保存源代码之前,我会等待页面加载完成。QueryInterface调用在我尝试的所有文件上都失败。我猜可能在周五和周一之间,IE更新被推到了我的机器上;正在中断此程序。我应该补充一点,对GetHtmlDocument的调用已成功。这可能很愚蠢,但仍然-IE尚未在我的工作站上工作,可能是由于某些更新。重新启动修复了它。出现问题后,您是否尝试过重新启动工作站?是的,我在每天结束时关闭笔记本电脑,第二天早上痛苦地重新启动。这个计划今天或昨天都不起作用。我会在另一台机器上试用。是的,我们实验室的PC机上运行的是旧版本的IE 6.x。在周五早上和周一早上的某个时候,它停止了我的笔记本电脑7.0.5730.11CO的工作。
if (!myIE->IsValid())
   return;

HRESULT hr;
LPDISPATCH lpDispatch = NULL;
LPOLECOMMANDTARGET lpOleCommandTarget = NULL;
LPPERSISTSTREAM lpPersistStream = NULL;

lpDispatch = myIE->GetHtmlDocument(); 

ASSERT(lpDispatch);

if (lpDispatch == NULL)
  AfxMessageBox("Couldn't get IHTMLDocument2 interface!");    
else
{ 
   hr = lpDispatch->QueryInterface(IID_IPersistStreamInit, (void**) &lpPersistStream);
   if (SUCCEEDED(hr) && lpPersistStream != NULL)