Use 64-bit COM objects from a 32-bit process
I am using virtualbox api which uses COM for windows. If you have a 64-bit OS, it will install the 64-bit version, and COM interfaces will be available for 64-bit clients, but not 32-bit. I was told that this is a COM limitation, but I have seen ways to use dll32 to "publish" 32 bit interfaces in the registry, so 64 bit processes can call these COM servers, but I cannot find the opposite, accessing 64 bit interfaces from 32-bit processes.
If I was not very clear, I believe this person wants to achieve something like this: http://www.codeproject.com/Forums/1648/COM.aspx?fid=1648&df=90&mpp=25&sort=Position&select=1702805&tid = 1702805
a source to share
During the thunking process , it will always only work with higher bit precision to a lower one, and not vice versa. When Win32 came out, the 32-bit process could have smashed the 16-bit dll, but there was simply no way to smash the 32-bit dll into a 16-bit process. The same is true now, a 32-bit dll can be split into a 64-bit process, but there is no possibility of a 64-bit DLL into a 32-bit process (except for the WOW64 emulator DLL : Wow64.dll, wow64Win.dll and Wow64Cpu. dll).
If you want to load 64-bit COM-in-process-dll, you need a 64-bit out-of-process loader, and your 32-bit application will be able to communicate with the loaded one and pass the required parameters to be called, and get the result.
For out-of-process 64-bit COM servers you will need 32-bit proxy DLLs, see Interprocess Communication Between 32-bit and 64-bit Applications .
a source to share