Share via


Interface IMMNotificationClient (mmdeviceapi.h)

L’interface IMMNotificationClient fournit des notifications lorsqu’un appareil de point de terminaison audio est ajouté ou supprimé, lorsque l’état ou les propriétés d’un appareil de point de terminaison changent, ou lorsqu’une modification est apportée au rôle par défaut attribué à un appareil de point de terminaison. Contrairement aux autres interfaces de cette section, qui sont implémentées par le composant système de l’API MMDevice, un client d’API MMDevice implémente l’interface IMMNotificationClient . Pour recevoir des notifications, le client passe un pointeur vers son interface IMMNotificationClient instance en tant que paramètre vers la méthode IMMDeviceEnumerator::RegisterEndpointNotificationCallback.

Après avoir inscrit son interface IMMNotificationClient , le client reçoit des notifications d’événements sous forme de rappels via les méthodes de l’interface.

Chaque méthode de l’interface IMMNotificationClient reçoit, comme l’un de ses paramètres d’entrée, une chaîne d’ID de point de terminaison qui identifie le périphérique de point de terminaison audio faisant l’objet de la notification. La chaîne identifie de manière unique l’appareil par rapport à tous les autres appareils de point de terminaison audio du système. Les méthodes de l’implémentation de l’interface IMMNotificationClient doivent traiter cette chaîne comme opaque. Autrement dit, aucune des méthodes ne doit tenter d’analyser le contenu de la chaîne pour obtenir des informations sur l’appareil. La raison en est que le format de chaîne n’est pas défini et peut changer d’une implémentation du module système d’API MMDevice à la suivante.

Un client peut utiliser la chaîne d’ID de point de terminaison qu’il reçoit comme paramètre d’entrée dans un appel à une méthode IMMNotificationClient de deux manières :

  • Le client peut créer une instance de l’appareil que la chaîne d’ID de point de terminaison identifie. Pour ce faire, le client appelle la méthode IMMDeviceEnumerator::GetDevice et fournit la chaîne d’ID de point de terminaison en tant que paramètre d’entrée.
  • Le client peut comparer la chaîne d’ID de point de terminaison à la chaîne d’ID de point de terminaison d’un appareil existant instance. Pour obtenir la deuxième chaîne d’ID de point de terminaison, le client appelle la méthode IMMDevice::GetId de l’appareil instance. Si les deux chaînes correspondent, elles identifient le même appareil.
Lors de l’implémentation de l’interface IMMNotificationClient , le client doit observer ces règles pour éviter les interblocages et les comportements non définis : Pour obtenir un exemple de code qui implémente l’interface IMMNotificationClient , consultez Événements d’appareil.

Héritage

L’interface IMMNotificationClient hérite de l’interface IUnknown . IMMNotificationClient a également les types de membres suivants :

Méthodes

L’interface IMMNotificationClient a ces méthodes.

 
IMMNotificationClient::OnDefaultDeviceChanged

La méthode OnDefaultDeviceChanged avertit le client que le périphérique de point de terminaison audio par défaut pour un rôle d’appareil particulier a changé.
IMMNotificationClient::OnDeviceAdded

La méthode OnDeviceAdded indique qu’un nouveau périphérique de point de terminaison audio a été ajouté.
IMMNotificationClient::OnDeviceRemoved

La méthode OnDeviceRemoved indique qu’un périphérique de point de terminaison audio a été supprimé.
IMMNotificationClient::OnDeviceStateChanged

La méthode OnDeviceStateChanged indique que l’état d’un appareil de point de terminaison audio a changé.
IMMNotificationClient::OnPropertyValueChanged

La méthode OnPropertyValueChanged indique que la valeur d’une propriété appartenant à un appareil de point de terminaison audio a changé.

Spécifications

   
Client minimal pris en charge Windows Vista [applications de bureau uniquement]
Serveur minimal pris en charge Windows Server 2008 [applications de bureau uniquement]
Plateforme cible Windows
En-tête mmdeviceapi.h

Voir aussi

Interfaces audio principales

IMMDevice::GetId

IMMDeviceEnumerator::GetDevice

IMMDeviceEnumerator::RegisterEndpointNotificationCallback

IMMDeviceEnumerator::UnregisterEndpointNotificationCallback

MMDevice API