Property Tables

A property table is an array of RESUTIL_PROPERTY_ITEM structures. Each entry in a property table contains information about a particular property and an offset to the property's data. The data, or a pointer to the data, is stored in a parameter block.

The following illustration shows the relationship between a property table and a parameter block. The property table has two entries, each represented by a RESUTIL_PROPERTY_ITEM structure. The Offset member of each property-table entry points to a member in the parameter block. Notice that non-property table data is included in the parameter block.

The type of data stored in the Default, Minimum, and Maximum members as well as in the corresponding parameter block depends on the value of the Format member. The following list indicates the relationship between the Format member and the type of data in the Default member and parameter block.

Format member Default member Parameter block
CLUSPROP_FORMAT_BINARY Pointer to a buffer if the value is non-NULL. LPBYTE pointing to the data followed by a DWORD to indicate the size of the data in bytes.
CLUSPROP_FORMAT_DWORD DWORD DWORD
CLUSPROP_FORMAT_EXPAND_SZ Pointer to a NULL-terminated Unicode string if non-NULL. LPWSTR
CLUSPROP_FORMAT_MULTI_SZ Pointer to a buffer if the value is non-NULL. LPWSTR pointing to the data followed by a DWORD to indicate the size of the data in bytes.
CLUSPROP_FORMAT_SZ Pointer to a NULL-terminated Unicode string if non-NULL. LPWSTR

 

For a discussion of creating and parsing property tables, see Using Lists and Tables.