共用方式為


宣告 Factory 範本

[與此頁面 相關的功能 DirectShow是舊版功能。 它已被 MediaPlayerIMFMediaEngineMedia Foundation 中的音訊/視訊擷取取代。 這些功能已針對Windows 10和Windows 11進行優化。 Microsoft 強烈建議新程式碼盡可能使用 MediaPlayerIMFMediaEngine音訊/視訊擷取 ,而不是 DirectShow。 Microsoft 建議盡可能重寫使用舊版 API 的現有程式碼,以使用新的 API。]

下一個步驟是宣告篩選的 Factory 範本。 Factory 範本是 C++ 類別,其中包含類別處理站的資訊。 在您的 DLL 中,宣告 CFactoryTemplate 物件的全域陣列,其中一個用於 DLL 中的每個篩選或 COM 元件。 陣列必須 命名為 g_Templates。 如需處理站範本的詳細資訊,請參閱 如何建立 DirectShow 篩選 DLL

Factory 範本 m_pAMovieSetup_Filter 成員是先前所述的 AMOVIESETUP_FILTER 結構的指標。 下列範例示範 Factory 範本,使用上一個範例中提供的 結構:

CFactoryTemplate g_Templates[] = {
    {
        g_wszName,                      // Name.
        &CLSID_SomeFilter,              // CLSID.
        CSomeFilter::CreateInstance,    // Creation function.
        NULL,
        &sudFilterReg                   // Pointer to filter information.
    }
};
int g_cTemplates = sizeof(g_Templates) / sizeof(g_Templates[0]);

如果您未宣告任何篩選資訊, m_pAMoveSetup_Filter 可以是 Null

如何註冊 DirectShow 篩選