Question

I am currently working on a DLL for Windows Explorer, which provides various features like information and thumbnails for certain types of files. So far it works fine on Windows x64, and I am now working on the 32/64 bits issue and on the registration process (this process is made by a small standalone program written in C#).

My understanding is:

  • a 64 bits DLL will not work with a 32 bits application and vice versa
  • thus the 64 bits DLL will not work for the Open file dialog box of a 32 bits application
  • I need to register separately the 32 and 64 bits versions

My questions are:

  • are my assumptions correct so far? In particular I am wondering if the browse dialog box opened by an application necessarily has the same bitness as the application (or is the dialog box managed by some Windows 64 process anyway?)
  • supposing I have a 32 bits and a 64 bits versions of my DLL, how do I register them from a 64 bits program? ("Ok Windows I'm a 64 bits process, but I'm registering this for 32 bits applications, got it?")

Some pages I have read on the topic:

Windows 64-bit registry v.s. 32-bit registry

http://msdn.microsoft.com/en-us/library/aa384232%28v=VS.85%29.aspx

Was it helpful?

Solution

Your understanding is correct. You need to supply a 32 bit version for users on 32 bit Windows as well as for common dialogs for 32 bit processes under WOW64.

How to deploy depends on your installation tool. When I have done this I created separate MSIs for the two versions, from the same source, and used a bootstrapper setup.exe that installed them both. Recommended practice is to set the registry settings from the MSI. Then you let registry redirection do it's magic under WOW64.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top