【发布时间】:2010-11-28 11:33:15
【问题描述】:
在使用 IE8 的 Vista 上,我有一个 IWebBrowser2 实例,我用它来获取当前的 HTML 文档:
IWebBrowser2* browser;
CComPtr<IDispatch> disp;
HRESULT hr = browser->get_Document(&disp);
当管理员执行此操作时,调用成功。但是,当被普通用户调用时,尽管页面位于“受信任的站点”并且“保护模式”处于关闭状态,但调用仍会返回错误代码“800706B5”(“接口未知”)。
同样的代码在 Vista 上的 IE7 和 XP 上的 IE8 上运行没有问题。
有谁知道为什么会出现这个错误,我可以做些什么来解决这个问题?以管理员身份运行并不理想,Jon Skeet 也被这个难住了 :)
更新:问题似乎围绕着 UAC:完全关闭 UAC 可以让普通用户正常工作(尽管它明显不安全)
【问题讨论】:
-
您是在等待 DocumentComplete 事件触发,还是等待 ReadyState 属性变为 READSTATE_COMPLETE,然后再调用 get_Document()?
标签: c++ windows internet-explorer com windows-vista