Partager via


Méthode IAudioSessionManager2 ::RegisterSessionNotification (audiopolicy.h)

La méthode RegisterSessionNotification inscrit l’application pour recevoir une notification lors de la création d’une session.

Syntaxe

HRESULT RegisterSessionNotification(
  IAudioSessionNotification *SessionNotification
);

Paramètres

SessionNotification

Pointeur vers l’implémentation de l’application de l’interface IAudioSessionNotification . Si l’appel de méthode réussit, il appelle la méthode AddRef sur l’interface IAudioSessionNotification de l’application.

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.

Valeur retournée Description
E_POINTER
SessionNotification a la valeur NULL.
E_OUTOFMEMORY
Impossible de créer l’objet interne en raison d’une mémoire insuffisante.

Remarques

L’application peut s’inscrire pour recevoir une notification lors de la création d’une session, via les méthodes de l’interface IAudioSessionNotification . L’application implémente l’interface IAudioSessionNotification . Les méthodes définies dans cette interface reçoivent des rappels du système lors de la création d’une session. Pour obtenir un exemple de code montrant comment implémenter cette interface, consultez

IAudioSessionNotification, interface.

Pour commencer à recevoir des notifications, l’application appelle la méthode IAudioSessionManager2 ::RegisterSessionNotification pour inscrire son interface IAudioSessionNotification . Lorsque l’application n’a plus besoin de notifications, elle appelle la méthode IAudioSessionManager2 ::UnregisterSessionNotification pour supprimer l’inscription.

Important

Vous devez appeler IAudioSessionEnumerator ::GetCount pour commencer à recevoir des notifications. L’API d’énumération de session ignore les nouvelles notifications de session jusqu’à ce que l’application ait d’abord récupéré la liste des sessions existantes. Cela permet d’éviter une condition de concurrence qui peut se produire lorsqu’une notification de session arrive pendant le démarrage de l’application utilisant les API de session. L’appel de GetCount déclenche l’API d’énumération pour commencer à envoyer des notifications de session.

Note Assurez-vous que l’application initialise COM avec le modèle MTA (Multithreaded Apartment) en appelant CoInitializeEx(NULL, COINIT_MULTITHREADED) dans un thread autre que l’interface utilisateur. Si MTA n’est pas initialisé, l’application ne reçoit pas de notifications de session de la part du gestionnaire de session. Les threads qui exécutent l’interface utilisateur d’une application doivent être initialisés comme modèle de thread d’appartement.
 

Configuration requise

Condition requise Valeur
Client minimal pris en charge Windows 7 [applications de bureau uniquement]
Serveur minimal pris en charge Windows Server 2008 R2 [applications de bureau uniquement]
Plateforme cible Windows
En-tête audiopolicy.h

Voir aussi

IAudioSessionManager2