Disposition des clés de Registre

[La fonctionnalité associée à cette page, DirectShow, est une fonctionnalité héritée. Il a été remplacé par MediaPlayer, IMFMediaEngine et Audio/Video Capture in Media Foundation. Ces fonctionnalités ont été optimisées pour Windows 10 et Windows 11. Microsoft recommande vivement que le nouveau code utilise MediaPlayer, IMFMediaEngine et Audio/Video Capture dans Media Foundation au lieu de DirectShow, si 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.]

Les filtres DirectShow sont inscrits à deux emplacements :

  • La DLL qui contient le filtre est inscrite en tant que serveur COM du filtre. Lorsqu’une application appelle CoCreateInstance pour créer le filtre, la bibliothèque MICROSOFT Windows COM utilise cette entrée de Registre pour localiser la DLL.
  • Des informations supplémentaires sur le filtre peuvent être inscrites dans une catégorie de filtre. Ces informations permettent à l’énumérateur de périphérique système et au mappeur de filtre de localiser le filtre.

Les filtres ne sont pas nécessaires pour inscrire les informations de filtre supplémentaires. Tant que la DLL est inscrite en tant que serveur COM, une application peut créer le filtre et l’ajouter à un graphique de filtre. Toutefois, si vous souhaitez que votre filtre soit détectable par l’énumérateur de périphérique système ou le mappeur de filtre, vous devez inscrire les informations supplémentaires.

L’entrée de Registre pour la DLL comporte les clés suivantes :

HKEY_CLASSES_ROOT
    CLSID
        Filter CLSID 
            REG_SZ: (Default) = Friendly name

            InprocServer32
                REG_SZ: (Default) = File name of the DLL
                REG_SZ: ThreadingModel = Both

L’entrée de Registre pour les informations de filtre comporte les clés suivantes :

HKEY_CLASSES_ROOT
    CLSID
        Category
            Instance
                Filter CLSID
                    REG_SZ: CLSID = Filter CLSID
                    REG_BINARY: FilterData = Filter information
                    REG_SZ: FriendlyName = Friendly name
Category

est le GUID d’une catégorie de filtre. (Voir Catégories de filtres.) Les informations de filtre sont empaquetées dans un format binaire. L’interface IFilterMapper2 décompresse ces données lorsqu’elle recherche un filtre dans le Registre.

Tous les GUID de catégorie de filtre sont répertoriés dans le Registre sous la clé suivante :

HKEY_CLASSES_ROOT\CLSID\{DA4E3DA0-D07D-11d0-BD50-00A0C911CE86}\Instance