Compartir a través de


Método CBaseStreamControl.SetFilterGraph

[La característica asociada a esta página, DirectShow, es una característica heredada. Se ha reemplazado por MediaPlayer, IMFMediaEngine y Captura de audio/vídeo en Media Foundation. Esas características se han optimizado para Windows 10 y Windows 11. Microsoft recomienda encarecidamente que el nuevo código use MediaPlayer, IMFMediaEngine y Audio/Video Capture en Media Foundation en lugar de DirectShow, siempre que sea posible. Microsoft sugiere que el código existente que usa las API heredadas se reescriba para usar las nuevas API si es posible.

El SetFilterGraph método especifica el receptor de eventos para los eventos de control de flujo.

Sintaxis

void SetFilterGraph(
   IMediaEventSink *pSink
);

Parámetros

pSink

Puntero a la interfaz IMediaEventSink del Administrador de gráficos de filtros o NULL cuando el filtro sale del gráfico de filtros.

Valor devuelto

Este método no devuelve ningún valor.

Observaciones

Llame a este método desde dentro del método IBaseFilter::JoinFilterGraph del filtro. La clase CBaseStreamControl usa la interfaz IMediaEventSink para enviar eventos EC_STREAM_CONTROL_STARTED y EC_STREAM_CONTROL_STOPPED .

Si el filtro se deriva de CBaseFilter, primero llame al método CBaseFilter::JoinFilterGraph , que establece la variable miembro CBaseFilter::m_pSink . A continuación, pase m_pSink al SetFilterGraph método . Tenga en cuenta que m_pSink es NULL cuando el filtro sale del gráfico, que es correcto.

Ejemplos

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 Value
Encabezado
Strmctl.h (include Streams.h)
Biblioteca
Strmbase.lib (compilaciones comerciales);
Strmbasd.lib (compilaciones de depuración)

Consulte también

CBaseStreamControl (clase)