Méthode ICaptureGraphBuilder2 ::FindInterface (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 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.]
La FindInterface
méthode recherche dans le graphique une interface spécifiée, en commençant à partir d’un filtre spécifié. Vous pouvez limiter la recherche à une section du graphique amont ou en aval du filtre, ou la restreindre à une catégorie d’épingle ou à un type de média particulier.
Syntaxe
HRESULT FindInterface(
[in] const GUID *pCategory,
[in] const GUID *pType,
[in] IBaseFilter *pf,
[in] REFIID riid,
[out] void **ppint
);
Paramètres
[in] pCategory
Pointeur vers un GUID qui spécifie les critères de recherche. Pour plus d'informations, consultez la section Notes. Les valeurs suivantes sont possibles :
- &LOOK_UPSTREAM_ONLY.
- &LOOK_DOWNSTREAM_ONLY.
- Une des catégories d’épingles répertoriées dans Pin Property Set.
- NULL
[in] pType
Pointeur vers un GUID qui spécifie le type de média principal d’une broche de sortie, ou NULL.
[in] pf
Pointeur vers l’interface IBaseFilter du filtre. La méthode commence la recherche à partir de ce filtre.
[in] riid
Identificateur d’interface (IID) de l’interface à localiser.
[out] ppint
Adresse d’une variable qui reçoit le pointeur d’interface. Veillez à libérer le pointeur d’interface récupéré lorsque vous avez terminé avec l’interface.
Valeur retournée
Retourne une valeur HRESULT . Les valeurs possibles sont les suivantes.
Code de retour | Description |
---|---|
|
Réussite. |
|
Échec. |
|
Aucune interface de ce type n’est prise en charge. |
|
Argument pointeur NULL . |
Remarques
Dans un graphique de capture, différents filtres et broches peuvent exposer des interfaces permettant de définir des propriétés telles que des paramètres de compression (IAMVideoCompression) ou des formats de flux (IAMStreamConfig). Selon le périphérique de capture, d’autres interfaces utiles peuvent inclure IAMCrossbar, qui achemine les signaux analogiques, ou IAMTVTuner, qui contrôle un appareil tuner TV. Vous pouvez utiliser cette méthode pour rechercher une interface, sans écrire de code spécial qui traverse le graphique.
- Filtre
- Broches du filtre
- Tous les filtres en aval, y compris leurs broches
- Tous les filtres amont, y compris leurs broches
- Si pCategory est égal &LOOK_UPSTREAM_ONLY, la recherche commence à partir des broches d’entrée du filtre et se poursuit amont. Il n’inclut pas le filtre ou quoi que ce soit en aval du filtre. Le paramètre pType est ignoré.
- Si pCategory est égal à &LOOK_DOWNSTREAM_ONLY, la recherche commence à partir des broches de sortie du filtre et se poursuit en aval. Il n’inclut pas le filtre ou quoi que ce soit amont du filtre. Le paramètre pType est ignoré.
- Si pCategory spécifie une catégorie d’épingle, la partie en aval de la recherche est limitée aux broches de sortie sur le filtre qui correspondent à la fois à la catégorie de broche et au type de média indiqué dans le paramètre pType . Dans ce cas, la méthode recherche également le filtre et tout ce qui amont à partir du filtre.
Les catégories d’épingles sont utiles pour rechercher des interfaces d’épingle sur des filtres de capture. Par exemple, un filtre de capture peut avoir des broches distinctes pour la capture et l’aperçu. Si vous spécifiez une catégorie d’épingle, vous devez également spécifier le type de média pour vous assurer que la méthode sélectionne le filtre et l’épingle appropriés.
Certains filtres de capture vidéo ont une broche de port vidéo (PIN_CATEGORY_VIDEOPORT) au lieu d’une broche d’aperçu. Si vous spécifiez PIN_CATEGORY_PREVIEW et MEDIATYPE_Video, la méthode traite les broches de port vidéo comme des broches d’aperçu. Votre application n’a pas besoin de tester cette possibilité.
Filtres de prise en charge. Si un périphérique de capture utilise un pilote WDM (Windows Driver Model), le graphique peut nécessiter certains filtres amont à partir du filtre de capture vidéo WDM, par exemple un filtre Tuner TV ou un filtre de barre croisée vidéo analogique. Si le paramètre pCategory n’est pas égal à NULL, cette méthode insère automatiquement les filtres WDM requis dans le graphique. Pour ce faire, il interroge les broches d’entrée sur le filtre de capture pour déterminer les supports qu’elles prennent en charge et les connecte aux filtres correspondants. Si le paramètre pCategory a la valeur NULL, la méthode n’ajoute pas les filtres amont.
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 |