If you’ve noticed that your BHO or toolbar is not working anymore with IE11 on Win 8, or perhaps, if you’ve observed the similar popup message as following:
Then it’s probably your BHO or toolbar isn’t EPM compatible.
The following step-by-sep guide will help you to turn your BHO EPM compatible with IE11 on Windows 8.
Step #1:
Make sure that the BHO is compatible with the AppContainer isolation feature. You will need to included CATID_AppContainerCompatible and its GUID in your code. The following code illustrate how and where to enter the code.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
#pragma once #include "resource.h" // main symbols #include <shlguid.h> #include <exdispid.h> DEFINE_GUID(CATID_AppContainerCompatible, 0x59fb2056,0xd625,0x48d0,0xa9,0x44,0x1a,0x85,0xb5,0xab,0x26,0x40); class ATL_NO_VTABLE CSamplehBHO : public CComObjectRootEx<CComSingleThreadModel>, public CComCoClass<CSamplehBHO, &CLSID_SamplehBHO>, public IObjectWithSiteImpl<CSamplehBHO>, //... //... |
Step #2:
Make sure that GUID of CATID_AppContainerCompatible is in the BHO’s registry file. We need to register the COM component category during the registration. Make sure that the .rgs file include the Implemented Categories item as following:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
HKCR { ... ... NoRemove CLSID { ForceRemove {890CA1CF-6332-4CB3-A5B8-75AC3ED0213A} = s 'SampleBHO Class' { ProgID = s 'MyProj.SampleBHO.1' VersionIndependentProgID = s 'MyProj.SampleBHO' ForceRemove 'Programmable' InprocServer32 = s '%MODULE%' { val ThreadingModel = s 'Apartment' } val AppID = s '%APPID%' 'TypeLib' = s '{28262CB6-12A3-8B26-C166-6A1888E3A233}' 'Implemented Categories' = s '' { {59fb2056-d625-48d0-a944-1a85b5ab2640} = s '' { } } } } } |
Step #3:
Make sure that the BHO is available in both 32bit and 64bit flavors.You will need to compile the BHO project to support both X86 & X64 machine. You may refer to Configure Visual C++ Projects to Target 64-Bit Platforms
Step #4:
Make sure that all BHO files were correctly located in the respective folder based on its platform. For example, 32bit will be located at C:\program files (x86)\MyBHO and 64bit will be located at C:\program files\MyBHO. Remember to change MyBHO to your own project name.
Step #5 (last step):
Make sure that you register both 32bit & 64bit binary accordingly. E.g regsvr32, etc
We are unable to load bho.dll in IE 10 on windows 64 bit system.
Please suggest way to resolve above issue.
Make sure that you’re compiling your BHO project for 64 bit platform. Try to check your project properties page and also the build configuration manager if it’s set to be compiled in 64 bit or not.