【发布时间】:2010-10-18 00:10:12
【问题描述】:
我正在尝试从 html 缓冲区创建一个 mshtml 文档对象。但是当执行以下代码时,它正在调用 Internet Explorer 窗口。如何防止它调用 IE。
#include <atlbase.h>
#include <mshtml.h>
CoInitialize(NULL);
CString strHTMLCode = _T("<html><head><script language=\"JavaScript\">{top.location.href=\"index.php\"}</script></head><body></body></html>");
CComPtr<IHTMLDocument2> pDoc;
HRESULT hr = CoCreateInstance(CLSID_HTMLDocument, NULL, CLSCTX_INPROC_SERVER, IID_IHTMLDocument2, (void**)&pDoc);
SAFEARRAY* psa = SafeArrayCreateVector(VT_VARIANT, 0, 1);
VARIANT *param;
hr = SafeArrayAccessData(psa, (LPVOID*)¶m);
param->vt = VT_BSTR;
param->bstrVal = strHTMLCode.AllocSysString();
hr = pDoc->write(psa); //This line invoks internet explorer window.
hr = pDoc->close();
【问题讨论】:
-
你想要完成什么?你有没有注意到,如果你删除了 javascript,IE 就不会启动?
-
我正在编写一个应用程序来使用 IHTMLDocument2 接口解析网页。我观察到,当我解析某些包含 java 脚本的网页时,它会从我的应用程序中调用 IE 窗口。基本上我想使用 IHTMLDocument2 静默解析网页。
标签: c++ com mfc visual-c++-6 mshtml