Bagikan melalui


Metode CBaseStreamControl.SetFilterGraph

[Fitur yang terkait dengan halaman ini, DirectShow, adalah fitur warisan. Ini telah digantikan oleh MediaPlayer, IMFMediaEngine, dan Tangkapan Audio/Video di Media Foundation. Fitur-fitur tersebut telah dioptimalkan untuk Windows 10 dan Windows 11. Microsoft sangat menyarankan agar kode baru menggunakan MediaPlayer, IMFMediaEngine dan Audio/Video Capture di Media Foundation alih-alih DirectShow, jika memungkinkan. Microsoft menyarankan agar kode yang ada yang menggunakan API warisan ditulis ulang untuk menggunakan API baru jika memungkinkan.]

Metode SetFilterGraph menentukan sink peristiwa untuk peristiwa kontrol aliran.

Sintaks

void SetFilterGraph(
   IMediaEventSink *pSink
);

Parameter

pSink

Arahkan ke antarmuka IMediaEventSink Filter Graph Manager, atau NULL saat filter meninggalkan grafik filter.

Mengembalikan nilai

Metode ini tidak mengembalikan nilai.

Keterangan

Panggil metode ini dari dalam metode IBaseFilter::JoinFilterGraph filter. Kelas CBaseStreamControl menggunakan antarmuka IMediaEventSink untuk mengirim peristiwa EC_STREAM_CONTROL_STARTED dan EC_STREAM_CONTROL_STOPPED .

Jika filter Anda berasal dari CBaseFilter, pertama-tama panggil metode CBaseFilter::JoinFilterGraph , yang mengatur variabel anggota CBaseFilter::m_pSink . Kemudian teruskan m_pSink ke SetFilterGraph metode . Perhatikan bahwa m_pSinkNULL saat filter meninggalkan grafik, yang benar.

Contoh

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

Persyaratan

Persyaratan Nilai
Header
Strmctl.h (termasuk Streams.h)
Pustaka
Strmbase.lib (build ritel);
Strmbasd.lib (build debug)

Lihat juga

Kelas CBaseStreamControl