0
votes

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.

1

1 Answers

0
votes

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