Compartir a través de


Función PropVariantToBoolean (propvarutil.h)

Extrae un valor de propiedad booleano de una estructura PROPVARIANT . Si no se puede extraer ningún valor, se asigna un valor predeterminado.

Sintaxis

PSSTDAPI PropVariantToBoolean(
  [in]  REFPROPVARIANT propvarIn,
  [out] BOOL           *pfRet
);

Parámetros

[in] propvarIn

Tipo: REFPROPVARIANT

Referencia a una estructura PROPVARIANT de origen.

[out] pfRet

Tipo: BOOL*

Cuando esta función vuelve, contiene el valor de propiedad extraído si existe uno; de lo contrario, contiene FALSE.

Valor devuelto

Tipo: HRESULT

Si esta función se realiza correctamente, devuelve S_OK. De lo contrario, devuelve un código de error de HRESULT.

Comentarios

Esta función auxiliar se usa en lugares donde la aplicación que realiza la llamada espera que un PROPVARIANT contenga un valor booleano. Por ejemplo, una aplicación que obtiene valores de un almacén de propiedades puede usarlo para extraer de forma segura el valor booleano para las propiedades booleanas.

Si el PROPVARIANT de origen tiene el tipo VT_BOOL, esta función auxiliar extrae el valor booleano. De lo contrario, intenta convertir el valor en la estructura PROPVARIANT en un valor booleano. Si no es posible una conversión, PropVariantToBoolean devolverá un código de error y establecerá pfRet en FALSE. Consulte PropVariantChangeType para obtener una lista de las posibles conversiones. Tenga en cuenta que VT_EMPTY se convierte correctamente en FALSE.

Ejemplos

En el ejemplo siguiente, para incluirse como parte de un programa mayor, se muestra cómo usar PropVariantToBoolean acceso a un valor booleano en un 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);
}

                    

Requisitos

Requisito Value
Cliente mínimo compatible Windows XP con SP2, Windows Vista [solo aplicaciones de escritorio]
Servidor mínimo compatible Windows Server 2003 con SP1 [solo aplicaciones de escritorio]
Plataforma de destino Windows
Encabezado propvarutil.h
Library Propsys.lib
Archivo DLL Propsys.dll (versión 6.0 o posterior)
Redistribuible Búsqueda de escritorio de Windows (WDS) 3.0

Consulte también

InitPropVariantFromBoolean

PropVariantGetBooleanElem

PropVariantToBooleanWithDefault

VariantToBoolean