BHO for capturing user clicks works fine in Windows other than Windows 7 Home Premium with IE9

怎甘沉沦 提交于 2019-12-04 19:09:20

On its surface, I'm not aware of anything special about Home Premium x64 that would prevent it from running. Few hints to start your investigation:

  1. Is your DLL loaded. Used Sysinternal's process explorer.
  2. Is DllMain being called. use WinDBG debugger to debug iexplore.exe, and set debugger to break on module load: sxe ld YourDll.dll.
  3. Do you try both version of IE? There are IE in both "c:\program files" and c:\program files(x86)". Is your BHO 32 or 64 bits?
  4. Is it something your code is doing or before your code. Other than DllMain, the next entry point to your code is SetSite. If your code load, do you get IE to call this method?

EDIT: more stuff you can try (after reading your commends):

My guess is that your DLL is missing something that prevents it to load. Verify whether your DLL loads and the handshake between IE and your object is working.

  1. Try to put a breakpoint on the SetSite method (or try to write a string to the debugger)
  2. Emulate IE! Implement a short native console program in C++. In main call CoInitialize (single threaded apartment - that's the default), and then CoCreateInstance your class object (that's the CLSID). See if your object instantiated.
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!