- Sync localspl, mciavi32, mcicda, mciqtz32, mciseq, mciwave, mscoree, msctf, msgsm32...
[reactos.git] / reactos / dll / win32 / mcicda / mcicda.c
index cf9132c..6ea996a 100644 (file)
@@ -420,7 +420,8 @@ static DWORD MCICDA_Open(UINT wDevID, DWORD dwFlags, LPMCI_OPEN_PARMSW lpOpenPar
     if (dwFlags & MCI_OPEN_ELEMENT) {
         if (dwFlags & MCI_OPEN_ELEMENT_ID) {
             WARN("MCI_OPEN_ELEMENT_ID %p! Abort\n", lpOpenParms->lpstrElementName);
-            return MCIERR_NO_ELEMENT_ALLOWED;
+            ret = MCIERR_NO_ELEMENT_ALLOWED;
+            goto the_error;
         }
         TRACE("MCI_OPEN_ELEMENT element name: %s\n", debugstr_w(lpOpenParms->lpstrElementName));
         if (!isalpha(lpOpenParms->lpstrElementName[0]) || lpOpenParms->lpstrElementName[1] != ':' ||
@@ -483,6 +484,8 @@ static DWORD MCICDA_Close(UINT wDevID, DWORD dwParam, LPMCI_GENERIC_PARMS lpParm
 
     if (wmcda == NULL)         return MCIERR_INVALID_DEVICE_ID;
 
+    MCICDA_Stop(wDevID, MCI_WAIT, NULL);
+
     if (--wmcda->nUseCount == 0) {
        CloseHandle(wmcda->handle);
     }