Acerca de MMDevice API
La API de dispositivos multimedia de Windows (MMDevice) permite a los clientes de audio detectar dispositivos de punto de conexión de audio, determinar sus funcionalidades y crear instancias de controlador para esos dispositivos.
El archivo de encabezado Mmdeviceapi.h define las interfaces de la API MMDevice.
La API MMDevice consta de varias interfaces. La primera de ellas es la interfaz IMMDeviceEnumerator . Para acceder a las interfaces de la API MMDevice, un cliente obtiene una referencia a la interfaz IMMDeviceEnumerator de un objeto de enumerador de dispositivos mediante una llamada a la función CoCreateInstance , como se muestra en el siguiente fragmento de código:
const CLSID CLSID_MMDeviceEnumerator = __uuidof(MMDeviceEnumerator);
const IID IID_IMMDeviceEnumerator = __uuidof(IMMDeviceEnumerator);
hr = CoCreateInstance(
CLSID_MMDeviceEnumerator, NULL,
CLSCTX_ALL, IID_IMMDeviceEnumerator,
(void**)&pEnumerator);
En el fragmento de código anterior, CLSID_MMDeviceEnumerator y IID_IMMDeviceEnumerator son los valores GUID que se adjuntan como atributos al objeto de clase MMDeviceEnumerator y a la interfaz IMMDeviceEnumerator . La llamada CoCreateInstance pasa estos valores por referencia. La variable hr
es de tipo HRESULT y la variable pEnumerator
es un puntero a la interfaz IMMDeviceEnumerator de un objeto enumerador de dispositivos.
IMMDeviceEnumerator proporciona métodos para enumerar dispositivos de punto de conexión de audio. Para obtener información sobre el operador __uuidof , la función CoCreateInstance y las constantes CLSCTX_Xxx , consulte la documentación de Windows SDK.
A través de la interfaz IMMDeviceEnumerator , el cliente puede obtener referencias a las demás interfaces de la API MMDevice. La API MMDevice implementa las siguientes interfaces.
Interfaz | Descripción |
---|---|
IMMDevice | Representa un dispositivo de audio. |
IMMDeviceCollection | Representa una colección de dispositivos de audio. |
IMMDeviceEnumerator | Proporciona métodos para enumerar dispositivos de audio. |
IMMEndpoint | Representa un dispositivo de punto de conexión de audio. |
Además, los clientes de la API MMDevice que requieren la notificación de cambios de estado en los dispositivos de punto de conexión de audio deben implementar la siguiente interfaz.
Interfaz | Descripción |
---|---|
IMMNotificationClient | Proporciona notificaciones cuando se agrega o quita un dispositivo de punto de conexión de audio, cuando cambia el estado o las propiedades de un dispositivo, o cuando se produce un cambio en el rol predeterminado asignado a un dispositivo. |
Temas relacionados