Interfaz IMMNotificationClient (mmdeviceapi.h)

La interfaz 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 de punto de conexión, o cuando hay un cambio en el rol predeterminado asignado a un dispositivo de punto de conexión. A diferencia de las otras interfaces de esta sección, implementadas por el componente del sistema de API MMDevice, un cliente de API MMDevice implementa la interfaz IMMNotificationClient . Para recibir notificaciones, el cliente pasa un puntero a su instancia de interfaz IMMNotificationClient como parámetro al método IMMDeviceEnumerator::RegisterEndpointNotificationCallback .

Después de registrar su interfaz IMMNotificationClient , el cliente recibe notificaciones de eventos en forma de devoluciones de llamada a través de los métodos de la interfaz .

Cada método de la interfaz IMMNotificationClient recibe, como uno de sus parámetros de entrada, una cadena de identificador de punto de conexión que identifica el dispositivo de punto de conexión de audio que es el sujeto de la notificación. La cadena identifica de forma única el dispositivo con respecto a todos los demás dispositivos de punto de conexión de audio del sistema. Los métodos de la implementación de la interfaz IMMNotificationClient deben tratar esta cadena como opaca. Es decir, ninguno de los métodos debe intentar analizar el contenido de la cadena para obtener información sobre el dispositivo. El motivo es que el formato de cadena no está definido y podría cambiar de una implementación del módulo del sistema de API MMDevice al siguiente.

Un cliente puede usar la cadena de identificador de punto de conexión que recibe como parámetro de entrada en una llamada a un método IMMNotificationClient de dos maneras:

  • El cliente puede crear una instancia del dispositivo que identifica la cadena de identificador de punto de conexión. El cliente lo hace llamando al método IMMDeviceEnumerator::GetDevice y proporcionando la cadena de identificador de punto de conexión como parámetro de entrada.
  • El cliente puede comparar la cadena de identificador de punto de conexión con la cadena de identificador de punto de conexión de una instancia de dispositivo existente. Para obtener la segunda cadena de identificador de punto de conexión, el cliente llama al método IMMDevice::GetId de la instancia del dispositivo. Si las dos cadenas coinciden, identifican el mismo dispositivo.
Al implementar la interfaz IMMNotificationClient , el cliente debe observar estas reglas para evitar interbloqueos y comportamiento indefinido: Para obtener un ejemplo de código que implemente la interfaz IMMNotificationClient , consulte Eventos de dispositivo.

Herencia

La interfaz IMMNotificationClient hereda de la interfaz IUnknown . IMMNotificationClient también tiene estos tipos de miembros:

Métodos

La interfaz IMMNotificationClient tiene estos métodos.

 
IMMNotificationClient::OnDefaultDeviceChanged

El método OnDefaultDeviceChanged notifica al cliente que ha cambiado el dispositivo de punto de conexión de audio predeterminado para un rol de dispositivo determinado.
IMMNotificationClient::OnDeviceAdded

El método OnDeviceAdded indica que se ha agregado un nuevo dispositivo de punto de conexión de audio.
IMMNotificationClient::OnDeviceRemoved

El método OnDeviceRemoved indica que se ha quitado un dispositivo de punto de conexión de audio.
IMMNotificationClient::OnDeviceStateChanged

El método OnDeviceStateChanged indica que el estado de un dispositivo de punto de conexión de audio ha cambiado.
IMMNotificationClient::OnPropertyValueChanged

El método OnPropertyValueChanged indica que el valor de una propiedad que pertenece a un dispositivo de punto de conexión de audio ha cambiado.

Requisitos

   
Cliente mínimo compatible Windows Vista [solo aplicaciones de escritorio]
Servidor mínimo compatible Windows Server 2008 [solo aplicaciones de escritorio]
Plataforma de destino Windows
Encabezado mmdeviceapi.h

Consulte también

Interfaces de audio principales

IMMDevice::GetId

IMMDeviceEnumerator::GetDevice

IMMDeviceEnumerator::RegisterEndpointNotificationCallback

IMMDeviceEnumerator::UnregisterEndpointNotificationCallback

MMDevice API