Share via


IMMDeviceEnumerator::GetDevice 方法 (mmdeviceapi.h)

GetDevice 方法會擷取端點標識符字串所識別的音訊端點裝置。

語法

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

參數

[in] pwstrId

包含端點標識子的字串指標。 呼叫端通常會從 IMMDevice::GetId 方法,或從 IMMNotificationClient 介面中的其中一個方法取得此字串。

[out] ppDevice

指標變數的指標,方法會寫入指定裝置之 IMMDevice 介面的位址。 透過這個方法,呼叫端會取得介面的計數參考。 呼叫端負責藉由呼叫介面的 Release 方法,在不再需要介面時釋出介面。 如果 GetDevice 呼叫失敗, *ppDeviceNULL

傳回值

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

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

備註

如果兩個程式在兩個不同的進程中執行,而且兩者都需要存取相同的音訊端點裝置,一個程式無法直接將裝置的 IMMDevice 介面傳遞至另一個程式。 不過,程式可以遵循下列步驟來存取相同的裝置:

  1. 第一個程式在第一個進程中呼叫 IMMDevice::GetId 方法,以取得識別裝置的端點標識符字串。
  2. 第一個程式會將端點標識符字串跨進程界限傳遞至第二個程式。
  3. 若要在第二個進程中取得裝置 IMMDevice 介面的參考,第二個程式會使用端點標識符字串呼叫 GetDevice
如需 GetDevice 方法的詳細資訊,請參閱下列主題: 如需使用 GetDevice 方法的程式代碼範例,請參閱下列主題:

規格需求

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

另請參閱

IMMDevice 介面

IMMDevice::GetId

IMMDeviceEnumerator 介面

IMMNotificationClient 介面