Partilhar via


Método CBaseStreamControl.SetFilterGraph

[O recurso associado a esta página, DirectShow, é um recurso herdado. Foi substituído por MediaPlayer, IMFMediaEngine e Audio/Video Capture in Media Foundation. Esses recursos foram otimizados para Windows 10 e Windows 11. A Microsoft recomenda fortemente que o novo código use MediaPlayer, IMFMediaEngine e Audio/Video Capture in Media Foundation em vez de DirectShow, quando possível. A Microsoft sugere que o código existente que usa as APIs herdadas seja reescrito para usar as novas APIs, se possível.]

O SetFilterGraph método especifica o coletor de eventos para eventos de controle de fluxo.

Sintaxe

void SetFilterGraph(
   IMediaEventSink *pSink
);

Parâmetros

Psink

Ponteiro para a interface IMediaEventSink do Gerenciador de Gráficos de Filtro ou NULL quando o filtro sai do grafo de filtro.

Retornar valor

Esse método não retorna um valor.

Comentários

Chame esse método de dentro do método IBaseFilter::JoinFilterGraph do filtro. A classe CBaseStreamControl usa a interface IMediaEventSink para enviar eventos EC_STREAM_CONTROL_STARTED e EC_STREAM_CONTROL_STOPPED .

Se o filtro derivar de CBaseFilter, primeiro chame o método CBaseFilter::JoinFilterGraph , que define a variável de membro CBaseFilter::m_pSink . Em seguida , passe m_pSink para o SetFilterGraph método . Observe que m_pSink é NULL quando o filtro sai do grafo, o que está correto.

Exemplos

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

Requisitos

Requisito Valor
parâmetro
Strmctl.h (inclua Streams.h)
Biblioteca
Strmbase.lib (builds de varejo);
Strmbasd.lib (builds de depuração)

Confira também

Classe CBaseStreamControl