MFTRegisterLocal 函数 (mfapi.h)

在调用方进程中 (MFT) 注册媒体基础转换。

语法

HRESULT MFTRegisterLocal(
  [in] IClassFactory                *pClassFactory,
  [in] REFGUID                      guidCategory,
  [in] LPCWSTR                      pszName,
  [in] UINT32                       Flags,
  [in] UINT32                       cInputTypes,
  [in] const MFT_REGISTER_TYPE_INFO *pInputTypes,
  [in] UINT32                       cOutputTypes,
  [in] const MFT_REGISTER_TYPE_INFO *pOutputTypes
);

参数

[in] pClassFactory

指向类工厂对象的 IClassFactory 接口的指针。 类工厂创建 MFT。

[in] guidCategory

指定 MFT 类别的 GUID。 有关 MFT 类别的列表,请参阅 MFT_CATEGORY

[in] pszName

一个以 null 结尾的宽字符字符串,包含 MFT 的友好名称。

[in] Flags

_MFT_ENUM_FLAG枚举中的零个或多个标志的按位 OR

[in] cInputTypes

pInputTypes 数组中的元素数。

[in] pInputTypes

指向MFT_REGISTER_TYPE_INFO结构的数组 指针。 数组的每个成员指定 MFT 支持的输入格式。 如果 cInputTypes 为零,此参数可以为 NULL

[in] cOutputTypes

pOutputTypes 数组中的元素数。

[in] pOutputTypes

指向MFT_REGISTER_TYPE_INFO结构的数组 指针。 数组的每个成员定义 MFT 支持的输出格式。 如果 cOutputTypes 为零,此参数可以为 NULL

返回值

如果此函数成功,则返回 S_OK。 否则,将返回 HRESULT 错误代码。

注解

此函数的主要用途是使 MFT 可用于自动拓扑解析,而不使 MFT 可用于其他进程或应用程序。

调用此函数后,可以通过使用 MFT_ENUM_FLAG_LOCALMFT 标志调用 MFTEnumEx 函数来枚举 MFT。 MFT 可以从同一进程内枚举,但对其他进程不可见。

pClassFactory 参数指定用于创建 MFT 的类工厂对象。 类工厂的 IClassFactory::CreateInstance 方法必须返回支持 IMFTransform 接口的对象。

注意MFTEnumEx 函数检索 IMFActivate 指针的列表。 但是,类工厂不需要支持 IMFActivate 接口。 相反, MFTEnumEx 函数提供用于包装类工厂的 IMFActivate 的实现。
 
若要从当前进程注销 MFT,请调用 MFTUnregisterLocal

如果需要在受保护的媒体路径 (PMP) 过程中注册 MFT,请使用 IMFLocalMFTRegistration 接口。

要求

要求
最低受支持的客户端 Windows 7 [仅限桌面应用]
最低受支持的服务器 Windows Server 2008 R2 [仅限桌面应用]
目标平台 Windows
标头 mfapi.h
Library Mfplat.lib
DLL Mfplat.dll

另请参阅

MFTRegisterLocalByCLSID

媒体基础函数