管理屬性集

持續性屬性集包含相關資料做為屬性。 每個屬性集都是使用 FMTID 來識別,而全域唯一識別碼 (GUID) ,可讓應用程式存取屬性集來識別屬性集。 透過此識別,應用程式會解譯集合所包含的屬性。

例如,文字處理器中的字元格式設定屬性或繪圖程式中專案的轉譯屬性是屬性集。

COM 會定義 IPropertySetStorage 介面,以協助管理屬性集。 透過這個介面的方法,您可以建立新的屬性集,或開啟或刪除現有的屬性集。 此外,它會提供方法,以建立列舉值,並提供其 IEnumSTATPROPSETSTG 介面的指標。 您可以呼叫這個介面的方法,以列舉物件上的 STATPROPSETSTG 結構,這會提供物件上所有屬性集的相關資訊。

當您建立或開啟 IPropertyStorage的實例時,它類似于開啟支援 IStorageIStream的物件,因為您需要指定開啟介面的儲存模式。 針對 IStorage,這些包括交易模式、讀取/寫入模式和共用模式。

當您使用 呼叫 IPropertySetStorage::Create建立屬性集時,請指定屬性集是否為簡單或非簡單。 簡單屬性集包含可在屬性集資料流程中完整寫入的類型,其大小有限,且在 Windows NT 4.0 和更早版本中不能大於 256 KB,或在 Windows 2000、Windows XP 和 Windows Server 2003 中為 1 MB。 不過,當您需要在屬性集中儲存較大的資訊時,您可以指定屬性集為非簡單。 這可讓您使用一或多個類型,只指定儲存體或資料流程物件的指標。 這些類型VT_STREAM、VT_STREAMED OBJECT、VT_STORAGE和VT_STORED_OBJECT。

儲存在這些屬性中的資料不會計入 Windows NT 4.0 或更早版本中的 256 KB 屬性集大小限制,或 Windows 2000、Windows XP 和 Windows Server 2003 中的 1 MB 限制。 不過,屬性的相關資料會套用,例如其名稱。 此外,如果您需要交易更新,屬性集必須是非簡單。 當然,開啟這些類型會有特定的效能負面影響,因為它需要開啟您擁有指標的資料流程或儲存物件。

如果您的應用程式使用複合檔案,您可以使用這些介面的 COM 提供實作,這些介面是在 COM 複合檔案儲存物件上實作。

每個屬性集主要是由邏輯連線的屬性群組所組成,如 管理屬性中所述。

如需 COM 中屬性集的詳細資訊,請參閱: