`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 ;