ICaptureGraphBuilder2::FindInterface 方法 (strmif.h)

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

方法 FindInterface 从指定的筛选器开始,在图形中搜索指定的接口。 可以将搜索限制为图上游或筛选器下游的某个部分,或将其限制为特定的引脚类别或媒体类型。

语法

HRESULT FindInterface(
  [in]  const GUID  *pCategory,
  [in]  const GUID  *pType,
  [in]  IBaseFilter *pf,
  [in]  REFIID      riid,
  [out] void        **ppint
);

参数

[in] pCategory

指向指定搜索条件的 GUID 的指针。 有关更多信息,请参见备注。 可能的值如下:

有关更多信息,请参见备注。

[in] pType

指向 GUID 的指针,该 GUID 指定输出引脚的主要媒体类型或 NULL

[in] pf

指向筛选器的 IBaseFilter 接口的指针。 方法从此筛选器开始搜索。

[in] riid

接口标识符 (要查找的接口的 IID) 。

[out] ppint

接收接口指针的变量的地址。 使用完 接口后,请务必释放检索到的接口指针。

返回值

返回 HRESULT 值。 可能的值包括以下值。

返回代码 说明
S_OK
成功。
E_FAIL
失败。
E_NOINTERFACE
不支持此类接口。
E_POINTER
NULL 指针参数。

注解

在捕获图中,各种筛选器和引脚可能会公开用于设置属性的接口,例如压缩参数 (IAMVideoCompression) 或流格式 (IAMStreamConfig) 。 根据捕获设备,其他有用的接口可能包括路由模拟信号的 IAMCrossbar 或控制电视调谐 器设备的 IAMTVTuner。 可以使用此方法查找接口,而无需编写遍历图形的特殊代码。

重要 请勿调用此方法来获取 IVideoWindow 接口指针。 始终查询此接口的筛选器图管理器。 否则,筛选器图管理器将无法正确响应屏幕分辨率和其他事件的更改。
 
如果 pCategory 参数为 NULL,则此方法在整个图形中搜索请求的接口。 从 pf 参数指定的筛选器开始,它会查询图中的以下对象。
  • 筛选器
  • 筛选器的引脚
  • 所有下游筛选器,包括其引脚
  • 所有上游筛选器,包括其引脚
可以通过设置 pCategorypType 参数来限制搜索,如下所示:
  • 如果 pCategory 等于 &LOOK_UPSTREAM_ONLY,则搜索将从筛选器的输入引脚开始,并继续上游。 它不包括筛选器或筛选器下游的任何内容。 将忽略 pType 参数。
  • 如果 pCategory 等于 &LOOK_DOWNSTREAM_ONLY,则搜索将从筛选器的输出引脚开始,并继续下游。 它不包括筛选器或筛选器上游的任何内容。 将忽略 pType 参数。
  • 如果 pCategory 指定引脚类别,则搜索的下游部分将限制为筛选器上的输出引脚,该筛选器与 pType 参数中给定的引脚类别和媒体类型匹配。 在这种情况下, 方法还会搜索筛选器以及从筛选器上游的所有内容。
此外,如果 pCategory 为非 NULL,该方法可能会从 pf 中指定的筛选器上游添加某些 Windows 驱动程序模型 (WDM) 筛选器。 有关详细信息,请参阅本部分中“支持筛选器”下的备注。

引脚类别可用于在捕获筛选器上查找引脚接口。 例如,捕获筛选器可能具有单独的用于捕获和预览的引脚。 如果指定引脚类别,则还应指定媒体类型,以确保方法选择正确的筛选器和固定。

某些视频捕获筛选器具有视频端口引脚 (PIN_CATEGORY_VIDEOPORT) 而不是预览插针。 如果指定 PIN_CATEGORY_PREVIEW 和 MEDIATYPE_Video, 方法会将任何视频端口引脚视为预览插针。 应用程序不必测试这种可能性。

支持筛选器。 如果捕获设备使用 Windows 驱动程序模型 (WDM) 驱动程序,则图形可能需要从 WDM 视频捕获筛选器上游某些筛选器,例如电视调谐器筛选器或模拟视频交叉条筛选器。 如果 pCategory 参数不等于 NULL,此方法会自动将任何必需的 WDM 筛选器插入到图形中。 为此,它会查询捕获筛选器上的输入引脚,以确定它们支持的介质,并将其连接到匹配的筛选器。 如果 pCategory 参数为 NULL,则该方法不会添加上游筛选器。

要求

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

另请参阅

错误和成功代码

ICaptureGraphBuilder2 接口