Section
Der Abschnitt ist der dritte Teil des Eigenschaftensatzstreams und enthält die tatsächlichen Eigenschaftssatzwerte.
Ein Abschnitt enthält Folgendes:
- Byteanzahl für den Abschnitt, der die Byteanzahl selbst einschließt.
- 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 ohne Übersetzung der internen Struktur als Bytearray 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 ;