Compartilhar via


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.

Como registrar filtros do DirectShow