Hi,
while looking through the code I saw:
if (model & COINIT_MULTITHREADED)
this will never work as COINIT_MULTITHREADED = 0.
The attached patch fixes the 3 occurrences of a check against COINIT_*.
This patch however makes the COM_CreateApartment in compobj.c:
545 if (!(apt = COM_CurrentInfo()->apt)) 546 { 547 apt = COM_CreateApartment(dwCoInit); 548 if (!apt) return E_OUTOFMEMORY; 549 }
return E_OUTOFMEMORY, always (?). And that makes sure that we have a mismatch between CoInitialize and CoUninitialize.
So there's definitely something else wrong as well.
Any idea ?
Cheers,
Paul.