IFilterMapper2::RegisterFilter 方法 (strmif.h)

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

方法 RegisterFilter 将筛选器信息添加到注册表。

语法

HRESULT RegisterFilter(
  [in]      REFCLSID         clsidFilter,
  [in]      LPCWSTR          Name,
  [in, out] IMoniker         **ppMoniker,
  [in]      const CLSID      *pclsidCategory,
  [in]      LPCOLESTR        szInstance,
  [in]      const REGFILTER2 *prf2
);

参数

[in] clsidFilter

类标识符 (筛选器的 CLSID) 。

[in] Name

筛选器的描述性名称。

[in, out] ppMoniker

指向确定此筛选器数据写入位置的设备名字对象的指针的地址。 可以为 NULL

[in] pclsidCategory

指向筛选器的筛选器类别的指针。 如果 为 NULL,则默认类别为CLSID_ActiveMovieFilters。 (请参阅 筛选器类别。)

[in] szInstance

用于构造设备名字对象的显示名称的实例数据。 可以是筛选器 CLSID 的友好名称或字符串表示形式。 如果 为 NULL,则默认为筛选器 CLSID。

[in] prf2

指向包含筛选器信息的 REGFILTER2 结构的指针。

返回值

返回 HRESULT 值。 可能的值包括下表中显示的值。

返回代码 说明
S_OK
成功。
VFW_E_BAD_KEY
无法获取注册表项。

注解

此方法在指定筛选器类别的注册表项下,将有关筛选器的信息添加到注册表中。 它不会注册创建筛选器的进程内服务器, (通常为 DLL) 。 若要注册服务器,可以调用 AMovieDllRegisterServer2 函数。

对于 ppMoniker 参数,请使用下列方法之一:

  • 现有设备名字对象的 IMoniker 接口指针的地址
  • NULLIMoniker 接口指针的地址
  • NULL
如果要注册 Windows 驱动程序模型 (WDM) 或即插即用设备的筛选器,请传递现有设备名字对象的地址。 筛选器将使用此名字对象进行注册。 当方法返回时, *ppMoniker 设置为 NULL

否则, 方法将创建一个新的名字对象。 如果 ppMoniker 为非 NULL,该方法将 *ppMoniker 设置为指向新的名字对象。 应用程序可以使用此名字对象在属性包中写入其他私有值。 请务必释放 接口。

如果不想提供或接收名字对象,请将 ppMoniker 设置为 NULL

要求

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

另请参阅

错误和成功代码

IFilterMapper2 接口