CBasePin.AgreeMediaType 方法

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

方法 AgreeMediaType 搜索媒体类型以建立固定连接。

语法

virtual HRESULT AgreeMediaType(
         IPin       *pReceivePin,
   const CMediaType *pmt
);

参数

pReceivePin

指向接收引脚的 IPin 接口的指针。

Pmt

指向指定媒体类型的 CMediaType 对象的指针,或 NULL

返回值

返回 HRESULT 值。 可能的值包括下表中的值。

返回代码 说明
S_OK
成功。
VFW_E_NO_ACCEPTABLE_TYPES
找不到可接受的媒体类型。

备注

如果 pmt 参数为非 NULL 且完全指定媒体类型,则此方法将尝试使用该媒体类型进行连接。 如果尝试失败,该方法将返回错误。

如果 pmt 参数为 NULL 或指定部分媒体类型,则此方法按以下顺序尝试媒体类型:

  1. 接收引脚的首选媒体类型。
  2. 此固定的首选媒体类型。

首选媒体类型使用 CBasePin::EnumMediaTypes 方法枚举,生成的枚举器将传递给 CBasePin::TryMediaTypes 方法。

要求

要求
标头
Amfilter.h (包括 Streams.h)

Strmbase.lib (零售版本) ;
Strmbasd.lib (调试生成)

另请参阅

CBasePin 类