IGraphBuilder::AddSourceFilter 方法 (strmif.h)
[与此页面关联的功能 DirectShow 是一项旧功能。 它已被 MediaPlayer、 IMFMediaEngine 和 媒体基金会中的音频/视频捕获取代。 这些功能已针对Windows 10和Windows 11进行了优化。 Microsoft 强烈建议新代码尽可能使用 MediaPlayer、 IMFMediaEngine 和 Media Foundation 中的音频/视频捕获 ,而不是 DirectShow。 如果可能,Microsoft 建议重写使用旧 API 的现有代码以使用新 API。]
方法 AddSourceFilter
将指定文件的源筛选器添加到筛选器图。
语法
HRESULT AddSourceFilter(
[in] LPCWSTR lpcwstrFileName,
[in] LPCWSTR lpcwstrFilterName,
[out] IBaseFilter **ppFilter
);
参数
[in] lpcwstrFileName
指定要加载的文件的名称。
[in] lpcwstrFilterName
指定源筛选器的名称。
[out] ppFilter
接收指向筛选器的 IBaseFilter 接口的指针。 调用方必须释放接口。
返回值
返回 HRESULT。 可能的值包括以下值。
返回代码 | 说明 |
---|---|
|
成功。 |
|
源筛选器不支持 IFileSourceFilter 接口。 |
|
内存不足。 |
|
NULL 指针参数。 |
|
无法加载此文件的源筛选器。 |
|
找不到文件或对象。 |
|
无法识别此文件的媒体类型。 |
注解
此方法搜索可读取指定文件的已安装筛选器。 如果找到一个,该方法会将它添加到筛选器图,并返回指向筛选器的 IBaseFilter 接口的指针。 为了确定文件的媒体类型和压缩方案,筛选器关系图管理器将读取文件的前几个字节,并查找特定的字节模式,如 注册自定义文件类型一文中所述。
应用程序负责生成筛选器图的其余部分。 为此,请调用 IBaseFilter::EnumPins 以枚举源筛选器上的输出引脚。 然后使用 IGraphBuilder::Connect 方法或 IGraphBuilder::Render 方法。
如果方法成功, 则 IBaseFilter 接口具有未完成的引用计数。 调用方必须释放接口。
若要呈现文件以供默认播放,请使用 IGraphBuilder::RenderFile 方法。
筛选器关系图管理器保留筛选器的引用计数,直到从图中删除筛选器或释放筛选器关系图管理器。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | Windows 2000 Professional [仅限桌面应用] |
最低受支持的服务器 | Windows 2000 Server [仅限桌面应用] |
目标平台 | Windows |
标头 | strmif.h (包括 Dshow.h) |
Library | Strmiids.lib |