MODM_OPEN-Funktion
WINMM sendet die MODM_OPEN
Nachricht an die modMessage-Funktion eines MIDI-Ausgabetreibers, um ein angegebenes Gerät zuzuweisen, das eine Clientanwendung verwenden kann.
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 und einen enden Wert auf, der einem kleiner ist als die Anzahl der vom Treiber unterstützten Geräte.uMsg
WINMM legt diesen Parameter auf MODM_OPEN fest, wenn modMessage aufgerufen wird, um diese Nachricht zu verarbeiten.dwUser
Der MIDI-Ausgabetreiber muss diesen Speicherort mit seinen instance Daten füllen, jedoch nur als Reaktion auf .MODM_OPEN
dwParam1
Dieser Parameter gibt einen fernen Zeiger auf eine MIDIOPENDESC-Struktur an. Diese Struktur enthält zusätzliche Informationen für den Treiber, z. B. instance Daten vom Client und eine Rückruffunktion für den Client.dwParam2
Dieser Parameter gibt Optionsflags an, die bestimmen, wie das Gerät geöffnet wird. Die Flags können beliebige Werte in der folgenden Tabelle sein.Flag Bedeutung CALLBACK_EVENT
Wenn dieses Flag angegeben wird, wird dwCallback in der MIDIOPENDESC-Struktur als Ereignishandle angenommen.
CALLBACK_FUNCTION
Wenn dieses Flag angegeben wird, wird dwCallback in der MIDIOPENDESC-Struktur als Adresse einer Rückruffunktion angenommen.
CALLBACK_THREAD
Wenn dieses Flag angegeben wird, wird dwCallback in der MIDIOPENDESC-Struktur als Handle für einen Thread angenommen.
CALLBACK_WINDOW
Wenn dieses Flag angegeben wird, wird dwCallback in der MIDIOPENDESC-Struktur als Fensterhandle angenommen.
MIDI_IO_COOKED
Wenn dieses Flag angegeben ist, wird das Gerät im Streammodus geöffnet, und der Treiber empfängt Streamnachrichten. Der Fahrer muss in der Lage sein, alle auftretenden Eventualitäten zu bewältigen. Beispielsweise muss der Treiber in der Lage sein, Kurznachrichten und systemspezifische Nachrichten asynchron im Stream wiederzugeben.
Rückgabewert
Die modMessage-Funktion gibt MMSYSERR_NOERROR zurück, wenn der Vorgang erfolgreich ist. Andernfalls wird eine der Fehlermeldungen in der folgenden Tabelle zurückgegeben.
Rückgabecode | Beschreibung |
---|---|
MMSYSERR_NOTENABLED | Der Treiber konnte nicht geladen oder initialisiert werden. |
MMSYSERR_ALLOCATED | Das MIDI-Gerät wird bereits durch die maximale Anzahl von Clients zugeordnet, die der Treiber unterstützt, oder das Gerät kann aufgrund anderer Systemressourceneinschränkungen als arbeitsspeicher nicht geöffnet werden. |
MMSYSERR_NOMEM | Das Gerät kann aufgrund eines Fehlers beim Zuweisen oder Sperren von Arbeitsspeicher nicht geöffnet werden. |
Hinweise
Der Treiber muss in der Lage sein, die Anzahl der Clients zu bestimmen, die er für die Verwendung eines bestimmten Geräts zulassen kann. Nachdem ein Gerät für die maximale Anzahl von Clients geöffnet wurde, die der Treiber unterstützt, gibt der Treiber MMSYSERR_ALLOCATED für alle zusätzlichen Anforderungen zum Öffnen des Geräts zurück. Wenn der Geöffnete Vorgang erfolgreich ist, verwendet der Treiber die DriverCallback-Funktion , um dem Client eine MOM_OPEN Nachricht zu senden.
Anforderungen
Zielplattform |
Desktop |
Version |
Verfügbar unter Windows XP und höheren Windows-Betriebssystemen. |
Header |
Mmddk.h (einschließlich Mmddk.h, Mmsystem.h oder Windows.h) |