Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Зарезервированные идентификаторы свойств нельзя использовать в качестве идентификаторов свойств (ID). Любой идентификатор свойства можно использовать, кроме 0, 1 и любого значения, превышающего или равное, 0x80000000. Эти значения идентификатора свойств зарезервированы для использования приложениями.
В следующей таблице перечислены идентификаторы зарезервированных свойств и описание идентификатора свойства.
Идентификатор зарезервированного свойства | Описание |
---|---|
0 | Зарезервировано для создания дополнительного словаря отображаемого имени набора свойств. Это позволяет пользователям устанавливать значение свойств к свойствам за пределами указанных индикатором типов. |
1 | Зарезервирован в качестве индикатора кодовой страницы (Windows) или Script (Macintosh) для интерпретации строк в наборе свойств. Все строковые значения в наборе свойств должны храниться с одной и той же кодовой страницей. Исходное значение операционной системы в заголовке набора свойств (PROPERTYSETHEADER::d wOSVer) определяет, соответствует ли индикатор кодовой страницы Windows или скрипту Macintosh. |
0x80000000 | Зарезервировано в качестве указания языкового стандарта, для которого записывается набор свойств. Языковой стандарт по умолчанию для набора свойств — системный языковой стандарт по умолчанию (LOCALE_SYSTEM_DEFAULT). Дополнительные сведения о LOCALE_SYSTEM_DEFAULT см. в API Win32. Значение по умолчанию используется в случае, если индикатор языкового стандарта не существует в наборе свойств. |
0x80000003 | Зарезервировано в качестве индикатора поведения набора свойств. Это значение идентификатора свойства — это VT_UI4 и начинается с типа данных DWORD, содержащего значение VT_UI4 за которым следует DWORD, указывающее поведение набора свойств. В настоящее время единственным битом в этом значении является бит низкого порядка (0x1). Если этот бит задан, он указывает, что имена наборов свойств, указанные идентификатором свойства 0, должны рассматриваться как конфиденциальные регистры. Если этот бит не задан или если свойство поведения (идентификатор 0x80000003) не существует, имена должны считаться нечувствительными к регистру. |
0xFFFFFFFF | Зарезервировано для удобства программирования. Он никогда не должен отображаться в сериализованном наборе свойств. |
Идентификаторы свойств с высоким битом (то есть отрицательные значения) зарезервированы для дальнейшего использования корпорацией Майкрософт.
Из зарезервированных свойств, которые имеют значения идентификаторов в диапазоне 0x80000000 0xBFFFFFFF, считаются только для чтения реализациями, которые не понимают их смысл. Например, если реализация не понимает значение свойства 0x80000000, это свойство должно быть прочитано, но не записано или удалено. Такая реализация должна позволить свойству в диапазоне 0xC0000000 0xFFFFFFFE быть считываемым, записанным или удаленным. Идентификатор свойства 0xFFFFFFFF является зарезервированным значением и никогда не должен отображаться в сериализованном наборе свойств.
Языковой стандарт набора свойств
Приложения могут выбрать поддержку языкового стандарта или использовать поведение по умолчанию. Рекомендуется, чтобы приложения разрешали пользователям указывать рабочий языковой стандарт. Такие приложения должны записывать в свойство указанный пользователем идентификатор языкового стандарта. Приложения, использующие языковой стандарт пользователя по умолчанию (LOCALE_USER_DEFAULT), должны записывать в свойство идентификатор языкового стандарта по умолчанию. Дополнительные сведения о LOCALE_USER_DEFAULT см. в API Win32.
Заметка
Если интерфейс IPropertySetStorage используется для создания набора свойств, языковой стандарт пользователя по умолчанию автоматически записывается в качестве индикатора языкового стандарта языкового стандарта.
Приложения также должны обрабатывать случай внешнего объекта, который является тем, где языковой стандарт не является языковым стандартом приложения, языковым стандартом пользователя или языковым стандартом системы.
Свойство индикатора языкового стандарта имеет тип VT_U14, поэтому состоит из DWORD, которая содержит VT_U14, а затем DWORD, содержащую идентификатор языкового стандарта (LCID), как определено в API Win32.
Индикатор кодовой страницы
Если приложение, которое не является автором набора свойств, изменяет свойство строки типа в наборе, он должен проверить индикатор кодовой страницы и выполнить одно из следующих действий:
- Напишите строку в формате, указанном индикатором кодовой страницы.
- Замените и перезаписите кодовую страницу.
Если приложение не может распознать этот индикатор, оно не должно изменять свойство. Все создатели наборов свойств должны писать индикатор кодовой страницы; Однако если индикатор кодовой страницы отсутствует, необходимо предположить, что на компьютере читателя должна быть задана преобладающая кодовая страница.
Заметка
Если интерфейсIPropertySetStorageиспользуется для создания набора свойств, индикатор кодовой страницы автоматически записывается.
Возможные значения кодовой страницы приведены в API Win32 (дополнительные сведения см. в функции GetACP) и Inside Macintosh Volume VI, страницы 14-111. (Эти ресурсы могут быть недоступны на некоторых языках и странах.) Например, кодовая страница US ANSI представлена 0x04E4 (1252 в десятичном разряде), а кодовая страница Юникода 0x04B0 (1200 в десятичном формате).
Рекомендуется использовать кодовую страницу Юникода, если это возможно, и использовать VT_LPWSTR вместо VT_LPSTR, чтобы избежать многобайтовых <—> преобразования Юникода во время хранения и извлечения. Использование одной и той же кодовой страницы для всех наборов свойств является единственным способом достижения наборов свойств взаимодействия во всем мире. На кодовой странице Юникода или не в Юникоде следует учитывать, что число в начале VT_LPSTR или VT_BSTR является числом байтов, а не числом символов. Это число байтов включает один или два байта в конце строки (NULL конца строки).
Идентификатор свойства 1 — это тип VT_I2 и начинается с DWORD, который содержит значение VT_I2, за которым следует SHORT, указывающий кодовую страницу.