Поделиться через


Класс CFactoryTemplate

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

Предоставляет шаблон для создания фабрик классов.

В DirectShow фабрики классов специализированы с помощью класса CFactoryTemplate , также называемого шаблоном фабрики. Каждая фабрика класса содержит указатель на шаблон фабрики. Шаблон фабрики содержит сведения о COM-объекте, включая идентификатор класса объекта (CLSID) и указатель на функцию, создающую объект.

В библиотеке DLL объявите глобальный массив шаблонов фабрики с именем g_Templates. Включите один шаблон фабрики для каждого объекта в библиотеку DLL. Когда функция DllGetClassObject создает новую фабрику классов, она ищет в массиве шаблон с соответствующим идентификатором CLSID. При условии, что он найдет его, он создает фабрику классов, которая содержит указатель на соответствующий шаблон. Когда клиент вызывает IClassFactory::CreateInstance, фабрика класса вызывает функцию создания экземпляров, определенную в шаблоне.

Дополнительные сведения см. в статье Создание библиотеки DLL фильтра DirectShow.

Открытые переменные-члены Описание
m_Name Имя фильтра.
m_ClsID Указатель на ИДЕНТИФИКАТОР CLSID объекта .
m_lpfnNew Указатель на функцию, создающую экземпляр объекта .
m_lpfnInit Указатель на функцию, которая вызывается из точки входа DLL.
m_pAMovieSetup_Filter Указатель на структуру AMOVIESETUP_FILTER .
Открытые методы Описание
IsClassID Определяет, соответствует ли CLSID этому шаблону класса.
CreateInstance Вызывает функцию создания объектов для класса .

Требования

Требование Значение
Заголовок
Combase.h (включая Streams.h)
Библиотека
Strmbase.lib;
Strmbasd.lib

См. также раздел

Справочник по базовому классу