Partager via


Fonction VariantToDoubleArray (propvarutil.h)

Extrait un tableau de valeurs DOUBLE d’une structure VARIANT .

Syntaxe

PSSTDAPI VariantToDoubleArray(
  [in]  REFVARIANT var,
  [out] DOUBLE     *prgn,
  [in]  ULONG      crgn,
  [out] ULONG      *pcElem
);

Paramètres

[in] var

Type : REFVARIANT

Référence à une structure VARIANT source.

[out] prgn

Type : DOUBLE*

Pointeur vers une mémoire tampon qui contient des valeurs crgnDOUBLE . Lorsque cette fonction retourne, la mémoire tampon a été initialisée avec des éléments *pcElemDOUBLE extraits de la structure VARIANT source.

[in] crgn

Type : ULONG

Nombre d’éléments dans la mémoire tampon pointés vers prgn.

[out] pcElem

Type : ULONG*

Lorsque cette fonction retourne, contient le nombre d’éléments DOUBLE extraits de la structure VARIANT source.

Valeur retournée

Type : HRESULT

Retourne S_OK en cas de réussite, ou une valeur d’erreur dans le cas contraire, y compris les éléments suivants :

Code de retour Description
TYPE_E_BUFFERTOOSMALL
Le VARIANT source contenait plus de valeurs crgn .
E_INVALIDARG
Variant n’était pas du type approprié.

Remarques

Cette fonction d’assistance est utilisée lorsque l’application appelante s’attend à ce qu’un VARIANT contienne un tableau qui se compose d’un nombre fixe de valeurs DOUBLE .

Si le VARIANT source a le type VT_ARRAY | VT_DOUBLE, cette fonction extrait jusqu’à crgnDOUBLE et les place dans la mémoire tampon vers laquelle pointe prgn.

Si la fonction VARIANT contient plus d’éléments que ne peut contenir dans la mémoire tampon prgn , cette fonction retourne une erreur et définit *pcElem sur 0.

Exemples

L’exemple suivant, à inclure dans le cadre d’un programme plus large, montre comment utiliser VariantToDoubleArray pour accéder à un tableau DOUBLE stocké dans un variant.

// VARIANT var;
// Assume variable var is initialized and valid.
DOUBLE rgDoubles[4]; // The application expects var to hold 4 DOUBLEs in an array.
ULONG cDoubles;

HRESULT hr = VariantToDoubleArray(var, rgDoubles, ARRAYSIZE(rgDoubles), &cFlags);

if (SUCCEEDED(hr))
{
    if (cFlags == ARRAYSIZE(rgDoubles))
    {
        // The application got 4 DOUBLEs which are now stored in rgDoubles.
    }
    else
    {
        // The application got *pcElem DOUBLEs which are stored in the first 
        // *pcElem elements of rgDoubles.
    }
}

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

InitVariantFromDoubleArray

PropVariantToDoubleVector

VariantGetDoubleElem

VariantToDouble

VariantToDoubleArrayAlloc