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