darkrock76
darkrock76

Reputation: 171

Out of Process COM Server with simultaneous 32 and 64 bit clients

I have a 64bit out of process COM Server running on a 64bit machine. I registered my 64bit Proxy/Stub DLL using regsvr32.exe in my C:\Windows\System32 folder and can run my 64bit clients. I have also registered my 32bit Proxy/Stub in the C:\Windows\SysWOW64 folder and I can run my 32bit clients. I can also run multiple 32bit clients at the same time, and multiple 64bit clients at the same time. However, if I try to run a 32bit client and then a 64bit client, the second client attempts to create a new Server.exe process (same thing happens if I start with the 64bit client). Shouldn't they all just use the same Server instance?

Here is my Server CoCreateInstanceEx Call:

HRESULT hr = CoCreateInstanceEx(CLSID_COMServerObject, NULL, CLSCTX_LOCAL_SERVER | CLSCTX_ACTIVATE_64_BIT_SERVER, NULL, 1, &qi);

Both my Client CoCreateInstanceEx Calls look like this:

hr = CoCreateInstanceEx(clsid, NULL, CLSCTX_LOCAL_SERVER | CLSCTX_ACTIVATE_64_BIT_SERVER, NULL, 1, &qi);

Any help would be greatly appreciated.

Upvotes: 5

Views: 1238

Answers (1)

darkrock76
darkrock76

Reputation: 171

The 64 bit client was running as administrator and the 32 bit clients were not. Forcing the 32 bit clients to also run as administrator solved the issue

Upvotes: 4

Related Questions