IEnumRegFilters::Next 方法 (strmif.h)

[与此页面关联的功能 DirectShow 是旧版功能。 它已被 MediaPlayerIMFMediaEngineMedia Foundation 中的音频/视频捕获所取代。 这些功能已针对Windows 10和Windows 11进行了优化。 Microsoft 强烈建议新代码尽可能在 Media Foundation 中使用 MediaPlayerIMFMediaEngine音频/视频捕获 ,而不是 DirectShow。 如果可能,Microsoft 建议重写使用旧 API 的现有代码以使用新 API。]

注意IEnumRegFilters 接口已弃用。
 
在数组中填充由 cFilters 参数 (指定的下一组筛选器) 的说明,这些筛选器满足创建枚举器时指定的要求。

语法

HRESULT Next(
  [in]  ULONG     cFilters,
  [out] REGFILTER **apRegFilter,
  [out] ULONG     *pcFetched
);

参数

[in] cFilters

筛选器数。

[out] apRegFilter

指向 REGFILTER 指针数组的指针的地址。

[out] pcFetched

指向实际传递的筛选器数的指针。

返回值

返回以下 HRESULT 值之一。

返回代码 说明
E_INVALIDARG
无效的参数。
E_OUTOFMEMORY
内存不足。
E_POINTER
NULL 指针参数。
E_UNEXPECTED
意外错误。
S_FALSE
检索的筛选器数少于请求的筛选器数。
S_OK
成功。
VFW_E_ENUM_OUT_OF_SYNC
枚举器已无效。 有关详细信息,请参阅“备注”。

注解

调用应用程序必须使用 Microsoft Win32 CoTaskMemFree 函数释放数组中返回的每个 REGFILTER 指针。 请勿单独释放 REGFILTER 结构的 Name 成员,因为IEnumRegFilters::Next会将此字符串的内存作为 REGFILTER 结构的一部分进行分配。

如果已注册的筛选器数发生更改,枚举器的状态将不再与注册表的状态一致。 因此,此方法将返回VFW_E_ENUM_OUT_OF_SYNC。 应放弃从之前调用枚举器中获得的任何数据,因为它可能无效,并通过调用 Reset 方法更新枚举器。 然后,可以安全地调用 Next 方法。

要求

要求
目标平台 Windows
标头 strmif.h (包括 Dshow.h)

另请参阅

错误和成功代码

IEnumRegFilters 接口