共用方式為


建立自訂屬性

Windows Vista 和更新版本屬性系統中所使用的屬性會在屬性架構中宣告。 這些屬性架構是在 XML 檔案中定義,並描述屬性的各種層面,包括其類型(包括其基本類型的相關信息,以及它是否為多重值)、如何在 Windows UI 中顯示、要使用哪種標籤(使用者易記的編輯字串),以及如何在搜尋存放區中快取,以便更快速存取。 屬性是由其標準名稱或其屬性索引鍵 (PKEY) 來識別。

標準名稱是屬性的讀取器易記名稱,並使用類似於 Microsoft .NET 中使用的命名空間慣例。 針對系統定義的屬性(Windows 隨附的屬性),慣例為 System.GroupName.PropertyName。 請注意,在每一個字開頭大寫字母的Pascal大小寫配置會用於這些名稱中。 標準名稱用於各種位置,包括屬性快取中的屬性清單和數據行名稱。 因此,它們會用於 結構化查詢語言 (SQL) (SQL) 查詢來擷取屬性值。

PKEY 是一組值,由 GUID 和 DWORD 組成,分別稱為 formatID 和 propID。 它是由 PROPERTYKEY 結構表示。 大部分的屬性系統 API 都接受這些屬性索引鍵。 Windows 軟體開發工具套件 (SDK) 包含標頭檔 Propkey.h,其中包含每個 System 屬性索引鍵的巨集定義,並具有 慣例 PKEY_GroupName_PropertyName。 例如, PKEY_Photo_DateTaken 是具有標準名稱 System.Photo.DateTaken之屬性的屬性索引鍵。 屬性值會以 PROPVARIANT 結構的形式儲存,這是 OLE VARIANT 類型的延伸。

本節包含下列主題,這是建立自定義屬性不可或缺的主題:

注意

由於索引器在取用屬性系統架構時可能會有的潛在困難,因此請務必謹慎且策略地為架構的第一個版本定義屬性。 屬性的任何變更(類型、數據行寬度、是否可編製索引)都不會在登錄架構之後反映在資料庫中。 在系統上註冊一次架構之後,才能辨識這些變更的唯一方法是重建索引,然後註冊新的架構,或註冊架構,然後為每個後續版本建立新的屬性:例如 PKEY_GroupName_PropertyNameV2PKEY_GroupName_PropertyNameV3等等。 我們不建議以此方式建立新的屬性,因為多個多餘的數據行可能會影響系統效能。

 

實作屬性處理程式

屬性描述架構