ICaptureGraphBuilder2::FindInterface 方法 (strmif.h)
[与此页面关联的功能 DirectShow 是一项旧功能。 它已被 MediaPlayer、 IMFMediaEngine 和 媒体基金会中的音频/视频捕获取代。 这些功能已针对Windows 10和Windows 11进行了优化。 Microsoft 强烈建议新代码尽可能使用 MediaPlayer、 IMFMediaEngine 和 Media 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 的指针。 有关更多信息,请参见备注。 可能的值如下:
- &LOOK_UPSTREAM_ONLY。
- &LOOK_DOWNSTREAM_ONLY。
- 固定属性集中列出的固定类别之一。
- NULL
[in] pType
指向 GUID 的指针,该 GUID 指定输出引脚的主要媒体类型或 NULL。
[in] pf
指向筛选器的 IBaseFilter 接口的指针。 方法从此筛选器开始搜索。
[in] riid
接口标识符 (要查找的接口的 IID) 。
[out] ppint
接收接口指针的变量的地址。 使用完 接口后,请务必释放检索到的接口指针。
返回值
返回 HRESULT 值。 可能的值包括以下值。
返回代码 | 说明 |
---|---|
|
成功。 |
|
失败。 |
|
不支持此类接口。 |
|
NULL 指针参数。 |
注解
在捕获图中,各种筛选器和引脚可能会公开用于设置属性的接口,例如压缩参数 (IAMVideoCompression) 或流格式 (IAMStreamConfig) 。 根据捕获设备,其他有用的接口可能包括路由模拟信号的 IAMCrossbar 或控制电视调谐 器设备的 IAMTVTuner。 可以使用此方法查找接口,而无需编写遍历图形的特殊代码。
- 筛选器
- 筛选器的引脚
- 所有下游筛选器,包括其引脚
- 所有上游筛选器,包括其引脚
- 如果 pCategory 等于 &LOOK_UPSTREAM_ONLY,则搜索将从筛选器的输入引脚开始,并继续上游。 它不包括筛选器或筛选器下游的任何内容。 将忽略 pType 参数。
- 如果 pCategory 等于 &LOOK_DOWNSTREAM_ONLY,则搜索将从筛选器的输出引脚开始,并继续下游。 它不包括筛选器或筛选器上游的任何内容。 将忽略 pType 参数。
- 如果 pCategory 指定引脚类别,则搜索的下游部分将限制为筛选器上的输出引脚,该筛选器与 pType 参数中给定的引脚类别和媒体类型匹配。 在这种情况下, 方法还会搜索筛选器以及从筛选器上游的所有内容。
引脚类别可用于在捕获筛选器上查找引脚接口。 例如,捕获筛选器可能具有单独的用于捕获和预览的引脚。 如果指定引脚类别,则还应指定媒体类型,以确保方法选择正确的筛选器和固定。
某些视频捕获筛选器具有视频端口引脚 (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 |