Module: wine Branch: master Commit: 0d1cba8e4f1dbe0dd9c693da80e243fc29e2cdba URL: http://source.winehq.org/git/wine.git/?a=commit;h=0d1cba8e4f1dbe0dd9c693da80...
Author: Christian Costa titan.costa@wanadoo.fr Date: Mon Apr 12 11:21:27 2010 +0200
mciqtz32: Only call CoUninitialize when CoInitializeEx succeeds.
---
dlls/mciqtz32/mciqtz.c | 9 ++++++--- dlls/mciqtz32/mciqtz_private.h | 1 + 2 files changed, 7 insertions(+), 3 deletions(-)
diff --git a/dlls/mciqtz32/mciqtz.c b/dlls/mciqtz32/mciqtz.c index b98e163..c826de1 100644 --- a/dlls/mciqtz32/mciqtz.c +++ b/dlls/mciqtz32/mciqtz.c @@ -153,7 +153,8 @@ static DWORD MCIQTZ_mciOpen(UINT wDevID, DWORD dwFlags,
MCIQTZ_mciStop(wDevID, MCI_WAIT, NULL);
- CoInitializeEx(NULL, COINIT_MULTITHREADED); + hr = CoInitializeEx(NULL, COINIT_MULTITHREADED); + wma->uninit = SUCCEEDED(hr);
hr = CoCreateInstance(&CLSID_FilterGraph, NULL, CLSCTX_INPROC_SERVER, &IID_IGraphBuilder, (LPVOID*)&wma->pgraph); if (FAILED(hr)) { @@ -197,7 +198,8 @@ err: IMediaControl_Release(wma->pmctrl); wma->pmctrl = NULL;
- CoUninitialize(); + if (wma->uninit) + CoUninitialize();
return MCIERR_INTERNAL; } @@ -220,7 +222,8 @@ static DWORD MCIQTZ_mciClose(UINT wDevID, DWORD dwFlags, LPMCI_GENERIC_PARMS lpP if (wma->opened) { IGraphBuilder_Release(wma->pgraph); IMediaControl_Release(wma->pmctrl); - CoUninitialize(); + if (wma->uninit) + CoUninitialize(); wma->opened = FALSE; }
diff --git a/dlls/mciqtz32/mciqtz_private.h b/dlls/mciqtz32/mciqtz_private.h index dcfcad0..caf80de 100644 --- a/dlls/mciqtz32/mciqtz_private.h +++ b/dlls/mciqtz32/mciqtz_private.h @@ -28,6 +28,7 @@ typedef struct { MCIDEVICEID wDevID; BOOL opened; + BOOL uninit; IGraphBuilder* pgraph; IMediaControl* pmctrl; BOOL started;