Jörg Höhle : mciavi: Complete MCI GetDevCaps/ capability.

Alexandre Julliard julliard at winehq.org
Fri Dec 18 10:49:10 CST 2009


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

Author: Jörg Höhle <hoehle at users.sourceforge.net>
Date:   Sat Nov 28 07:09:56 2009 +0100

mciavi: Complete MCI GetDevCaps/capability.

The FIXME comments indicate flags where Wine differs from native w2k.
The returned results are consistent with what Wine implements.

---

 dlls/mciavi32/info.c |   47 +++++++++++++++++++++++++++++++++++++++++++----
 1 files changed, 43 insertions(+), 4 deletions(-)

diff --git a/dlls/mciavi32/info.c b/dlls/mciavi32/info.c
index 64d51eb..e10bfd0 100644
--- a/dlls/mciavi32/info.c
+++ b/dlls/mciavi32/info.c
@@ -80,6 +80,7 @@ DWORD	MCIAVI_mciGetDevCaps(UINT wDevID, DWORD dwFlags,  LPMCI_GETDEVCAPS_PARMS l
 
     if (lpParms == NULL) 	return MCIERR_NULL_PARAMETER_BLOCK;
     if (wma == NULL)		return MCIERR_INVALID_DEVICE_ID;
+    if (!(dwFlags & MCI_GETDEVCAPS_ITEM)) return MCIERR_MISSING_PARAMETER;
 
     EnterCriticalSection(&wma->cs);
 
@@ -130,14 +131,52 @@ DWORD	MCIAVI_mciGetDevCaps(UINT wDevID, DWORD dwFlags,  LPMCI_GETDEVCAPS_PARMS l
 	    lpParms->dwReturn = MAKEMCIRESOURCE(FALSE, MCI_FALSE);
 	    ret = MCI_RESOURCE_RETURNED;
 	    break;
+	case MCI_DGV_GETDEVCAPS_CAN_REVERSE:
+	    TRACE("MCI_DGV_GETDEVCAPS_CAN_REVERSE !\n");
+	    lpParms->dwReturn = MAKEMCIRESOURCE(FALSE, MCI_FALSE); /* FIXME */
+	    ret = MCI_RESOURCE_RETURNED;
+	    break;
+	case MCI_DGV_GETDEVCAPS_CAN_STRETCH:
+	    TRACE("MCI_DGV_GETDEVCAPS_CAN_STRETCH !\n");
+	    lpParms->dwReturn = MAKEMCIRESOURCE(FALSE, MCI_FALSE); /* FIXME */
+	    ret = MCI_RESOURCE_RETURNED;
+	    break;
+	case MCI_DGV_GETDEVCAPS_CAN_LOCK:
+	    TRACE("MCI_DGV_GETDEVCAPS_CAN_LOCK !\n");
+	    lpParms->dwReturn = MAKEMCIRESOURCE(FALSE, MCI_FALSE);
+	    ret = MCI_RESOURCE_RETURNED;
+	    break;
+	case MCI_DGV_GETDEVCAPS_CAN_FREEZE:
+	    TRACE("MCI_DGV_GETDEVCAPS_CAN_FREEZE !\n");
+	    lpParms->dwReturn = MAKEMCIRESOURCE(FALSE, MCI_FALSE);
+	    ret = MCI_RESOURCE_RETURNED;
+	    break;
+	case MCI_DGV_GETDEVCAPS_CAN_STR_IN:
+	    TRACE("MCI_DGV_GETDEVCAPS_CAN_STRETCH_INPUT !\n");
+	    lpParms->dwReturn = MAKEMCIRESOURCE(FALSE, MCI_FALSE);
+	    ret = MCI_RESOURCE_RETURNED;
+	    break;
+	case MCI_DGV_GETDEVCAPS_HAS_STILL:
+	    TRACE("MCI_DGV_GETDEVCAPS_HAS_STILL !\n");
+	    lpParms->dwReturn = MAKEMCIRESOURCE(FALSE, MCI_FALSE);
+	    ret = MCI_RESOURCE_RETURNED;
+	    break;
+	case MCI_DGV_GETDEVCAPS_CAN_TEST:
+	    TRACE("MCI_DGV_GETDEVCAPS_CAN_TEST !\n");
+	    lpParms->dwReturn = MAKEMCIRESOURCE(FALSE, MCI_FALSE); /* FIXME */
+	    ret = MCI_RESOURCE_RETURNED;
+	    break;
+	case MCI_DGV_GETDEVCAPS_PALETTES:
+	    TRACE("MCI_DGV_GETDEVCAPS_PALETTES !\n");
+	    lpParms->dwReturn = MAKEMCIRESOURCE(FALSE, MCI_FALSE); /* FIXME */
+	    ret = MCI_RESOURCE_RETURNED;
+	    break;
+	/* w2k does not know MAX_WINDOWS or MAX/MINIMUM_RATE */
 	default:
             FIXME("Unknown capability (%08x) !\n", lpParms->dwItem);
-           ret = MCIERR_UNRECOGNIZED_COMMAND;
+            ret = MCIERR_UNSUPPORTED_FUNCTION;
             break;
 	}
-    } else {
-	WARN("No GetDevCaps-Item !\n");
-       ret = MCIERR_UNRECOGNIZED_COMMAND;
     }
 
     LeaveCriticalSection(&wma->cs);




More information about the wine-cvs mailing list