Condividi tramite


Metodo CBaseStreamControl.SetFilterGraph

[La funzionalità associata a questa pagina, DirectShow, è una funzionalità legacy. È stata sostituita da MediaPlayer, FMMediaEngine e Audio/Video Capture in Media Foundation. Queste funzionalità sono state ottimizzate per Windows 10 e Windows 11. Microsoft consiglia vivamente che il nuovo codice usi MediaPlayer, FMMediaEngine e Audio/Video Capture in Media Foundation anziché DirectShow, quando possibile. Microsoft suggerisce che il codice esistente che usa le API legacy venga riscritto per usare le nuove API, se possibile.

Il SetFilterGraph metodo specifica il sink eventi per gli eventi di controllo di flusso.

Sintassi

void SetFilterGraph(
   IMediaEventSink *pSink
);

Parametri

pSink

Puntatore all'interfaccia IMediaEventSink di Filter Graph Manager o NULL quando il filtro lascia il grafico del filtro.

Valore restituito

Questo metodo non restituisce valori.

Commenti

Chiamare questo metodo dall'interno del metodo IBaseFilter::JoinFilterGraph del filtro. La classe CBaseStreamControl usa l'interfaccia IMediaEventSink per inviare eventi di EC_STREAM_CONTROL_STARTED e EC_STREAM_CONTROL_STOPPED .

Se il filtro deriva da CBaseFilter, chiamare prima il metodo CBaseFilter::JoinFilterGraph , che imposta la variabile membro CBaseFilter ::m_pSink. Passare quindi m_pSink al SetFilterGraph metodo. Si noti che m_pSink è NULL quando il filtro lascia il grafico, che è corretto.

Esempio

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;
}

Requisiti

Requisito Valore
Intestazione
Strmctl.h (include Streams.h)
Libreria
Strmbase.lib (build al dettaglio);
Strmbasd.lib (build di debug)

Vedi anche

Classe CBaseStreamControl