Méthode IFilterGraph2::AddSourceFilterForMoniker (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 AddSourceFilterForMoniker méthode crée un filtre source à partir d’un pointeur IMoniker et ajoute le filtre au graphique. Par exemple, vous pouvez obtenir un moniker pour un appareil système, tel qu’un appareil de capture vidéo, et ajouter un filtre de capture vidéo pour cet appareil. (Pour plus d’informations sur les monikers d’appareil système, consultez l’interface ICreateDevEnum .)

Syntaxe

HRESULT AddSourceFilterForMoniker(
  [in]  IMoniker    *pMoniker,
  [in]  IBindCtx    *pCtx,
  [in]  LPCWSTR     lpcwstrFilterName,
  [out] IBaseFilter **ppFilter
);

Paramètres

[in] pMoniker

Pointeur vers l’interface IMoniker .

[in] pCtx

Pointeur vers une interface de contexte de liaison IBindCtx .

[in] lpcwstrFilterName

Nom du filtre.

[out] ppFilter

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

Valeur renvoyée

Retourne et la valeur HRESULT . Les valeurs possibles sont les suivantes.

Code de retour Description
S_OK
Opération réussie.
VFW_S_DUPLICATE_NAME
Succès; mais le nom spécifié étant un doublon, le Gestionnaire de graphe de filtre a modifié le nom.
E_FAIL
Échec.
E_OUTOFMEMORY
Mémoire insuffisante.
VFW_E_DUPLICATE_NAME
Échec de l’ajout d’un filtre avec un nom en double.
VFW_E_CANNOT_LOAD_SOURCE_FILTER
Impossible de charger le filtre source pour.
VFW_E_UNKNOWN_FILE_TYPE
Le type de média de ce fichier n’est pas reconnu.

Notes

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

Exemples

C++
IBaseFilter *pSource = NULL; IMoniker *pMoniker = NULL;

Utilisez IEnumMonikers pour obtenir le pointeur IMoniker. (Non affiché.)

// Create a bind context for working with the moniker. IBindCtx pContext=0; hr = CreateBindCtx(0, &pContext); if (SUCCEEDED(hr)) { // Query the Filter Graph Manager for IFilterGraph2. IFilterGraph2 pFG2 = NULL; hr = pGraph->QueryInterface(IID_IFilterGraph2, (void)&pFG2); if (SUCCEEDED(hr)) { // Create the source filter. hr = pFG2->AddSourceFilterForMoniker(pMoniker, pContext, L"Source", &pSource); pFG2->Release(); } pContext->Release(); } pMoniker->Release();

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

IFilterGraph2, interface