IAMGraphStreams::FindUpstreamInterface 方法 (strmif.h)
[与此页面关联的功能 DirectShow 是一项旧功能。 它已被 MediaPlayer、 IMFMediaEngine 和 媒体基金会中的音频/视频捕获取代。 这些功能已针对Windows 10和Windows 11进行了优化。 Microsoft 强烈建议新代码尽可能使用 MediaPlayer、 IMFMediaEngine 和 Media Foundation 中的音频/视频捕获 ,而不是 DirectShow。 如果可能,Microsoft 建议重写使用旧 API 的现有代码以使用新 API。]
方法FindUpstreamInterface
在筛选器图中搜索指定接口,上游来自指定的引脚。
语法
HRESULT FindUpstreamInterface(
[in] IPin *pPin,
[in] REFIID riid,
[out] void **ppvInterface,
[in] DWORD dwFlags
);
参数
[in] pPin
指向引脚 的 IPin 接口的指针。 引脚必须属于筛选器图中的筛选器。
[in] riid
对接口标识符的引用 (指定要查找的接口的 IID) 。
[out] ppvInterface
void 指针的地址。 如果方法成功,此变量将收到指向 riid 指定的接口的指针。
[in] dwFlags
AM_INTF_SEARCH_FLAGS 枚举中的标志组合,指定要 (图钉或筛选器) 搜索的内容。
返回值
返回以下 HRESULT 值之一。
返回代码 | 说明 |
---|---|
|
找不到接口。 |
|
无效指针。 |
|
成功。 |
注解
如果 dwFlags 为零,则此方法按以下顺序搜索 接口:
- 它查询 pPin 指定的引脚。
-
如果 pPin 是输入引脚,它会在连接到 pPin 的输出引脚上以递归方式调用 FindUpstreamInterface(如果有)。
如果 pPin 是输出引脚,它将查询拥有 pPin 的筛选器。 然后,它会在筛选器上创建一个与 pPin 有内部连接的输入引脚列表,并对这些输入引脚进行递归调用
FindUpstreamInterface
。若要创建具有内部连接的输入引脚的列表, 方法将执行以下操作:
- 调用 IPin::QueryInternalConnections。
- 如果失败,请调用 IBaseFilter::EnumPins 并查找输入引脚。
注意ICaptureGraphBuilder2::FindInterface 方法实现此问题的更常规方法,在大多数情况下是首选方法。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | Windows XP [仅限桌面应用] |
最低受支持的服务器 | Windows Server 2003 [仅限桌面应用] |
目标平台 | Windows |
标头 | strmif.h (包括 Dshow.h) |
Library | Strmiids.lib |