IGraphBuilder::AddSourceFilter 方法 (strmif.h)

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

返回代码 说明
S_OK
成功。
E_NOINTERFACE
源筛选器不支持 IFileSourceFilter 接口。
E_OUTOFMEMORY
内存不足。
E_POINTER
NULL 指针参数。
VFW_E_CANNOT_LOAD_SOURCE_FILTER
无法加载此文件的源筛选器。
VFW_E_NOT_FOUND
找不到文件或对象。
VFW_E_UNKNOWN_FILE_TYPE
无法识别此文件的媒体类型。

注解

此方法搜索可读取指定文件的已安装筛选器。 如果找到一个,该方法会将它添加到筛选器图,并返回指向筛选器的 IBaseFilter 接口的指针。 为了确定文件的媒体类型和压缩方案,筛选器关系图管理器将读取文件的前几个字节,并查找特定的字节模式,如 注册自定义文件类型一文中所述。

应用程序负责生成筛选器图的其余部分。 为此,请调用 IBaseFilter::EnumPins 以枚举源筛选器上的输出引脚。 然后使用 IGraphBuilder::Connect 方法或 IGraphBuilder::Render 方法。

如果方法成功, 则 IBaseFilter 接口具有未完成的引用计数。 调用方必须释放接口。

若要呈现文件以供默认播放,请使用 IGraphBuilder::RenderFile 方法。

筛选器关系图管理器保留筛选器的引用计数,直到从图中删除筛选器或释放筛选器关系图管理器。

要求

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

另请参阅

错误和成功代码

IGraphBuilder 接口