# Section

This is the third part of the property set stream, as shown in Figure C.2. A section contains:

- Byte count for the section (which is inclusive of the byte count itself)

- Array of 32-bit Property ID/Offset pairs

- Array of property Type Indicators/Value pairs

Offsets are the distance from the start of the section to the start of the property (type, value) pair. This allows a section to be copied as an array of bytes without any translation of internal structure.

The following pseudo-structures illustrate the format of a section:

    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 that property
    } PROPERTYIDOFFSET;

    typedef struct tag SERIALIZEDPROPERTYVALUE
    {
        DWORD  dwType;   // Property Type
        BYTE   rgb[];    // Property Value
    } SERIALIZEDPROPERTYVALUE ;