我有一个应用程序,我一直用它来解析HTML文档中的数据。该应用程序已经工作了几年,直到本周IID_IPersistStreamInit的QueryInterface方法开始失败。对QueryInterface的调用返回-2147467262,但未通过SUCCEEDED(hr)测试。任何想法为什么退出工作?
谢谢, 涉
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)
答案 0 :(得分:0)
你在什么时候执行上面的代码?如果没有完成,你应该只在以下后执行:
只有这样才能安全地请求流接口。有关更多信息,请参阅Loading HTML content from a Stream。
现在,如果所有这些都已知并得到解决,您可以从另一个方向寻求解决方案。错误代码表示“不支持此类接口”。我试着找出包含该接口的组件是什么,然后重新注册它。但鉴于这是你正在处理的IE内容,我有点怀疑它的安装被搞砸了。