IDispatchEx的示例代码中InvokeEx返回了E_ACCESSDENIED

Sping 2016-02-28 06:24:43
今天测试IDispatchEx的示例代码中InvokeEx返回了E_ACCESSDENIED错误,为什么?
微软示例代码的地址:https://msdn.microsoft.com/en-us/library/sky96ah7

我把它的HTML code保存在test.html里,然后在IE里打开test.html。
一直执行到
bstrName = SysAllocString(OLESTR("cat"));
hr = pdexScript->GetDispID(bstrName, 0, &dispid);
都是对的,获取到了dispid。但是后面的InvokeEx返回了E_ACCESSDENIED错误,有了解的请指点下。


<html>
<body>
<script type="text/javascript">
function cat()
{
// Create new element and assign the value 10
this.Bar = 10;
}

function test()
{
// Construct new object
Obj = new Object();

// Create new element and assign function pointer
Obj.Elem = cat;

// Call Elem method ("this" == Obj)
Obj.Elem();

// Obj.Bar now exists
}
test();
</script>
</body>
</html>
...全文
757 7 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
qq_37527605 2017-02-15
  • 打赏
  • 举报
回复
我也遇到同样问题,请问您的问题解决了吗?
Sping 2016-03-01
  • 打赏
  • 举报
回复
引用 4 楼 jiangsheng 的回复:
解决方法是安装KB3021952 更新
我想应该不是这个KB3021952 更新的问题。 我用了两台IE11的win7_64电脑。一个是运行正常的,一个是返回E_ACCESSDENIED错误的。 然后我看了"已安装的更新",两个电脑都有这个KB3021952包。 然后我卸载了运行正常的那台电脑的此更新,重启电脑后依然正常。 所以会不会是电脑或者IE11的版本哪里的设置问题可以导致E_ACCESSDENIED错?
oyljerry 2016-03-01
  • 打赏
  • 举报
回复
如果是系统更新引起的bug,那么就安装新的kb来修复系统问题
蒋晟 2016-03-01
  • 打赏
  • 举报
回复
解决方法是安装KB3021952 更新
Sping 2016-02-29
  • 打赏
  • 举报
回复
引用 1 楼 jiangsheng 的回复:
InvokeEx报错之后EXCEPINFO 里面是什么?
更新:nstallation of KB3025390 breaks out-of-process JavaScript execution in IE11 https://connect.microsoft.com/IE/feedback/details/1062093/installation-of-kb3025390-breaks-out-of-process-javascript-execution-in-ie11 有时间帮看一下,是不是这个更新导致的?看不太懂,谢谢。
Sping 2016-02-29
  • 打赏
  • 举报
回复
引用 1 楼 jiangsheng 的回复:
InvokeEx报错之后EXCEPINFO 里面是什么?
返回的都是空,看不出什么东西,但是这个代码我放在虚拟机里IE8的环境是可以运行的,我本机是IE11。 我查了些资料,有些是说IE9以后更新了什么权限之类的东西,英文太渣看不懂。。。
蒋晟 2016-02-29
  • 打赏
  • 举报
回复
InvokeEx报错之后EXCEPINFO 里面是什么?

3,248

社区成员

发帖
与我相关
我的任务
社区描述
ATL,Active Template Library活动(动态)模板库,是一种微软程序库,支持利用C++语言编写ASP代码以及其它ActiveX程序。
社区管理员
  • ATL/ActiveX/COM社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧