Implementasi File IPropertySetStorage-Compound
Implementasi objek penyimpanan file gabungan COM mencakup implementasi IPropertyStorage, antarmuka yang mengelola satu set properti persisten, dan IPropertySetStorage, antarmuka yang mengelola grup set properti persisten.
Untuk mendapatkan penunjuk ke implementasi file majemuk IPropertySetStorage, tentukan nama yang ditentukan header untuk pengidentifikasi IID_IStorage sebagai parameter riid , atau gunakan fungsi StgCreateStorageEx atau StgOpenStorageEx . Dalam kedua kasus, tentukan STGFMT_STORAGE sebagai parameter stgfmt . (STGFMT_ANY dapat ditentukan secara alternatif dalam kasus StgOpenStorageEx.) Selain itu, tentukan nama yang ditentukan header untuk pengidentifikasi antarmuka (IID) IID_IPropertySetStorage sebagai parameter riid . Kedua fungsi menyediakan pointer ke antarmuka IPropertySetStorage objek.
Cara lain untuk mendapatkan penunjuk ke implementasi file gabungan adalah dengan menentukan nama yang ditentukan header untuk pengidentifikasi IID_IStorage sebagai parameter riid , atau untuk menggunakan fungsi StgCreateDocfile atau StgOpenStorage . Ini akan menyediakan pointer ke antarmuka IStorage objek. Saat Anda ingin berurusan dengan set properti persisten, panggil IStorage::QueryInterface untuk antarmuka IPropertySetStorage .
Kapan Menggunakan IPropertySetStorage
Panggil metode IPropertySetStorage untuk membuat, membuka, atau menghapus kumpulan properti di penyimpanan set properti file majemuk saat ini. Ada juga metode, IPropertySetStorage::Enum, yang memasok penunjuk ke enumerator yang dapat digunakan untuk menghitung set properti dalam penyimpanan.
Metode
Membuat properti baru yang diatur dalam penyimpanan file majemuk saat ini dan, saat kembali, memasok penunjuk antarmuka ke implementasi file majemuk IPropertyStorage . Dalam implementasi ini, set properti dapat ditransaksikan hanya jika PROPSETFLAG_NONSIMPLE ditentukan. Metode ini mengharuskan mode berbagi yang ditentukan dalam parameter grfMode STGM_SHARE_EXCLUSIVE, dan bahwa mode akses STGM_READ atau STGM_READWRITE (mode STGM_WRITE tidak didukung).
Membuka properti yang sudah ada yang diatur dalam penyimpanan properti saat ini. Sebagai gantinya, ia memasok penunjuk antarmuka ke implementasi file majemuk IPropertyStorage. Metode ini mengharuskan mode berbagi yang ditentukan dalam parameter grfMode STGM_SHARE_EXCLUSIVE, dan bahwa mode akses STGM_READ atau STGM_READWRITE (STGM_WRITE tidak didukung).
Menghapus properti yang diatur dalam penyimpanan properti ini.
Membuat objek yang digunakan untuk menghitung struktur STATPROPSETSTG . Setiap struktur STATPROPSETSTG menyediakan data tentang satu set properti.
Keterangan
Dimulai dengan Windows 2000, implementasi file majemuk IPropertySetStorage mendukung mode sederhana. Mode sederhana ditunjukkan dengan menentukan bendera STGM_SIMPLE untuk fungsi StgCreateStorageEx dan StgOpenStorageEx . Jika file majemuk dibuka dalam mode sederhana, implementasi IPropertySetStorage terkait dibatasi sebagai berikut:
- Hanya set properti sederhana yang dapat dibuat. Artinya, menentukan nilai PROPSETFLAG_NONSIMPLE dalam parameter grfFlags untuk IPropertySetStorage::Create metode menghasilkan kesalahan.
- Setelah Anda membuat file majemuk dengan StgCreateStorageEx menggunakan STGM_SIMPLE dan kueri untuk antarmuka IPropertySetStorage , Anda hanya dapat memanggil IPropertySetStorage::Create sekali. Kemudian Anda harus merilis antarmuka IPropertyStorage sebelum memanggil metode Create lagi. Untuk informasi selengkapnya tentang mode sederhana, lihat Konstanta STGM.
- Anda tidak dapat menggunakan metode IPropertySetStorage::Open untuk membuka kumpulan properti setelah menggunakan StgCreateStorageEx untuk membuat objek penyimpanan. Sebagai gantinya, Anda harus menggunakan StgOpenStorageEx sebelum mengkueri IPropertySetStorage dan memanggil metode Buka .
- Setelah Anda membuka file majemuk dengan StgOpenStorageEx menggunakan bendera STGM_SIMPLE dan kueri untuk antarmuka IPropertySetStorage , Anda dapat membuka satu set properti sekaligus menggunakan IPropertySetStorage::Open. Selain itu, mungkin tidak mungkin untuk ukuran total properti yang diatur untuk ditingkatkan saat kumpulan properti terbuka.
Set properti sederhana tidak dapat ditransaksikan. Anda tidak dapat menentukan STGM_TRANSACTED dalam parameter grfmode dari metode Buat dan Buka kecuali Anda juga menentukan PROPSETFLAG_NONSIMPLE dalam parameter grfFlags . Ketahuilah bahwa set properti sederhana dan tidak sederhana tidak terkait dengan set properti mode sederhana yang dijelaskan di atas. Untuk informasi selengkapnya tentang set properti sederhana dan nonsimple, lihat Penyimpanan dan Objek Aliran untuk Kumpulan Properti.
Catatan
Kumpulan properti DocumentSummaryInformation dan UserDefined unik karena mungkin memiliki dua bagian set properti. Untuk informasi selengkapnya, lihat Kumpulan Properti DocumentSummaryInformation dan UserDefined.
Topik terkait
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk