Condividi tramite


Funzione PropVariantToBoolean (propvarutil.h)

Estrae un valore della proprietà booleana di una struttura PROPVARIANT . Se non è possibile estrarre alcun valore, viene assegnato un valore predefinito.

Sintassi

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

Parametri

[in] propvarIn

Tipo: REFPROPVARIANT

Riferimento a una struttura PROPVARIANT di origine.

[out] pfRet

Tipo: BOOL*

Quando questa funzione viene restituita, contiene il valore della proprietà estratta, se presente; in caso contrario, contiene FALSE.

Valore restituito

Tipo: HRESULT

Se questa funzione ha esito positivo, restituisce S_OK. In caso contrario, restituisce un codice di errore HRESULT .

Commenti

Questa funzione helper viene usata in posizioni in cui l'applicazione chiamante prevede che un PROPVARIANT contenga un valore booleano. Ad esempio, un'applicazione che ottiene valori da un archivio proprietà può usarla per estrarre in modo sicuro il valore booleano per le proprietà booleane.

Se l'origine PROPVARIANT ha tipo VT_BOOL, questa funzione helper estrae il valore booleano. In caso contrario, tenta di convertire il valore nella struttura PROPVARIANT in un valore booleano. Se non è possibile eseguire una conversione, PropVariantToBoolean restituirà un codice di errore e imposterà pfRet su FALSE. Per un elenco delle conversioni possibili, vedere PropVariantChangeType . Si noti che VT_EMPTY viene convertito correttamente in FALSE.

Esempio

Nell'esempio seguente, da includere come parte di un programma più ampio, viene illustrato come usare PropVariantToBoolean per accedere a un valore booleano in 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);
}

                    

Requisiti

Requisito Valore
Client minimo supportato Windows XP con SP2, Windows Vista [solo app desktop]
Server minimo supportato Windows Server 2003 con SP1 [solo app desktop]
Piattaforma di destinazione Windows
Intestazione propvarutil.h
Libreria Propsys.lib
DLL Propsys.dll (versione 6.0 o successiva)
Componente ridistribuibile Windows Desktop Search (WDS) 3.0

Vedi anche

InitPropVariantFromBoolean

PropVariantGetBooleanElem

PropVariantToBooleanWithDefault

VariantToBoolean