Kelas CRefTime
[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.]
Kelas CRefTime
adalah kelas pembantu untuk mengelola waktu referensi.
Waktu referensi adalah satuan waktu yang diwakili dalam unit 100 nanodetik. Kelas ini memiliki tata letak data yang sama dengan jenis data REFERENCE_TIME , tetapi menambahkan beberapa metode dan operator yang menyediakan fungsi perbandingan, konversi, dan aritmatika. Untuk informasi selengkapnya tentang waktu referensi, lihat Waktu dan Jam di DirectShow.
Variabel Anggota Publik | Deskripsi |
---|---|
m_time | Menentukan nilai REFERENCE_TIME . |
Metode Publik | Deskripsi |
CRefTime | Metode konstruktor. |
GetUnits | Mengambil waktu referensi dalam unit 100-nanodetik. |
Milidetik | Mengonversi waktu referensi menjadi milidetik. |
Operator | Deskripsi |
operator REFERENCE_TIME() | Melemparkan objek ke jenis data REFERENCE_TIME . |
operator= | Menetapkan waktu referensi baru. |
operator+= | Menambahkan dua kali referensi. |
operator = | Mengurangi satu waktu referensi dari waktu lainnya. |
Keterangan
Ada potensi perangkap dengan menggunakan kelas ini. Jika Anda menerapkan operator += dengan objek CRefTime sebagai operand kiri dan variabel jenis LONG sebagai pengoperasi kanan, pengkompilasi akan secara implisit memaksa operand kanan ke dalam objek CRefTime . Koersi ini menggunakan konstruktor CRefTime yang mengonversi milidetik menjadi unit REFERENCE_TIME; akibatnya, operand kanan dikalikan dengan 10.000:
CRefTime rt; // rt.m_time is 0.
LONG val = 20;
rt += val; // Coerce val to CRefTime, rt.m_time is now 200,000.
Namun, hal yang sama tidak terjadi menggunakan operator + :
CRefTime rt; // rt.m_time is 0.
LONG val = 20;
rt = rt + val; // CRefTime, rt.m_time is 20.
Persyaratan
Persyaratan | Nilai |
---|---|
Header |
|
Pustaka |
|