Share via


MFTRegister 函式 (mfapi.h)

將媒體基礎轉換的相關資訊 (MFT) 新增至登錄。

應用程式可以呼叫 MFTEnumMFTEnumEx 函式來列舉 MFT。

語法

HRESULT MFTRegister(
  [in] CLSID                  clsidMFT,
  [in] GUID                   guidCategory,
  [in] LPWSTR                 pszName,
  [in] UINT32                 Flags,
  [in] UINT32                 cInputTypes,
  [in] MFT_REGISTER_TYPE_INFO *pInputTypes,
  [in] UINT32                 cOutputTypes,
  [in] MFT_REGISTER_TYPE_INFO *pOutputTypes,
  [in] IMFAttributes          *pAttributes
);

參數

[in] clsidMFT

MFT 的 CLSID。 MFT 也必須使用相同的 CLSID 註冊為 COM 物件。

[in] guidCategory

指定 MFT 類別目錄的 GUID。 如需 MFT 類別清單,請參閱 MFT_CATEGORY

[in] pszName

寬字元字串,其中包含 MFT 的易記名稱。

[in] Flags

_MFT_ENUM_FLAG列舉中,位OR為零或多個下列旗標:

意義
MFT_ENUM_FLAG_ASYNCMFT
MFT 會在軟體中執行非同步處理。 請參閱 非同步 MFT。 此旗標不適用於硬體轉換。

需要 Windows 7。

MFT_ENUM_FLAG_FIELDOFUSE
應用程式必須解除鎖定 MFT 才能使用它。 請參閱 IMFFieldOfUseMFTUnlock

需要 Windows 7。

MFT_ENUM_FLAG_HARDWARE
MFT 會使用 AVStream 驅動程式或 GPU 型 Proxy MFT 來執行硬體型資料處理。 此類別中的 MFT 一律以非同步方式處理資料。 請參閱 硬體 MFT
注意 此旗標適用于完全在硬體中執行其工作的視訊編解碼器和視訊處理器。 它不適用於使用 DirectX 影片加速來協助解碼的軟體解碼器。
 
需要 Windows 7。
MFT_ENUM_FLAG_SYNCMFT
MFT 會在軟體中執行同步處理。 此旗標不適用於硬體轉換。
MFT_ENUM_FLAG_TRANSCODE_ONLY
MFT 已針對轉碼進行優化,不應用於播放。

需要 Windows 7。

 

旗標 設定為零相當於設定 MFT_ENUM_FLAG_SYNCMFT 旗標。 MFT 的預設處理模型是同步處理。

在 Windows 7 之前,已保留 Flags 參數。

[in] cInputTypes

pInputTypes陣列中的元素數目。

[in] pInputTypes

MFT_REGISTER_TYPE_INFO結構的陣列指標。 陣列的每個成員都會指定 MFT 支援的輸入格式。 此參數可以是 Null

此參數可以是 Null。 不過,如果 參數為 Null,只有在應用程式指定所需輸入類型的 Null 時,才會列舉 MFT。

[in] cOutputTypes

pOutputTypes陣列中的元素數目。

[in] pOutputTypes

MFT_REGISTER_TYPE_INFO結構的陣列指標。 陣列的每個成員都會定義 MFT 支援的輸出格式。

此參數可以是 Null。 不過,如果 參數為 Null,只有在應用程式指定所需輸出類型的 Null 時,才會列舉 MFT。

[in] pAttributes

包含其他登錄資訊之屬性存放區之 IMFAttributes 介面的指標。 此參數可以是 Null。 如果參數為非Null,則屬性會以位元組陣列的形式寫入登錄。 您可以使用 MFTGetInfo 函式來擷取屬性。

此參數定義了下列屬性:

意義
MFT_CODEC_MERIT_Attribute
包含硬體編解碼器的優點值。 請參閱 編解碼器優點

傳回值

如果此函式成功,則會傳回 S_OK。 否則,它會傳回 HRESULT 錯誤碼。

備註

此函式所建立的登錄專案是由下列函式讀取:

函式 描述
MFTEnum 依媒體類型和類別列舉 MFT。
MFTEnumEx MFTEnum的擴充版本。
MFTGetInfo 依 CLSID 查閱 MFT 並擷取登錄資訊。
 

此函式不會為 CoCreateInstanceCoGetClassObject 函式註冊 MFT 的 CLSID。

若要從登錄中移除專案,請呼叫 MFTUnregister。 如果您從系統移除 MFT,您應該一律呼叫 MFTUnregister

pInputTypespOutputTypes參數中提供的格式旨在協助應用程式依格式搜尋 MFT。 應用程式可以使用MFTEnum 或 MFTEnumEx函式來列舉符合特定格式集的 MFT。

建議在 pInputTypes 中指定至少一個輸入類型,並在 pOutputTypes 參數中指定一個輸出類型。 否則,可能會在列舉中略過 MFT。

在 64 位 Windows 上,此函式的 32 位版本會在登錄的 32 位節點中註冊 MFT。 如需詳細資訊,請參閱登錄 中的 32 位和 64 位應用程式資料

需求

   
最低支援的用戶端 Windows Vista [僅限傳統型應用程式]
最低支援的伺服器 Windows Server 2008 [僅限傳統型應用程式]
目標平台 Windows
標頭 mfapi.h
程式庫 Mfplat.lib
Dll Mfplat.dll

另請參閱

MFTEnumEx

媒體基礎函式

媒體基礎轉換

_MFT_ENUM_FLAG