ICodecAPI::GetParameterRange 方法 (strmif.h)

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

GetParameterRange 方法获取编解码器属性的值范围。

此方法仅适用于其值构成线性范围的属性。

语法

HRESULT GetParameterRange(
  [in]  const GUID *Api,
  [out] VARIANT    *ValueMin,
  [out] VARIANT    *ValueMax,
  [out] VARIANT    *SteppingDelta
);

参数

[in] Api

指向 GUID 的指针,该 GUID 指定要查询的属性。 有关标准编解码器属性的列表,请参阅 编解码器 API 属性

[out] ValueMin

指向接收属性最小值的 VARIANT 的指针。 调用方必须通过调用 VariantClear 释放 VARIANT

[out] ValueMax

指向接收属性最大值的 VARIANT 的指针。 调用方必须通过调用 VariantClear 释放 VARIANT

[out] SteppingDelta

指向接收步进增量的 VARIANT 的指针,该增量定义从 ValueMinValueMax 的有效增量。 调用方必须通过调用 VariantClear 释放 VARIANT

如果 VARIANT 类型VT_EMPTY,则任何增量都有效。

返回值

此方法可以返回其中一个值。

返回代码 说明
E_INVALIDARG
无效的参数。
S_OK
方法成功。
VFW_E_CODECAPI_ENUMERATED
属性支持可能值的列表,而不是线性范围。

注解

属性的有效范围是 [ValueMin... ValueMax], 增量为 SteppingDelta。 如果属性支持线性值范围,则属性必须使用以下变体类型之一:

  • 无符号类型:VT_UI8VT_UI4VT_UI2、VT_UI1
  • 签名类型:VT_I8VT_I4、VT_I2
  • 浮点类型: VT_R8VT_R4
如果 属性支持值列表而不是范围,则 方法返回 VFW_E_CODECAPI_ENUMERATED。 在这种情况下,请调用 ICodecAPI::GetParameterValues 以获取值列表。

要求

要求
最低受支持的客户端 具有 SP2 的 Windows XP [桌面应用 |UWP 应用]
最低受支持的服务器 Windows Server 2003 R2 [桌面应用 |UWP 应用]
目标平台 Windows
标头 strmif.h (包括 Dshow.h)
Library Strmiids.lib

另请参阅

编解码器 API 参考

编码器 API

ICodecAPI