屬性和屬性集

雖然 Automation 和 Microsoft ActiveX Controls 所提供的執行時間屬性種類很重要,但它們不會直接解決將資訊儲存在檔案系統中之物件的需求。 這些實體可能包含 (結構化、複合等) 、目錄和摘要目錄的檔案。 COM 提供這些持續性屬性的標準序列化格式,以及一組介面和函式,可讓您建立及操作屬性集及其屬性。

持續性屬性會儲存為集合,而且一或多個集合可能會與檔案系統實體相關聯。 這些永續性屬性集是用來儲存適合以精細值集合表示的資料。 它們並非用來作為大型資料基底。 它們可以用來儲存系統上物件的相關摘要資訊,然後可由任何其他瞭解如何解譯該屬性集的物件存取。

舊版 COM 針對屬性及其使用方式指定非常少,但確實定義了序列化格式,可讓開發人員將屬性和屬性集儲存在 IStorage 實例中。 也會定義單一屬性集的屬性識別碼和語意,用於檔摘要資訊。 此時,您必須直接以資料流程的形式建立及操作該結構。 請參閱 結構化儲存體序列化屬性集格式

不過,COM 現在會定義兩個主要介面來管理屬性集:

當這些介面在支援 IStorage 介面的物件上實作時,就不再需要直接處理序列化格式, (例如複合檔案) 。 透過IPropertySetStorage 和 IPropertyStorage撰寫屬性會建立完全符合 COM 屬性集格式的資料,如透過 IStorage方法檢視。 相反地,也是如此— 使用 IStorage 寫入 COM 屬性集格式的屬性可透過 IPropertySetStorageIPropertyStorage (顯示,雖然您無法預期寫入 IStream 並立即透過 IPropertyStorage 取得屬性,反之亦然) 。

IPropertySetStorage介面會定義建立和管理屬性集的方法。 IPropertyStorage介面會直接操作屬性集內的屬性。 藉由呼叫這些介面的方法,應用程式開發人員可以管理適用于指定檔案系統實體的任何屬性集。 使用這些介面可為屬性提供一個微調的讀取和寫入實作,而不是在每個應用程式中都有實作,其中可能會有效能瓶頸,例如持續搜尋。 您可以實作介面來增強效能,讓屬性可以更快速地讀取和寫入,例如更有效率的快取。 此外,IPropertyStorage 和 IPropertySetStorage可讓您在不支援IStorage的實體上操作屬性,雖然一般而言,大部分的應用程式都不會這麼做。

本節包含下列主題:

COM 中的屬性集實作

屬性集考慮

管理屬性

管理屬性集

儲存屬性集

效能特性