mixerMessage-Funktion (mmeapi.h)
Die mixerMessage-Funktion sendet eine benutzerdefinierte Mixertreibermeldung direkt an einen Mixertreiber.
Syntax
DWORD mixerMessage(
HMIXER hmx,
UINT uMsg,
DWORD_PTR dwParam1,
DWORD_PTR dwParam2
);
Parameter
hmx
Bezeichner des Mixers, der die Nachricht empfängt. Sie müssen die Geräte-ID in den HMIXER-Handletyp umwandeln. Wenn Sie anstelle einer Geräte-ID ein Handle angeben, schlägt die Funktion fehl und gibt den MMSYSERR_NOSUPPORT Fehlercode zurück.
uMsg
Benutzerdefinierte Mixertreibernachricht, die an den Mixertreiber gesendet werden soll. Diese Meldung muss über oder gleich der MXDM_USER-Konstante sein.
dwParam1
Parameter, der der gesendeten Nachricht zugeordnet ist.
dwParam2
Parameter, der der gesendeten Nachricht zugeordnet ist.
Rückgabewert
Gibt einen Wert zurück, der für die benutzerdefinierte Mixertreibermeldung spezifisch ist. Mögliche Fehlerwerte sind:
Rückgabecode | Beschreibung |
---|---|
|
Das angegebene Gerätehandle ist ungültig. |
|
Der in der MXDM_USER Meldung angegebene uMsg-Parameter ist ungültig. |
|
Der deviceID-Parameter muss eine gültige Geräte-ID sein. |
|
Das Mixergerät hat die Nachricht nicht verarbeitet. |
Hinweise
Benutzerdefinierte Nachrichten dürfen nur an einen Mixertreiber gesendet werden, der die Nachrichten unterstützt. Die Anwendung sollte überprüfen, ob der Mixertreiber der Treiber ist, der die Nachricht unterstützt, indem sie die Mixerfunktionen abruft und die Elemente wMid, wPid, vDriverVersion und szPname der MIXERCAPS-Struktur überprüft.
Die DRV_QUERYDEVICEINTERFACE
Meldung fragt den Geräteschnittstellennamen eines waveIn-, waveOut-, midiIn-, midiOut- oder mixer-Geräts ab.
Für DRV_QUERYDEVICEINTERFACE
ist dwParam1 ein Zeiger auf einen aufruferseitig zugewiesenen Puffer, in den die Funktion eine Unicode-Zeichenfolge mit NULL-Termin schreibt, die den Geräteschnittstellennamen enthält. Wenn das Gerät über keine Geräteschnittstelle verfügt, ist die Zeichenfolgenlänge null.
Für DRV_QUERYDEVICEINTERFACE
gibt dwParam2 die Puffergröße in Bytes an. Dies ist ein Eingabeparameter für die Funktion. Der Aufrufer sollte eine Größe angeben, die größer oder gleich der Puffergröße ist, die von der DRV_QUERYDEVICEINTERFACESIZE-Nachricht abgerufen wird.
Die DRV_QUERYDEVICEINTERFACE Meldung wird in Windows Me und Windows 2000 und höher unterstützt. Diese Nachricht ist nur für die Funktionen waveInMessage, waveOutMessage, midiInMessage, midiOutMessage und mixerMessage gültig. Das System fängt diese Nachricht ab und gibt den entsprechenden Wert zurück, ohne die Nachricht an den Gerätetreiber zu senden. Allgemeine Informationen zu vom System abgefangenen xxxMessage-Funktionen finden Sie unter Vom System abgefangene Gerätenachrichten.
Die folgenden beiden Nachrichtenkonstanten werden zusammen zum Abrufen von Geräteschnittstellennamen verwendet:
- DRV_QUERYDEVICEINTERFACESIZE
- DRV_QUERYDEVICEINTERFACE
Weitere Informationen finden Sie unter Abrufen eines Geräteschnittstellennamens.
Die DRV_QUERYDEVICEINTERFACESIZE
Meldung fragt die Größe des Puffers ab, der zum Aufnehmen des Geräteschnittstellennamens erforderlich ist.
Für DRV_QUERYDEVICEINTERFACESIZE
ist dwParam1 ein Zeiger auf die Puffergröße. Dieser Parameter verweist auf eine ULONG-Variable, in die die Funktion die erforderliche Puffergröße in Bytes schreibt. Die Größe enthält Speicherplatz für den Abbruch von NULL der Namenszeichenfolge. Die Größe ist null, wenn die Geräte-ID ein Gerät ohne Geräteschnittstelle identifiziert.
Für DRV_QUERYDEVICEINTERFACESIZE
wird dwParam2 nicht verwendet. Legen Sie diesen Parameter auf 0 (null) fest.
Diese Nachricht ist nur für die Funktionen waveInMessage, waveOutMessage, midiInMessage, midiOutMessage und mixerMessage gültig. Das System fängt diese Nachricht ab und gibt den entsprechenden Wert zurück, ohne die Nachricht an den Gerätetreiber zu senden. Allgemeine Informationen zu vom System abgefangenen xxxMessage-Funktionen finden Sie unter Vom System abgefangene Gerätenachrichten.
Die von dieser Nachricht abgerufene Puffergröße wird als Byteanzahl ausgedrückt. Es gibt die Größe des Puffers an, der für die Unicode-Zeichenfolge mit Null-Terminen erforderlich ist, die den Geräteschnittstellennamen enthält. Der Aufrufer ordnet einen Puffer der angegebenen Größe zu und verwendet die DRV_QUERYDEVICEINTERFACE Meldung, um die Namenszeichenfolge der Geräteschnittstelle abzurufen.
Weitere Informationen finden Sie unter Abrufen eines Geräteschnittstellennamens.
Die DRV_QUERYDEVNODE
Meldung fragt die Devnode-Nummer ab, die dem Gerät vom Plug and Play-Manager zugewiesen wurde.
Für DRV_QUERYDEVNODE
ist dwParam1 ein Zeiger auf eine vom Aufrufer zugewiesene DWORD-Variable, in die die Funktion die Devnode-Nummer schreibt. Wenn dem Gerät kein Devnode zugewiesen ist, legt die Funktion diese Variable auf Null fest.
Für DRV_QUERYDEVNODE
wird dwParam2 nicht verwendet. Legen Sie diesen Parameter auf 0 (null) fest.
In Windows 2000 und höher gibt die Meldung immer MMSYSERR_NOTSUPPORTED zurück. Diese Nachricht ist nur für die Funktionen waveInMessage, waveOutMessage, midiInMessage, midiOutMessage und mixerMessage gültig. Das System fängt diese Nachricht ab und gibt den entsprechenden Wert zurück, ohne die Nachricht an den Gerätetreiber zu senden. Allgemeine Informationen zu vom System abgefangenen xxxMessage-Funktionen finden Sie unter Vom System abgefangene Gerätenachrichten.
Die DRV_QUERYMAPPABLE
Meldung fragt ab, ob das angegebene Gerät von einem Mapper verwendet werden kann.
Für DRV_QUERYMAPPABLE
ist dwParam1 nicht verwendet. Legen Sie diesen Parameter auf 0 (null) fest.
Für DRV_QUERYMAPPABLE
wird dwParam2 nicht verwendet. Legen Sie diesen Parameter auf 0 (null) fest.
Diese Nachricht ist nur für die Funktionen waveInMessage, waveOutMessage, midiInMessage, midiOutMessage, mixerMessage und auxOutMessage gültig. Das System fängt diese Nachricht ab und gibt den entsprechenden Wert zurück, ohne die Nachricht an den Gerätetreiber zu senden. Allgemeine Informationen zu vom System abgefangenen xxxMessage-Funktionen finden Sie unter Vom System abgefangene Gerätenachrichten.
Wenn ein Anwendungsprogramm anstelle eines bestimmten Audiogeräts einen Mapper öffnet, fügt das System einen Mapper zwischen der Anwendung und den verfügbaren Geräten ein. Der Mapper wählt ein geeignetes Gerät aus, indem die Anforderungen der Anwendung einem der verfügbaren Geräte zugeordnet werden. Weitere Informationen zu Mappern finden Sie in der Dokumentation zu Microsoft Windows SDK.
Die DRVM_MAPPER_CONSOLEVOICECOM_GET
Nachricht ruft die Geräte-ID des bevorzugten Sprachkommunikationsgeräts ab.
Für DRVM_MAPPER_CONSOLEVOICECOM_GET
ist dwParam1 ein Zeiger auf die Geräte-ID. Dieser Parameter verweist auf eine DWORD-Variable, in die die Funktion die Geräte-ID des aktuell bevorzugten Sprachkommunikationsgeräts schreibt. Die Funktion schreibt den Wert (-1), wenn kein Gerät verfügbar ist, das als bevorzugtes Sprachkommunikationsgerät gilt.
Für DRVM_MAPPER_CONSOLEVOICECOM_GET
ist dwParam2 ein Zeiger auf status Flags. Dieser Parameter verweist auf eine DWORD-Variable, in die die Funktion die Geräte-status-Flags schreibt. Derzeit ist nur ein Flagbit definiert: DRVM_MAPPER_PREFERRED_FLAGS_PREFERREDONLY.
Diese Nachricht ist nur für die Funktionen waveInMessage und waveOutMessage gültig. Wenn ein Aufrufer diese beiden Funktionen mit der DRVM_MAPPER_CONSOLEVOICECOM_GET Meldung aufruft, muss der Aufrufer die Geräte-ID als WAVE_MAPPER angeben und diesen Wert dann in den entsprechenden Handle-Typ umwandeln. Für die Funktionen waveInMessage, waveOutMessage, midiInMessage, midiOutMessage oder mixerMessage muss der Aufrufer die Geräte-ID in ein Handle vom Typ HWAVEIN, HWAVEOUT, HMIDIIN, HMIDIOUT oder HMIXER umwandeln. Wenn der Aufrufer ein gültiges Handle anstelle einer Geräte-ID für diesen Parameter bereitstellt, schlägt die Funktion fehl und gibt den Fehlercode MMSYSERR_NOSUPPORT zurück.
Das System fängt diese Nachricht ab und gibt den entsprechenden Wert zurück, ohne die Nachricht an den Gerätetreiber zu senden. Allgemeine Informationen zu vom System abgefangenen xxxMessage-Funktionen finden Sie unter Vom System abgefangene Gerätenachrichten.
Diese Nachricht bietet eine Möglichkeit, zu bestimmen, welches Gerät speziell für die Sprachkommunikation bevorzugt wird, im Gegensatz zur DRVM_MAPPER_PREFERRED_GET Nachricht, die bestimmt, welches Gerät für alle anderen Audiofunktionen bevorzugt wird.
Beispielsweise kann das bevorzugte waveOut-Gerät für die Sprachkommunikation der Ohrhörer in einem Headset sein, aber das bevorzugte waveOut-Gerät für alle anderen Audiofunktionen kann ein Satz von Stereolautsprechern sein.
Wenn das DRVM_MAPPER_PREFERRED_FLAGS_PREFERREDONLY Flagbits an der DWORD-Position festgelegt ist, auf die dwParam2 verweist, verwenden die waveIn - und waveOut-APIs nur das aktuell bevorzugte Sprachkommunikationsgerät und suchen nicht nach anderen verfügbaren Geräten, wenn das bevorzugte Gerät nicht verfügbar ist. Das Flag, das entweder vom waveInMessage - oder waveOutMessage-Aufruf ausgegeben wird, gilt für das bevorzugte Sprachkommunikationsgerät sowohl für die waveIn - als auch für die waveOut-APIs , unabhängig davon, ob der Aufruf an waveInMessage oder waveOutMessage erfolgt. Weitere Informationen finden Sie unter Bevorzugte Voice-Communications Geräte-ID.
Die DRVM_MAPPER_PREFERRED_GET
Meldung ruft die Geräte-ID des bevorzugten Audiogeräts ab.
Für DRVM_MAPPER_PREFERRED_GET
ist dwParam1 ein Zeiger auf die Geräte-ID. Dieser Parameter verweist auf eine DWORD-Variable, in die die Funktion die Geräte-ID des aktuell bevorzugten Geräts schreibt. Die Funktion schreibt den Wert (-1), wenn kein Gerät verfügbar ist, das als bevorzugtes Gerät gilt.
Für DRVM_MAPPER_PREFERRED_GET
ist dwParam2 ein Zeiger auf status Flags. Dieser Parameter verweist auf eine DWORD-Variable, in die die Funktion die Geräte-status-Flags schreibt. Derzeit ist nur ein Flagbit definiert (nur für waveInMessage - und waveOutMessage-Aufrufe ): DRVM_MAPPER_PREFERRED_FLAGS_PREFERREDONLY.
Diese Nachricht ist nur für die Funktionen waveInMessage, waveOutMessage und midiOutMessage gültig. Wenn der Aufrufer diese Funktionen mit der DRVM_MAPPER_PREFERRED_GET-Nachricht aufruft, muss der Aufrufer zuerst die Geräte-ID als WAVE_MAPPER (für waveInMessage oder waveOutMessage) oder MIDI_MAPPER (für midiOutMessage) angeben und diesen Wert dann in den entsprechenden Handle-Typ umwandeln. Für die Funktionen waveInMessage, waveOutMessage oder midiOutMessage muss der Aufrufer die Geräte-ID in einen Handle-Typ HWAVEIN, HWAVEOUT oder HMIDIOUT umwandeln. Wenn der Aufrufer ein gültiges Handle anstelle einer Geräte-ID für diesen Parameter bereitstellt, schlägt die Funktion fehl und gibt den Fehlercode MMSYSERR_NOSUPPORT zurück.
Das System fängt diese Nachricht ab und gibt den entsprechenden Wert zurück, ohne die Nachricht an den Gerätetreiber zu senden. Allgemeine Informationen zu vom System abgefangenen xxxMessage-Funktionen finden Sie unter System-Intercepted Device Messages.
Diese Nachricht bietet eine Möglichkeit, zu bestimmen, welches Gerät für Audiofunktionen im Allgemeinen bevorzugt wird, im Gegensatz zur DRVM_MAPPER_CONSOLEVOICECOM_GET Nachricht, die bestimmt, welches Gerät speziell für die Sprachkommunikation bevorzugt wird.
Wenn das DRVM_MAPPER_PREFERRED_FLAGS_PREFERREDONLY Flagbit an der DWORD-Position festgelegt wird, auf die dwParam2 verweist, verwenden die waveIn - und waveOut-APIs nur das aktuell bevorzugte Gerät und suchen nicht nach anderen verfügbaren Geräten, wenn das bevorzugte Gerät nicht verfügbar ist. Beachten Sie, dass die midiOutMessage-Funktion dieses Flag nicht ausgibt. Die midiOut-API verwendet immer nur das bevorzugte Gerät. Das Flag, das entweder vom waveInMessage - oder waveOutMessage-Aufruf ausgegeben wird, gilt für das bevorzugte Gerät sowohl für die waveIn - als auch für die waveOut-APIs , unabhängig davon, ob der Aufruf an waveInMessage oder waveOutMessage erfolgt.
Die xxx-Nachrichtenfunktionenakzeptieren diesen Wert anstelle eines gültigen Gerätehandles, damit eine Anwendung die Standardgeräte-ID ermitteln kann, ohne zuvor ein Gerät öffnen zu müssen. Weitere Informationen finden Sie unter Zugreifen auf die bevorzugte Geräte-ID.
Anforderungen
Unterstützte Mindestversion (Client) | Windows 2000 Professional [nur Desktop-Apps] |
Unterstützte Mindestversion (Server) | Windows 2000 Server [nur Desktop-Apps] |
Zielplattform | Windows |
Kopfzeile | mmeapi.h (einschließlich Windows.h) |
Bibliothek | Winmm.lib |
DLL | Winmm.dll |