From e03b59c6a1097f13f3ff249c5131d294cf443f31 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=B6rg=20H=C3=B6hle?= Date: Sat, 28 Nov 2009 07:09:56 +0100 Subject: [PATCH] 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 file changed, 43 insertions(+), 4 deletions(-) diff --git a/dlls/mciavi32/info.c b/dlls/mciavi32/info.c index 64d51eb1010..e10bfd046c2 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);