Partager via


Méthode CBaseStreamControl.SetFilterGraph

[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 SetFilterGraph méthode spécifie le récepteur d’événements pour les événements de contrôle de flux.

Syntaxe

void SetFilterGraph(
   IMediaEventSink *pSink
);

Paramètres

pSink

Pointeur vers l’interface IMediaEventSink du Gestionnaire de graphe de filtre ou NULL lorsque le filtre quitte le graphe de filtre.

Valeur renvoyée

Cette méthode ne retourne pas de valeur.

Notes

Appelez cette méthode à partir de la méthode IBaseFilter::JoinFilterGraph du filtre. La classe CBaseStreamControl utilise l’interface IMediaEventSink pour envoyer des événements EC_STREAM_CONTROL_STARTED et EC_STREAM_CONTROL_STOPPED .

Si votre filtre dérive de CBaseFilter, appelez d’abord la méthode CBaseFilter::JoinFilterGraph , qui définit la variable membre CBaseFilter::m_pSink . Passez ensuite m_pSink à la SetFilterGraph méthode. Notez que m_pSink a la valeur NULL lorsque le filtre quitte le graphe, ce qui est correct.

Exemples

STDMETHODIMP CMyFilter::JoinFilterGraph(IFilterGraph * pGraph, LPCWSTR pName)
{
    // Note: It's OK if pGraph is NULL.

    HRESULT hr = CBaseFilter::JoinFilterGraph(pGraph, pName);
    if (SUCCEEDED(hr)) 
    {
        m_pMyPin->SetFilterGraph(m_pSink);
    }
    return hr;
}

Configuration requise

Condition requise Valeur
En-tête
Strmctl.h (include Streams.h)
Bibliothèque
Strmbase.lib (builds de vente au détail) ;
Strmbasd.lib (builds de débogage)

Voir aussi

Classe CBaseStreamControl