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

Windows 8 Win 8(64位)操作系统中IE 10(64位)浏览器上的BHO组件问题,windows-8,internet-explorer-10,32bit-64bit,bho,Windows 8,Internet Explorer 10,32bit 64bit,Bho,祝你节日快乐 我在使用IE10(64位)浏览器在Win8(64位)上运行64位ActiveX组件时遇到问题 问题: 我有一个64位的Intranet应用程序,其中有一个ActiveX组件(COM.dll),可以在Internet explorer中创建浏览器栏和BHO。 我正在尝试在Win8(64位)和IE10中使用此ActiveX组件 什么对我有效: 我的32位ActiveX版本在Win8(64位\32位)\Win7(64位\32位)中使用IE10,未启用EPM 我的64位ActiveX在W

祝你节日快乐

我在使用IE10(64位)浏览器在Win8(64位)上运行64位ActiveX组件时遇到问题


问题:

我有一个64位的Intranet应用程序,其中有一个ActiveX组件(COM.dll),可以在Internet explorer中创建浏览器栏和BHO。 我正在尝试在Win8(64位)和IE10中使用此ActiveX组件

什么对我有效:

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

  • 我的64位ActiveX组件在Win8(64位)中使用启用EPM的IE10(64位)
  • 阅读了互联网上的所有博客后,我了解到,要使64位ActiveX组件在Win8(64位)中使用IE10工作,我需要启用EPM(增强保护模式),注册ActiveX的32位和64位版本,并且ActiveX应该与EPM兼容。我的dll也应该像程序文件一样位于AppContainer可读文件夹中

    博客链接:

  • 到目前为止我所尝试的:

  • 根据以上链接使我的ActiveX组件EPM兼容。 (我的ActiveX dll有5-6个类和不同的.rgs文件用于注册每个类。因此,我在单独的.h文件中添加了AppContainer GUID,并将该文件包含在每个class.cxx文件中。还包括 所有.rgs文件中的“已实现类别”。)
  • 已注册32位和64位版本的ActiveX
  • 启用EPM
  • 现在我只能通过EPM启用浏览器栏。但其他BHO功能不起作用

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

    底线是,我的ActiveX没有完全按照预期工作,即,其中一个BHO组件(用于读取客户端机器名)的实例没有按照预期实例化,相同的组件在相同的环境中与32位BHO组件配合使用时可以正常工作:(

  • 使ActiveX组件与EPM兼容是我做错了什么吗
  • 由于我希望我的应用程序仅在64位模式下运行,因为它是一个intranet应用程序,我是否仍然需要注册32位和64位版本的ActiveX
  • 32位和64位版本是否都应与EPM兼容
  • 32位和64位是否应具有相同的CLSID
  • 任何快速的解决方案都将不胜感激,因为我在过去几天里一直在努力解决这个问题,希望你们能给予积极的回应


    提前谢谢

    你能在这里发布你的rgs文件吗?@se_pavel:我已经创建了这里提到的rgs文件。你可以参考这个来更好地理解它