Функция PropVariantToInt16 (propvarutil.h)
Извлекает значение свойства Int16 структуры PROPVARIANT .
Синтаксис
PSSTDAPI PropVariantToInt16(
[in] REFPROPVARIANT propvarIn,
[out] SHORT *piRet
);
Параметры
[in] propvarIn
Тип: REFPROPVARIANT
Ссылка на исходную структуру PROPVARIANT .
[out] piRet
Тип: SHORT*
При возврате этой функцией содержит значение извлеченного свойства, если оно существует; в противном случае — 0.
Возвращаемое значение
Тип: HRESULT
Если эта функция выполняется успешно, она возвращает S_OK. В противном случае возвращается код ошибки HRESULT .
Комментарии
Эта вспомогательская функция используется в тех местах, где вызывающее приложение ожидает proPVARIANT для хранения значения Int16. Например, приложение, получающее значения из хранилища свойств, может использовать это для безопасного извлечения значения Int16 для свойств Int16.
Если исходный PROPVARIANT имеет тип VT_I2, эта вспомогательная функция извлекает значение Int16. В противном случае он пытается преобразовать значение в структуре PROPVARIANT в int16. Если преобразование невозможно, PropVariantToInt16 вернет код сбоя и присвоит piRet значение 0. Список возможных преобразований см. в разделе PropVariantChangeType . Обратите внимание, что VT_EMPTY успешно преобразуется в 0.
Примеры
В следующем примере, который будет включен в более крупную программу, показано, как использовать PropVariantToInt16 для доступа к значению Int16 в PROPVARIANT.
// IPropertyStore *ppropstore;
// Assume variable ppropstore is initialized and valid
PROPVARIANT propvar = {0};
HRESULT hr = ppropstore->GetValue(PKEY_Image_ResolutionUnit, &propvar);
if (SUCCEEDED(hr))
{
// PKEY_Image_ResolutionUnit is expected to produce a VT_I2 or VT_EMPTY value.
// PropVariantToInt16 will convert VT_EMPTY to 0.
INT16 iUnit;
hr = PropVariantToInt16(propvar, & iUnit);
if (SUCCEEDED(hr))
{
// iUnit is now valid
}
else
{
// iUnit is always 0
}
PropVariantClear(&propvar);
}
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Windows XP с пакетом обновления 2 (SP2), Windows Vista [только классические приложения] |
Минимальная версия сервера | Windows Server 2003 с пакетом обновления 1 (SP1) [только классические приложения] |
Целевая платформа | Windows |
Header | propvarutil.h |
Библиотека | Propsys.lib |
DLL | Propsys.dll (версия 6.0 или более поздняя) |
Распространяемые компоненты | Windows Desktop Search (WDS) 3.0 |