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


Функция 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

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

InitPropVariantFromBoolean

PropVariantGetBooleanElem

PropVariantToBooleanWithDefault

VariantToBoolean