当前位置:编程学习 > C#/ASP.NET >>

执行IHTMLDocument2::write() 弹出安全缺陷窗口,如何避免

                //declare our MSHTML variables and create a document

MSHTML::IHTMLDocument2Ptr pDoc;
HRESULT hr = CoCreateInstance(CLSID_HTMLDocument, NULL, CLSCTX_INPROC_SERVER, 
IID_IHTMLDocument2, (void**)&pDoc);

//put the code into SAFEARRAY and write it into document
SAFEARRAY* psa = SafeArrayCreateVector(VT_VARIANT, 0, 1);
VARIANT *param;
bstr_t bsData = (LPCTSTR)csWholeFile;  // csWholeFile : html文件的源代码

hr = SafeArrayAccessData(psa, (LPVOID*)¶m);
param->vt = VT_BSTR;
param->bstrVal = (BSTR)bsData;

SafeArrayUnaccessData(psa);

hr = pDoc->write(psa);
hr = pDoc->close();

SafeArrayDestroy(psa);
。。。。。。。。

         程序是要读取远程网页的源代码(如 : http://www.baidu.com),然后分析HTML代码中的链接,下载链接。
         先将网页html代码导入IHTMLDocument2 文档对象
         但是执行hr = pDoc->write(psa); 弹出安全缺陷窗口“该页包含未知的潜在安全缺陷,是否继续”,有什么方法能
         让他不弹出这个对话框,挺烦人的,谢谢了。
         另 :并不是所有的网页都会弹出这个安全缺陷窗口,google就不会的,可能和html代码本身有关系。 --------------------编程问答-------------------- 浏览器控件等增加如下接口
virtual BOOL IsExternalDispatchSafe() { return TRUE; }

    // External JavaScript
virtual BOOL CanAccessExternal() { return TRUE; }
--------------------编程问答-------------------- 上面的大侠的方法好像不行哦。 --------------------编程问答-------------------- --------------------编程问答-------------------- --------------------编程问答-------------------- 标记 顶 --------------------编程问答-------------------- 过滤掉<script>…………</script>标记
补充:.NET技术 ,  VC.NET
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,