modMessage-Funktion
Die funktion modMessage ist die Einstiegsfunktion für MIDI-Ausgabetreiber (Musical Instrument Digital Interface) und für interne Synthesizertreiber. Weitere Informationen zu Audiogerätemeldungen im Zusammenhang mit MIDI finden Sie unter Audiogerätemeldungen für MIDI.
Syntax
DWORD modMessage(
UINT uDeviceID,
UINT uMsg,
DWORD_PTR dwUser,
DWORD_PTR dwParam1,
DWORD_PTR dwParam2
);
Parameter
uDeviceID
Gibt die ID des Zielgeräts an. Geräte-IDs sind sequenziell und weisen einen Anfangswert von 0 (null) und einen Endwert auf, der kleiner als die Anzahl der vom Treiber unterstützten Geräte ist.uMsg
Gibt die Nachricht an, die WINMM als Reaktion auf einen Aufruf der Clientanwendung an den Treiber sendet.dwUser
Für die MODM_OPEN Nachricht sollte der Treiber diesen Speicherort mit seinen instance Daten füllen. Bei allen anderen Nachrichten werden die instance Daten an den Treiber zurückgegeben. Treiber, die mehrere Clients unterstützen, können diese instance Daten verwenden, um nachzuverfolgen, welcher Client der Nachricht zugeordnet ist.dwParam1
Gibt einen nachrichtenabhängigen Parameter an.dwParam2
Gibt einen nachrichtenabhängigen Parameter an. Wenn Flags vorhanden sind, die zusätzliche Informationen für den Treiber bereitstellen, der mit modMessage arbeitet, verwendet WINMM diesen Parameter, um die Flags zu übergeben.
Rückgabewert
Die funktion modMessage gibt MMSYSERR_NOERROR zurück, wenn sie die von MMSYSTEM empfangene Nachricht erfolgreich verarbeiten kann. Andernfalls wird eine der folgenden Fehlermeldungen zurückgegeben.
Rückgabecode | Beschreibung |
---|---|
MMSYSERR_ERROR | Unbekannter Fehler. |
MMSYSERR_BADDEVICEID | Die angegebene Geräte-ID liegt außerhalb des Bereichs. |
MMSYSERR_NOTENABLED | Der Treiber konnte nicht geladen oder initialisiert werden. |
MMSYSERR_ALLOCATED | Das angegebene Gerät ist bereits zugeordnet. |
MMSYSERR_INVALHANDLE | Das Handle des angegebenen Geräts ist ungültig. |
MMSYSERR_NODRIVER | Es ist kein Gerätetreiber vorhanden. |
MMSYSERR_NOMEM | Speicherbelegungsfehler |
MMSYSERR_NOTSUPPORTED | Die von der Nachricht angeforderte Funktion wird nicht unterstützt. |
MMSYSERR_BADERRNUM | Fehlerwert liegt außerhalb des Bereichs. Weitere Informationen finden Sie im Abschnitt "Hinweise". |
MMSYSERR_INVALFLAG | Ein ungültiges Flag wurde an modMessage(mithilfe von dwParam2) übergeben. |
MMSYSERR_INVALPARAM | Ein ungültiger Parameter wurde an modMessage übergeben. |
MMSYSERR_HANDLEBUSY | Das angegebene Handle wird gleichzeitig von einem anderen Thread (z. B. einem Rückrufthread) verwendet. |
MMSYSERR_INVALIDALIAS | Der angegebene Alias wurde nicht gefunden. |
MMSYSERR_BADDB | Ungültige Registrierungsdatenbank. |
MMSYSERR_KEYNOTFOUND | Der angegebene Registrierungsschlüssel wurde nicht gefunden. |
MMSYSERR_READERROR | Fehler beim Lesen der Registrierung. |
MMSYSERR_WRITEERROR | Fehler beim Schreiben der Registrierung. |
MMSYSERR_DELETEERROR | Fehler beim Löschen der Registrierung. |
MMSYSERR_VALNOTFOUND | Der angegebene Registrierungswert wurde nicht gefunden. |
MMSYSERR_NODRIVERCB | Der Treiber, der mit modMessage funktioniert, ruft DriverCallback nicht auf. |
MMSYSERR_MOREDATA | modMessage verfügt über mehr Daten, die zurückgegeben werden müssen. |
MMSYSERR_LASTERROR | Gibt an, dass dies der letzte Fehler im Bereich der Fehlerwerte ist. Weitere Details finden Sie im Abschnitt „Anmerkungen“. |
Hinweise
Audiogerätemeldungen sind systemdefinierte Konstanten. Wenn modMessage also eine Audiogerätenachricht empfängt, wird eine switch-Anweisung verwendet, um die auszuführende Aktion basierend auf dem Wert der Nachricht zu bestimmen.
Der Bereich der Fehlermeldungen, die modMessage zurückgeben kann, hängt von der Nachricht ab, die verarbeitet wurde, als der Fehler aufgetreten ist. Die numerischen Werte der MMSYSERR_ Fehlermeldungen beginnen mit 0 (für MMSYSERR_NOERROR) und werden mit MMSYSERR_BASE + n fortgesetzt, wobei n eine ganze Zahl von 1 bis 21 ist. Der Wert für MMSYSERR_BASE ist eine definierte Konstante. Weitere Informationen zu MSYSERR_BASE und den MMSYSERR_ Fehlermeldungen finden Sie unter Mmsystem.h im Windows SDK und Mmddk.h im WDK.
Anforderungen
Zielplattform |
Desktop |
Version |
Verfügbar mit Windows XP und höher Windows-Betriebssystemen. |
Header |
Mmddk.h (enthalten Mmddk.h, Mmsystem.h oder Windows.h) |