Kelas CPersistStream
[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.]
CPersistStream
adalah kelas dasar untuk properti filter persisten (yaitu, properti filter dalam grafik yang disimpan).
Cara paling sederhana untuk digunakan CPersistStream
adalah dengan:
Atur agar filter Anda mewarisi kelas ini.
Terapkan WriteToStream dan ReadFromStream di kelas Anda. Ini akan mengambil alih fungsi di sini, yang tidak melakukan apa-apa selain bertindak sebagai tempat penampung.
Ubah NonDelegatingQueryInterface Anda untuk menangani IPersistStream.
Terapkan SizeMax untuk mengembalikan batas atas pada jumlah byte data yang Anda simpan.
Jika Anda menyimpan data Unicodeā¢, ingatlah bahwa WCHAR adalah 2 byte.
Saat data Anda berubah, panggil SetDirty.
Nomor Versi
Pada titik tertentu Anda mungkin memutuskan untuk mengubah atau memperluas format data Anda. Anda kemudian akan berharap Anda memiliki nomor versi di semua aliran lama yang disimpan sehingga Anda dapat mengetahui, ketika Anda membacanya, apakah mereka mewakili formulir lama atau baru. Untuk membantu Anda, kelas ini menulis dan membaca nomor versi. Ketika menulis, ia memanggil GetSoftwareVersion untuk menanyakan versi perangkat lunak yang digunakan saat ini. (Efeknya, ini adalah nomor versi tata letak data dalam file.) Ini menulis ini sebagai hal pertama dalam data. Jika Anda ingin mengubah versi, terapkan (ambil alih) GetSoftwareVersion. Ini membaca nomor versi dari file ke mPS_dwFileVersion sebelum memanggil ReadFromStream, jadi di ReadFromStream Anda dapat memeriksa mPS_dwFileVersion untuk melihat apakah Anda membaca file versi lama. Biasanya Anda harus menerima file yang versinya tidak lebih baru dari versi perangkat lunak yang membacanya.
CPersistStream mengimplementasikan IPersistStream. Untuk informasi implementasi selengkapnya, lihat Referensi COM di SDK Platform Microsoft.
Anggota Data terproteksi | Deskripsi |
---|---|
mPS_dwFileVersion | Nomor versi file. |
mPS_fDirty | Data untuk aliran ini harus disimpan. |
Fungsi Anggota | Deskripsi |
CPersistStream | Membuat objek CPersistStream . |
SetDirty | Menunjukkan bahwa objek harus disimpan ke aliran. |
Fungsi Anggota yang Dapat Diganti | Deskripsi |
GetClassID | Mengambil pengidentifikasi kelas aliran ini. |
GetSoftwareVersion | Mengambil nomor versi untuk format file ini. |
ReadFromStream | Membaca data filter dari aliran. |
SizeMax | Mengambil jumlah byte yang diperlukan untuk data (tidak termasuk nomor versi). |
WriteToStream | Menulis data filter ke aliran. |
Metode IPersistStream | Deskripsi |
GetSizeMax | Mengambil jumlah byte yang diperlukan untuk data (termasuk nomor versi). |
IsDirty | Memeriksa apakah objek harus disimpan. |
Muat | Memuat data dari aliran ke dalam memori. |
Simpan | Menyimpan data dari memori ke aliran. |