Freigeben über


PropVariantToInt32Vector-Funktion (propvarutil.h)

Extrahiert einen Vektor mit langen Werten aus einer PROPVARIANT-Struktur .

Syntax

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

Parameter

[in] propvar

Typ: REFPROPVARIANT

Verweis auf eine PROPVARIANT-Quellstruktur .

[out] prgn

Typ: LONG*

Zeigt auf einen Puffer mit crgnLONG-Werten . Wenn diese Funktion zurückgibt, wurde der Puffer mit pcElemLONG-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 LONG-Elemente , die aus der Quellstruktur PROPVARIANT 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 entsprechenden Typ.

Hinweise

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

Wenn die Propvariant-Quelleden Typ VT_VECTOR | VT_I4 oder VT_ARRAY | VT_I4 hat, extrahiert diese Hilfsfunktion bis zu crgnLONG-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 PropVariantToInt32Vector verwendet wird, um auf einen Int32-Vektorwert in einem PROPVARIANT zuzugreifen.

// PROPVARIANT propvar;
// Assume the variable propvar is initialized and valid
LONG rgLongs[4]; // The application is expecting propvar to hold 4 LONGs in a vector
ULONG cElems;
HRESULT hr = PropVariantToInt32Vector(propvar, rgLongs, ARRAYSIZE(rgLongs), &cElems);
if (SUCCEEDED(hr))
{
     if (cElems == ARRAYSIZE(rgLongs))
     {
         // The application got 4 LONGs 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

InitPropVariantFromInt32Vector

PropVariantGetInt32Elem

PropVariantToInt32

PropVariantToInt32VectorAlloc

VariantToInt32Array