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 |
|
Biblioteca |
|