Condividi tramite


Funzione VariantToDoubleArray (propvarutil.h)

Estrae una matrice di valori DOUBLE da una struttura VARIANT .

Sintassi

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

Parametri

[in] var

Tipo: REFVARIANT

Riferimento a una struttura VARIANT di origine.

[out] prgn

Tipo: DOUBLE*

Puntatore a un buffer che contiene valori DOUBLE crgn. Al termine di questa funzione, il buffer è stato inizializzato con *pcElemDOUBLE elementi estratti dalla struttura VARIANT di origine.

[in] crgn

Tipo: ULONG

Numero di elementi nel buffer a cui punta prgn.

[out] pcElem

Tipo: ULONG*

Quando questa funzione viene restituita, contiene il numero di elementi DOUBLE estratti dalla struttura VARIANT di origine.

Valore restituito

Tipo: HRESULT

Restituisce S_OK in caso di esito positivo o un valore di errore, incluso quanto segue:

Codice restituito Descrizione
TYPE_E_BUFFERTOOSMALL
L'origine VARIANT contiene più valori crgn .
E_INVALIDARG
VARIANT non era del tipo appropriato.

Commenti

Questa funzione helper viene usata quando l'applicazione chiamante prevede che un valore VARIANT contenga una matrice costituita da un numero fisso di valori DOUBLE .

Se l'origine VARIANT ha tipo VT_ARRAY | VT_DOUBLE, questa funzione estrae fino a valori DOUBLEcrgn e li inserisce nel buffer a cui punta prgn.

Se variant contiene più elementi di quanto si inserisca nel buffer prgn , questa funzione restituisce un errore e imposta *pcElem su 0.

Esempio

Nell'esempio seguente, da includere come parte di un programma più ampio, viene illustrato come usare VariantToDoubleArray per accedere a una matrice DOUBLE archiviata in un valore 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.
    }
}

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

InitVariantFromDoubleArray

PropVariantToDoubleVector

VariantGetDoubleElem

VariantToDouble

VariantToDoubleArrayAlloc