Partager via


Méthode IBaseFilter ::JoinFilterGraph (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 JoinFilterGraph méthode avertit le filtre qu’elle a rejoint ou quitté le graphe de filtre.

Syntaxe

HRESULT JoinFilterGraph(
  [in] IFilterGraph *pGraph,
  [in] LPCWSTR      pName
);

Paramètres

[in] pGraph

Pointeur vers l’interface IFilterGraph du Gestionnaire de graphes de filtre ou NULL si le filtre quitte le graphe.

[in] pName

Pointeur vers une chaîne à caractères larges qui spécifie un nom pour le filtre.

Valeur retournée

Retourne S_OK en cas de réussite ou une valeur HRESULT indiquant la cause de l’erreur.

Remarques

Lorsque le Gestionnaire de graphes de filtre ajoute un filtre au graphe de filtre, il appelle cette méthode avec un pointeur vers lui-même. Il attribue un nom à cette instance du filtre via le paramètre pName. Vous pouvez récupérer le nom en appelant la méthode IBaseFilter ::QueryFilterInfo .

Lorsque le Gestionnaire de graphes de filtre supprime le filtre du graphe, il appelle cette méthode avec un pointeur NULL .

Les applications ne doivent jamais appeler cette méthode. Pour ajouter un filtre au graphe, appelez la méthode IFilterGraph ::AddFilter sur le gestionnaire de graphe de filtre.

Filtrer les développeurs : le filtre peut stocker le pointeur d’interface IFilterGraph et l’interroger pour d’autres interfaces Filter Graph Manager. Toutefois, il ne doit jamais contenir de références sur le Gestionnaire de graphes de filtre. Cela crée un nombre de références circulaires, car le Gestionnaire de graphes de filtre conserve un nombre de références sur le filtre. Un nombre de références circulaires empêche la libération correcte de l’interface, ce qui peut entraîner un blocage. La validité de l’interface IFilterGraph est garantie jusqu’à ce que le Gestionnaire de graphes de filtre appelle à nouveau cette méthode avec la valeur NULL. Pour obtenir une implémentation de cette méthode, consultez la méthode CBaseFilter ::JoinFilterGraph .

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

IBaseFilter Interface