diff --git a/dlls/mciqtz32/mciqtz.c b/dlls/mciqtz32/mciqtz.c index 0cd973b0ae6..da3e09a5dfb 100644 --- a/dlls/mciqtz32/mciqtz.c +++ b/dlls/mciqtz32/mciqtz.c @@ -185,6 +185,8 @@ static DWORD MCIQTZ_mciOpen(UINT wDevID, DWORD dwFlags, goto err; } + wma->opened = TRUE; + return 0; err: @@ -215,14 +217,12 @@ static DWORD MCIQTZ_mciClose(UINT wDevID, DWORD dwFlags, LPMCI_GENERIC_PARMS lpP if (!wma) return MCIERR_INVALID_DEVICE_ID; - if (wma->pgraph) + if (wma->opened) { IGraphBuilder_Release(wma->pgraph); - wma->pgraph = NULL; - if (wma->pmctrl) IMediaControl_Release(wma->pmctrl); - wma->pmctrl = NULL; - - CoUninitialize(); + CoUninitialize(); + wma->opened = FALSE; + } return 0; } diff --git a/dlls/mciqtz32/mciqtz_private.h b/dlls/mciqtz32/mciqtz_private.h index cbcece0443d..23945a4ff5c 100644 --- a/dlls/mciqtz32/mciqtz_private.h +++ b/dlls/mciqtz32/mciqtz_private.h @@ -27,6 +27,7 @@ typedef struct { MCIDEVICEID wDevID; + BOOL opened; IGraphBuilder* pgraph; IMediaControl* pmctrl; BOOL started;