From 9e6b3f4bbd4ca9a8124650a55a4690fdf8851fe2 Mon Sep 17 00:00:00 2001 From: Katayama Hirofumi MZ Date: Mon, 14 Aug 2023 21:06:40 +0900 Subject: [PATCH] [APPWIZ] Don't forget to CoInitializeEx on COM thread (#5551) - Do CoInitializeEx and CoUninitialize in download_proc. CORE-19110, CORE-15786 --- dll/cpl/appwiz/addons.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/dll/cpl/appwiz/addons.c b/dll/cpl/appwiz/addons.c index 5fdfc999f1e..614bd2ab3e8 100644 --- a/dll/cpl/appwiz/addons.c +++ b/dll/cpl/appwiz/addons.c @@ -358,7 +358,9 @@ static DWORD WINAPI download_proc(PVOID arg) { WCHAR message[256]; WCHAR tmp_dir[MAX_PATH], tmp_file[MAX_PATH]; - HRESULT hres; + HRESULT hres, hrCoInit; + + hrCoInit = CoInitializeEx(NULL, COINIT_MULTITHREADED); GetTempPathW(sizeof(tmp_dir)/sizeof(WCHAR), tmp_dir); GetTempFileNameW(tmp_dir, NULL, 0, tmp_file); @@ -388,6 +390,10 @@ static DWORD WINAPI download_proc(PVOID arg) DeleteFileW(tmp_file); PostMessageW(install_dialog, WM_COMMAND, IDCANCEL, 0); + + if (SUCCEEDED(hrCoInit)) + CoUninitialize(); + return 0; }