今天测试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>

解决方案 »

  1.   

    InvokeEx报错之后EXCEPINFO 里面是什么?
      

  2.   

    返回的都是空,看不出什么东西,但是这个代码我放在虚拟机里IE8的环境是可以运行的,我本机是IE11。
    我查了些资料,有些是说IE9以后更新了什么权限之类的东西,英文太渣看不懂
      

  3.   

    更新: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
    有时间帮看一下,是不是这个更新导致的?看不太懂,谢谢。
      

  4.   

    如果是系统更新引起的bug,那么就安装新的kb来修复系统问题
      

  5.   

     
    我想应该不是这个KB3021952 更新的问题。
    我用了两台IE11的win7_64电脑。一个是运行正常的,一个是返回E_ACCESSDENIED错误的。
    然后我看了"已安装的更新",两个电脑都有这个KB3021952包。
    然后我卸载了运行正常的那台电脑的此更新,重启电脑后依然正常。
    所以会不会是电脑或者IE11的版本哪里的设置问题可以导致E_ACCESSDENIED错?