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 |
---|---|
|
Gibt bei erfolgreicher Ausführung S_OK oder andernfalls einen Fehlerwert zurück. |
|
Die Propvariant-Quelle enthielt mehr als crgn-Werte. Der Puffer, auf den prgn verweist. |
|
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 |