Pengidentifikasi Properti Yang Dipesan

Pengidentifikasi properti yang dipesan tidak dapat digunakan sebagai pengidentifikasi properti (ID). Pengidentifikasi properti (ID) apa pun dapat digunakan kecuali 0, 1, dan nilai apa pun yang lebih besar dari, atau sama dengan, 0x80000000. Nilai pengidentifikasi properti ini dicadangkan untuk digunakan oleh aplikasi.

Tabel berikut mencantumkan ID properti yang dipesan dan deskripsi untuk apa ID properti dicadangkan.

ID properti yang dipesan Deskripsi
0 Dicadangkan untuk membuat Kamus Nama Tampilan Set Properti opsional. Ini memungkinkan properti mengatur pengguna untuk melampirkan arti pada properti, di luar yang disediakan oleh indikator jenis.
1 Dicadangkan sebagai indikator halaman kode (Windows) atau Skrip (Macintosh) untuk digunakan saat menginterpretasikan string dalam kumpulan properti.
Semua nilai string dalam kumpulan properti harus disimpan dengan halaman kode yang sama. Nilai sistem operasi asal di header set properti (PROPERTYSETHEADER::d wOSVer) menentukan apakah indikator halaman kode sesuai dengan halaman kode Windows atau skrip Macintosh.
0x80000000 Dicadangkan sebagai indikasi lokal tempat kumpulan properti ditulis.
Lokal default untuk set properti adalah lokal default sistem (LOCALE_SYSTEM_DEFAULT). Untuk informasi selengkapnya tentang LOCALE_SYSTEM_DEFAULT, lihat API Win32. Default digunakan jika indikator lokal tidak ada dalam kumpulan properti.
0x80000003 Dicadangkan sebagai indikator perilaku set properti. Nilai ID properti ini adalah VT_UI4 dan dimulai dengan jenis data DWORD yang berisi nilai VT_UI4 diikuti oleh DWORD yang menunjukkan perilaku set properti.
Saat ini, satu-satunya bit dalam nilai ini yang didefinisikan adalah bit urutan rendah (0x1). Jika bit ini diatur, ini menunjukkan bahwa properti menetapkan nama, yang ditunjukkan oleh ID properti 0, harus dianggap peka huruf besar/kecil. Jika bit ini tidak diatur atau jika properti perilaku (ID 0x80000003) tidak ada, maka nama harus dianggap tidak peka huruf besar/kecil.
0xFFFFFFFF Disediakan untuk kenyamanan kemampuan pemrograman. Ini seharusnya tidak pernah muncul dalam set properti berseri.

Pengidentifikasi properti dengan set bit tinggi (yaitu, nilai negatif) disediakan untuk digunakan di masa mendatang oleh Microsoft.

Dari properti yang dipesan, properti dengan nilai ID dalam rentang 0x80000000 hingga 0xBFFFFFFF dianggap baca-saja oleh implementasi yang tidak memahami maknanya. Misalnya, jika implementasi tidak memahami arti properti 0x80000000, itu harus memungkinkan properti tersebut dibaca tetapi tidak ditulis atau dihapus. Implementasi seperti itu harus memungkinkan properti dalam rentang 0xC0000000 untuk 0xFFFFFFFE dibaca, ditulis, atau dihapus. ID Properti 0xFFFFFFFF adalah nilai yang dipesan dan tidak boleh muncul dalam kumpulan properti serial.

Lokal Set Properti

Aplikasi dapat memilih untuk mendukung lokal atau menggunakan perilaku default. Disarankan agar aplikasi memungkinkan pengguna menentukan lokal yang berfungsi. Aplikasi tersebut harus menulis pengidentifikasi lokal yang ditentukan pengguna ke properti . Aplikasi yang menggunakan lokal default pengguna (LOCALE_USER_DEFAULT) harus menulis pengidentifikasi lokal default pengguna ke properti . Untuk informasi selengkapnya tentang LOCALE_USER_DEFAULT, lihat API Win32.

Catatan

Jika antarmuka IPropertySetStorage digunakan untuk membuat kumpulan properti, lokal default pengguna secara otomatis ditulis sebagai Indikator Lokal.

Aplikasi juga harus menangani kasus objek asing, yang merupakan salah satu tempat lokal bukan lokal aplikasi, lokal pengguna, atau lokal sistem.

Properti indikator lokal berjenis VT_U14, dan oleh karena itu terdiri dari DWORD yang berisi VT_U14, diikuti oleh DWORD yang berisi Pengidentifikasi Lokal (LCID), seperti yang didefinisikan dalam API Win32.

Indikator Halaman Kode

Ketika aplikasi yang bukan pembuat set properti mengubah properti jenis string dalam set, aplikasi tersebut harus memeriksa indikator halaman kode dan mengambil salah satu tindakan berikut:

  • Tulis string dalam format yang ditentukan oleh indikator halaman kode.
  • Ganti dan tulis ulang untuk mengubah halaman kode.

Jika aplikasi tidak dapat mengenali indikator ini, aplikasi tidak boleh mengubah properti . Semua pembuat set properti harus menulis indikator halaman kode; namun, jika indikator halaman kode tidak ada, halaman kode yang berlaku pada komputer pembaca harus diasumsikan.

Catatan

Jika antarmuka IPropertySetStorage digunakan untuk membuat kumpulan properti, indikator halaman kode akan ditulis secara otomatis.

Nilai yang mungkin untuk halaman kode diberikan di API Win32 (untuk informasi selengkapnya, lihat fungsi GetACP ) dan Inside Macintosh Volume VI, halaman 14-111. (Sumber daya ini mungkin tidak tersedia di beberapa bahasa dan negara.) Misalnya, halaman kode US ANSI diwakili oleh 0x04E4 (1252 dalam desimal) sedangkan halaman kode untuk Unicode 0x04B0 (1200 dalam desimal).

Disarankan agar halaman kode Unicode digunakan jika memungkinkan, dan gunakan VT_LPWSTR alih-alih VT_LPSTR untuk menghindari konversi multibyte <-> Unicode selama penyimpanan dan pengambilan. Menggunakan halaman kode yang sama untuk semua set properti adalah satu-satunya cara untuk mencapai set properti yang dapat dioperasikan di seluruh dunia. Di halaman kode Unicode atau non-Unicode, ketahuilah bahwa hitungan di awal VT_LPSTR atau VT_BSTR adalah jumlah byte dan bukan jumlah karakter . Jumlah byte ini mencakup satu atau dua byte nol di akhir string (terminator NULL string).

ID Properti 1 adalah jenis VT_I2 dan dimulai dengan DWORD yang berisi nilai VT_I2 diikuti oleh SHORT yang menunjukkan halaman kode.