Метод 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 .
[out] pszText
Тип: LPWSTR
Получает форматированное значение в виде строки Юникода, завершаемой null. Вызывающее приложение должно выделить память для буфера.
[in] cchText
Тип: DWORD
Длина буфера в pszText в WCHAR, включая завершающее значение NULL. Максимальный размер составляет 0x8000 (32 КБ).
Возвращаемое значение
Тип: HRESULT
Возвращает одно из следующих значений.
Код возврата | Описание |
---|---|
|
Создается форматированная строка. |
|
Форматированная строка не создается. S_FALSE указывает, что пустая строка является результатом VT_EMPTY. |
|
Ошибка выделения памяти. |
Комментарии
Перед вызовом 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"):
|
System.Photo.ISOSpeed | Например, "ISO-400". |
System.Photo.ShutterSpeed |
Значение APEX преобразуется в время экспозиции с помощью следующей формулы:
Например, "2 секунды". или "1/125 с". |
System.Photo.ExposureTime | Например, "2 секунды". или "1/125 с". |
System.Photo.Aperture |
Значение APEX преобразуется в число F по следующей формуле:
Например, "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 |