Share via


IAudioSessionControl::UnregisterAudioSessionNotification-Methode (audiopolicy.h)

Die UnregisterAudioSessionNotification-Methode löscht eine vorherige Registrierung durch den Client, um Benachrichtigungen zu empfangen.

Syntax

HRESULT UnregisterAudioSessionNotification(
  [in] IAudioSessionEvents *NewNotifications
);

Parameter

[in] NewNotifications

Zeiger auf eine vom Client implementierte IAudioSessionEvents-Schnittstelle . Der Client hat denselben Schnittstellenzeiger in einem vorherigen Aufruf der IAudioSessionControl::RegisterAudioSessionNotification-Methode an den Sitzungs-Manager übergeben. Wenn die UnregisterAudioSessionNotification-Methode erfolgreich ist, ruft sie die Release-Methode auf der IAudioSessionEvents-Schnittstelle des Clients auf.

Rückgabewert

Wenn die Methode erfolgreich ist, wird S_OK zurückgegeben. Wenn ein Fehler auftritt, können mögliche Rückgabecodes die in der folgenden Tabelle gezeigten Werte umfassen, sind jedoch nicht darauf beschränkt.

Rückgabecode Beschreibung
E_POINTER
Der Parameter NewNotifications ist NULL.
E_NOTFOUND
Die angegebene Schnittstelle wurde zuvor nicht vom Client registriert oder bereits entfernt.

Hinweise

Der Client ruft diese Methode auf, wenn er keine Benachrichtigungen mehr empfangen muss. Die UnregisterAudioSessionNotification-Methode entfernt die Registrierung einer IAudioSessionEvents-Schnittstelle , die der Client zuvor beim Sitzungs-Manager registriert hat, indem die IAudioSessionControl::RegisterAudioSessionNotification-Methode aufgerufen wird.

Bevor der Client seinen endgültigen Verweis auf die IAudioSessionEvents-Schnittstelle freigibt, sollte er UnregisterAudioSessionNotification aufrufen, um die Registrierung der Schnittstelle aufzuheben. Andernfalls werden die Ressourcen der Objekte IAudioSessionEvents und IAudioSessionControl von der Anwendung verloren. Beachten Sie, dass RegisterAudioSessionNotification die IAudioSessionEvents::AddRef-Methode des Clients aufruft, und UnregisterAudioSessionNotification die IAudioSessionEvents::Release-Methode aufruft. Wenn der Client fehlert, indem er seinen Verweis auf die IAudioSessionEvents-Schnittstelle freigibt, bevor UnregisterAudioSessionNotification aufgerufen wird, gibt der Sitzungs-Manager seinen Verweis auf die IAudioSessionEvents-Schnittstelle nie frei. Eine schlecht gestaltete IAudioSessionEvents-Implementierung kann beispielsweise UnregisterAudioSessionNotification vom Destruktor für das IAudioSessionEvents-Objekt aufrufen. In diesem Fall ruft der Client UnregisterAudioSessionNotification erst auf, wenn der Sitzungs-Manager seinen Verweis auf die IAudioSessionEvents-Schnittstelle freigegeben hat, und der Sitzungs-Manager gibt seinen Verweis auf die IAudioSessionEvents-Schnittstelle erst frei, wenn der Client UnregisterAudioSessionNotification aufruft. Weitere Informationen zu den Methoden AddRef und Release finden Sie in der Windows SDK-Dokumentation zur IUnknown-Schnittstelle .

Ein Codebeispiel, das die UnregisterAudioSessionNotification-Methode aufruft, finden Sie unter Audioereignisse für Legacy-Audioanwendungen.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Windows Vista [Desktop-Apps | UWP-Apps]
Unterstützte Mindestversion (Server) Windows Server 2008 [Desktop-Apps | UWP-Apps]
Zielplattform Windows
Kopfzeile audiopolicy.h

Weitere Informationen

IAudioSessionControl-Schnittstelle

IAudioSessionControl::RegisterAudioSessionNotification

IAudioSessionEvents-Schnittstelle