I wrote a COM Dll for explorer that extends windows context menu, registration via regsvr32 works fine on 32 bit Windows, but on 64 bit it does not work without any clue. regsvr32 reports successful registration, although Dll is not working. I tried to call regsvr32 from SysWow64 directory aswell as from system32 and this is not the cause as far as I can guess. Checked the registry - everything was written to the registry to wow3264Node ofcourse (as installation was on 64 bit OS). Still nothing happens. Hard to provide any specific information for now. Can anyone suggest or point to other possible causes of such behavior. Thanks in advance.
Asked
Active
Viewed 519 times
1 Answers
0
You need to compile your DLL for 64 bit. The fact that the registration code writes to Wow6432Node
indicates that your DLL is 32 bit. On a 64 bit OS, Explorer is a 64 bit process and so can only load 64 bit shell extensions.
Don't forget to register both 32 and 64 bit versions of the shell extension on a 64 bit machine so that any 32 bit programs can see your shell extension. You do that using C:\Windows\SysWOW64\regsvr32

David Heffernan
- 601,492
- 42
- 1,072
- 1,490
-
The plugin is built for i86 and amd64 architecture, so that is not the case in current situation. Registry trees exist - one for 32 wow6432node and the other for native win64 registry path. Thanks for suggestion nevertheless. Any other aspect that may cause such problems? – user1138436 May 07 '12 at 13:08
-
What is i86? Do you mean x86. Your comment contradicts what you say in the question. – David Heffernan May 07 '12 at 14:51
-
x86 - it was a typo Regarding contradiction - that is about wow6432node? Please clarify – user1138436 May 07 '12 at 15:17
-
You said that registry settings were written to wow6432node, and that you installed amd64 dll. Those statements are contradictory. – David Heffernan May 07 '12 at 15:22
-
I see. Will clarify - x86 compiled Dll went to this registry path (wow6432node) and 64 bit went to native node (I said everything - that was a mistake). Seems like this is not an issue. I thought it was important to mention that 32 bit version gets registered, also – user1138436 May 07 '12 at 15:28