次の方法で共有


ファクトリ テンプレートの宣言

次のステップは、フィルタ用のファクトリ テンプレートの宣言である。ファクトリ テンプレートは、クラス ファクトリの情報を格納する C++ クラスである。DLL の中で、DLL 内のフィルタまたは COM コンポーネントごとに 1 つずつ、CFactoryTemplate オブジェクトのグローバル配列を宣言する。この配列の名前は g_Templates でなければならない。ファクトリ テンプレートの詳細については、「DLL の作成方法」を参照すること。

ファクトリ テンプレートの m_pAMovieSetup_Filter メンバは、前に説明した AMOVIESETUP_FILTER 構造体へのポインタである。次の例に、ファクトリ テンプレートを示す。前の例で示した構造体を使っている。

CFactoryTemplate g_Templates[] = {
    {
        g_wszName,                      // 名前。
        &CLSID_SomeFilter,              // CLSID。
        CSomeFilter::CreateInstance,    // 作成関数。
        NULL,
        &sudFilterReg                   // フィルタ情報へのポインタ。
    }
};
int g_cTemplates = sizeof(g_Templates) / sizeof(g_Templates[0]);

フィルタ情報を宣言していない場合、m_pAMoveSetup_Filter は NULL にできる。