Metode CBaseFilter.GetState
[Fitur yang terkait dengan halaman ini, DirectShow, adalah fitur warisan. Ini telah digantikan oleh MediaPlayer, IMFMediaEngine, dan Pengambilan 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 Pengambilan Audio/Video 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 mengambil GetState
status filter (berjalan, dihentikan, atau dijeda). Metode ini mengimplementasikan metode IMediaFilter::GetState .
Sintaks
HRESULT GetState(
DWORD dwMilliSecsTimeout,
FILTER_STATE *State
);
Parameter
-
dwMilliSecsTimeout
-
Interval waktu habis, dalam milidetik.
-
Provinsi
-
Pointer ke variabel yang menerima anggota jenis enumerasi FILTER_STATE , menunjukkan status filter.
Menampilkan nilai
Mengembalikan S_OK atau E_POINTER.
Keterangan
Di kelas dasar, semua transisi status sinkron dan parameter dwMilliSecsTimeout diabaikan. Jika kelas turunan melakukan transisi status asinkron, kelas tersebut harus mengambil alih metode ini untuk menunggu selama transisi status, dengan waktu habis dwMilliSecsTimeout milidetik.
Jika filter Anda tidak mengirimkan data saat dijeda, ganti GetState
metode untuk mengembalikan nilai VFW_S_CANT_CUE saat filter dijeda (lihat Mengirimkan Sampel). Contohnya:
CMyFilter::GetState(DWORD dw, FILTER_STATE *pState)
{
CheckPointer(pState, E_POINTER);
*pState = m_State;
if (m_State == State_Paused)
return VFW_S_CANT_CUE;
else
return S_OK;
}
Persyaratan
Persyaratan | Nilai |
---|---|
Header |
|
Pustaka |
|