類型指標

實際屬性會遵循屬性標識碼/Offset Pairs 屬性值的數據表。 每個屬性都會儲存為 DWORD,後面接著數據類型值。

在 PROPVARIANT結構描述類型指標及其相關聯的值。

所有類型/值組都必須從32位界限開始。 因此,值後面可能會加上 Null 位元組,以對齊 32 位界限上的後續配對。

下列範例程式代碼會根據位元組計數,計算在32位界限上對齊所需的位元元組數目。

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

在值的向量內,每個重複小於32位的簡單純量值都必須與其自然對齊,而不是使用32位對齊。 實際上,這隻適用於類型 VT_UI1VT_UI2VT_I2VT_BOOL(具有一位元組或兩位元組自然對齊)。 所有其他類型都有四位元組的自然對齊方式。 例如,某些類型 VT_R8實際上具有8位元組的自然對齊方式,但會儲存成具有四位元組對齊方式。

具有類型指標 VT_I2 | VT_VECTOR 的屬性值包括:

  • DWORD 項目計數。
  • 一連串包裝的雙位元組整數,兩者之間沒有 Null 填補。

重要

儲存為向量屬性元素一部分的任何32位計數或屬性類型也必須對齊32位。

 

類型識別碼的屬性值 VT_LPSTR | VT_VECTOR 包括:

  • DWORD 項目計數(DWORDcElems)。
  • 一連串字串(charrgch[]),每個字串前面都有長度計數 DWORD,後面可能會加上 null 填補,以四捨五入至 32 位界限。