Sync with trunk head (part 1 of 2)
[reactos.git] / dll / win32 / mciavi32 / mciavi.c
index d77525c..1c15dc5 100644 (file)
@@ -89,6 +89,7 @@ static        DWORD   MCIAVI_drvOpen(LPCWSTR str, LPMCI_OPEN_DRIVER_PARMSW modp)
     wma->hStopEvent = CreateEventW(NULL, FALSE, FALSE, NULL);
     wma->wDevID = modp->wDeviceID;
     wma->wCommandTable = mciLoadCommandResource(MCIAVI_hInstance, mciAviWStr, 0);
+    wma->dwStatus = MCI_MODE_NOT_READY;
     modp->wCustomCommandTable = wma->wCommandTable;
     modp->wType = MCI_DEVTYPE_DIGITAL_VIDEO;
     mciSetDriverData(wma->wDevID, (DWORD_PTR)wma);
@@ -301,11 +302,11 @@ DWORD MCIAVI_mciClose(UINT wDevID, DWORD dwFlags, LPMCI_GENERIC_PARMS lpParms)
     wma = MCIAVI_mciGetOpenDev(wDevID);
     if (wma == NULL)   return MCIERR_INVALID_DEVICE_ID;
 
+    MCIAVI_mciStop(wDevID, MCI_WAIT, NULL);
+
     EnterCriticalSection(&wma->cs);
 
     if (wma->nUseCount == 1) {
-       if (wma->dwStatus != MCI_MODE_STOP)
-           dwRet = MCIAVI_mciStop(wDevID, MCI_WAIT, NULL);
        MCIAVI_CleanUp(wma);
 
        if ((dwFlags & MCI_NOTIFY) && lpParms) {
@@ -836,14 +837,14 @@ static    DWORD   MCIAVI_mciSetAudio(UINT wDevID, DWORD dwFlags, LPMCI_DGV_SETAUDIO_P
 {
     WINE_MCIAVI *wma;
 
-    FIXME("(%04x, %08x, %p) : stub\n", wDevID, dwFlags, lpParms);
-
     if (lpParms == NULL)       return MCIERR_NULL_PARAMETER_BLOCK;
 
+    FIXME("(%04x, %08x, %p) Item %04x: stub\n", wDevID, dwFlags, lpParms, dwFlags & MCI_DGV_SETAUDIO_ITEM ? lpParms->dwItem : 0);
+
     wma = MCIAVI_mciGetOpenDev(wDevID);
     if (wma == NULL)           return MCIERR_INVALID_DEVICE_ID;
 
-    return MCIERR_UNSUPPORTED_FUNCTION; /* like w2k */
+    return 0;
 }
 
 /******************************************************************************
@@ -870,14 +871,14 @@ static    DWORD   MCIAVI_mciSetVideo(UINT wDevID, DWORD dwFlags, LPMCI_DGV_SETVIDEO_P
 {
     WINE_MCIAVI *wma;
 
-    FIXME("(%04x, %08x, %p) : stub\n", wDevID, dwFlags, lpParms);
-
     if (lpParms == NULL)       return MCIERR_NULL_PARAMETER_BLOCK;
 
+    FIXME("(%04x, %08x, %p) Item %04x: stub\n", wDevID, dwFlags, lpParms, dwFlags & MCI_DGV_SETVIDEO_ITEM ? lpParms->dwItem : 0);
+
     wma = MCIAVI_mciGetOpenDev(wDevID);
     if (wma == NULL)           return MCIERR_INVALID_DEVICE_ID;
 
-    return MCIERR_UNSUPPORTED_FUNCTION; /* like w2k */
+    return 0;
 }
 
 /******************************************************************************