Share via


Méthode IAudioEndpointVolume ::RegisterControlChangeNotify (endpointvolume.h)

La méthode RegisterControlChangeNotify inscrit l’interface de rappel de notification d’un client.

Syntaxe

HRESULT RegisterControlChangeNotify(
  [in] IAudioEndpointVolumeCallback *pNotify
);

Paramètres

[in] pNotify

Pointeur vers l’interface IAudioEndpointVolumeCallback que le client inscrit pour les rappels de notification. Si la méthode RegisterControlChangeNotify réussit, elle appelle la méthode AddRef sur l’interface IAudioEndpointVolumeCallback du client.

Valeur retournée

Si la méthode réussit, retourne S_OK. En cas d’échec, les codes de retour possibles incluent, sans s’y limiter, les valeurs indiquées dans le tableau suivant.

Code de retour Description
E_POINTER
Le paramètre pNotify a la valeur NULL.

Remarques

Cette méthode inscrit une interface IAudioEndpointVolumeCallback à appeler par le système lorsque le niveau de volume ou l’état de désactivation d’un point de terminaison change. L’appelant implémente l’interface IAudioEndpointVolumeCallback .

Lorsque les notifications ne sont plus nécessaires, le client peut appeler la méthode IAudioEndpointVolume ::UnregisterControlChangeNotify pour arrêter les notifications.

Avant que le client publie sa référence finale à l’interface IAudioEndpointVolumeCallback , il doit appeler UnregisterControlChangeNotify pour annuler l’inscription de l’interface. Sinon, l’application divulgue les ressources détenues par les objets IAudioEndpointVolumeCallback et IAudioEndpointVolume . Notez que RegisterControlChangeNotify appelle la méthode IAudioEndpointVolumeCallback ::AddRef du client, et UnregisterControlChangeNotify appelle la méthode IAudioEndpointVolumeCallback ::Release . Si le client se trompe en libérant sa référence à l’interface IAudioEndpointVolumeCallback avant d’appeler UnregisterControlChangeNotify, l’objet IAudioEndpointVolume ne libère jamais sa référence à l’interface IAudioEndpointVolumeCallback . Par exemple, une implémentation IAudioEndpointVolumeCallback mal conçue peut appeler UnregisterControlChangeNotify à partir du destructeur de l’objet IAudioEndpointVolumeCallback . Dans ce cas, le client n’appellera pas UnregisterControlChangeNotify tant que l’objet IAudioEndpointVolume ne libère pas sa référence à l’interface IAudioEndpointVolumeCallback , et l’objet IAudioEndpointVolume ne libère pas sa référence à l’interface IAudioEndpointVolumeCallback tant que le client n’appelle pas UnregisterControlChangeNotify. Pour plus d’informations sur les méthodes AddRef et Release , consultez la discussion sur l’interface IUnknown dans la documentation du Kit de développement logiciel (SDK) Windows.

En outre, le client doit appeler UnregisterControlChangeNotify avant de publier la référence finale à l’objet IAudioEndpointVolume . Sinon, l’objet fuit le stockage qu’il a alloué pour contenir les informations d’inscription. Après avoir inscrit une interface de notification, le client continue à recevoir des notifications uniquement tant que l’objet IAudioEndpointVolume existe.

Pour obtenir un exemple de code qui appelle RegisterControlChangeNotify, consultez Endpoint Volume Controls.

Configuration requise

Condition requise Valeur
Client minimal pris en charge Windows Vista [applications de bureau | applications UWP]
Serveur minimal pris en charge Windows Server 2008 [applications de bureau | applications UWP]
Plateforme cible Windows
En-tête endpointvolume.h

Voir aussi

IAudioEndpointVolume, interface

IAudioEndpointVolume ::UnregisterControlChangeNotify

IAudioEndpointVolumeCallback, interface