Indikator Tipe

Properti aktual mengikuti tabel nilai kumpulan properti Pengidentifikasi Properti/Pasangan Offset. Setiap properti disimpan sebagai DWORD, diikuti oleh nilai jenis data.

Indikator jenis dan nilai terkait dijelaskan dalam strukturPROPVARIANT.

Semua pasangan Tipe/Nilai harus dimulai pada batas 32-bit. Dengan demikian, nilai dapat diikuti dengan byte null untuk menyelaraskan pasangan berikutnya pada batas 32-bit.

Contoh kode berikut menghitung berapa banyak byte yang diperlukan untuk menyelaraskan pada batas 32-bit, mengingat hitungan byte.

cbAdd = (((cbCurrent + 3) >> 2) << 2) - cbCurrent ;

Dalam vektor nilai, setiap pengulangan nilai skalar sederhana yang lebih kecil dari 32 bit harus selaras dengan keselarasan alaminya daripada dengan perataan 32-bit. Dalam praktiknya, ini hanya signifikan untuk jenis VT_UI1, VT_UI2, VT_I2, dan VT_BOOL (yang memiliki perataan alami satu byte atau dua byte). Semua jenis lainnya memiliki perataan alami empat byte. Beberapa jenis, misalnya, VT_R8, sebenarnya memiliki penyelarasan alami 8-byte, tetapi disimpan seolah-olah mereka memiliki perataan empat byte.

Nilai properti dengan indikator jenis VT_I2 | VT_VECTOR akan mencakup:

  • Jumlah elemen DWORD.
  • Urutan bilangan bulat dua byte yang dikemas tanpa padding null di antaranya.

Penting

Setiap jumlah 32-bit atau jenis properti yang disimpan sebagai bagian dari elemen properti vektor juga harus selaras 32-bit.

 

Nilai properti pengidentifikasi jenis VT_LPSTR | VT_VECTOR akan mencakup:

  • Jumlah elemen DWORD (DWORDcElems).
  • Urutan string (karakterrgch[]), masing-masing didahului oleh DWORD jumlah panjang dan mungkin diikuti dengan padding null untuk membulatkan ke batas 32-bit.