fonction mixerMessage (mmeapi.h)
La fonction mixerMessage envoie un message de pilote de mélangeur personnalisé directement à un pilote de mélangeur.
Syntaxe
DWORD mixerMessage(
HMIXER hmx,
UINT uMsg,
DWORD_PTR dwParam1,
DWORD_PTR dwParam2
);
Paramètres
hmx
Identificateur du mélangeur qui reçoit le message. Vous devez convertir l’ID de l’appareil en type de handle HMIXER . Si vous fournissez un handle au lieu d’un ID d’appareil, la fonction échoue et retourne le code d’erreur MMSYSERR_NOSUPPORT.
uMsg
Message de pilote de mélangeur personnalisé à envoyer au pilote de mélangeur. Ce message doit être supérieur ou égal à la constante MXDM_USER.
dwParam1
Paramètre associé au message envoyé.
dwParam2
Paramètre associé au message envoyé.
Valeur retournée
Retourne une valeur spécifique au message du pilote de mélangeur personnalisé. Les valeurs d’erreur possibles sont les suivantes.
Code de retour | Description |
---|---|
|
Le handle d’appareil spécifié n’est pas valide. |
|
Le paramètre uMsg spécifié dans le message MXDM_USER n’est pas valide. |
|
Le paramètre deviceID doit être un ID d’appareil valide. |
|
L’appareil de mixage n’a pas traité le message. |
Notes
Les messages définis par l’utilisateur doivent être envoyés uniquement à un pilote de mélangeur qui prend en charge les messages. L’application doit vérifier que le pilote de mélangeur est le pilote qui prend en charge le message en récupérant les fonctionnalités du mélangeur et en vérifiant les membres wMid, wPid, vDriverVersion et szPname de la structure MIXERCAPS .
Requêtes DRV_QUERYDEVICEINTERFACE
de message pour le nom de l’interface d’appareil d’un appareil waveIn, waveOut, midiIn, midiOut ou mixer .
Pour DRV_QUERYDEVICEINTERFACE
, dwParam1 est un pointeur vers une mémoire tampon allouée à l’appelant dans laquelle la fonction écrit une chaîne Unicode terminée par null contenant le nom de l’interface de l’appareil. Si l’appareil n’a pas d’interface d’appareil, la longueur de chaîne est égale à zéro.
Pour DRV_QUERYDEVICEINTERFACE
, dwParam2 spécifie la taille de mémoire tampon en octets. Il s’agit d’un paramètre d’entrée de la fonction. L’appelant doit spécifier une taille supérieure ou égale à la taille de mémoire tampon récupérée par le message DRV_QUERYDEVICEINTERFACESIZE .
Le message DRV_QUERYDEVICEINTERFACE est pris en charge dans Windows Me et Windows 2000 et versions ultérieures. Ce message est valide uniquement pour les fonctions waveInMessage, waveOutMessage, midiInMessage, midiOutMessage et mixerMessage . Le système intercepte ce message et retourne la valeur appropriée sans envoyer le message au pilote de périphérique. Pour obtenir des informations générales sur les fonctions xxxMessage interceptées par le système, consultez Messages d’appareil interceptés par le système.
Les deux constantes de message suivantes sont utilisées ensemble dans le but d’obtenir des noms d’interface d’appareil :
- DRV_QUERYDEVICEINTERFACESIZE
- DRV_QUERYDEVICEINTERFACE
Pour plus d’informations, consultez Obtention d’un nom d’interface d’appareil.
Le DRV_QUERYDEVICEINTERFACESIZE
message demande la taille de la mémoire tampon requise pour contenir le nom de l’interface de l’appareil.
Pour DRV_QUERYDEVICEINTERFACESIZE
, dwParam1 est un pointeur vers la taille de la mémoire tampon. Ce paramètre pointe vers une variable ULONG dans laquelle la fonction écrit la taille de mémoire tampon requise en octets. La taille inclut l’espace de stockage pour la valeur null de fin de la chaîne de nom. La taille est égale à zéro si l’ID d’appareil identifie un appareil qui n’a pas d’interface d’appareil.
Pour DRV_QUERYDEVICEINTERFACESIZE
, dwParam2 n’est pas utilisé. Définissez ce paramètre sur zéro.
Ce message est valide uniquement pour les fonctions waveInMessage, waveOutMessage, midiInMessage, midiOutMessage et mixerMessage . Le système intercepte ce message et retourne la valeur appropriée sans envoyer le message au pilote de périphérique. Pour obtenir des informations générales sur les fonctions xxxMessage interceptées par le système, consultez Messages d’appareil interceptés par le système.
La taille de mémoire tampon récupérée par ce message est exprimée sous la forme d’un nombre d’octets. Il spécifie la taille de la mémoire tampon nécessaire pour contenir la chaîne Unicode terminée par null qui contient le nom de l’interface de l’appareil. L’appelant alloue une mémoire tampon de la taille spécifiée et utilise le message DRV_QUERYDEVICEINTERFACE pour récupérer la chaîne du nom de l’interface de l’appareil.
Pour plus d’informations, consultez Obtention d’un nom d’interface d’appareil.
Requêtes DRV_QUERYDEVNODE
de message pour le numéro de devnode attribué à l’appareil par le gestionnaire Plug-and-Play.
Pour DRV_QUERYDEVNODE
, dwParam1 est un pointeur vers une variable DWORD allouée par l’appelant dans laquelle la fonction écrit le numéro de devnode. Si aucun devnode n’est affecté à l’appareil, la fonction définit cette variable sur zéro.
Pour DRV_QUERYDEVNODE
, dwParam2 n’est pas utilisé. Définissez ce paramètre sur zéro.
Dans Windows 2000 et versions ultérieures, le message retourne toujours MMSYSERR_NOTSUPPORTED. Ce message est valide uniquement pour les fonctions waveInMessage, waveOutMessage, midiInMessage, midiOutMessage et mixerMessage . Le système intercepte ce message et retourne la valeur appropriée sans envoyer le message au pilote de périphérique. Pour obtenir des informations générales sur les fonctions xxxMessage interceptées par le système, consultez Messages d’appareil interceptés par le système.
Le DRV_QUERYMAPPABLE
message demande si l’appareil spécifié peut être utilisé par un mappeur.
Pour DRV_QUERYMAPPABLE
, dwParam1 n’est pas utilisé. Définissez ce paramètre sur zéro.
Pour DRV_QUERYMAPPABLE
, dwParam2 n’est pas utilisé. Définissez ce paramètre sur zéro.
Ce message est valide uniquement pour les fonctions waveInMessage, waveOutMessage, midiInMessage, midiOutMessage, mixerMessage et auxOutMessage . Le système intercepte ce message et retourne la valeur appropriée sans envoyer le message au pilote de périphérique. Pour obtenir des informations générales sur les fonctions xxxMessage interceptées par le système, consultez Messages d’appareil interceptés par le système.
Lorsqu’un programme d’application ouvre un mappeur au lieu d’un périphérique audio spécifique, le système insère un mappeur entre l’application et les appareils disponibles. Le mappeur sélectionne un appareil approprié en mappant les exigences de l’application à l’un des appareils disponibles. Pour plus d’informations sur les mappeurs, consultez la documentation Microsoft Windows SDK.
Le DRVM_MAPPER_CONSOLEVOICECOM_GET
message récupère l’ID d’appareil de l’appareil de communication vocale préféré.
Pour DRVM_MAPPER_CONSOLEVOICECOM_GET
, dwParam1 est un pointeur vers l’ID d’appareil. Ce paramètre pointe vers une variable DWORD dans laquelle la fonction écrit l’ID de l’appareil de communication vocale par défaut actuel. La fonction écrit la valeur (-1) si aucun appareil disponible n’est qualifié d’appareil de communication vocale préféré.
Pour DRVM_MAPPER_CONSOLEVOICECOM_GET
, dwParam2 est un pointeur vers status indicateurs. Ce paramètre pointe vers une variable DWORD dans laquelle la fonction écrit les indicateurs status appareil. Un seul bit d’indicateur est actuellement défini : DRVM_MAPPER_PREFERRED_FLAGS_PREFERREDONLY.
Ce message est valide uniquement pour les fonctions waveInMessage et waveOutMessage . Lorsqu’un appelant appelle ces deux fonctions avec le message DRVM_MAPPER_CONSOLEVOICECOM_GET, l’appelant doit spécifier l’ID de l’appareil comme WAVE_MAPPER, puis caster cette valeur en type de handle approprié. Pour les fonctions waveInMessage, waveOutMessage, midiInMessage, midiOutMessage ou mixerMessage , l’appelant doit convertir l’ID de l’appareil en un handle de type HWAVEIN, HWAVEOUT, HMIDIIN, HMIDIOUT ou HMIXER, respectivement. Notez que si l’appelant fournit un handle valide au lieu d’un ID d’appareil pour ce paramètre, la fonction échoue et retourne le code d’erreur MMSYSERR_NOSUPPORT.
Le système intercepte ce message et retourne la valeur appropriée sans envoyer le message au pilote de périphérique. Pour obtenir des informations générales sur les fonctions xxxMessage interceptées par le système, consultez Messages d’appareil interceptés par le système.
Ce message permet de déterminer quel appareil est préféré spécifiquement pour les communications vocales, contrairement au message DRVM_MAPPER_PREFERRED_GET , qui détermine quel appareil est préféré pour toutes les autres fonctions audio.
Par exemple, l’appareil waveOut préféré pour les communications vocales peut être l’écouteur d’un casque, mais l’appareil waveOut préféré pour toutes les autres fonctions audio peut être un ensemble d’haut-parleurs stéréo.
Lorsque le bit d’indicateur DRVM_MAPPER_PREFERRED_FLAGS_PREFERREDONLY est défini dans l’emplacement DWORD pointé par dwParam2, les API waveIn et waveOut utilisent uniquement l’appareil de communication vocale préféré actuel et ne recherchent pas d’autres appareils disponibles si l’appareil préféré n’est pas disponible. L’indicateur généré par l’appel waveInMessage ou waveOutMessage s’applique à l’appareil de communication vocale préféré pour les API waveIn et waveOut , que l’appel soit effectué à waveInMessage ou waveOutMessage. Pour plus d’informations, consultez Id d’appareil préféré Voice-Communications.
Le DRVM_MAPPER_PREFERRED_GET
message récupère l’ID d’appareil de l’appareil audio préféré.
Pour DRVM_MAPPER_PREFERRED_GET
, dwParam1 est un pointeur vers l’ID d’appareil. Ce paramètre pointe vers une variable DWORD dans laquelle la fonction écrit l’ID d’appareil de l’appareil préféré actuel. La fonction écrit la valeur (-1) si aucun appareil disponible n’est éligible en tant qu’appareil préféré.
Pour DRVM_MAPPER_PREFERRED_GET
, dwParam2 est un pointeur vers status indicateurs. Ce paramètre pointe vers une variable DWORD dans laquelle la fonction écrit les indicateurs status appareil. Un seul bit d’indicateur est actuellement défini (pour les appels waveInMessage et waveOutMessage uniquement) : DRVM_MAPPER_PREFERRED_FLAGS_PREFERREDONLY.
Ce message est valide uniquement pour les fonctions waveInMessage, waveOutMessage et midiOutMessage . Lorsque l’appelant appelle ces fonctions avec le message DRVM_MAPPER_PREFERRED_GET, l’appelant doit d’abord spécifier l’ID d’appareil comme WAVE_MAPPER (pour waveInMessage ou waveOutMessage) ou MIDI_MAPPER (pour midiOutMessage), puis caster cette valeur en type de handle approprié. Pour les fonctions waveInMessage, waveOutMessage ou midiOutMessage , l’appelant doit convertir l’ID de l’appareil en un type de handle de type HWAVEIN, HWAVEOUT ou HMIDIOUT, respectivement. Notez que si l’appelant fournit un handle valide au lieu d’un ID d’appareil pour ce paramètre, la fonction échoue et retourne le code d’erreur MMSYSERR_NOSUPPORT.
Le système intercepte ce message et retourne la valeur appropriée sans envoyer le message au pilote de périphérique. Pour obtenir des informations générales sur les fonctions xxxMessage interceptées par le système, consultez Messages d’appareil interceptés par le système.
Ce message permet de déterminer quel appareil est préféré pour les fonctions audio en général, contrairement au message DRVM_MAPPER_CONSOLEVOICECOM_GET , qui détermine quel appareil est préféré spécifiquement pour les communications vocales.
Lorsque le bit d’indicateur DRVM_MAPPER_PREFERRED_FLAGS_PREFERREDONLY est défini à l’emplacement DWORD pointé par dwParam2, les API waveIn et waveOut utilisent uniquement l’appareil préféré actuel et ne recherchent pas d’autres appareils disponibles si l’appareil préféré n’est pas disponible. Notez que la fonction midiOutMessage ne génère pas cet indicateur : l’API midiOut utilise toujours uniquement l’appareil préféré. L’indicateur généré par l’appel waveInMessage ou waveOutMessage s’applique à l’appareil préféré pour les API waveIn et waveOut , que l’appel soit effectué à waveInMessage ou waveOutMessage.
Les fonctions xxxMessage acceptent cette valeur à la place d’un handle d’appareil valide afin de permettre à une application de déterminer l’ID d’appareil par défaut sans avoir à ouvrir d’abord un appareil. Pour plus d’informations, consultez Accès à l’ID d’appareil préféré.
Configuration requise
Client minimal pris en charge | Windows 2000 Professionnel [applications de bureau uniquement] |
Serveur minimal pris en charge | Windows 2000 Server [applications de bureau uniquement] |
Plateforme cible | Windows |
En-tête | mmeapi.h (inclure Windows.h) |
Bibliothèque | Winmm.lib |
DLL | Winmm.dll |