IFilterGraph::AddFilter 方法 (strmif.h)
[与此页面关联的功能 DirectShow 是旧版功能。 它已被 MediaPlayer、 IMFMediaEngine 和 Media Foundation 中的音频/视频捕获所取代。 这些功能已针对Windows 10和Windows 11进行了优化。 Microsoft 强烈建议新代码尽可能在 Media Foundation 中使用 MediaPlayer、 IMFMediaEngine 和 音频/视频捕获 ,而不是 DirectShow。 如果可能,Microsoft 建议重写使用旧 API 的现有代码以使用新 API。]
方法 AddFilter
将筛选器添加到图中。
语法
HRESULT AddFilter(
[in] IBaseFilter *pFilter,
[in] LPCWSTR pName
);
参数
[in] pFilter
指向要添加的筛选器的 IBaseFilter 接口的指针。
[in] pName
指向包含筛选器名称的宽字符字符串的指针。
返回值
返回 HRESULT 值。 可能的值包括以下值。
返回代码 | 说明 |
---|---|
|
成功。 |
|
已成功添加名称重复的筛选器。 |
|
失败。 |
|
内存不足。 |
|
NULL 指针参数。 |
|
此筛选器的使用受软件密钥的限制。 |
|
无法添加名称重复的筛选器。 |
备注
筛选器的名称可以为 NULL,在这种情况下,Filter Graph 管理器会生成一个名称。 如果名称不为 NULL 且不唯一,则此方法将修改名称,以尝试生成新的唯一名称。 如果成功,此方法将返回VFW_S_DUPLICATE_NAME。 如果无法生成唯一名称,则返回VFW_E_DUPLICATE_NAME。
AddFilter
调用筛选器的 IBaseFilter::JoinFilterGraph 方法以通知筛选器已添加它。 AddFilter
在尝试使用 IGraphBuilder::Connect、 IFilterGraph::ConnectDirect 或 IGraphBuilder::Render 方法连接或呈现属于所添加筛选器的引脚之前,必须调用 。
筛选器关系图管理器保留筛选器的引用计数,直到筛选器从图形中删除或释放 Filter Graph 管理器。
要求
最低受支持的客户端 | Windows 2000 Professional [仅限桌面应用] |
最低受支持的服务器 | Windows 2000 Server [仅限桌面应用] |
目标平台 | Windows |
标头 | strmif.h (包括 Dshow.h) |
Library | Strmiids.lib |