IAMGraphStreams::FindUpstreamInterface 方法 (strmif.h)

[与此页面关联的功能 DirectShow 是一项旧功能。 它已被 MediaPlayerIMFMediaEngine媒体基金会中的音频/视频捕获取代。 这些功能已针对Windows 10和Windows 11进行了优化。 Microsoft 强烈建议新代码尽可能使用 MediaPlayerIMFMediaEngineMedia 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 值之一。

返回代码 说明
E_NOINTERFACE
找不到接口。
E_POINTER
无效指针。
S_OK
成功。

注解

如果 dwFlags 为零,则此方法按以下顺序搜索 接口:

  1. 它查询 pPin 指定的引脚。
  2. 如果 pPin 是输入引脚,它会在连接到 pPin 的输出引脚上以递归方式调用 FindUpstreamInterface(如果有)。

    如果 pPin 是输出引脚,它将查询拥有 pPin 的筛选器。 然后,它会在筛选器上创建一个与 pPin 有内部连接的输入引脚列表,并对这些输入引脚进行递归调用 FindUpstreamInterface

    若要创建具有内部连接的输入引脚的列表, 方法将执行以下操作:

它在找到的第一个支持 接口的对象处停止。 可以通过将 dwFlags 设置为非零值来限制 (筛选器、输入引脚或输出引脚) 搜索的对象。
注意ICaptureGraphBuilder2::FindInterface 方法实现此问题的更常规方法,在大多数情况下是首选方法。
 

要求

要求
最低受支持的客户端 Windows XP [仅限桌面应用]
最低受支持的服务器 Windows Server 2003 [仅限桌面应用]
目标平台 Windows
标头 strmif.h (包括 Dshow.h)
Library Strmiids.lib

另请参阅

错误和成功代码

IAMGraphStreams 接口