Indicatori di tipo

Le proprietà effettive seguono la tabella dei valori del set di proprietà Identificatori proprietà/Coppie di offset. Ogni proprietà viene archiviata come DWORD, seguita dal valore del tipo di dati.

Gli indicatori di tipo e i relativi valori associati sono descritti nella strutturaPROPVARIANT.

Tutte le coppie tipo/valore devono iniziare su un limite a 32 bit. Pertanto, i valori possono essere seguiti con byte Null per allineare la coppia successiva su un limite a 32 bit.

Il codice di esempio seguente calcola il numero di byte necessari per allinearsi su un limite a 32 bit, dato un conteggio di byte.

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

All'interno di un vettore di valori, ogni ripetizione di un valore scalare semplice inferiore a 32 bit deve essere allineata con l'allineamento naturale anziché con un allineamento a 32 bit. In pratica, ciò è significativo solo per i tipi VT_UI1, VT_UI2, VT_I2e VT_BOOL (con allineamento naturale a un byte o due byte). Tutti gli altri tipi hanno un allineamento naturale a quattro byte. Alcuni tipi, ad esempio, VT_R8, in realtà hanno un allineamento naturale a 8 byte, ma vengono archiviati come se avessero un allineamento a quattro byte.

Un valore della proprietà con indicatore di tipo VT_I2 | VT_VECTOR include:

  • Conteggio degli elementi DWORD.
  • Sequenza di interi a due byte compressi senza spaziatura interna Null tra di essi.

Importante

Anche i conteggi a 32 bit o i tipi di proprietà archiviati come parte di un elemento della proprietà vettoriale devono essere allineati a 32 bit.

 

Un valore della proprietà dell'identificatore di tipo VT_LPSTR | VT_VECTOR include:

  • Conteggio degli elementi DWORD (DWORDcElems).
  • Sequenza di stringhe (charrgch[]), ognuna preceduta da un numero di lunghezze DWORD ed eventualmente seguita dal riempimento Null per arrotondare fino a un limite a 32 bit.