Christian Costa : mciqtz32: Stop the device only after param and device checks are done.

Alexandre Julliard julliard at winehq.org
Thu Apr 23 11:27:22 CDT 2009


Module: wine
Branch: master
Commit: fd80a7b7c44e91fd365e0204bd83ce0d46d2ff67
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=fd80a7b7c44e91fd365e0204bd83ce0d46d2ff67

Author: Christian Costa <titan.costa at wanadoo.fr>
Date:   Thu Apr 23 00:04:04 2009 +0200

mciqtz32: Stop the device only after param and device checks are done.

---

 dlls/mciqtz32/mciqtz.c |   31 +++++++++++++++----------------
 1 files changed, 15 insertions(+), 16 deletions(-)

diff --git a/dlls/mciqtz32/mciqtz.c b/dlls/mciqtz32/mciqtz.c
index 07b774c..0435a11 100644
--- a/dlls/mciqtz32/mciqtz.c
+++ b/dlls/mciqtz32/mciqtz.c
@@ -99,12 +99,12 @@ static DWORD MCIQTZ_drvClose(DWORD dwDevID)
 
     TRACE("(%04x)\n", dwDevID);
 
-    /* finish all outstanding things */
-    MCIQTZ_mciClose(dwDevID, MCI_WAIT, NULL);
-
     wma = MCIQTZ_mciGetOpenDev(dwDevID);
 
     if (wma) {
+        /* finish all outstanding things */
+        MCIQTZ_mciClose(dwDevID, MCI_WAIT, NULL);
+
         HeapFree(GetProcessHeap(), 0, wma);
         return 1;
     }
@@ -121,16 +121,15 @@ static DWORD MCIQTZ_drvConfigure(DWORD dwDevID)
 
     TRACE("(%04x)\n", dwDevID);
 
-    MCIQTZ_mciStop(dwDevID, MCI_WAIT, NULL);
-
     wma = MCIQTZ_mciGetOpenDev(dwDevID);
+    if (!wma)
+        return 0;
 
-    if (wma) {
-        MessageBoxA(0, "Sample QTZ Wine Driver !", "MM-Wine Driver", MB_OK);
-        return 1;
-    }
+    MCIQTZ_mciStop(dwDevID, MCI_WAIT, NULL);
 
-    return 0;
+    MessageBoxA(0, "Sample QTZ Wine Driver !", "MM-Wine Driver", MB_OK);
+
+    return 1;
 }
 
 /***************************************************************************
@@ -144,8 +143,6 @@ static DWORD MCIQTZ_mciOpen(UINT wDevID, DWORD dwFlags,
 
     TRACE("(%04x, %08X, %p)\n", wDevID, dwFlags, lpOpenParms);
 
-    MCIQTZ_mciStop(wDevID, MCI_WAIT, NULL);
-
     if (!lpOpenParms)
         return MCIERR_NULL_PARAMETER_BLOCK;
 
@@ -153,6 +150,8 @@ static DWORD MCIQTZ_mciOpen(UINT wDevID, DWORD dwFlags,
     if (!wma)
         return MCIERR_INVALID_DEVICE_ID;
 
+    MCIQTZ_mciStop(wDevID, MCI_WAIT, NULL);
+
     CoInitializeEx(NULL, COINIT_MULTITHREADED);
 
     hr = CoCreateInstance(&CLSID_FilterGraph, NULL, CLSCTX_INPROC_SERVER, &IID_IGraphBuilder, (LPVOID*)&wma->pgraph);
@@ -211,12 +210,12 @@ static DWORD MCIQTZ_mciClose(UINT wDevID, DWORD dwFlags, LPMCI_GENERIC_PARMS lpP
 
     TRACE("(%04x, %08X, %p)\n", wDevID, dwFlags, lpParms);
 
-    MCIQTZ_mciStop(wDevID, MCI_WAIT, NULL);
-
     wma = MCIQTZ_mciGetOpenDev(wDevID);
     if (!wma)
         return MCIERR_INVALID_DEVICE_ID;
 
+    MCIQTZ_mciStop(wDevID, MCI_WAIT, NULL);
+
     if (wma->opened) {
         IGraphBuilder_Release(wma->pgraph);
         IMediaControl_Release(wma->pmctrl);
@@ -267,8 +266,6 @@ static DWORD MCIQTZ_mciSeek(UINT wDevID, DWORD dwFlags, LPMCI_SEEK_PARMS lpParms
 
     TRACE("(%04x, %08X, %p)\n", wDevID, dwFlags, lpParms);
 
-    MCIQTZ_mciStop(wDevID, MCI_WAIT, NULL);
-
     if (!lpParms)
         return MCIERR_NULL_PARAMETER_BLOCK;
 
@@ -276,6 +273,8 @@ static DWORD MCIQTZ_mciSeek(UINT wDevID, DWORD dwFlags, LPMCI_SEEK_PARMS lpParms
     if (!wma)
         return MCIERR_INVALID_DEVICE_ID;
 
+    MCIQTZ_mciStop(wDevID, MCI_WAIT, NULL);
+
     if (dwFlags & MCI_SEEK_TO_START) {
         newpos = 0;
     } else if (dwFlags & MCI_SEEK_TO_END) {




More information about the wine-cvs mailing list