屬性集的儲存和串流物件
程式設計人員會指定屬性集是在建立屬性集時儲存在記憶體或數據流中。 PROPSETFLAG_NONSIMPLE列舉值,傳入 grfFlags 參數至 IPropertySetStorage::Create 方法,表示這一點。 儲存屬性集的設定會提供適當的應用程控,以透過 IPropertySetStorage 介面與 COM 屬性集完全互作。
如果已設定PROPSETFLAG_NONSIMPLE旗標,則屬性集會儲存在記憶體物件中,而且可以將非simple 屬性值寫入其中。 非簡單值包含具有 VT_STORAGE、VT_STREAM、VT_STORED_OBJECT 或 VT_STREAMED_OBJECT VARTYPE 的值。 如需 VARTYPE 值及其使用方式的詳細資訊,請參閱 PROPVARIANT 結構。
如果未設定PROPSETFLAG_NONSIMPLE旗標,則只能將簡單值寫入屬性集。
在非simple 屬性集的儲存物件中,會建立名為Contents的數據流。 這是屬性集的主要數據流,並保留所有簡單的屬性值。 非簡單屬性值(數據流和記憶體)會儲存在屬性集為子數據流和記憶體的主要儲存物件之下。 也就是說,這些非簡單值會儲存為 Contents 數據流的同層級值。 同層級數據流和記憶體的名稱取決於實作,並儲存在 Contents 數據流中,類似於儲存簡單字串屬性的方式。