Windows Explorer plugin DLL in 32 and 64 bits
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 开发者_如何学Gobits
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
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.
精彩评论