From: Paul Gofman <pgofman@codeweavers.com> --- dlls/wmvcore/Makefile.in | 2 +- dlls/wmvcore/async_reader.c | 3 +++ dlls/wmvcore/tests/wmvcore.c | 6 +++--- 3 files changed, 7 insertions(+), 4 deletions(-) diff --git a/dlls/wmvcore/Makefile.in b/dlls/wmvcore/Makefile.in index 8dc574d43d5..7f3a8553f62 100644 --- a/dlls/wmvcore/Makefile.in +++ b/dlls/wmvcore/Makefile.in @@ -1,6 +1,6 @@ MODULE = wmvcore.dll IMPORTLIB = wmvcore -IMPORTS = kernel32 +IMPORTS = kernel32 combase DELAYIMPORTS = winegstreamer EXTRADLLFLAGS = -Wb,--prefer-native diff --git a/dlls/wmvcore/async_reader.c b/dlls/wmvcore/async_reader.c index ef657d561ba..c41bd96cd6c 100644 --- a/dlls/wmvcore/async_reader.c +++ b/dlls/wmvcore/async_reader.c @@ -358,6 +358,8 @@ static DWORD WINAPI async_reader_callback_thread(void *arg) struct list *entry; HRESULT hr = S_OK; + CoInitializeEx(NULL, COINIT_MULTITHREADED); + IWMReaderCallback_OnStatus(reader->callback, WMT_OPENED, S_OK, WMT_TYPE_DWORD, (BYTE *)&zero, reader->context); @@ -418,6 +420,7 @@ static DWORD WINAPI async_reader_callback_thread(void *arg) LeaveCriticalSection(&reader->callback_cs); + CoUninitialize(); TRACE("Reader is stopping; exiting.\n"); return 0; } diff --git a/dlls/wmvcore/tests/wmvcore.c b/dlls/wmvcore/tests/wmvcore.c index fe0d8d89b3c..f839c47b935 100644 --- a/dlls/wmvcore/tests/wmvcore.c +++ b/dlls/wmvcore/tests/wmvcore.c @@ -4338,9 +4338,9 @@ static void test_async_reader_com_init(void) CoUninitialize(); hr = CoGetApartmentType(&type, &qualifier); - todo_wine ok(hr == S_OK, "got %#lx.\n", hr); - todo_wine ok(type == APTTYPE_MTA, "got %d.\n", type); - todo_wine ok(qualifier == APTTYPEQUALIFIER_IMPLICIT_MTA, "got %d.\n", qualifier); + ok(hr == S_OK, "got %#lx.\n", hr); + ok(type == APTTYPE_MTA, "got %d.\n", type); + ok(qualifier == APTTYPEQUALIFIER_IMPLICIT_MTA, "got %d.\n", qualifier); hr = CoInitializeEx(NULL, COINIT_MULTITHREADED); ok(hr == S_OK, "failed to init com\n"); -- GitLab https://gitlab.winehq.org/wine/wine/-/merge_requests/10605