Share via


Méthode IAudioSessionControl ::UnregisterAudioSessionNotification (audiopolicy.h)

La méthode UnregisterAudioSessionNotification supprime une inscription précédente par le client pour recevoir des notifications.

Syntaxe

HRESULT UnregisterAudioSessionNotification(
  [in] IAudioSessionEvents *NewNotifications
);

Paramètres

[in] NewNotifications

Pointeur vers une interface IAudioSessionEvents implémentée par le client. Le client a passé ce même pointeur d’interface au gestionnaire de sessions lors d’un appel précédent à la méthode IAudioSessionControl ::RegisterAudioSessionNotification . Si la méthode UnregisterAudioSessionNotification réussit, elle appelle la méthode Release sur l’interface IAudioSessionEvents 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 NewNotifications a la valeur NULL.
E_NOTFOUND
L’interface spécifiée n’a pas été inscrite précédemment par le client ou a déjà été supprimée.

Remarques

Le client appelle cette méthode lorsqu’il n’a plus besoin de recevoir de notifications. La méthode UnregisterAudioSessionNotification supprime l’inscription d’une interface IAudioSessionEvents que le client a précédemment inscrite auprès du gestionnaire de sessions en appelant la méthode IAudioSessionControl ::RegisterAudioSessionNotification .

Avant que le client publie sa référence finale à l’interface IAudioSessionEvents , il doit appeler UnregisterAudioSessionNotification pour annuler l’inscription de l’interface. Sinon, l’application fuit les ressources détenues par les objets IAudioSessionEvents et IAudioSessionControl . Notez que RegisterAudioSessionNotification appelle la méthode IAudioSessionEvents ::AddRef du client, et UnregisterAudioSessionNotification appelle la méthode IAudioSessionEvents ::Release . Si le client se trompe en libérant sa référence à l’interface IAudioSessionEvents avant d’appeler UnregisterAudioSessionNotification, le gestionnaire de session ne libère jamais sa référence à l’interface IAudioSessionEvents . Par exemple, une implémentation IAudioSessionEvents mal conçue peut appeler UnregisterAudioSessionNotification à partir du destructeur de l’objet IAudioSessionEvents . Dans ce cas, le client n’appelle pas UnregisterAudioSessionNotification tant que le gestionnaire de session n’a pas publié sa référence à l’interface IAudioSessionEvents , et le gestionnaire de session ne libère pas sa référence à l’interface IAudioSessionEvents tant que le client n’appelle pas UnregisterAudioSessionNotification. 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.

Pour obtenir un exemple de code qui appelle la méthode UnregisterAudioSessionNotification , consultez Événements audio pour les applications audio héritées.

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 audiopolicy.h

Voir aussi

IAudioSessionControl, interface

IAudioSessionControl ::RegisterAudioSessionNotification

IAudioSessionEvents Interface