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 | そのクラスのオブジェクト作成関数を呼び出す。 |