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 调用失败, 则 ppDevices 为 NULL。
返回值
如果该方法成功,则它会返回 S_OK。 如果失败,可能的返回代码包括但不限于下表中显示的值。
返回代码 | 说明 |
---|---|
|
参数 ppDevices 为 NULL。 |
|
参数 dataFlow 或 dwStateMask 在范围外。 |
|
内存不足。 |
注解
例如,以下调用枚举当前处于活动状态 (存在且未禁用) 的所有音频呈现终结点设备:
hr = pDevEnum->EnumAudioEndpoints(
eRender, DEVICE_STATE_ACTIVE,
&pEndpoints);
在前面的代码片段中,变量 hr 的类型为 HRESULT, pDevEnum 是指向 IMMDeviceEnumerator 接口的指针, pEndpoints 是指向 IMMDeviceCollection 接口的指针。
示例
有关调用 EnumAudioEndpoints 方法的 代码示例,请参阅 设备属性。
要求
最低受支持的客户端 | Windows Vista [仅限桌面应用] |
最低受支持的服务器 | Windows Server 2008 [仅限桌面应用] |
目标平台 | Windows |
标头 | mmdeviceapi.h |