IMMNotificationClient::OnDefaultDeviceChanged 方法 (mmdeviceapi.h)
OnDefaultDeviceChanged方法會通知用戶端特定裝置角色的預設音訊端點裝置已變更。
語法
HRESULT OnDefaultDeviceChanged(
[in] EDataFlow flow,
[in] ERole role,
[in] LPCWSTR pwstrDefaultDeviceId
);
參數
[in] flow
端點裝置的資料流程方向。 此參數設定為下列其中一個 EDataFlow 列舉值:
eRender
eCapture
轉譯裝置的資料流程方向為 eRender。 擷取裝置的資料流程方向為 eCapture。
[in] role
音訊端點 裝置的裝置角色 。 此參數設定為下列其中一個 ERole 列舉值:
eConsole
eMultimedia
eCommunications
[in] pwstrDefaultDeviceId
識別音訊端點裝置的 端點識別碼字串 指標。 此參數指向包含端點識別碼的 Null 終止寬字元字串。 字串在呼叫期間維持有效狀態。 如果使用者已移除或停用特定角色的預設裝置,而且沒有其他裝置可以假設該角色, 則 pwstrDefaultDevice 為 Null。
傳回值
如果方法成功,它會傳回 S_OK。 如果方法失敗,則會傳回錯誤碼。
備註
三個輸入參數會指定新預設音訊端點裝置的資料流程方向、裝置角色和端點識別碼字串。
在 Windows Vista 中,MMDevice API 支援裝置角色,但系統提供的使用者介面程式則不支援。 Windows Vista 中的使用者介面可讓使用者選取用於轉譯的預設音訊裝置,以及用於擷取的預設音訊裝置。 當使用者變更預設轉譯或擷取裝置時,系統會將 eConsole、eMultimedia 和 eCommunications) 的所有三個裝置 (角色指派給新的裝置。 因此,當使用者變更預設轉譯或擷取裝置時,系統會呼叫用戶端的 OnDefaultDeviceChanged 方法三次,這三個裝置角色各一次。
在未來的 Windows 版本中,使用者介面可能會讓使用者將個別角色指派給不同的裝置。 在此情況下,如果使用者只將一或兩個裝置角色指派變更為新的轉譯或擷取裝置,系統只會呼叫用戶端的 OnDefaultDeviceChanged 方法一次或兩 (次,也就是每次變更的角色呼叫一次) 。 根據 OnDefaultDeviceChanged 方法如何回應角色變更,在 Windows Vista 中開發的音訊應用程式行為可能會在未來的 Windows 版本中執行時變更。 如需詳細資訊,請參閱 Windows Vista 中的裝置角色。
如需實作 OnDefaultDeviceChanged 方法的程式碼範例,請參閱 裝置事件。
需求
最低支援的用戶端 | Windows Vista [僅限傳統型應用程式] |
最低支援的伺服器 | Windows Server 2008 [僅限傳統型應用程式] |
目標平台 | Windows |
標頭 | mmdeviceapi.h |