MFTRegisterLocal function (mfapi.h)

Registers a Media Foundation transform (MFT) in the caller's process.

Syntax

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
);

Parameters

[in] pClassFactory

A pointer to the IClassFactory interface of a class factory object. The class factory creates the MFT.

[in] guidCategory

A GUID that specifies the category of the MFT. For a list of MFT categories, see MFT_CATEGORY.

[in] pszName

A wide-character null-terminated string that contains the friendly name of the MFT.

[in] Flags

A bitwise OR of zero or more flags from the _MFT_ENUM_FLAG enumeration.

[in] cInputTypes

The number of elements in the pInputTypes array.

[in] pInputTypes

A pointer to an array of MFT_REGISTER_TYPE_INFO structures. Each member of the array specifies an input format that the MFT supports. This parameter can be NULL if cInputTypes is zero.

[in] cOutputTypes

The number of elements in the pOutputTypes array.

[in] pOutputTypes

A pointer to an array of MFT_REGISTER_TYPE_INFO structures. Each member of the array defines an output format that the MFT supports. This parameter can be NULL if cOutputTypes is zero.

Return value

If this function succeeds, it returns S_OK. Otherwise, it returns an HRESULT error code.

Remarks

The primary purpose of this function is to make an MFT available for automatic topology resolution without making the MFT available to other processes or applications.

After you call this function, the MFT can be enumerated by calling the MFTEnumEx function with the MFT_ENUM_FLAG_LOCALMFT flag. The MFT can be enumerated from within the same process, but is not visible to other processes.

The pClassFactory parameter specifies a class factory object that creates the MFT. The class factory's IClassFactory::CreateInstance method must return an object that supports the IMFTransform interface.

Note  The MFTEnumEx function retrieves a list of IMFActivate pointers. However, the class factory does not need to support the IMFActivate interface. Instead, the MFTEnumEx function provides an implementation of IMFActivate that wraps the class factory.
 
To unregister the MFT from the current process, call MFTUnregisterLocal.

If you need to register an MFT in the Protected Media Path (PMP) process, use the IMFLocalMFTRegistration interface.

Requirements

Requirement Value
Minimum supported client Windows 7 [desktop apps only]
Minimum supported server Windows Server 2008 R2 [desktop apps only]
Target Platform Windows
Header mfapi.h
Library Mfplat.lib
DLL Mfplat.dll

See also

MFTRegisterLocalByCLSID

Media Foundation Functions