Объявление шаблона фабрики

[Функция, связанная с этой страницей, DirectShow, является устаревшей функцией. Он был заменен MediaPlayer, IMFMediaEngineи захватом аудио и видео в Media Foundation. Эти функции оптимизированы для Windows 10 и Windows 11. Корпорация Майкрософт настоятельно рекомендует использовать новый код MediaPlayer, IMFMediaEngine и аудио-видеозахват в Media Foundation вместо DirectShowпо возможности. Корпорация Майкрософт предлагает, что существующий код, использующий устаревшие API, будет перезаписан для использования новых API, если это возможно.]

Следующим шагом является объявление шаблона фабрики для фильтра. Шаблон фабрики — это класс C++, содержащий сведения о фабрике классов. В библиотеке DLL объявите глобальный массив объектов CFactoryTemplate, по одному для каждого фильтра или com-компонента в библиотеке DLL. Массив должен быть назван g_Templates. Дополнительные сведения о шаблонах фабрики см. в разделе Создание библиотеки DLL фильтра DirectShow.

Элемент 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.

Регистрация фильтров DirectShow