Méthode IFilterMapper2 ::EnumMatchingFilters (strmif.h)
[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.]
La EnumMatchingFilters
méthode énumère les filtres inscrits qui répondent aux exigences spécifiées.
HRESULT EnumMatchingFilters(
[out] IEnumMoniker **ppEnum,
[in] DWORD dwFlags,
[in] BOOL bExactMatch,
[in] DWORD dwMerit,
[in] BOOL bInputNeeded,
[in] DWORD cInputTypes,
[in] const GUID *pInputTypes,
[in] const REGPINMEDIUM *pMedIn,
[in] const CLSID *pPinCategoryIn,
[in] BOOL bRender,
[in] BOOL bOutputNeeded,
[in] DWORD cOutputTypes,
[in] const GUID *pOutputTypes,
[in] const REGPINMEDIUM *pMedOut,
[in] const CLSID *pPinCategoryOut
);
[out] ppEnum
Reçoit un pointeur vers l’interface IEnumMoniker . Utilisez ce pointeur d’interface pour récupérer les monikers de filtre de l’énumération. L’appelant doit libérer l’interface.
[in] dwFlags
Réservé, doit être égal à zéro.
[in] bExactMatch
Valeur booléenne indiquant si une correspondance exacte est requise. Pour plus d'informations, consultez la section Notes.
[in] dwMerit
Valeur de mérite minimale. L’énumération exclut les filtres avec une valeur de mérite inférieure. Pour obtenir la liste des valeurs de mérite, consultez Mérite. Si dwMerit est supérieur à MERIT_DO_NOT_USE, l’énumération exclut également les filtres dont la catégorie a un mérite inférieur ou égal à MERIT_DO_NOT_USE. (Voir Filtrer les catégories.)
[in] bInputNeeded
Valeur booléenne indiquant si le filtre doit avoir une broche d’entrée. Si la valeur est TRUE, le filtre doit avoir au moins une broche d’entrée.
[in] cInputTypes
Nombre de types de supports d’entrée spécifiés dans pInputTypes.
[in] pInputTypes
Pointeur vers un tableau de paires GUID qui spécifient les principaux types et sous-types, pour que les broches d’entrée correspondent. La taille du tableau est de 2 * cInputTypes. Le tableau peut avoir la valeur NULL. Les membres individuels du tableau peuvent être GUID_NULL, ce qui correspond à n’importe quel type. (Voir Types de médias.)
[in] pMedIn
Pointeur vers une structure REGPINMEDIUM spécifiant le support pour les broches d’entrée. Si ce n’est pas nécessaire, définissez la valeur NULL .
[in] pPinCategoryIn
Pointeur vers un GUID qui spécifie la catégorie de broche d’entrée. (Voir Pin Property Set.) Si ce n’est pas nécessaire, définissez la valeur NULL .
[in] bRender
Valeur booléenne qui spécifie si le filtre doit restituer son entrée. Si la valeur est TRUE, le filtre spécifié doit restituer son entrée. (Cette valeur correspond au champ bRendered dans la structure REGFILTERPINS , qui est utilisé pour inscrire des informations sur les broches du filtre.)
[in] bOutputNeeded
Valeur booléenne spécifiant si le filtre doit avoir une broche de sortie. Si la valeur est TRUE, le filtre doit avoir au moins une broche de sortie.
[in] cOutputTypes
Nombre de types de médias d’entrée spécifiés dans pOutputTypes.
[in] pOutputTypes
Pointeur vers un tableau de paires GUID qui spécifient les principaux types et sous-types, pour que les broches de sortie correspondent. La taille du tableau est de 2 * cOutputTypes. Le tableau peut avoir la valeur NULL. Les membres individuels du tableau peuvent être GUID_NULL, ce qui correspond à n’importe quel type.
[in] pMedOut
Pointeur vers une structure REGPINMEDIUM spécifiant le support pour les broches de sortie. Si ce n’est pas nécessaire, définissez la valeur NULL .
[in] pPinCategoryOut
Pointeur vers un GUID qui spécifie la catégorie de broche de sortie. (Voir Pin Property Set.) Si ce n’est pas nécessaire, définissez la valeur NULL .
Retourne une valeur HRESULT . Les valeurs possibles incluent celles indiquées dans le tableau suivant.
Code de retour | Description |
---|---|
|
Succès |
|
Échec |
|
Mémoire insuffisante |
|
Argument pointeur NULL |
Pour rechercher des filtres dont les broches d’entrée correspondent à un ensemble donné de types multimédias, déclarez un tableau avec des GUID de type principal et des GUID de sous-type classés par paires. Transmettez l’adresse du tableau dans le paramètre pInputTypes et définissez le paramètre cInputTypes sur le nombre de paires (autrement dit, la moitié de la taille du tableau) :
C++ |
---|
GUID arrayInTypes[2] ; arrayInTypes[0] = MEDIATYPE_Video ; arrayInTypes[1] = GUID_NULL ; |
Si la valeur du paramètre bExactMatch est TRUE, cette méthode recherche des filtres qui correspondent exactement aux valeurs que vous spécifiez pour le type de média, la catégorie de broche et le support de broche. Si la valeur est FALSE, les filtres qui inscrivent une valeur NULL pour l’un de ces éléments sont considérés comme une correspondance. (En effet, une valeur NULL dans le Registre agit comme un caractère générique.)
Si vous spécifiez NULL pour le type de média, la catégorie de broche ou le support de broche, tout filtre est considéré comme une correspondance pour ce paramètre.
Si une broche n’a inscrit aucun type de média, cette méthode ne la considère pas comme une correspondance pour le type de média.
Condition requise | Valeur |
---|---|
Client minimal pris en charge | Windows 2000 Professionnel [applications de bureau uniquement] |
Serveur minimal pris en charge | Windows 2000 Server [applications de bureau uniquement] |
Plateforme cible | Windows |
En-tête | strmif.h (include Dshow.h) |
Bibliothèque | Strmiids.lib |