CBasePin.ReceiveConnection 方法
[与此页面关联的功能 DirectShow 是一项旧功能。 它已被 MediaPlayer、 IMFMediaEngine 和 媒体基金会中的音频/视频捕获取代。 这些功能已针对Windows 10和Windows 11进行了优化。 Microsoft 强烈建议新代码尽可能使用 MediaPlayer、 IMFMediaEngine 和 Media Foundation 中的音频/视频捕获 ,而不是 DirectShow。 如果可能,Microsoft 建议重写使用旧 API 的现有代码以使用新 API。]
方法 ReceiveConnection
接受来自另一个引脚的连接。 此方法实现 IPin::ReceiveConnection 方法。
语法
HRESULT ReceiveConnection(
IPin *pConnector,
AM_MEDIA_TYPE *pmt
);
参数
-
pConnector
-
指向连接引脚的 IPin 接口的指针。
-
Pmt
-
指向指定媒体类型的 AM_MEDIA_TYPE 结构的指针。
返回值
返回 HRESULT 值。 可能的值包括下表中的值。
返回代码 | 说明 |
---|---|
|
成功。 |
|
NULL 指针参数。 |
|
引脚已连接。 |
|
筛选器处于活动状态,并且引脚不支持动态重新连接。 |
|
指定的媒体类型是不能接受的。 |
备注
输出引脚在输入引脚上调用此方法。 如果输入引脚返回错误代码,则连接将失败。
在基类中,此方法执行以下步骤:
- 检查引脚是否已连接。
- 检查筛选器是否已停止。
- 调用 CBasePin::CheckConnect 方法以测试连接引脚是否合适。
- 调用 CBasePin::CheckMediaType 方法以测试媒体类型是否可接受。
如果所有这些步骤都成功,该方法将调用 CBasePin::CompleteConnect 和 SetMediaType 方法来完成连接。 这些方法存储媒体类型和指向输出引脚的指针。
如果 CheckConnect 或 CheckMediaType 失败,则基类调用 CBasePin::BreakConnect 方法以中断连接,然后从 ReceiveConnection
返回错误代码。
要求
要求 | 值 |
---|---|
标头 |
|
库 |
|