Oggetti di archiviazione e flusso per un set di proprietà
Il programmatore specifica se un set di proprietà viene archiviato in un archivio o in un flusso quando viene creato il set di proprietà. Il valore di enumerazione PROPSETFLAG_NONSIMPLE passato nel parametro grfFlags al metodo IPropertySetStorage::Create. L'impostazione della posizione in cui è archiviato il set di proprietà fornisce controlli dell'applicazione appropriati per l'interoperabilità completa tramite l'interfacciaIPropertySetStoragecon il set di proprietà COM.
Se il flag PROPSETFLAG_NONSIMPLE è impostato, il set di proprietà viene archiviato in un oggetto di archiviazione e i valori delle proprietà non disimple possono essere scritti. I valori non disimple includono valori con un VARTYPE di VT_STORAGE, VT_STREAM, VT_STORED_OBJECT o VT_STREAMED_OBJECT. Per altre informazioni sui valori VARTYPE e su come usarli, vedere la struttura PROPVARIANT.
Se il flag PROPSETFLAG_NONSIMPLE non è impostato, è possibile scrivere solo valori semplici nel set di proprietà.
Nell'oggetto di archiviazione di un set di proprietà nonsimple viene creato un flusso denominato Contents. Si tratta del flusso primario del set di proprietà e contiene tutti i valori di proprietà semplici. I valori delle proprietà nonsimple (flussi e archivi) vengono archiviati nell'oggetto di archiviazione principale del set di proprietà come sottostream e archivi. Ovvero, questi valori non disimple vengono archiviati come elementi di pari livello nel flusso Contents. Il nome dei flussi di pari livello e delle risorse di archiviazione è determinato dall'implementazione e archiviato nel flusso Contents in modo simile al modo in cui viene archiviata una semplice proprietà stringa.