注册 KS 代理插件

接口和属性页插件都必须将 KS 代理注册为 KS 代理扩展的提供程序。

若要注册插件,请在实现 COM 对象的 DLL 中导出名为 DllRegisterServerDllUnregisterServer 的函数。 这些函数在 Olectl.h 中声明,但用户定义。

可以将属性集的 GUID 重用为组件的 CLSID 和组件支持的接口的 IID。

DllRegisterServer 的实现应执行以下操作:

  1. 调用值为 TRUEAMovieDllRegisterServer2 以注册筛选器。

  2. 调用 RegCreateKeyEx 以创建并接收 HKLM\System\CurrentControlSet\Control\MediaInterfaces 密钥的句柄。

  3. 使用 RegSetValueEx 在 HKLM\System\CurrentControlSet\Control\MediaInterfaces 键下设置一个值,该键将属性集映射到接口处理程序。 有关接口处理程序的详细信息,请参阅 接口处理程序插件

  4. 由于项不是预定义的注册表项之一,因此调用 RegCloseKey 以关闭键的句柄。

  5. 调用 RegCreateKeyEx

  6. 使用 RegSetValueEx 在 HKLM\System\CurrentControlSet\Control\MediaSets\ 键下设置一个值,用于将属性集映射到属性页。 有关属性页插件的详细信息,请参阅 属性页插件

  7. 由于项不是预定义的注册表项之一,因此调用 RegCloseKey 以关闭键的句柄。

DllUnregisterServer 的实现应执行以下操作:

  1. 调用值为 FALSEAMovieDllRegisterServer2 以注销筛选器。

  2. 调用 RegCreateKeyEx 打开现有密钥。

  3. 使用 RegDeleteKey 删除子项。

  4. 调用 RegCloseKey 以关闭键的句柄。