PropVariantToUInt32Vector-Funktion (propvarutil.h)
Extrahiert Daten aus einer PROPVARIANT-Struktur in einen ULONG-Vektor .
Syntax
PSSTDAPI PropVariantToUInt32Vector(
[in] REFPROPVARIANT propvar,
[out] ULONG *prgn,
[in] ULONG crgn,
[out] ULONG *pcElem
);
Parameter
[in] propvar
Typ: REFPROPVARIANT
Verweis auf eine PROPVARIANT-Quellstruktur .
[out] prgn
Typ: ULONG*
Verweist auf einen Puffer, der crgnULONG-Werte enthält. Wenn diese Funktion zurückgibt, wurde der Puffer mit pcElemULONG-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 ULONG-Werte , die aus der PROPVARIANT-Quellstruktur 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, ist zu klein. |
|
PropVARIANT war nicht vom geeigneten Typ. |
Hinweise
Diese Hilfsfunktion wird an Stellen verwendet, an denen die aufrufende Anwendung erwartet, dass propVARIANT einen Vektor von ULONG-Werten mit einer festen Anzahl von Elementen enthält.
Wenn die PROPVARIANT-Quelleden Typ VT_VECTOR | VT_UI4 oder VT_ARRAY | VT_UI4 aufweist, extrahiert diese Hilfsfunktion bis zu crgn-ULONG-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 PropVariantToUInt32Vector verwendet wird, um auf einen ULONG-Vektorwert in einem PROPVARIANT zuzugreifen.
// PROPVARIANT propvar;
// Assume the variable propvar is initialized and valid
ULONG rgLongs[4]; // The application is expecting propvar to hold 4 ULONGs in a vector
ULONG cElems;
HRESULT hr = PropVariantToUInt32Vector(propvar, rgLongs, ARRAYSIZE(rgLongs), &cElems);
if (SUCCEEDED(hr))
{
if (cElems == ARRAYSIZE(rgLongs))
{
// The application got 4 ULONGs 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
InitPropVariantFromUInt32Vector