Declaración de la plantilla de fábrica
[La característica asociada a esta página, DirectShow, es una característica heredada. Se ha reemplazado por MediaPlayer, IMFMediaEngine y Captura de audio/vídeo en Media Foundation. Esas características se han optimizado para Windows 10 y Windows 11. Microsoft recomienda encarecidamente que el nuevo código use MediaPlayer, IMFMediaEngine y Audio/Video Capture en Media Foundation en lugar de DirectShow, siempre que sea posible. Microsoft sugiere que el código existente que usa las API heredadas se reescriba para usar las nuevas API si es posible.
El siguiente paso consiste en declarar la plantilla de fábrica para el filtro. Una plantilla de fábrica es una clase de C++ que contiene información para el generador de clases. En el archivo DLL, declare una matriz global de objetos CFactoryTemplate , uno para cada filtro o componente COM del archivo DLL. La matriz debe denominarse g_Templates. Para obtener más información sobre las plantillas de fábrica, consulte How to Create a DirectShow Filter DLL (Cómo crear un archivo DLL de filtro de DirectShow).
El miembro m_pAMovieSetup_Filter de la plantilla de fábrica es un puntero a la estructura AMOVIESETUP_FILTER descrita anteriormente. En el ejemplo siguiente se muestra una plantilla de fábrica con la estructura especificada en el ejemplo 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]);
Si no ha declarado ninguna información de filtro, m_pAMoveSetup_Filter puede ser NULL.
Temas relacionados