Déclaration du modèle de fabrique

[La fonctionnalité associée à cette page, DirectShow, est une fonctionnalité héritée. Il a été remplacé par MediaPlayer, IMFMediaEngine et Audio/Video Capture dans Media Foundation. Ces fonctionnalités ont été optimisées pour Windows 10 et Windows 11. Microsoft recommande vivement au nouveau code d’utiliser MediaPlayer, IMFMediaEngine et La capture audio/vidéo dans Media Foundation au lieu de DirectShow, lorsque cela est possible. Microsoft suggère que le code existant qui utilise les API héritées soit réécrit pour utiliser les nouvelles API si possible.]

L’étape suivante consiste à déclarer le modèle de fabrique pour votre filtre. Un modèle de fabrique est une classe C++ qui contient des informations sur la fabrique de classes. Dans votre DLL, déclarez un tableau global d’objets CFactoryTemplate , un pour chaque filtre ou composant COM de votre DLL. Le tableau doit être nommé g_Templates. Pour plus d’informations sur les modèles d’usine, consultez Création d’une DLL de filtre DirectShow.

Le m_pAMovieSetup_Filter membre du modèle de fabrique est un pointeur vers la structure AMOVIESETUP_FILTER décrite précédemment. L’exemple suivant montre un modèle de fabrique, à l’aide de la structure donnée dans l’exemple précédent :

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 vous n’avez déclaré aucune information de filtre, m_pAMoveSetup_Filter peut avoir la valeur NULL.

Comment inscrire des filtres DirectShow