Classe CFactoryTemplate

[O recurso associado a esta página, DirectShow, é um recurso herdado. Foi substituído por MediaPlayer, IMFMediaEngine e Audio/Video Capture in Media Foundation. Esses recursos foram otimizados para Windows 10 e Windows 11. A Microsoft recomenda fortemente que o novo código use MediaPlayer, IMFMediaEngine e Audio/Video Capture in Media Foundation em vez de DirectShow, quando possível. A Microsoft sugere que o código existente que usa as APIs herdadas seja reescrito para usar as novas APIs, se possível.]

Fornece um modelo para criar fábricas de classes.

No DirectShow, as fábricas de classes são especializadas usando a classe CFactoryTemplate , também chamada de modelo de fábrica. Cada fábrica de classes contém um ponteiro para um modelo de fábrica. O modelo de fábrica contém informações sobre um objeto COM, incluindo o CLSID (identificador de classe) do objeto e um ponteiro para uma função que cria o objeto.

Em sua DLL, declare uma matriz global de modelos de fábrica chamada g_Templates. Inclua um modelo de fábrica para cada objeto na DLL. Quando a função DllGetClassObject faz uma nova fábrica de classes, ela pesquisa na matriz um modelo com um CLSID correspondente. Supondo que encontre um, ele cria uma fábrica de classes que contém um ponteiro para o modelo correspondente. Quando o cliente chama IClassFactory::CreateInstance, a fábrica de classes chama a função de instanciação definida no modelo.

Para obter mais informações, consulte Como criar uma DLL de filtro do DirectShow.

Variáveis de membro público Descrição
m_Name Nome do filtro.
m_ClsID Ponteiro para o CLSID do objeto.
m_lpfnNew Ponteiro para uma função que cria uma instância do objeto .
m_lpfnInit Ponteiro para uma função que é chamada do ponto de entrada da DLL.
m_pAMovieSetup_Filter Ponteiro para uma estrutura AMOVIESETUP_FILTER .
Métodos públicos Descrição
IsClassID Determina se um CLSID corresponde a esse modelo de classe.
CreateInstance Chama a função de criação de objeto para a classe .

Requisitos

Requisito Valor
parâmetro
Combase.h (inclua Streams.h)
Biblioteca
Strmbase.lib;
Strmbasd.lib

Confira também

Referência de classe base