Out-of-process COM server and CLSCTX_ACTIVATE_64_BIT_SERVER

Open forum for end-user questions about Wine. Before asking questions, check out the Wiki as a first step.
Forum Rules
Locked
svyatonik
Newbie
Newbie
Posts: 1
Joined: Thu Mar 30, 2023 8:13 am

Out-of-process COM server and CLSCTX_ACTIVATE_64_BIT_SERVER

Post by svyatonik »

We need to call some x64 code from x86 process. On Windows we use COM out-of-process-server for that (please don't ask why - that's a legacy code). So from our x86 process we call the CoCreateInstance as follows:

Code: Select all

_com_ptr_t<_com_IIID<ICoUpgrader, &__uuidof(ICoUpgrader)>> cpUpgrader;
HRESULT hr = cpUpgrader.CreateInstance(CLSID_CoUpgrader, NULL, CLSCTX_LOCAL_SERVER | CLSCTX_ACTIVATE_64_BIT_SERVER);
On Windows all works fine, but we have issues on Wine. The call above returns E_NOINTERFACE. I've been investigating this issue (it may be unrelated to the topic) and grepped Wine codebase for usage of CLSCTX_ACTIVATE_64_BIT_SERVER constant and haven't found anything. So I have the question: does Wine provides support for the CLSCTX_ACTIVATE_64_BIT_SERVER flag at all? Maybe I'm missing something?

Thank you!
Locked