Поделиться через


Метод IPropertySystem::FormatForDisplay (propsys.h)

Возвращает форматируемое строковое представление значения свойства в Юникоде.

Синтаксис

HRESULT FormatForDisplay(
  [in]  REFPROPERTYKEY        key,
  [in]  REFPROPVARIANT        propvar,
  [in]  PROPDESC_FORMAT_FLAGS pdff,
  [out] LPWSTR                pszText,
  [in]  DWORD                 cchText
);

Параметры

[in] key

Тип: REFPROPERTYKEY

Ссылка на запрошенный ключ свойства.

[in] propvar

Тип: REFPROPVARIANT

Ссылка на структуру PROPVARIANT , содержащую тип и значение свойства .

[in] pdff

Тип: PROPDESC_FORMAT_FLAGS

Формат строки свойства. Возможные значения см. в PROPDESC_FORMAT_FLAGS .

[out] pszText

Тип: LPWSTR

Получает форматированное значение в виде строки Юникода, завершаемой null. Вызывающее приложение должно выделить память для буфера.

[in] cchText

Тип: DWORD

Длина буфера в pszText в WCHAR, включая завершающее значение NULL. Максимальный размер составляет 0x8000 (32 КБ).

Возвращаемое значение

Тип: HRESULT

Возвращает одно из следующих значений.

Код возврата Описание
S_OK
Создается форматированная строка.
S_FALSE
Форматированная строка не создается. S_FALSE указывает, что пустая строка является результатом VT_EMPTY.
E_OUTOFMEMORY
Ошибка выделения памяти.

Комментарии

Перед вызовом IPropertySystem::FormatForDisplay необходимо инициализировать компонентную объектную модель (COM) с помощью CoInitialize или OleInitialize.

При успешном выполнении этот метод получает форматируемое строковое представление в Юникоде значения свойства для указанного PROPERTYKEY и одного или нескольких PROPDESC_FORMAT_FLAGS. Если свойство PROPERTYKEY не распознается подсистемой схемы, IPropertySystem::FormatForDisplay пытается отформатировать значение в соответствии с vartype.

Цель этого метода — преобразовать данные в строку, подходящую для отображения пользователю. Значение отформатировано в соответствии с текущим языковым стандартом, языком пользователя, PROPDESC_FORMAT_FLAGS и описанием свойства, заданным ключом свойства. Сведения о том, как схема описания свойства влияет на форматирование значения, см. в разделах displayInfo, stringFormat, booleanFormat, numberFormat, NMDATETIMEFORMAT и enumeratedList. Как правило, PROPDESC_FORMAT_FLAGS используются для изменения формата, предписанного описанием свойства.

Выходная строка может содержать символы направления Юникода. Эти символы влияют на двунаправленный алгоритм Юникода, чтобы значения отображались правильно при рисовании языка слева направо (LTR) в окне справа налево (RTL) и наоборот. К этим символам относятся следующие: "\x200e", "\x200f", "\x202a", "\x202b", "\x202c", "\x202d", "\x202e".

Свойства в следующей таблице используют специальные форматы и не затрагиваются PROPDESC_FORMAT_FLAGS (примеры приведены для строк с текущим языковым стандартом английский язык; как правило, выходные данные локализованы, если не указано).

Свойство Формат
System.FileAttributes Следующие атрибуты файла преобразуются в буквы и добавляются для создания строки (например, значение 0x1801 (FILE_ATTRIBUTE_READONLY | FILE_ATTRIBUTE_COMPRESSED | FILE_ATTRIBUTE_OFFLINE) преобразуется в "RCO"):
  • FILE_ATTRIBUTE_READONLY (0x00000001) — 'R'
  • FILE_ATTRIBUTE_SYSTEM (0x00000004) - 'S'
  • FILE_ATTRIBUTE_ARCHIVE (0x00000020) -'A'
  • FILE_ATTRIBUTE_COMPRESSED (0x00000800) — 'C'
  • FILE_ATTRIBUTE_ENCRYPTED (0x00004000) — E
  • FILE_ATTRIBUTE_OFFLINE (0x00001000) — O
  • FILE_ATTRIBUTE_NOT_CONTENT_INDEXED (0x00002000) - 'I'
System.Photo.ISOSpeed Например, "ISO-400".
System.Photo.ShutterSpeed Значение APEX преобразуется в время экспозиции с помощью следующей формулы:

Exposure_time = 2^(-APEX_value)

Например, "2 секунды". или "1/125 с".

System.Photo.ExposureTime Например, "2 секунды". или "1/125 с".
System.Photo.Aperture Значение APEX преобразуется в число F по следующей формуле:

F_Number = 2^(APEX_Value / 2)

Например, "f/5.6".

System.Photo.FNumber Например, "f/5.6".
System.Photo.SubjectDistance Например, "15 м" или "250 мм".
System.Photo.FocalLength Например, "50 мм".
System.Photo.Flash Например, "500 bpcs".
System.Photo.ExposureBias Например, "шаг-2", "шаг 0" или "+3 шага".
System.Computer.DecoratedFreeSpace Например, "105 МБ без 13,2 ГБ".
System.ItemType Например, "Приложение" или "Изображение JPEG".
System.ControlPanel.Category Например, "Внешний вид и персонализация".
System.ComputerName Например, "LITWARE05 (этот компьютер)" или "testbox07".
 

Если ключ свойства не соответствует описанию свойства в любой из зарегистрированных схем свойств, этот метод выбирает формат в зависимости от типа значения, как описано в следующей таблице.

Тип значения Формат
VT_BOOLEAN Не поддерживается.
VT_FILETIME Строка даты и времени, указанная PROPDESC_FORMAT_FLAGS и текущим языковым стандартом. PDFF_SHORTTIME и PDFF_SHORTDATE используются по умолчанию. Например, "13.11.2006 15:22".
Числовой ТИП VARTYPE Десятичная строка в текущем языковом стандарте. Например, "42".
VT_LPWSTR или другие Строка. Последовательности "\r", "\t" или "\n" заменяются одним пробелом.
VT_VECTOR | Ничего Значения, разделенные точкой с запятой. Точка с запятой используется независимо от языкового стандарта.

Требования

Требование Значение
Минимальная версия клиента Windows Vista [только классические приложения]
Минимальная версия сервера Windows Server 2008 [только классические приложения]
Целевая платформа Windows
Header propsys.h
Распространяемые компоненты Windows Desktop Search (WDS) 3.0