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


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

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

Синтаксис

HRESULT FormatForDisplayAlloc(
  [in]  REFPROPERTYKEY        key,
  [in]  REFPROPVARIANT        propvar,
  [in]  PROPDESC_FORMAT_FLAGS pdff,
  [out] LPWSTR                *ppszDisplay
);

Параметры

[in] key

Тип: REFPROPERTYKEY

Ссылка на требуемый PROPERTYKEY.

[in] propvar

Тип: REFPROPVARIANT

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

[in] pdff

Тип: PROPDESC_FORMAT_FLAGS

Формат строки свойства. См . PROPDESC_FORMAT_FLAGS.

[out] ppszDisplay

Тип: LPWSTR*

При возврате этого метода содержит указатель на форматированное значение в виде строки Юникода, завершаемой null.

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

Тип: HRESULT

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

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

Комментарии

Перед вызовом IPropertySystem::FormatForDisplayAlloc необходимо инициализировать модель com с помощью CoInitialize или OleInitialize.

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

Этот метод выделяет память для буфера и возвращает указатель на него в ppszDisplay. Вызывающее приложение должно использовать CoTaskMemFree , чтобы освободить строку, указанную в ppszDisplay , когда она больше не нужна.

Этот метод предназначен для преобразования данных в строку, подходящую для отображения пользователю. Значение форматируется в соответствии с текущим языковым стандартом, языком пользователя, 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 бит/с".
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".
Numeric VARTYPE Десятичная строка в текущем языковом стандарте. Например, "42".
VT_LPWSTR или другое Преобразуется в строку. Последовательности "\r", "\t" или "\n" заменяются одним пробелом.
VT_VECTOR | Ничего Значения с запятой, разделенные точкой с запятой— точка с запятой используется независимо от языкового стандарта.

Требования

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

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

IPropertySystem

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