Acerca de MMDevice API

La API Windows Multimedia Device (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.

MMDevice API consta de varias interfaces. El primero de ellos es la interfaz IMMDeviceEnumerator. Para acceder a las interfaces de MMDevice API, 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 fragmento de código siguiente:

  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 e IID IMMDeviceEnumerator son los valores GUID que se adjuntan como atributos al objeto de clase MMDeviceEnumerator y a la interfaz _ _ IMMDeviceEnumerator. La llamada a CoCreateInstance pasa estos valores por referencia. La hr variable es de tipo HRESULT y la variable es un puntero a la interfaz pEnumerator IMMDeviceEnumerator de un objeto de enumerador de dispositivos. IMMDeviceEnumerator proporciona métodos para enumerar los dispositivos de punto de conexión de audio. Para obtener información sobre el operador _ _ uuidof, la función CoCreateInstance y las constantes XXX de CLSCTX, consulte la _ documentación Windows SDK.

A través de la interfaz IMMDeviceEnumerator, el cliente puede obtener referencias a las otras interfaces de la API MMDevice. MMDevice API implementa las interfaces siguientes.

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 los 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 hay un cambio en el rol predeterminado asignado a un dispositivo.

Dispositivos de punto de conexión de audio

Referencia de programación