IEnumMediaTypes::Next 方法 (strmif.h)
[与此页面关联的功能 DirectShow 是一项旧功能。 它已被 MediaPlayer、 IMFMediaEngine 和 媒体基金会中的音频/视频捕获取代。 这些功能已针对Windows 10和Windows 11进行了优化。 Microsoft 强烈建议新代码尽可能使用 MediaPlayer、 IMFMediaEngine 和 Media Foundation 中的音频/视频捕获 ,而不是 DirectShow。 如果可能,Microsoft 建议重写使用旧 API 的现有代码以使用新 API。]
Next 方法检索指定数量的媒体类型。
语法
HRESULT Next(
[in] ULONG cMediaTypes,
[out] AM_MEDIA_TYPE **ppMediaTypes,
[out] ULONG *pcFetched
);
参数
[in] cMediaTypes
要检索的媒体类型数。
[out] ppMediaTypes
AM_MEDIA_TYPE指针数组的地址。 数组中的元素数是在 cMediaTypes 参数中给出的。
[out] pcFetched
接收 ppMediaTypes 中返回的媒体类型数。 如果 cMediaTypes 为 1,此参数可以为 NULL。
返回值
返回以下 HRESULT 值之一。
返回代码 | 说明 |
---|---|
|
未检索请求的媒体类型数。 |
|
成功。 |
|
无效的参数。 |
|
NULL 指针参数。 |
|
引脚的状态已更改,现在与枚举器不一致。 |
注解
调用方在 ppMediaTypes 中传递AM_MEDIA_TYPE指针数组。 方法分配一个数字 AM_MEDIA_TYPE 结构等于 cMediaTypes 或枚举中保留的媒体类型数,以较小者为准。 分配的结构数在 pcFetched 中返回。 通过调用 DeleteMediaType 函数删除每个结构。
如果媒体类型集发生更改,枚举器将变得与所属引脚不一致。 在这种情况下, 方法返回VFW_E_ENUM_OUT_OF_SYNC。 放弃以前调用枚举器时获取的任何数据,因为它可能无效。 通过调用 IEnumMediaTypes::Reset 方法更新枚举器。 然后,可以安全地调用 Next 方法。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | Windows 2000 Professional [仅限桌面应用] |
最低受支持的服务器 | Windows 2000 Server [仅限桌面应用] |
目标平台 | Windows |
标头 | strmif.h (包括 Dshow.h) |
Library | Strmiids.lib |