Deklarieren der Factoryvorlage
[Das dieser Seite zugeordnete Feature DirectShow ist ein Legacyfeature. Es wurde von MediaPlayer, IMFMediaEngine und Audio/Video Capture in Media Foundation abgelöst. Diese Features wurden für Windows 10 und Windows 11 optimiert. Microsoft empfiehlt dringend, dass neuer Code mediaPlayer, IMFMediaEngine und Audio/Video Capture in Media Foundation anstelle von DirectShow verwendet, wenn möglich. Microsoft schlägt vor, dass vorhandener Code, der die Legacy-APIs verwendet, so umgeschrieben wird, dass nach Möglichkeit die neuen APIs verwendet werden.]
Der nächste Schritt besteht darin, die Factoryvorlage für Ihren Filter zu deklarieren. Eine Factoryvorlage ist eine C++-Klasse, die Informationen für die Klassenfactory enthält. Deklarieren Sie in Der DLL ein globales Array von CFactoryTemplate-Objekten , eines für jeden Filter oder jede COM-Komponente in Ihrer DLL. Das Array muss g_Templates benannt werden. Weitere Informationen zu Factoryvorlagen finden Sie unter Erstellen einer DirectShow-Filter-DLL.
Der m_pAMovieSetup_Filter Member der Factoryvorlage ist ein Zeiger auf die zuvor beschriebene AMOVIESETUP_FILTER-Struktur . Das folgende Beispiel zeigt eine Factoryvorlage, die die im vorherigen Beispiel angegebene Struktur verwendet:
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]);
Wenn Sie keine Filterinformationen deklariert haben, kann m_pAMoveSetup_FilterNULL sein.
Zugehörige Themen