Функция PropVariantToBoolean (propvarutil.h)
Извлекает значение логического свойства структуры PROPVARIANT . Если не удается извлечь значение, назначается значение по умолчанию.
Синтаксис
PSSTDAPI PropVariantToBoolean(
[in] REFPROPVARIANT propvarIn,
[out] BOOL *pfRet
);
Параметры
[in] propvarIn
Тип: REFPROPVARIANT
Ссылка на исходную структуру PROPVARIANT .
[out] pfRet
Тип: BOOL*
При возврате этой функции содержит значение извлеченного свойства, если оно существует; в противном случае содержит ЗНАЧЕНИЕ FALSE.
Возвращаемое значение
Тип: HRESULT
Если эта функция завершается успешно, она возвращает S_OK. В противном случае возвращается код ошибки HRESULT .
Комментарии
Эта вспомогательная функция используется в тех местах, где вызывающее приложение ожидает proPVARIANT для хранения логического значения. Например, приложение, получающее значения из хранилища свойств, может использовать его для безопасного извлечения логического значения для логических свойств.
Если исходный PROPVARIANT имеет тип VT_BOOL, эта вспомогательская функция извлекает логическое значение. В противном случае он пытается преобразовать значение в структуре PROPVARIANT в логическое значение. Если преобразование невозможно, PropVariantToBoolean вернет код сбоя и присвоит pfRet значение FALSE. Список возможных преобразований см. в разделе PropVariantChangeType . Обратите внимание, что VT_EMPTY успешно преобразуется в FALSE.
Примеры
В следующем примере, который будет включен в более крупную программу, показано, как использовать доступ PropVariantToBoolean с логическим значением в PROPVARIANT.
// IPropertyStore *ppropstore;
// Assume variable ppropstore is initialized and valid
PROPVARIANT propvar = {0};
HRESULT hr = ppropstore->GetValue(PKEY_IsShared, &propvar);
if (SUCCEEDED(hr))
{
// PKEY_IsShared is expected to produce a VT_BOOL or VT_EMPTY value.
// PropVariantToBoolean will convert VT_EMPTY to FALSE.
BOOL fShared;
hr = PropVariantToBoolean(propvar, &fShared);
if (SUCCEEDED(hr))
{
// fShared is now valid
}
else
{
// fShared is always FALSE
}
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 |