IAudioSessionManager2::RegisterSessionNotification 方法 (audiopolicy.h)

RegisterSessionNotification 方法會註冊應用程式,以在建立會話時接收通知。

語法

HRESULT RegisterSessionNotification(
  IAudioSessionNotification *SessionNotification
);

參數

SessionNotification

應用程式實作 IAudioSessionNotification 介面的指標。 如果方法呼叫成功,它會在應用程式的 IAudioSessionNotification 介面上呼叫 AddRef 方法。

傳回值

如果方法成功,它會傳回 S_OK。 如果失敗,可能的傳回碼包括,但不限於下表所示的值。

傳回值 描述
E_POINTER
SessionNotificationNULL
E_OUTOFMEMORY
無法建立內部對象,因為記憶體不足。

備註

應用程式可以透過 IAudioSessionNotification 介面的方法,註冊以在建立會話時接收通知。 應用程式會實作 IAudioSessionNotification 介面。 在此介面中定義的方法會在建立會話時從系統接收回呼。 如需示範如何實作此介面的範例程序代碼,請參閱

IAudioSessionNotification 介面

為了開始接收通知,應用程式會呼叫 IAudioSessionManager2::RegisterSessionNotification 方法來註冊其 IAudioSessionNotification 介面。 當應用程式不再需要通知時,它會呼叫 IAudioSessionManager2::UnregisterSessionNotification 方法來刪除註冊。

重要

您必須呼叫 IAudioSessionEnumerator::GetCount 開始接收通知。 會話列舉 API 會捨棄新的工作階段通知,直到應用程式第一次擷取現有會話的清單為止。 這是為了避免在應用程式使用會話 API 啟動時,工作階段通知送達時可能發生的競爭狀況。 呼叫 GetCount 會觸發列舉 API 以開始傳送工作階段通知。

注意 請確定應用程式在非UI線程中呼叫 CoInitializeEx(NULL, COINIT_MULTITHREADED) ,以多線程Apartment (MTA) 模型初始化 COM。 如果未初始化 MTA,應用程式就不會從會話管理員接收工作階段通知。 執行應用程式使用者介面的線程應初始化 Apartment 線程模型。
 

規格需求

需求
最低支援的用戶端 Windows 7 [僅限傳統型應用程式]
最低支援的伺服器 Windows Server 2008 R2 [僅限傳統型應用程式]
目標平台 Windows
標頭 audiopolicy.h

另請參閱

IAudioSessionManager2