Partager via


PropVariantToUInt32, fonction (propvarutil.h)

Extrait une valeur ULONG d’une structure PROPVARIANT . Si aucune valeur ne peut être extraite, une valeur par défaut est affectée.

Syntaxe

PSSTDAPI PropVariantToUInt32(
  [in]  REFPROPVARIANT propvarIn,
  [out] ULONG          *pulRet
);

Paramètres

[in] propvarIn

Type : REFPROPVARIANT

Référence à une structure PROPVARIANT source.

[out] pulRet

Type : ULONG*

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

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 ULONG . 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 ULONG des propriétés UInt32.

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

Exemples

L’exemple suivant, à inclure dans le cadre d’un programme plus large, montre comment utiliser PropVariantToUInt32 pour accéder à une valeur ULONG dans un PROPVARIANT.

// IPropertyStore *ppropstore;

// Assume variable ppropstore is initialized and valid

PROPVARIANT propvar = {0};

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

if (SUCCEEDED(hr))

{

     // PKEY_Rating is expected to produce a VT_UI4 or VT_EMPTY value.

     // PropVariantToUInt32 will convert VT_EMPTY to 0.

     ULONG uRating;

     hr = PropVariantToUInt32(propvar, &uRating);

     if (SUCCEEDED(hr))

     {

             // uRating is now valid

     }

     else

     {

             // uRating is always 0

     }

     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

InitPropVariantFromUInt32

PropVariantChangeType

PropVariantToUInt32Vector

VariantToUInt32