Condividi tramite


Funzione PropVariantToInt32WithDefault (propvarutil.h)

Estrae un valore Int32 da una struttura PROPVARIANT . Se non esiste alcun valore, viene restituito il valore predefinito specificato.

Sintassi

PSSTDAPI_(LONG) PropVariantToInt32WithDefault(
  [in] REFPROPVARIANT propvarIn,
  [in] LONG           lDefault
);

Parametri

[in] propvarIn

Tipo: REFPROPVARIANT

Riferimento a una struttura PROPVARIANT di origine.

[in] lDefault

Tipo: LONG

Specifica un valore di proprietà predefinito, per l'utilizzo in cui non esiste alcun valore.

Valore restituito

Tipo: LONG

Restituisce il valore LONG estratto o il valore predefinito.

Commenti

Questa funzione helper viene usata in posizioni in cui l'applicazione chiamante prevede che un PROPVARIANT contenga un valore LONG e desideri usare un valore predefinito se non lo fa. Ad esempio, un'applicazione che ottiene valori da un archivio proprietà può usarla per estrarre in modo sicuro il valore LONG per le proprietà Int32 .

Se l'origine PROPVARIANT ha tipo VT_I4, questa funzione helper estrae il valore LONG . In caso contrario, tenta di convertire il valore nella struttura PROPVARIANT in un valore LONG. Se l'origine PROPVARIANT ha tipo VT_EMPTY o non è possibile eseguire una conversione, PropVariantToInt32WithDefault restituirà l'impostazione predefinita fornita da lDefault. Per un elenco delle conversioni possibili, vedere PropVariantChangeType .

Esempio

Nell'esempio seguente, da includere come parte di un programma più ampio, viene illustrato come usare PropVariantToInt32WithDefault per accedere a un valore LONG in un PROPVARIANT.

// IPropertyStore *ppropstore;
// Assume variable ppropstore is initialized and valid
PROPVARIANT propvar = {0};
HRESULT hr = ppropstore->GetValue(PKEY_FlagStatus, &propvar);
if (SUCCEEDED(hr))
{
     // PKEY_FlagStatus is expected to produce a VT_I4 or VT_EMPTY value.
     // The application developer decided to treat VT_EMPTY or invalid values as 0
     LONG iStatus = PropVariantToInt32WithDefault(propvar, 0);
     // iStatus is now valid.
     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

InitPropVariantFromInt32

PropVariantChangeType

PropVariantToInt32

VariantToInt32