Declarando o modelo de fábrica
[O recurso associado a esta página, DirectShow, é um recurso herdado. Ele foi substituído por MediaPlayer, IMFMediaEngine e Captura de Áudio/Vídeo na 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 Captura de Áudio/Vídeo no 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.]
A próxima etapa é declarar o modelo de fábrica para o filtro. Um modelo de fábrica é uma classe C++ que contém informações para a fábrica de classes. Em sua DLL, declare uma matriz global de objetos CFactoryTemplate , uma para cada filtro ou componente COM em sua DLL. A matriz deve ser nomeada g_Templates. Para obter mais informações sobre modelos de fábrica, confira Como criar uma DLL de filtro DirectShow.
O membro m_pAMovieSetup_Filter do modelo de fábrica é um ponteiro para a estrutura AMOVIESETUP_FILTER descrita anteriormente. O exemplo a seguir mostra um modelo de fábrica, usando a estrutura fornecida no exemplo anterior:
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]);
Se você não declarou nenhuma informação de filtro, m_pAMoveSetup_Filter pode ser NULL.
Tópicos relacionados