Condividi tramite


Funzione PropVariantToUInt16WithDefault (propvarutil.h)

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

Sintassi

PSSTDAPI_(USHORT) PropVariantToUInt16WithDefault(
  [in] REFPROPVARIANT propvarIn,
  [in] USHORT         uiDefault
);

Parametri

[in] propvarIn

Tipo: REFPROPVARIANT

Riferimento a una struttura PROPVARIANT di origine.

[in] uiDefault

Tipo: USHORT

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

Valore restituito

Tipo: unsigned short

Restituisce un valore short senza segno 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 short senza segno . Ad esempio, un'applicazione che ottiene valori da un archivio proprietà può usarla per estrarre in modo sicuro il valore breve senza segno per le proprietà UInt16.

Se l'origine PROPVARIANT ha tipo VT_UI2, questa funzione helper estrae il valore short senza segno . In caso contrario, tenta di convertire il valore nella struttura PROPVARIANT in un short senza segno. Se una conversione non è possibile, PropVariantToUInt16 restituirà un codice di errore e imposterà puiRet su 0. Per un elenco delle conversioni possibili, vedere PropVariantChangeType . Si noti che VT_EMPTY viene convertito correttamente in 0.

Esempio

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

// IPropertyStore *ppropstore;

// Assume variable ppropstore is initialized and valid

PROPVARIANT propvar = {0};

HRESULT hr = ppropstore->GetValue(PKEY_FlagColor, &propvar);

if (SUCCEEDED(hr))

{

     // PKEY_FlagColor is expected to produce a VT_UI2 or VT_EMPTY value.

     // PropVariantToInt32 will convert VT_EMPTY to 0.

     USHORT uColor;

     hr = PropVariantToUInt32(propvar, & uColor);

     if (SUCCEEDED(hr))

     {

             // uColor is now valid

     }

     else

     {

             // uColor is always 0

     }

     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

InitPropVariantFromUInt16

PropVariantChangeType

PropVariantToUInt16Vector

VariantToUInt16