Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Using 32-bit shell extensions in Windows 7 64-bit

I'd like to develop a shell extension (context menu handler) compatible with both Windows XP SP2 (32-bit) and Windows 7 64-bit.

Is it possible to run 32-bit shell extensions in 64-bit Windows, or must the shell extension be ported/rebuilt to 64-bit to be used in Windows 7 64-bit?

Are there any disadvantages / known issues in using 32-bit shell extensions in 64-bit operating systems?

32-bit apps run just fine in 64-bit Windows, but I'm not sure about shell extensions, since, if my understanding is correct, shell extensions are in-proc COM servers loaded into Explorer process, which should be a 64-bit process in 64-bit Windows...or is a form of "32-bit emulation" provided for 32-bit shell extensions running in 64-bit OS?

like image 761
Mr.C64 Avatar asked Dec 06 '12 16:12

Mr.C64


People also ask

Can you run 32-bit applications on a 64-bit operating system?

The 64-bit versions of Windows don't provide support for 16-bit binaries or 32-bit drivers. Programs that depend on 16-bit binaries or 32-bit drivers can't run on the 64-bit versions of Windows unless the program manufacturer provides an update for the program.

Can Windows 7 run 32-bit programs?

Most 32 bit applications work just fine on Windows 7 64 bit. If you have an application that does not support Windows 7 64 bit, you could try compatibility mode: Check the developers website to find out about compatibility with Windows 7 and if there are any updates, patches or fixes that might enable compatibility.

Can you run Windows 7 32bit on 64bit?

Yes, a 64bit machine will run 32bit Windows 7.


1 Answers

A shell extension is just a DLL, and the rule is that 32-bit applications can only load 32-bit DLLs, and 64-bit applications can only load 64-bit DLLs. There is no way around this.

A 32-bit shell extension may still be useful on a 64-bit system as it means that any 32-bit third-party applications that load shell extensions will work. For example, TortoiseSVN ships with and installs both 32- and 64-bit versions, and so on 64-bit Windows you can still access TortoiseSVN context menus from 32-bit applications (like a third-party file manager).

But Explorer itself is 64-bit native on 64-bit Windows and so you need a 64-bit version of your extension if you want it to work in Explorer.

like image 137
Jonathan Potter Avatar answered Oct 16 '22 09:10

Jonathan Potter