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