Función mixerMessage (mmeapi.h)
La función mixerMessage envía un mensaje de controlador mezclador personalizado directamente a un controlador mezclador.
Sintaxis
DWORD mixerMessage(
HMIXER hmx,
UINT uMsg,
DWORD_PTR dwParam1,
DWORD_PTR dwParam2
);
Parámetros
hmx
Identificador del mezclador que recibe el mensaje. Debe convertir el identificador de dispositivo al tipo de identificador HMIXER . Si proporciona un identificador en lugar de un identificador de dispositivo, se produce un error en la función y devuelve el código de error MMSYSERR_NOSUPPORT.
uMsg
Mensaje del controlador mezclador personalizado que se va a enviar al controlador mezclador. Este mensaje debe ser superior o igual que la constante MXDM_USER.
dwParam1
Parámetro asociado al mensaje que se envía.
dwParam2
Parámetro asociado al mensaje que se envía.
Valor devuelto
Devuelve un valor específico del mensaje del controlador mezclador personalizado. Entre los posibles valores de error se incluyen los siguientes.
Código devuelto | Descripción |
---|---|
|
El identificador de dispositivo especificado no es válido. |
|
El parámetro uMsg especificado en el mensaje MXDM_USER no es válido. |
|
El parámetro deviceID debe ser un identificador de dispositivo válido. |
|
El dispositivo mezclador no procesó el mensaje. |
Comentarios
Los mensajes definidos por el usuario solo se deben enviar a un controlador mezclador que admita los mensajes. La aplicación debe comprobar que el controlador mezclador es el controlador que admite el mensaje recuperando las funcionalidades del mezclador y comprobando los miembros wMid, wPid, vDriverVersion y szPname de la estructura MIXERCAPS .
El DRV_QUERYDEVICEINTERFACE
mensaje consulta el nombre de la interfaz del dispositivo de un dispositivo waveIn, waveOut, midiIn, midiOut o mezclador .
Para DRV_QUERYDEVICEINTERFACE
, dwParam1 es un puntero a un búfer asignado por el autor de la llamada en el que la función escribe una cadena Unicode terminada en null que contiene el nombre de la interfaz del dispositivo. Si el dispositivo no tiene ninguna interfaz de dispositivo, la longitud de la cadena es cero.
Para DRV_QUERYDEVICEINTERFACE
, dwParam2 especifica el tamaño del búfer en bytes. Se trata de un parámetro de entrada para la función . El autor de la llamada debe especificar un tamaño mayor o igual que el tamaño del búfer recuperado por el mensaje DRV_QUERYDEVICEINTERFACESIZE .
El mensaje de DRV_QUERYDEVICEINTERFACE se admite en Windows Me y Windows 2000 y versiones posteriores. Este mensaje solo es válido para las funciones waveInMessage, waveOutMessage, midiInMessage, midiOutMessage y mixerMessage . El sistema intercepta este mensaje y devuelve el valor adecuado sin enviar el mensaje al controlador del dispositivo. Para obtener información general sobre las funciones xxxMessage interceptadas por el sistema, consulte Mensajes de dispositivo interceptados por el sistema.
Las dos constantes de mensaje siguientes se usan juntas para obtener nombres de interfaz de dispositivo:
- DRV_QUERYDEVICEINTERFACESIZE
- DRV_QUERYDEVICEINTERFACE
Para obtener más información, consulte Obtención de un nombre de interfaz de dispositivo.
El DRV_QUERYDEVICEINTERFACESIZE
mensaje consulta el tamaño del búfer necesario para contener el nombre de la interfaz del dispositivo.
Para DRV_QUERYDEVICEINTERFACESIZE
, dwParam1 es un puntero al tamaño del búfer. Este parámetro apunta a una variable ULONG en la que la función escribe el tamaño de búfer necesario en bytes. El tamaño incluye espacio de almacenamiento para el valor NULL de terminación de la cadena de nombre. El tamaño es cero si el identificador de dispositivo identifica un dispositivo que no tiene ninguna interfaz de dispositivo.
Para DRV_QUERYDEVICEINTERFACESIZE
, dwParam2 no se usa. Establezca este parámetro en cero.
Este mensaje solo es válido para las funciones waveInMessage, waveOutMessage, midiInMessage, midiOutMessage y mixerMessage . El sistema intercepta este mensaje y devuelve el valor adecuado sin enviar el mensaje al controlador del dispositivo. Para obtener información general sobre las funciones xxxMessage interceptadas por el sistema, consulte Mensajes de dispositivo interceptados por el sistema.
El tamaño del búfer recuperado por este mensaje se expresa como un recuento de bytes. Especifica el tamaño del búfer necesario para contener la cadena Unicode terminada en null que contiene el nombre de la interfaz del dispositivo. El autor de la llamada asigna un búfer del tamaño especificado y usa el mensaje DRV_QUERYDEVICEINTERFACE para recuperar la cadena de nombre de la interfaz de dispositivo.
Para obtener más información, consulte Obtención de un nombre de interfaz de dispositivo.
El DRV_QUERYDEVNODE
mensaje consulta el número de nodo de desarrollo asignado al dispositivo por el administrador de Plug and Play.
Para DRV_QUERYDEVNODE
, dwParam1 es un puntero a una variable DWORD asignada por el autor de la llamada en la que la función escribe el número de nodo dev. Si no se asigna ningún devnode al dispositivo, la función establece esta variable en cero.
Para DRV_QUERYDEVNODE
, dwParam2 no se usa. Establezca este parámetro en cero.
En Windows 2000 y versiones posteriores, el mensaje siempre devuelve MMSYSERR_NOTSUPPORTED. Este mensaje solo es válido para las funciones waveInMessage, waveOutMessage, midiInMessage, midiOutMessage y mixerMessage . El sistema intercepta este mensaje y devuelve el valor adecuado sin enviar el mensaje al controlador del dispositivo. Para obtener información general sobre las funciones xxxMessage interceptadas por el sistema, consulte Mensajes de dispositivo interceptados por el sistema.
El DRV_QUERYMAPPABLE
mensaje consulta si un asignador puede usar el dispositivo especificado.
Para DRV_QUERYMAPPABLE
, dwParam1 no se usa. Establezca este parámetro en cero.
Para DRV_QUERYMAPPABLE
, dwParam2 no se usa. Establezca este parámetro en cero.
Este mensaje solo es válido para las funciones waveInMessage, waveOutMessage, midiInMessage, midiOutMessage, mixerMessage y auxOutMessage . El sistema intercepta este mensaje y devuelve el valor adecuado sin enviar el mensaje al controlador del dispositivo. Para obtener información general sobre las funciones xxxMessage interceptadas por el sistema, consulte Mensajes de dispositivo interceptados por el sistema.
Cuando un programa de aplicación abre un asignador en lugar de un dispositivo de audio específico, el sistema inserta un asignador entre la aplicación y los dispositivos disponibles. El asignador selecciona un dispositivo adecuado asignando los requisitos de la aplicación a uno de los dispositivos disponibles. Para obtener más información sobre los asignadores, consulte la documentación de Microsoft Windows SDK.
El DRVM_MAPPER_CONSOLEVOICECOM_GET
mensaje recupera el identificador de dispositivo del dispositivo de comunicaciones de voz preferido.
Para DRVM_MAPPER_CONSOLEVOICECOM_GET
, dwParam1 es un puntero al identificador de dispositivo. Este parámetro apunta a una variable DWORD en la que la función escribe el identificador de dispositivo del dispositivo de comunicación de voz preferido actual. La función escribe el valor (-1) si no hay ningún dispositivo disponible que se califica como un dispositivo preferido de comunicaciones de voz.
Para DRVM_MAPPER_CONSOLEVOICECOM_GET
, dwParam2 es un puntero a las marcas de estado. Este parámetro apunta a una variable DWORD en la que la función escribe las marcas de estado del dispositivo. Actualmente solo se define un bit de marca: DRVM_MAPPER_PREFERRED_FLAGS_PREFERREDONLY.
Este mensaje solo es válido para las funciones waveInMessage y waveOutMessage . Cuando un llamador llama a estas dos funciones con el mensaje DRVM_MAPPER_CONSOLEVOICECOM_GET, el autor de la llamada debe especificar el identificador de dispositivo como WAVE_MAPPER y, a continuación, convertir este valor en el tipo de identificador adecuado. Para las funciones waveInMessage, waveOutMessage, midiInMessage, midiOutMessage o mixerMessage , el autor de la llamada debe convertir el identificador del dispositivo en un identificador de tipo HWAVEIN, HWAVEOUT, HMIDIIN, HMIDIOUT o HMIXER, respectivamente. Tenga en cuenta que si el autor de la llamada proporciona un identificador válido en lugar de un identificador de dispositivo para este parámetro, la función produce un error y devuelve el código de error MMSYSERR_NOSUPPORT.
El sistema intercepta este mensaje y devuelve el valor adecuado sin enviar el mensaje al controlador del dispositivo. Para obtener información general sobre las funciones xxxMessage interceptadas por el sistema, consulte Mensajes de dispositivo interceptados por el sistema.
Este mensaje proporciona una manera de determinar qué dispositivo se prefiere específicamente para las comunicaciones de voz, a diferencia del mensaje de DRVM_MAPPER_PREFERRED_GET , que determina qué dispositivo se prefiere para todas las demás funciones de audio.
Por ejemplo, el dispositivo waveOut preferido para las comunicaciones de voz podría ser el auricular en un auricular, pero el dispositivo waveOut preferido para todas las demás funciones de audio podría ser un conjunto de altavoces estéreo.
Cuando el bit de marca de DRVM_MAPPER_PREFERRED_FLAGS_PREFERREDONLY se establece en la ubicación DWORD a la que apunta dwParam2, las API waveIn y waveOut solo usan el dispositivo de comunicaciones de voz preferido actual y no buscan otros dispositivos disponibles si el dispositivo preferido no está disponible. La marca que genera la llamada waveInMessage o waveOutMessage se aplica al dispositivo preferido de comunicaciones de voz para las API waveIn y waveOut , independientemente de si la llamada se realiza a waveInMessage o waveOutMessage. Para más información, consulte Id. de dispositivo de Voice-Communications preferido.
El DRVM_MAPPER_PREFERRED_GET
mensaje recupera el identificador de dispositivo del dispositivo de audio preferido.
Para DRVM_MAPPER_PREFERRED_GET
, dwParam1 es un puntero al identificador de dispositivo. Este parámetro apunta a una variable DWORD en la que la función escribe el identificador de dispositivo del dispositivo preferido actual. La función escribe el valor (-1) si no hay ningún dispositivo disponible que califique como un dispositivo preferido.
Para DRVM_MAPPER_PREFERRED_GET
, dwParam2 es un puntero a las marcas de estado. Este parámetro apunta a una variable DWORD en la que la función escribe las marcas de estado del dispositivo. Actualmente solo se define un bit de marca (solo para waveInMessage y waveOutMessage ): DRVM_MAPPER_PREFERRED_FLAGS_PREFERREDONLY.
Este mensaje solo es válido para las funciones waveInMessage, waveOutMessage y midiOutMessage . Cuando el autor de la llamada llama a estas funciones con el mensaje de DRVM_MAPPER_PREFERRED_GET, el autor de la llamada debe especificar primero el identificador de dispositivo como WAVE_MAPPER (para waveInMessage o waveOutMessage) o MIDI_MAPPER (para midiOutMessage) y, a continuación, convertir este valor en el tipo de identificador adecuado. Para las funciones waveInMessage, waveOutMessage o midiOutMessage , el autor de la llamada debe convertir el identificador de dispositivo en un tipo de controlador HWAVEIN, HWAVEOUT o HMIDIOUT, respectivamente. Tenga en cuenta que si el autor de la llamada proporciona un identificador válido en lugar de un identificador de dispositivo para este parámetro, la función produce un error y devuelve el código de error MMSYSERR_NOSUPPORT.
El sistema intercepta este mensaje y devuelve el valor adecuado sin enviar el mensaje al controlador del dispositivo. Para obtener información general sobre las funciones xxxMessage interceptadas por el sistema, consulte Mensajes de dispositivo interceptados por el sistema.
Este mensaje proporciona una manera de determinar qué dispositivo se prefiere para las funciones de audio en general, a diferencia del mensaje de DRVM_MAPPER_CONSOLEVOICECOM_GET , que determina qué dispositivo se prefiere específicamente para las comunicaciones de voz.
Cuando el bit de marca de DRVM_MAPPER_PREFERRED_FLAGS_PREFERREDONLY se establece en la ubicación DWORD a la que apunta dwParam2, las API waveIn y waveOut usan solo el dispositivo preferido actual y no buscan otros dispositivos disponibles si el dispositivo preferido no está disponible. Tenga en cuenta que la función midiOutMessage no genera esta marca: la API midiOut siempre usa solo el dispositivo preferido. La marca que genera la llamada waveInMessage o waveOutMessage se aplica al dispositivo preferido para las API waveIn y waveOut , independientemente de si se realiza la llamada a waveInMessage o waveOutMessage.
Las funciones xxxMessage aceptan este valor en lugar de un identificador de dispositivo válido para permitir que una aplicación determine el identificador de dispositivo predeterminado sin tener que abrir primero un dispositivo. Para obtener más información, consulte Acceso al identificador de dispositivo preferido.
Requisitos
Cliente mínimo compatible | Windows 2000 Professional [solo aplicaciones de escritorio] |
Servidor mínimo compatible | Windows 2000 Server [solo aplicaciones de escritorio] |
Plataforma de destino | Windows |
Encabezado | mmeapi.h (incluya Windows.h) |
Library | Winmm.lib |
Archivo DLL | Winmm.dll |