Share via


PropVariantToBoolean, fonction (propvarutil.h)

Extrait une valeur de propriété booléenne d’une structure PROPVARIANT . Si aucune valeur ne peut être extraite, une valeur par défaut est affectée.

Syntaxe

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

Paramètres

[in] propvarIn

Type : REFPROPVARIANT

Référence à une structure PROPVARIANT source.

[out] pfRet

Type : BOOL*

Lorsque cette fonction est retournée, contient la valeur de propriété extraite si elle existe ; sinon, contient FALSE.

Valeur retournée

Type : HRESULT

Si cette fonction réussit, elle retourne S_OK. Sinon, elle retourne un code d’erreur HRESULT.

Remarques

Cette fonction d’assistance est utilisée dans les endroits où l’application appelante s’attend à ce qu’un PROPVARIANT contienne une valeur booléenne. Par instance, une application qui obtient des valeurs à partir d’un magasin de propriétés peut l’utiliser pour extraire en toute sécurité la valeur booléenne des propriétés booléennes.

Si la source PROPVARIANT a le type VT_BOOL, cette fonction d’assistance extrait la valeur booléenne. Sinon, il tente de convertir la valeur de la structure PROPVARIANT en booléen. Si une conversion n’est pas possible, PropVariantToBoolean retourne un code d’échec et définit pfRet sur FALSE. Pour obtenir la liste des conversions possibles, consultez PropVariantChangeType . Notez que VT_EMPTY est correctement converti en FALSE.

Exemples

L’exemple suivant, à inclure dans le cadre d’un programme plus large, montre comment utiliser PropVariantToBoolean accéder à une valeur booléenne dans 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);
}

                    

Configuration requise

Condition requise Valeur
Client minimal pris en charge Windows XP avec SP2, Windows Vista [applications de bureau uniquement]
Serveur minimal pris en charge Windows Server 2003 avec SP1 [applications de bureau uniquement]
Plateforme cible Windows
En-tête propvarutil.h
Bibliothèque Propsys.lib
DLL Propsys.dll (version 6.0 ou ultérieure)
Composant redistribuable Windows Desktop Search (WDS) 3.0

Voir aussi

InitPropVariantFromBoolean

PropVariantGetBooleanElem

PropVariantToBooleanWithDefault

VariantToBoolean