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.

Syntaxe

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
);

Paramètres

[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 .

Valeur retournée

Retourne une valeur HRESULT . Les valeurs possibles incluent celles indiquées dans le tableau suivant.

Code de retour Description
S_OK
Succès
E_FAIL
Échec
E_OUTOFMEMORY
Mémoire insuffisante
E_POINTER
Argument pointeur NULL

Remarques

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 ;

DWORD cInTypes = 1;

Pour les broches de sortie, transmettez un tableau similaire dans le paramètre pOutputTypes et spécifiez le nombre de paires GUID dans le paramètre cOutputTypes .

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.

Configuration requise

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

Voir aussi

Codes d’erreur et de réussite

IFilterMapper2, interface