Freigeben über


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.

Registrieren von DirectShow-Filtern