CBasePin.TryMediaTypes 方法

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

在给定媒体类型列表的情况下 TryMediaTypes , 方法尝试使用其中一种类型完成连接。

语法

virtual HRESULT TryMediaTypes(
         IPin            *pReceivePin,
   const CMediaType      *pmt,
         IEnumMediaTypes *pEnum
);

参数

pReceivePin

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

Pmt

指向限制可能媒体类型的 CMediaType 对象的指针,或 NULL

pEnum

指向 IEnumMediaTypes 接口的 指针,用于枚举媒体类型列表。

返回值

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

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

备注

对于 IEnumMediaTypes 接口返回的每个媒体类型,此方法通过调用 CBasePin::AttemptConnection 方法尝试连接。

如果 pmt 参数为非 NULL,则引脚将跳过与此类型不匹配的媒体类型。 pmt 参数可以指定部分媒体类型。 对于主类型、子类型或格式,分部媒体类型的值GUID_NULL。 GUID_NULL值与任何类型匹配,类似于“通配符”值。

要求

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

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

另请参阅

CBasePin 类