CBasePin.CheckConnect 方法

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

方法 CheckConnect 确定引脚连接是否合适。

语法

virtual HRESULT CheckConnect(
   IPin *pPin
);

参数

pPin

指向另一个引脚的 IPin 接口的指针。

返回值

返回下表中显示的 HRESULT 值之一。

返回代码 说明
S_OK
成功。
VFW_E_INVALID_DIRECTION
固定方向不兼容。

备注

在连接过程开始时,在两个引脚上调用此方法。 连接引脚从 CBasePin::Connect 方法中调用它,接收引脚从 CBasePin::ReceiveConnection 方法中调用它。

使用此方法可确定 pPin 参数指定的引脚是否适合连接。 如果两个引脚 (两个输入方向相同,或者两个输出) ,则基类将返回错误。 派生类可以重写此方法,以验证引脚中的其他特征。 例如, CBaseOutputPin 类查询其 IMemInputPin 接口的输入引脚。

如果此方法失败,则连接失败,引脚调用 CBasePin::BreakConnect 方法。 使用 BreakConnect 释放在 中 CheckConnect获取的任何资源。 例如,如果 CheckConnect 调用 QueryInterface 方法, BreakConnect 必须释放接口。

要求

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

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

另请参阅

CBasePin 类