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

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

Синтаксис

HRESULT FormatForDisplay(
  [in]  REFPROPVARIANT        propvar,
  [in]  PROPDESC_FORMAT_FLAGS pdfFlags,
  [out] LPWSTR                *ppszDisplay
);

Параметры

[in] propvar

Тип: REFPROPVARIANT

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

[in] pdfFlags

Тип: PROPDESC_FORMAT_FLAGS

Один или несколько флагов PROPDESC_FORMAT_FLAGS , которые являются битовыми или несколькими значениями, которые указывают формат строки свойства.

[out] ppszDisplay

Тип: LPWSTR*

Адрес указателя на строку Юникода, завершающуюся null, которая содержит отображаемый текст.

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

Тип: HRESULT

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

Код возврата Описание
S_OK
Строка была скопирована и завершена null без усечения. Эта строка может быть возвращена пустой из-за пустой входной строки или из непустого значения, отформатированного как пустая строка.
S_FALSE
Пустая строка была получена в результате VT_EMPTY.
E_INVALIDARG
Параметр pszText имеет значение NULL.
ERROR_INSUFFICIENT_BUFFER
Операция копирования завершилась сбоем из-за нехватки места. Буфер назначения изменяется так, чтобы он содержал усеченную версию идеального результата и завершается значением NULL.

Комментарии

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

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

Цель этого метода — преобразовать данные в строку, подходящую для отображения пользователю. Значение отформатировано в соответствии с текущим языковым стандартом, языком пользователя, 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.ComputerName Например, "LITWARE05 (этот компьютер)" или "testbox07".

Требования

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

См. также раздел

IPropertyDescription

Схема описания свойства