> Message du 11/01/05 08:45 > De : "Paul Vriens" > A : "Bill Medland" > Copie à : "wine-devel@winehq.org" > Objet : Re: Correction to COINIT_MULTITHREADED test > On Mon, 2005-01-10 at 21:20, Bill Medland wrote: > > Bill Medland ([EMAIL PROTECTED]) > > Correct testing for multithreaded > > (as spotted by Paul Vriens; fix suggested by Robert Shearman) > > > Hi Bill, > > it wasn't the check that was way over my head. The thing is, that with > this code change we walk a new path in COM_CreateApartment. > > I don't know what the result is but in CoInitializeEx we do: > > 545 if (!(apt = COM_CurrentInfo()->apt)) > 546 { > 547 apt = COM_CreateApartment(dwCoInit); > 548 if (!apt) return E_OUTOFMEMORY; > 549 } > > and apparently that leaves us with a E_OUTOFMEMORY all the time. Which > means that we will not come to the part:
All the time ? Looking at COM_CreateApartment it seems COINIT_APARTMENTTHREADED works but indeed COINIT_MULTITHREADED always return NULL. I think the code at the beginning of COM_CreateApartment is wrong. TRACE("thread 0x%lx is entering the multithreaded apartment\n", GetCurrentThreadId()); COM_CurrentInfo()->apt = &MTA; return apt; I think we should return COM_CurrentInfo()->apt rather than apt. Bye, Christian