CBasePin.ReceiveConnection 方法

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

方法 ReceiveConnection 接受来自另一个引脚的连接。 此方法实现 IPin::ReceiveConnection 方法。

语法

HRESULT ReceiveConnection(
   IPin          *pConnector,
   AM_MEDIA_TYPE *pmt
);

参数

pConnector

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

Pmt

指向指定媒体类型的 AM_MEDIA_TYPE 结构的指针。

返回值

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

返回代码 说明
S_OK
成功。
E_POINTER
NULL 指针参数。
VFW_E_ALREADY_CONNECTED
引脚已连接。
VFW_E_NOT_STOPPED
筛选器处于活动状态,并且引脚不支持动态重新连接。
VFW_E_TYPE_NOT_ACCEPTED
指定的媒体类型是不能接受的。

备注

输出引脚在输入引脚上调用此方法。 如果输入引脚返回错误代码,则连接将失败。

在基类中,此方法执行以下步骤:

如果所有这些步骤都成功,该方法将调用 CBasePin::CompleteConnectSetMediaType 方法来完成连接。 这些方法存储媒体类型和指向输出引脚的指针。

如果 CheckConnectCheckMediaType 失败,则基类调用 CBasePin::BreakConnect 方法以中断连接,然后从 ReceiveConnection返回错误代码。

要求

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

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

另请参阅

CBasePin 类