次の方法で共有


CFactoryTemplate クラス

クラス ファクトリを作成するテンプレートを提供する。

Microsoft® DirectShow® では、クラス ファクトリは、"ファクトリ テンプレート" とも呼ばれる CFactoryTemplate クラスによって特殊化される。各クラス ファクトリは、ファクトリ テンプレートへのポインタを保持する。ファクトリ テンプレートには、COM オブジェクトに関する情報 (オブジェクトのクラス ID (CLSID)、オブジェクトを作成した関数へのポインタなど) が格納される。

DLL では、ファクトリ テンプレートのグローバル配列を g_Templates という名前で宣言する。DLL 内の各オブジェクトに 1 つずつファクトリ テンプレートを追加する。DllGetClassObject 関数で新しいクラス ファクトリを作成するとき、この関数は一致する CLSID を持つテンプレートを配列から検索する。一致するものが見つかると、一致するテンプレートへのポインタを保持するクラス ファクトリを作成する。クライアントが IClassFactory::CreateInstance を呼び出すと、このクラス ファクトリはテンプレートに定義されているインスタンス化関数を呼び出す。

詳細については、「DLL の作成方法」を参照すること。

要件

ヘッダー: Combase.h で宣言し、Streams.h をインクルードする。

ライブラリ: Strmbase.lib (リテール ビルド) または Strmbasd.lib (デバッグ ビルド)。

パブリック メンバ変数  
m_Name フィルタの名前。
m_ClsID オブジェクトの CLSID へのポインタ。
m_lpfnNew オブジェクトのインスタンスを作成する関数へのポインタ。
m_lpfnInit DLL エントリ ポイントから呼び出される関数のポインタ。
m_pAMovieSetup_Filter AMOVIESETUP_FILTER 構造体へのポインタ。
パブリック メソッド  
IsClassID CLSID がこのクラス テンプレートと一致するかどうかを確認する。
CreateInstance そのクラスのオブジェクト作成関数を呼び出す。