共用方式為


IMMDeviceEnumerator::EnumAudioEndpoints 方法 (mmdeviceapi.h)

EnumAudioEndpoints方法會產生符合指定準則的音訊端點裝置集合。

語法

HRESULT EnumAudioEndpoints(
  [in]  EDataFlow           dataFlow,
  [in]  DWORD               dwStateMask,
  [out] IMMDeviceCollection **ppDevices
);

參數

[in] dataFlow

集合中端點裝置的資料流程方向。 呼叫端應該將此參數設定為下列其中一個 EDataFlow 列舉值:

eRender

eCapture

eAll

如果呼叫端指定 eAll,方法就會在集合中包含轉譯和擷取端點。

[in] dwStateMask

要包含在集合中的端點狀態或狀態。 呼叫端應該將此參數設定為下列一或多個 DEVICE_STATE_XXX 常數的位 OR:

DEVICE_STATE_ACTIVE

DEVICE_STATE_DISABLED

DEVICE_STATE_NOTPRESENT

DEVICE_STATE_UNPLUGGED

例如,如果呼叫端將 dwStateMask 參數設定為 DEVICE_STATE_ACTIVE |DEVICE_STATE_UNPLUGGED,此方法包含作用中或從其插孔解除叢集的端點,但排除已停用或不存在音訊配接器上的端點。 若要包含所有端點,不論狀態為何,請設定 dwStateMask = DEVICE_STATEMASK_ALL。

[out] ppDevices

指標變數的指標,方法會將 device-collection 物件的 IMMDeviceCollection 介面位址寫入其中。 透過這個方法,呼叫端會取得介面的計數參考。 呼叫端會藉由呼叫介面的 Release 方法,負責釋放不再需要的介面。 如果 EnumAudioEndpoints 呼叫失敗, *ppDevicesNull

傳回值

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

傳回碼 描述
E_POINTER
參數 ppDevicesNull
E_INVALIDARG
參數 資料流程dwStateMask 超出範圍。
E_OUTOFMEMORY
記憶體不足。

備註

例如,下列呼叫會列舉目前作用中 (存在且未停用的所有音訊轉譯端點裝置) :


  hr = pDevEnum->EnumAudioEndpoints(
                   eRender, DEVICE_STATE_ACTIVE,
                   &pEndpoints);

在上述程式碼片段中,變數 hr 的類型為 HRESULTpDevEnumIMMDeviceEnumerator 介面的指標, 而 pEndpoints 則是 IMMDeviceCollection 介面的指標。

範例

如需呼叫 EnumAudioEndpoints 方法的程式碼範例,請參閱 裝置屬性

需求

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

另請參閱

IMMDeviceCollection 介面

IMMDeviceEnumerator 介面