mensajes de dispositivo System-Intercepted
Las siguientes funciones multimedia de Windows proporcionan una manera de que los autores de llamadas pasen mensajes a dispositivos de audio heredados:
Algunos de estos mensajes de dispositivo se controlan directamente mediante el controlador de dispositivo y el sistema los controla en nombre del dispositivo.
En esta sección solo se describen los mensajes interceptados por el sistema y administrados sin pasarse nunca al controlador del dispositivo. Los mensajes interceptados por el sistema pueden obtener el dispositivo preferido para las comunicaciones de voz o el uso general de audio. Además, los mensajes interceptados por el sistema pueden proporcionar la siguiente información sobre un dispositivo determinado:
Nombre de la interfaz del dispositivo
Para obtener información sobre los nombres de interfaz de dispositivo, consulte Introducción a las interfaces de dispositivo.
Número de Plug and Play devnode del dispositivo
Para obtener información sobre los devnodes, consulte Árbol de dispositivos.
Si un asignador puede usar el dispositivo
Un asignador selecciona un dispositivo adecuado asignando los requisitos de una aplicación a uno de los dispositivos disponibles en el sistema. Para obtener más información sobre los asignadores, consulte la documentación de Microsoft Windows SDK.
Para obtener información sobre otros tipos de mensajes de dispositivo, consulte la documentación de Windows SDK.
Una función XxxMessage tiene la siguiente sintaxis:
DWORD XxxMessage(
<device ID>,
UINT uMsg,
DWORD_PTR dwParam1,
DWORD_PTR dwParam2
);
El primer parámetro es un identificador de dispositivo. La definición de la función auxOutMessage especifica que este parámetro sea de tipo UINT, según lo previsto. Sin embargo, en el caso de waveInMessage, waveOutMessage, midiInMessage, midiOutMessage o mixerMessage, el autor de la llamada debe convertir el identificador del dispositivo para controlar el 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 parámetro uMsg especifica un valor de mensaje (por ejemplo, DRV_QUERYDEVICEINTERFACE). Para obtener una lista de mensajes específicos del controlador, consulte el archivo de encabezado Mmddk.h.
El significado de los parámetros dwParam1 y dwParam2 depende del mensaje. Por ejemplo, un mensaje determinado podría requerir que dwParam1 sea un valor ULONG; el autor de la llamada debe convertir este valor en el tipo DWORD_PTR para satisfacer la definición de función.
La función devuelve MMERR_NOERROR si la llamada se realiza correctamente o un código de estado de error si no lo hace.
Para obtener más información sobre las funciones XxxMessage, consulte la documentación de Windows SDK.
El archivo de encabezado Mmddk.h define los siguientes mensajes de dispositivo interceptados por el sistema:
Para obtener más información, vea Obtener un nombre de interfaz de dispositivo.
Para obtener más información, vea Obtener un nombre de interfaz de dispositivo.
Consulta el número de nodo de desarrollo de un dispositivo.
Consulta si un asignador puede usar un dispositivo.
DRVM_MAPPER_CONSOLEVOICECOM_GET
Para obtener más información, consulte Id. de dispositivo Voice-Communications preferido.
Para obtener más información, consulte Acceso al identificador de dispositivo preferido.