IMMDeviceEnumerator::EnumAudioEndpoints 方法 (mmdeviceapi.h)

EnumAudioEndpoints 方法生成满足指定条件的音频终结点设备的集合。

语法

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

parameters

[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

指向指针变量的指针,方法将设备集合对象的 IMMDeviceCollection 接口的地址写入其中。 通过此方法,调用方获取对 接口的计数引用。 调用方负责通过调用接口的 Release 方法,在不再需要接口时释放接口。 如果 EnumAudioEndpoints 调用失败, 则 ppDevicesNULL

返回值

如果该方法成功,则它会返回 S_OK。 如果失败,可能的返回代码包括但不限于下表中显示的值。

返回代码 说明
E_POINTER
参数 ppDevicesNULL
E_INVALIDARG
参数 dataFlowdwStateMask 在范围外。
E_OUTOFMEMORY
内存不足。

注解

例如,以下调用枚举当前处于活动状态 (存在且未禁用) 的所有音频呈现终结点设备:


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

在前面的代码片段中,变量 hr 的类型为 HRESULTpDevEnum 是指向 IMMDeviceEnumerator 接口的指针, pEndpoints 是指向 IMMDeviceCollection 接口的指针。

示例

有关调用 EnumAudioEndpoints 方法的 代码示例,请参阅 设备属性

要求

   
最低受支持的客户端 Windows Vista [仅限桌面应用]
最低受支持的服务器 Windows Server 2008 [仅限桌面应用]
目标平台 Windows
标头 mmdeviceapi.h

另请参阅

IMMDeviceCollection 接口

IMMDeviceEnumerator 接口