diff --git a/dlls/ole32/tests/compobj.c b/dlls/ole32/tests/compobj.c index 02dc080..4793bd6 100644 --- a/dlls/ole32/tests/compobj.c +++ b/dlls/ole32/tests/compobj.c @@ -1017,6 +1017,23 @@ static void test_CoGetObjectContext(void) CoUninitialize(); } +static void test_CoInitializeEx(void) +{ + HRESULT hr; + + hr = CoInitializeEx(NULL, COINIT_APARTMENTTHREADED); + ok(hr == S_OK, "CoInitializeEx failed with error 0x%08x\n", hr); + + /* Calling OleInitialize for the first time should yield S_OK even with + * apartment already initialized by previous CoInitialize(Ex) calls. */ + hr = OleInitialize(NULL); + todo_wine ok(hr == S_OK, "OleInitialize failed with error 0x%08x\n", hr); + + /* Subsequent calls to OleInitialize should return S_FALSE */ + hr = OleInitialize(NULL); + ok(hr == S_FALSE, "Expected S_FALSE, hr = 0x%08x\n", hr); +} + START_TEST(compobj) { HMODULE hOle32 = GetModuleHandle("ole32"); @@ -1045,4 +1062,5 @@ START_TEST(compobj) test_registered_object_thread_affinity(); test_CoFreeUnusedLibraries(); test_CoGetObjectContext(); + test_CoInitializeEx(); }