https://bugs.winehq.org/show_bug.cgi?id=50280
Bug ID: 50280 Summary: DllSurrogate and mixing 32 and 64 bit COM components and applications does not work Product: Wine Version: 6.0-rc1 Hardware: x86-64 OS: Linux Status: UNCONFIRMED Severity: normal Priority: P2 Component: ole32 Assignee: wine-bugs@winehq.org Reporter: bvandermerwe@kbcat.com Distribution: ---
I would rank this as lower priority, since many people dont even know you can do it. I think you have many bigger fish to fry, but in case this is supported or there is interest in it, here goes.
Consider this situation:
You run Ubunutu 64 bit. You install 32 and 64 bit wine. (sudo dpkg --add-architecture i386)
You install your 64 bit application under wine which registers itself as a COM server.
You install the windows script host: sudo winetricks wsh57
Now from wine you run: cscript test.vbs
Where test.vbs contains this:
Dim app Set app = CreateObject("My64BITApplication")
cscript will run as a 32 bit process and tell you the COM component is not registered.
But the application added a DllSurrogate entry in the registry which under Windows allows mixing of 32 and 64 bit versions of the application and cscript. So under Windows the above works but not under wine.
How this works and what should happen is explained here:
https://www.mobilize.net/blog/call-64-bits-code-from-a-32bit-vb6-app
https://techtalk.gfi.com/32bit-object-64bit-environment/
https://jpsoft.com/forums/threads/using-a-32-bit-in-process-com-server-dll-f...
If you google it, there is a great deal of information about there and details about setting something up.
Now if this is not implemented, I suspect it would be a major undertaking, and as I said there are more worthy places to devote efforts, but then again wine is so amazing and has so many major things implemented, like direct x etc.