Using COM-Implemented Property Sets

Since the property set stream is read into memory in its entirety before a single property can be read or written, it is strongly recommended that property sets be kept small. "Small" is somewhere under 32K of data. This should not present too much of a problem because typically, "in-line" properties will be small items such as descriptive strings, keywords, timestamps, counts, author names, GUIDs, CLSIDs, etc.

For the storage of larger chunks of data, or where the total size of a set of related properties far exceeds the recommended amount, the use of non-simple types such as VT_STREAM and VT_STORAGE are strongly recommended. These are not stored inside the property set stream, so do not significantly affect the initial overhead of the first accessing/writing of a property. There is some effect because the property set stream contains the name of the sibling stream- or storage-valued property and this takes a small amount of time to process.