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 ;