Partager via


Fonction PropVariantToDouble (propvarutil.h)

Extrait la double valeur d’une structure PROPVARIANT .

Syntaxe

PSSTDAPI PropVariantToDouble(
  [in]  REFPROPVARIANT propvarIn,
  [out] DOUBLE         *pdblRet
);

Paramètres

[in] propvarIn

Type : REFPROPVARIANT

Référence à une structure PROPVARIANT source.

[out] pdblRet

Type : DOUBLE*

Lorsque cette fonction retourne, contient la valeur de la propriété extraite le cas échéant ; sinon, contient 0,0.

Valeur retournée

Type : HRESULT

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

Notes

Cette fonction d’assistance est utilisée dans les endroits où l’application appelante s’attend à ce qu’un PROPVARIANT contienne une seule valeur à virgule flottante double. 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é une double valeur pour les propriétés doubles.

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

Exemples

L’exemple suivant, à inclure dans un programme plus grand, montre comment utiliser PropVariantToDouble pour accéder à une double valeur dans un PROPVARIANT.

// IPropertyStore *ppropstore;
// Assume variable ppropstore is initialized and valid
PROPVARIANT propvar = {0};
HRESULT hr = ppropstore->GetValue(PKEY_Image_HorizontalResolution, &propvar);
if (SUCCEEDED(hr))
{
     // PKEY_Image_HorizontalResolution is expected to produce a VT_R8 or VT_EMPTY value.
     // PropVariantToDouble will successfully convert VT_EMPTY to a 0.0.
     DOUBLE dblHorzResolution;
     hr = PropVariantToDouble(propvar, &dblHorzResolution);
     if (SUCCEEDED(hr))
     {
        // dblHorzResolution is now valid
     }
     else
     {
        // dblHorzResolution contains 0.0
     }
     PropVariantClear(&propvar);
}

Spécifications

   
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

InitPropVariantFromDouble

PropVariantGetDoubleElem

PropVariantToDoubleWithDefault

VariantToDouble