Partager via


IGraphBuilder ::AddSourceFilter, méthode (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 AddSourceFilter méthode ajoute un filtre source pour un fichier spécifié au graphe de filtre.

Syntaxe

HRESULT AddSourceFilter(
  [in]  LPCWSTR     lpcwstrFileName,
  [in]  LPCWSTR     lpcwstrFilterName,
  [out] IBaseFilter **ppFilter
);

Paramètres

[in] lpcwstrFileName

Spécifie le nom du fichier à charger.

[in] lpcwstrFilterName

Spécifie un nom pour le filtre source.

[out] ppFilter

Reçoit un pointeur vers l’interface IBaseFilter du filtre. L’appelant doit libérer l’interface.

Valeur retournée

Retourne un HRESULT. Les valeurs possibles sont les suivantes.

Code de retour Description
S_OK
Réussite.
E_NOINTERFACE
Le filtre source ne prend pas en charge l’interface IFileSourceFilter .
E_OUTOFMEMORY
Mémoire insuffisante.
E_POINTER
Argument pointeur NULL .
VFW_E_CANNOT_LOAD_SOURCE_FILTER
Impossible de charger le filtre source de ce fichier.
VFW_E_NOT_FOUND
Fichier ou objet introuvable.
VFW_E_UNKNOWN_FILE_TYPE
Le type de média de ce fichier n’a pas été reconnu.

Remarques

Cette méthode recherche un filtre installé qui peut lire le fichier spécifié. Si elle en trouve un, la méthode l’ajoute au graphe de filtre et retourne un pointeur vers l’interface IBaseFilter du filtre. Pour déterminer le type de média et le schéma de compression du fichier, le Gestionnaire de graphes de filtre lit les premiers octets du fichier, en recherchant des modèles spécifiques d’octets, comme indiqué dans l’article Inscription d’un type de fichier personnalisé.

L’application est responsable de la génération du reste du graphe de filtre. Pour ce faire, appelez IBaseFilter ::EnumPins pour énumérer les broches de sortie sur le filtre source. Utilisez ensuite la méthode IGraphBuilder ::Connect ou la méthode IGraphBuilder ::Render .

Si la méthode réussit, l’interface IBaseFilter a un nombre de références en suspens. L’appelant doit libérer l’interface.

Pour restituer un fichier en vue d’une lecture par défaut, utilisez la méthode IGraphBuilder ::RenderFile .

Le Gestionnaire de graphes de filtre contient un nombre de références sur le filtre jusqu’à ce que le filtre soit supprimé du graphe ou que le gestionnaire de graphes de filtre soit libéré.

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

IGraphBuilder Interface