http://bugs.winehq.org/show_bug.cgi?id=13011
Anastasius Focht focht@gmx.net changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |focht@gmx.net
--- Comment #7 from Anastasius Focht focht@gmx.net 2008-07-11 09:36:32 --- Hello,
--- snip trace --- .. 0020:Call ole32.CoInitializeEx(00000000,00000002) ret=00479e43 .. 0020:Ret ole32.CoInitializeEx() retval=00000000 ret=00479e43
.. 0020:Call ole32.OleInitialize(00000000) ret=0049799e 0020:trace:ole:OleInitialize ((nil)) 0020:trace:ole:CoInitializeEx ((nil), 2) 0020:trace:ole:OleInitialize () - Initializing the OLE libraries .. 0020:Ret ole32.OleInitialize() retval=00000001 ret=0049799e .. 0020:Call user32.MessageBoxW(00000000,005f4be8 L"Unable to initialize ole!",01fb5be0 L"Mail.Ru \0410\0433\0435\043d\0442",00010010) ret=004996f7 .. --- snip trace ---
Reduced test case, called from same apartment:
--- snippet --- ok_ole_success( CoInitializeEx( NULL, COINIT_APARTMENTTHREADED), "CoInitializeEx"); ok_ole_success( OleInitialize( NULL), "OleInitialize"); --- snippet ---
Calling OleInitialize() for the first time should yield S_OK - even with apartment already initialized by previous CoInitialize(Ex) calls. Calling OleInitialize() more than once yields S_FALSE for the second and following calls.
Seems the "first time" OleInitialize() is treated differently from "apartment already initialized by CoInitialize()" state.
Regards