Metodo IAudioSessionManager2::RegisterSessionNotification (audiopolicy.h)

Il metodo RegisterSessionNotification registra l'applicazione per ricevere una notifica quando viene creata una sessione.

Sintassi

HRESULT RegisterSessionNotification(
  IAudioSessionNotification *SessionNotification
);

Parametri

SessionNotification

Puntatore all'implementazione dell'applicazione dell'interfaccia IAudioSessionNotification . Se la chiamata al metodo ha esito positivo, chiama il metodo AddRef nell'interfaccia IAudioSessionNotification dell'applicazione.

Valore restituito

Se il metodo ha esito positivo, viene restituito S_OK. Se ha esito negativo, i codici restituiti possibili includono, ma non sono limitati a, i valori visualizzati nella tabella seguente.

Valore restituito Descrizione
E_POINTER
SessionNotification è NULL.
E_OUTOFMEMORY
Impossibile creare un oggetto interno a causa di memoria insufficiente.

Commenti

L'applicazione può registrarsi per ricevere una notifica quando viene creata una sessione tramite i metodi dell'interfaccia IAudioSessionNotification . L'applicazione implementa l'interfaccia IAudioSessionNotification . I metodi definiti in questa interfaccia ricevono callback dal sistema quando viene creata una sessione. Ad esempio, codice che illustra come implementare questa interfaccia, vedere

Interfaccia IAudioSessionNotification.

Per iniziare a ricevere notifiche, l'applicazione chiama il metodo IAudioSessionManager2::RegisterSessionNotification per registrare l'interfaccia IAudioSessionNotification . Quando l'applicazione non richiede più notifiche, chiama il metodo IAudioSessionManager2::UnregisterSessionNotification per eliminare la registrazione.

Importante

Per iniziare a ricevere notifiche, è necessario chiamare IAudioSessionEnumerator::GetCount . L'API di enumerazione sessione elimina le nuove notifiche di sessione fino a quando l'applicazione non ha prima recuperato l'elenco delle sessioni esistenti. Si tratta di impedire l'avvio di una condizione di gara che può verificarsi quando arriva una notifica di sessione mentre l'applicazione usa le API di sessione. La chiamata a GetCount attiva l'API di enumerazione per iniziare a inviare notifiche di sessione.

Nota Assicurarsi che l'applicazione inizializzi COM con il modello MTA (Multithreaded Apartment) chiamando CoInitializeEx(NULL, COINIT_MULTITHREADED) in un thread non interfaccia utente. Se MTA non viene inizializzato, l'applicazione non riceve notifiche di sessione dalla gestione sessione. I thread che eseguono l'interfaccia utente di un'applicazione devono essere inizializzati modello di threading di appartamento.
 

Requisiti

Requisito Valore
Client minimo supportato Windows 7 [solo app desktop]
Server minimo supportato Windows Server 2008 R2 [solo app desktop]
Piattaforma di destinazione Windows
Intestazione audiopolicy.h

Vedi anche

IAudioSessionManager2