Freigeben über


PropVariantToUInt64Vector-Funktion (propvarutil.h)

Extrahiert Daten aus einer PROPVARIANT-Struktur in einen ULONGLONG-Vektor .

Syntax

PSSTDAPI PropVariantToUInt64Vector(
  [in]  REFPROPVARIANT propvar,
  [out] ULONGLONG      *prgn,
  [in]  ULONG          crgn,
  [out] ULONG          *pcElem
);

Parameter

[in] propvar

Typ: REFPROPVARIANT

Verweis auf eine PROPVARIANT-Quellstruktur .

[out] prgn

Typ: ULONGLONG*

Verweist auf einen Puffer, der crgnULONGLONG-Werte enthält. Wenn diese Funktion zurückgibt, wurde der Puffer mit pcElemULONGLONG-Elementen initialisiert, die aus der PROPVARIANT-Quelle extrahiert wurden.

[in] crgn

Typ: ULONG

Größe des Puffers, auf den prgn in -Elementen verweist.

[out] pcElem

Typ: ULONG*

Wenn diese Funktion zurückgibt, enthält die Anzahl der ULONGLONGLONG-Werte , die aus der PROPVARIANT-Quellstruktur extrahiert wurden.

Rückgabewert

Typ: HRESULT

Diese Funktion kann einen dieser Werte zurückgeben.

Rückgabecode BESCHREIBUNG
S_OK
Gibt bei erfolgreicher Ausführung S_OK oder andernfalls einen Fehlerwert zurück.
TYPE_E_BUFFERTOOSMALL
Die PROPVARIANT-Quelle enthielt mehr als crgn-Werte . Der Puffer, auf den prgn verweist.
E_INVALIDARG
PropVARIANT war nicht vom geeigneten Typ.

Hinweise

Diese Hilfsfunktion wird an Stellen verwendet, an denen die aufrufende Anwendung erwartet, dass propvariant einen Vektor von ULONGLONG-Werten mit einer festen Anzahl von Elementen enthält.

Wenn die PROPVARIANT-Quelleden Typ VT_VECTOR | VT_UI8 oder VT_ARRAY | VT_UI8 aufweist, extrahiert diese Hilfsfunktion bis zu crgn-ULONGLONG-Werte und platziert sie in den Puffer, auf den prgn verweist. Wenn PROPVARIANT 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 PropVariantToUInt64Vector verwendet wird, um auf einen ULONGLONG-Vektorwert in einem PROPVARIANT zuzugreifen.

// PROPVARIANT propvar;
// Assume the variable propvar is initialized and valid
ULONGLONG rgLongs[4]; // The application is expecting propvar to hold 4 ULONGLONGs in a vector
ULONG cElems;
HRESULT hr = PropVariantToUInt64Vector(propvar, rgLongs, ARRAYSIZE(rgLongs), &cElems);
if (SUCCEEDED(hr))
{
     if (cElems == ARRAYSIZE(rgLongs))
     {
         // The application got 4 ULONGLONGs which are now stored in rgLongs
     }
     else
     {
         // The application got cElems which are stored in the first cElems elements of rgLongs
     }
}

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

InitPropVariantFromUInt64Vector

PropVariantGetUInt64Elem

PropVariantToUInt64

PropVariantToUInt64VectorAlloc

VariantToUInt64Array