=?UTF-8?Q?J=C3=B6rg=20H=C3=B6hle=20?=: mciseq: Only send non-MCI commands to DefDriverProc.

Alexandre Julliard julliard at winehq.org
Wed Jan 4 13:53:00 CST 2012


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

Author: Jörg Höhle <hoehle at users.sourceforge.net>
Date:   Wed Dec 15 21:49:58 2010 +0100

mciseq: Only send non-MCI commands to DefDriverProc.

---

 dlls/mciseq/mcimidi.c |   31 +++++++------------------------
 1 files changed, 7 insertions(+), 24 deletions(-)

diff --git a/dlls/mciseq/mcimidi.c b/dlls/mciseq/mcimidi.c
index 6bf7f4d..55f06f8 100644
--- a/dlls/mciseq/mcimidi.c
+++ b/dlls/mciseq/mcimidi.c
@@ -1630,6 +1630,10 @@ LRESULT CALLBACK MCIMIDI_DriverProc(DWORD_PTR dwDevID, HDRVR hDriv, UINT wMsg,
 
     if (dwDevID == 0xFFFFFFFF) return MCIERR_UNSUPPORTED_FUNCTION;
 
+    if ((wMsg < DRV_MCI_FIRST) || (wMsg > DRV_MCI_LAST)) {
+	TRACE("Sending msg %04x to default driver proc\n", wMsg);
+	return DefDriverProc(dwDevID, hDriv, wMsg, dwParam1, dwParam2);
+    }
     switch (wMsg) {
     case MCI_OPEN_DRIVER:	return MIDI_mciOpen      (dwDevID, dwParam1, (LPMCI_OPEN_PARMSW)     dwParam2);
     case MCI_CLOSE_DRIVER:	return MIDI_mciClose     (dwDevID, dwParam1, (LPMCI_GENERIC_PARMS)   dwParam2);
@@ -1642,33 +1646,12 @@ LRESULT CALLBACK MCIMIDI_DriverProc(DWORD_PTR dwDevID, HDRVR hDriv, UINT wMsg,
     case MCI_GETDEVCAPS:	return MIDI_mciGetDevCaps(dwDevID, dwParam1, (LPMCI_GETDEVCAPS_PARMS)dwParam2);
     case MCI_INFO:		return MIDI_mciInfo      (dwDevID, dwParam1, (LPMCI_INFO_PARMSW)     dwParam2);
     case MCI_SEEK:		return MIDI_mciSeek      (dwDevID, dwParam1, (LPMCI_SEEK_PARMS)      dwParam2);
-    /* commands that should report an error */
-    case MCI_RECORD:
-    case MCI_LOAD:
-    case MCI_SAVE:
-    case MCI_FREEZE:
-    case MCI_PUT:
-    case MCI_WINDOW:
-    case MCI_REALIZE:
-    case MCI_UNFREEZE:
-    case MCI_UPDATE:
-    case MCI_WHERE:
-    case MCI_STEP:
-    case MCI_SPIN:
-    case MCI_ESCAPE:
-    case MCI_COPY:
-    case MCI_CUT:
-    case MCI_DELETE:
-    case MCI_PASTE:
-	TRACE("Unsupported command [0x%x]\n", wMsg);
-	break;
     case MCI_OPEN:
     case MCI_CLOSE:
 	FIXME("Shouldn't receive a MCI_OPEN or CLOSE message\n");
-	break;
+	/* fall through */
     default:
-	TRACE("Sending msg [%u] to default driver proc\n", wMsg);
-	return DefDriverProc(dwDevID, hDriv, wMsg, dwParam1, dwParam2);
+	TRACE("Unsupported command [0x%x]\n", wMsg);
+        return MCIERR_UNSUPPORTED_FUNCTION; /* Win9x: MCIERR_UNRECOGNIZED_COMMAND */
     }
-    return MCIERR_UNSUPPORTED_FUNCTION;
 }




More information about the wine-cvs mailing list