IMMDeviceEnumerator::GetDevice method (mmdeviceapi.h)

GetDevice 方法會擷取一個以端點 ID 字串識別的音訊端點裝置。

語法

HRESULT GetDevice(
  [in]  LPCWSTR   pwstrId,
  [out] IMMDevice **ppDevice
);

Parameters

[in] pwstrId

指標指向包含端點 ID 的字串。 呼叫者通常從 IMMDevice::GetId 方法或 IMMNotificationClient 介面中的某一種方法取得此字串。

從 Windows 11 版本 24H2(建置 26100)開始,呼叫者也可以在音訊端點輸入從 PKEY_AudioEndpoint_StableId 屬性取得的字串,以取得具有相符 StableID 的音訊端點。

[out] ppDevice

指標指向指標變數,方法將指定裝置的 IMMDevice 介面位址寫入其中。 透過這個方法,呼叫者會取得介面的計數引用。 呼叫端負責在不再需要介面時,藉由呼叫介面的 Release 方法來釋放介面。 如果 GetDevice 呼叫失敗,*ppDeviceNULL。

返回值

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

回傳碼 Description
E_POINTER
參數 pwstrIdppDeviceNULL。
E_NOTFOUND
裝置 ID 不會識別此系統中的任何音訊裝置。
E_OUTOFMEMORY
記憶體不足。

備註

如果兩個程式在兩個不同的程序中運行,且都需要存取同一個音訊端點裝置,一個程式不能簡單地將裝置的 IMMDevice 介面傳遞給另一個程式。 然而,程式可依以下步驟存取同一裝置:

  1. 第一個程式在第一個程序中呼叫 IMMDevice::GetId 方法,取得識別裝置的端點 ID 字串。
  2. 第一個程式會將端點 ID 字串傳遞到第二個程式。
  3. 為了取得第二個程序中裝置 IMMDevice 介面的參考,第二個程式會以端點 ID 字串呼叫 GetDevice
欲了解更多 GetDevice 方法,請參閱以下主題: 關於使用 GetDevice 方法的程式碼範例,請參閱以下主題:

Requirements

需求 價值
最低支援的用戶端 Windows Vista [僅限傳統型應用程式]
支援的最低伺服器 Windows Server 2008 [僅限傳統型應用程式]
目標平臺 Windows 作業系統
Header mmdeviceapi.h

參見

IMMDevice 介面

IMMDevice::GetId

IMMDeviceEnumerator 介面

IMMNotificationClient 介面