Freigeben über


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)

Weitere Informationen

modMessage

MIDIOPENDESC

DriverCallback

MOM_OPEN