ファクトリ テンプレートの宣言
[このページに関連付けられている機能 DirectShow は、従来の機能です。 MediaPlayer、IMFMediaEngine、および Media Foundation のオーディオ/ビデオ キャプチャに置き換わりました。 これらの機能は、Windows 10とWindows 11用に最適化されています。 新しいコードでは、可能であれば、DirectShow ではなく Media Foundation で MediaPlayer、IMFMediaEngine、Audio/Video Capture を使用することを強くお勧めします。 Microsoft は、従来の API を使用する既存のコードを、可能であれば新しい API を使用するように書き直すよう提案しています。]
次の手順では、フィルターのファクトリ テンプレートを宣言します。 ファクトリ テンプレートは、クラス ファクトリの情報を含む C++ クラスです。 DLL で、DLL 内のフィルターまたは COM コンポーネントごとに 1 つずつ、 CFactoryTemplate オブジェクトのグローバル配列を宣言します。 配列には 、g_Templatesという名前を付ける必要があります。 ファクトリ テンプレートの詳細については、「 DirectShow フィルター DLL を作成する方法」を参照してください。
ファクトリ テンプレートの m_pAMovieSetup_Filter メンバーは、前に説明した AMOVIESETUP_FILTER 構造体へのポインターです。 次の例は、前の例で示した構造を使用したファクトリ テンプレートを示しています。
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 にすることができます。
関連トピック