Freigeben über


VariantToDoubleArray-Funktion (propvarutil.h)

Extrahiert ein Array von DOUBLE-Werten aus einer VARIANT-Struktur .

Syntax

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

Parameter

[in] var

Typ: REFVARIANT

Verweis auf eine VARIANT-Quellstruktur .

[out] prgn

Typ: DOUBLE*

Zeiger auf einen Puffer, der crgnDOUBLE-Werte enthält. Wenn diese Funktion zurückgibt, wurde der Puffer mit *pcElemDOUBLE-Elementen initialisiert, die aus der VARIANT-Quellstruktur extrahiert wurden.

[in] crgn

Typ: ULONG

Die Anzahl der Elemente im Puffer, auf die prgn verweist.

[out] pcElem

Typ: ULONG*

Wenn diese Funktion zurückgibt, enthält die Anzahl der DOUBLE-Elemente , die aus der VARIANT-Quellstruktur extrahiert wurden.

Rückgabewert

Typ: HRESULT

Gibt bei erfolgreicher Ausführung S_OK oder andernfalls einen Fehlerwert zurück, einschließlich der folgenden:

Rückgabecode Beschreibung
TYPE_E_BUFFERTOOSMALL
Die Variant-Quelle enthielt mehr als crgn-Werte .
E_INVALIDARG
Der VARIANT-Typ war nicht vom geeigneten Typ.

Hinweise

Diese Hilfsfunktion wird verwendet, wenn die aufrufende Anwendung erwartet, dass ein VARIANT-Array enthält, das aus einer festen Anzahl von DOUBLE-Werten besteht.

Wenn die Quelle VARIANT den Typ VT_ARRAY | VT_DOUBLE extrahiert diese Funktion bis zu crgnDOUBLE-Werte und platziert sie in den Puffer, auf den prgn verweist.

Wenn variant mehr Elemente enthält, als in den prgn-Puffer passen, gibt diese Funktion einen Fehler zurück und legt *pcElem auf 0 fest.

Beispiele

Im folgenden Beispiel, das als Teil eines größeren Programms eingeschlossen werden soll, wird veranschaulicht, wie VariantToDoubleArray für den Zugriff auf ein in einem VARIANT gespeichertes DOUBLE-Array verwendet wird.

// 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.
    }
}

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Windows XP mit SP2, Windows Vista [nur Desktop-Apps]
Unterstützte Mindestversion (Server) Windows Server 2003 mit SP1 [nur Desktop-Apps]
Zielplattform Windows
Kopfzeile propvarutil.h
Bibliothek Propsys.lib
DLL Propsys.dll (Version 6.0 oder höher)
Verteilbare Komponente Windows Desktop Search (WDS) 3.0

Weitere Informationen

InitVariantFromDoubleArray

PropVariantToDoubleVector

VariantGetDoubleElem

VariantToDouble

VariantToDoubleArrayAlloc