共用方式為


效能特性

呼叫 IPropertySetStorage 介面的 COM 複合檔案實作,建立屬性集會導致透過呼叫 IStorage::CreateStreamIStorage::CreateStorage建立數據流或記憶體。 默認屬性集會在記憶體中建立,但不會排清到磁碟。 當呼叫 IPropertyStorage::WriteMultiple時,它會在緩衝區內運作。

開啟屬性集時,會使用 IStorage::OpenStreamIStorage::OpenStorage::OpenStorage。 整個屬性集數據流會讀取到連續記憶體中。 IPropertyStorage::ReadMultiple 作業,然後藉由讀取記憶體緩衝區來作。 因此,第一次存取在時間方面很昂貴(因為磁碟讀取),但後續的存取效率很高。 寫入可能會稍微昂貴一點,因為可能需要基礎數據流上的 SetSize 作業,以確保在加入數據時可以使用磁碟空間。

不保證 IPropertyStorage::WriteMultiple 是否會排清更新。 一般而言,客戶端應該假設 IPropertyStorage::WriteMultiple 只會更新記憶體緩衝區中的 。 若要排清數據,應該呼叫 IPropertyStorage::CommitIUnknown::Release (last release) 。

此設計表示 WriteMultiple 可能會成功,但數據實際上不會持續寫入。

注意

這個屬性集數據流的大小不能超過 256K 個字節。