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 |
---|---|
|
Succès |
|
Échec |
|
Mémoire insuffisante |
|
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; |
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 |