Freigeben über


VariantToBooleanArray-Funktion (propvarutil.h)

Extrahiert ein Array boolescher Werte aus einer VARIANT-Struktur .

Syntax

PSSTDAPI VariantToBooleanArray(
  [in]  REFVARIANT var,
  [out] BOOL       *prgf,
  [in]  ULONG      crgn,
  [out] ULONG      *pcElem
);

Parameter

[in] var

Typ: REFVARIANT

Verweis auf eine VARIANT-Quellstruktur .

[out] prgf

Typ: BOOL*

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

[in] crgn

Typ: ULONG

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

[out] pcElem

Typ: ULONG*

Wenn diese Funktion zurückgibt, enthält einen Zeiger auf die Anzahl der BOOL-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 hatte nicht den entsprechenden Typ.

Hinweise

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

Wenn die Variant-Quelle vom Typ VT_ARRAY | VT_BOOL extrahiert diese Funktion bis zu crgnBOOL-Werte und platziert sie in den Puffer, auf den prgf verweist. Wenn variant mehr Elemente enthält, als in den prgf-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 VariantToBooleanArray verwendet wird, um auf ein Array von BOOL-Werten zuzugreifen, die in einer VARIANT-Struktur gespeichert sind.

// VARIANT var;
// Assume variable var is initialized and valid
BOOL rgFlags[4]; // The application is expecting var to hold 4 BOOLs in an array.
ULONG cFlags;

HRESULT hr = VariantToBooleanArray(var, rgFlags, ARRAYSIZE(rgFlags), &cFlags);

if (SUCCEEDED(hr))
{
    if (cFlags == ARRAYSIZE(rgFlags))
    {
        // The application got 4 flag values which are now stored in rgFlags.
    }
    else
    {
        // The application got cFlags which are stored in the first cFlags 
        // elements of rgFlags.
    }
}

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

InitVariantFromBooleanArray

PropVariantToBooleanVector

VariantGetBooleanElem

VariantToBoolean

VariantToBooleanArrayAlloc