[PATCH 1/4] mciqtz: Use opened state to avoid device to be closed several times.
Christian Costa
titan.costa at wanadoo.fr
Thu Apr 16 13:29:00 CDT 2009
---
dlls/mciqtz32/mciqtz.c | 12 ++++++------
dlls/mciqtz32/mciqtz_private.h | 1 +
2 files changed, 7 insertions(+), 6 deletions(-)
-------------- next part --------------
diff --git a/dlls/mciqtz32/mciqtz.c b/dlls/mciqtz32/mciqtz.c
index 0cd973b..da3e09a 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 cbcece0..23945a4 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;
More information about the wine-patches
mailing list