IFilterMapper2::EnumMatchingFilters, méthode (strmif.h)

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 à partir de l’énumération. L’appelant doit libérer l’interface.

[in] dwFlags

Réservé, doit être 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 moindre. 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 Catégories de filtres.)

[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 média d’entrée spécifiés dans pInputTypes.

[in] pInputTypes

Pointeur vers un tableau de paires GUID qui spécifient des types principaux et des sous-types, pour que les broches d’entrée correspondent. La taille du tableau est de 2 * cInputTypes. Le tableau peut être NULL. Les membres de tableau individuels 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. Définissez la valeur NULL si nécessaire.

[in] pPinCategoryIn

Pointeur vers un GUID qui spécifie la catégorie d’épingle d’entrée. (Voir Pin, propriété Set.) Définissez la valeur NULL si nécessaire.

[in] bRender

Valeur booléenne qui spécifie si le filtre doit afficher son entrée. Si true, le filtre spécifié doit afficher son entrée. (Cette valeur correspond au champ bRendered dans la structure REGFILTERPINS , qui est utilisée 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 true, le filtre doit avoir au moins une broche de sortie.

[in] cOutputTypes

Nombre de types de média d’entrée spécifiés dans pOutputTypes.

[in] pOutputTypes

Pointeur vers un tableau de paires GUID qui spécifient les types principaux et les sous-types, pour que les broches de sortie correspondent. La taille du tableau est de 2 * cOutputTypes. Le tableau peut être NULL. Les membres de tableau individuels 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. Définissez la valeur NULL si nécessaire.

[in] pPinCategoryOut

Pointeur vers un GUID qui spécifie la catégorie d’épingle de sortie. (Voir Pin, propriété Set.) Définissez la valeur NULL si nécessaire.

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 du 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 majeur et des GUID de sous-type classés en paires. Passez l’adresse de tableau dans le paramètre pInputTypes et définissez le paramètre cInputTypes égal au 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 multimédia, la catégorie d’épingle et le support d’épingle. 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 multimédia, la catégorie d’épingle ou le support de broche, tout filtre est considéré comme une correspondance pour ce paramètre.

Si une broche n’a pas inscrit de types multimédias, cette méthode ne le considère pas comme une correspondance pour le type de média.

Configuration requise

   
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