`Section`

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

Ein Abschnitt enthält Folgendes:

  • Byteanzahl für den Abschnitt, der von der Byteanzahl selbst eingeschlossen ist.
  • Array von 32-Bit-Eigenschafts-ID/Offset-Paaren.
  • Array von Eigenschaftstypindikatoren/Wert-Paaren.

Offsets sind der Abstand zwischen dem Anfang des Abschnitts und dem Anfang des Eigenschaftspaars (Typ, Wert). Dadurch kann ein Abschnitt als Bytearray ohne Übersetzung der internen Struktur 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 ;