保留的屬性識別碼

保留的屬性識別碼不能當做屬性識別碼 (識別碼) 使用。 除了 0、1 和大於或等於的任何值之外,可以使用任何屬性識別碼 (識別碼) 0x80000000。 這些屬性識別碼值會保留供應用程式使用。

下表列出保留的屬性識別碼,以及保留屬性識別碼的描述。

保留的屬性識別碼 描述
0 保留以建立選擇性 屬性集顯示名稱字典。 這可讓使用者將屬性設定為將意義附加至屬性,而超出類型指標所提供的屬性。
1 保留為字碼頁的指標, (Windows) 或 Script (Macintosh) 在解譯屬性集中的字串時使用。
屬性集中的所有字串值都必須使用相同的字碼頁來儲存。 屬性集標頭中的原始作業系統值, (PROPERTYSETHEADER::d wOSVer) 判斷字碼頁指標是否對應至 Windows 字碼頁或 Macintosh 腳本。
0x80000000 保留為寫入屬性集的地區設定指示。
屬性集的預設地區設定是系統預設地區設定 (LOCALE_SYSTEM_DEFAULT) 。 如需LOCALE_SYSTEM_DEFAULT的詳細資訊,請參閱 WIN32 API。 預設值用於屬性集內不存在地區設定指標的事件中。
0x80000003 保留為屬性集行為的指標。 這個屬性識別碼值是VT_UI4,並以 DWORD 資料類型開頭,其中包含值VT_UI4後面接著指出屬性集行為的 DWORD
目前,這個值中唯一定義的位是低順序位 (0x1) 。 如果設定此位,它表示屬性集名稱是以屬性識別碼 0 表示,應該視為區分大小寫。 如果未設定此位,或行為屬性 (識別碼0x80000003) 不存在,則名稱應該視為不區分大小寫。
0xFFFFFFFF 保留以方便進行程式設計。 它不應該出現在序列化屬性集中。

具有高位集 (的屬性識別碼,也就是) 負值保留供 Microsoft 未來使用。

在保留屬性中,在0x80000000 0xBFFFFFFF範圍中具有識別碼值的保留屬性,會由不了解其意義的實作視為唯讀。 例如,如果實作不了解屬性0x80000000的意義,它應該允許讀取該屬性,但不能寫入或刪除該屬性。 這類實作應該允許範圍中的屬性0xC0000000 0xFFFFFFFE讀取、寫入或刪除。 屬性識別碼0xFFFFFFFF是保留的值,且不應該出現在序列化屬性集中。

屬性集地區設定

應用程式可以選擇支援地區設定或使用預設行為。 建議應用程式允許使用者指定工作地區設定。 這類應用程式應該將使用者指定的地區設定識別碼寫入 屬性。 使用使用者預設地區設定的應用程式 (LOCALE_USER_DEFAULT) 應該將使用者預設地區設定識別碼寫入 屬性。 如需LOCALE_USER_DEFAULT的詳細資訊,請參閱 WIN32 API。

注意

如果使用 IPropertySetStorage 介面來建立屬性集,則使用者預設地區設定會自動寫入為地區設定指標。

應用程式也應該處理外部物件的案例,也就是地區設定不是應用程式地區設定、使用者地區設定或系統地區設定的一個。

地區設定指標屬性的類型為 VT_U14,因此是由包含VT_U14的 DWORD 所組成,後面接著包含地區設定識別碼的 DWORD (LCID) ,如 WIN32 API 中所定義。

字碼頁指標

當不是屬性集作者的應用程式變更集合中字串類型的屬性時,它應該檢查字碼頁指標,並採取下列其中一個動作:

  • 以字碼頁指標所指定的格式撰寫字串。
  • 取代並重寫以變更字碼頁。

如果應用程式無法辨識此指標,則不應該修改 屬性。 屬性集的所有建立者都必須撰寫字碼頁指標;不過,如果字碼頁指示器不存在,則必須假設讀取器電腦上的主要字碼頁。

注意

如果使用 IPropertySetStorage 介面來建立屬性集,則會自動寫入字碼頁指標。

如需詳細資訊,請參閱 GetACP 函式) 和 Macintosh Volume VI,頁面 14-111 中會提供 WIN32 API (中可能的字碼頁值。 (某些語言和國家/地區可能無法使用這些資源 ) 。例如,US ANSI 的字碼頁是以十進位) 0x04E4 (1252 來表示,而 Unicode 的字碼頁是以十進位) 0x04B0 (1200。

建議您盡可能使用 Unicode 字碼頁,並使用 VT_LPWSTR 而不是VT_LPSTR,以避免在儲存和擷取期間進行多位元組 < - > Unicode 轉換。 針對所有屬性集使用相同的字碼頁,是達成全球互通屬性集的唯一方法。 在 Unicode 或非 Unicode 字碼頁中,請注意VT_LPSTR或VT_BSTR開頭的計數是 位元組 計數,而不是 字元 計數。 這個位元組計數包含字串結尾的一或兩個零位元組, (字串的 Null 結束字元) 。

屬性識別碼 1 是VT_I2類型,並以 DWORD 開頭,其中包含值VT_I2後面接著指出字碼頁的 SHORT