Freigeben über


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)

Weitere Informationen

MODM_OPEN