`Section`

Der Abschnitt ist der dritte Teil des Eigenschaftensatzdatenstroms und enthält die tatsächlichen Eigenschaftensatzwerte.

Ein Abschnitt enthält:

  • Byteanzahl für den Abschnitt, der einschließlich der Byteanzahl selbst ist.
  • Array von 32-Bit-Eigenschafts-ID/Offset-Paaren.
  • Array von Eigenschaftentypindikatoren/Wertpaaren.

Offsets sind der Abstand vom Anfang des Abschnitts zum Anfang der Eigenschaft (Typ, Wert)-Paar. Dadurch kann ein Abschnitt ohne Übersetzung der internen Struktur als Array von Bytes kopiert werden.

Die folgenden Pseudostrukturen veranschaulichen das Format eines Abschnitts.

typedef struct tagPROPERTYSECTIONHEADER 
{ 
    DWORD  cbSection ;    // Size of Section 
    DWORD  cProperties ;  // Count of Properties in section 
} PROPERTYSECTIONHEADER; 
 
typedef struct tagPROPERTYIDOFFSET 
{ 
    DWORD  propid;    // Name of property 
    DWORD  dwOffset;  // Offset from start of section to property 
} PROPERTYIDOFFSET; 
 
typedef struct tagSERIALIZEDPROPERTYVALUE 
{ 
    DWORD  dwType;    // Property Type 
    BYTE   rgb[];     // Property Value 
} SERIALIZEDPROPERTYVALUE ;