Хранилище и поток объектов для набора свойств
Программист указывает, хранится ли набор свойств в хранилище или потоке при создании набора свойств. Значение перечисления PROPSETFLAG_NONSIMPLE, переданное в параметре grfFlags методу IPropertySetStorage::Create, указывает на это. Параметр, в котором хранится набор свойств, предоставляет надлежащие элементы управления приложениями для полного взаимодействия с интерфейсом IPropertySetStorage с набором свойств COM.
Если установлен флаг PROPSETFLAG_NONSIMPLE, набор свойств хранится в объекте хранения, а значения свойств nonsimple можно записать в него. Значения nonsimple включают значения с VARTYPE VT_STORAGE, VT_STREAM, VT_STORED_OBJECT или VT_STREAMED_OBJECT. Дополнительные сведения о значениях VARTYPE и их использовании см. в структуре PROPVARIANT.
Если флаг PROPSETFLAG_NONSIMPLE не задан, в набор свойств можно записать только простые значения.
В объекте хранилища набора свойств nonsimple создается поток с именем "Содержимое". Это основной поток набора свойств и содержит все простые значения свойств. Значения свойств nonsimple (потоки и хранилища) хранятся в основном объекте хранилища свойства, заданном как вложенные потоки и хранилища. То есть эти неимплые значения хранятся как братья и сестры в потоке содержимого. Имя одноуровневых потоков и хранилищ определяется реализацией и хранится в потоке Содержимого, аналогично тому, как сохраняется простое строковое свойство.