Win 8(64位)操作系统中IE 10(64位)浏览器上的BHO组件问题

时间:2013-12-04 06:08:58

标签: windows-8 internet-explorer-10 32bit-64bit bho

当天的问候。

我遇到问题,我的64位ActiveX组件可以通过IE10(64位)浏览器在Win8(64位)上运行。


ISSUE:

我有一个64位的Intranet应用程序,其中我有一个ActiveX组件(COM .dll),它在Internet Explorer中创建一个资源管理器栏和一个BHO。 我试图在Win8(64位)和IE10中使用这个ActiveX组件。

什么对我有用:

  1. 我使用未启用EPM的IE10在Win8(64位\ 32位)\ Win7(64位\ 32位)中使用32位ActiveX版本。
  2. 使用IE7 \ IE8(64位)的Win7(64位)\ Win Server 2008 R2(64位)中的64位ActiveX。
  3. 我使用启用了EPM的IE10在Win7(64位)中的64位ActiveX。
  4. 什么对我不起作用:

    1. 我的64位ActiveX组件在Win8(64位)中使用启用了EPM的IE10(64位)。
    2. 通过互联网阅读了所有可用的博客,我了解到使用IE10的64位ActiveX组件在Win8(64位)中工作,我需要启用EPM(增强保护模式),注册我的32位和64位版本ActiveX和我的ActiveX应该是EPM兼容的。此外,我的DLL应位于AppContainer可读文件夹中,如Program Files。

      博客链接:

      1. http://blogs.msdn.com/b/ieinternals/archive/2012/03/23/understanding-ie10-enhanced-protected-mode-network-security-addons-cookies-metro-desktop.aspx
      2. http://www.askyb.com/bho/step-by-step-guide-to-making-you-bho-epm-compatible-with-ie11-on-windows-8/
      3. 我到目前为止所尝试的内容:

        1. 根据以上链接使我的ActiveX组件EPM兼容。 (我的ActiveX dll有5-6个类和不同的.rgs文件用于注册每个。所以我在单独的.h文件中添加了AppContainer GUID,并在每个类.cxx文件中包含该文件。还包括 所有.rgs文件中的“已实施类别”。)
        2. 注册了我的ActiveX的32位和64位版本。
        3. 启用EPM。
        4. 现在我只能通过EPM启用我的资源管理器栏。但其他BHO功能无效。

          我的ActiveX的一个功能是它读取机器名并返回它。但是在使用IE10的Win8(64位)中,即使执行了以上所有操作,它也无法正常工作。

          底线是我的ActiveX没有按预期完全正常工作,即.BHO组件之一(用于读取客户端机器名)的实例未按预期实例化,同样的组件工作正常在同一环境中使用32位BHO组件:(

          1. 在使我的ActiveX组件与EPM兼容时,我做错了吗?
          2. 由于我希望我的应用程序只能在64位模式下运行,因为它是一个内部网应用程序,我是否还需要注册我的ActiveX的32位和64位版本?
          3. 32位和64位版本是否应该与EPM兼容?
          4. 32位和64位是否应该具有相同的CLSID?
          5. 任何快速的解决方案都会非常感激,因为我在过去的几天里一直在努力解决这个问题,希望得到你们家人的积极回应。

            提前致谢

0 个答案:

没有答案