Freigeben über


PropVariantToBooleanVector-Funktion (propvarutil.h)

Extrahiert einen booleschen Vektor aus einer PROPVARIANT-Struktur .

Syntax

PSSTDAPI PropVariantToBooleanVector(
  [in]  REFPROPVARIANT propvar,
  [out] BOOL           *prgf,
  [in]  ULONG          crgf,
  [out] ULONG          *pcElem
);

Parameter

[in] propvar

Typ: REFPROPVARIANT

Verweis auf eine PROPVARIANT-Quellstruktur .

[out] prgf

Typ: BOOL*

Zeigt auf einen Puffer, der crgfBOOL-Werte enthält. Wenn diese Funktion zurückgibt, wurde der Puffer mit pcElem Boolean-Elementen initialisiert, die aus der PROPVARIANT-Quellstruktur extrahiert wurden.

[in] crgf

Typ: ULONG

Anzahl der Elemente im Puffer, auf die prgf verweist.

[out] pcElem

Typ: ULONG*

Wenn diese Funktion zurückgibt, enthält die Anzahl der booleschen 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 crgf-Werte . Der Puffer, auf den prgf verweist.
E_INVALIDARG
Propvariant war nicht vom entsprechenden Typ.

Hinweise

Diese Hilfsfunktion wird verwendet, wenn die aufrufende Anwendung erwartet, dass eine PROPVARIANT einen booleschen Vektorwert mit einer festen Anzahl von Elementen enthält.

Wenn die Quelle PROPVARIANT den Typ VT_VECTOR | VT_BOOL oder VT_ARRAY | VT_BOOL extrahiert diese Hilfsfunktion bis zu crgf Boolean-Werte und platziert sie in den Puffer, auf den prgf verweist. Wenn propvariant 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 PropVariantToBooleanVector verwendet wird, um auf einen booleschen Vektor zuzugreifen, der in einem PROPVARIANT gespeichert ist.

// PROPVARIANT propvar;
// Assume the variable propvar is initialized and valid.

// The application is expecting the propvar variable to hold 4 Booleans
// in a vector.
BOOL rgFlags[4]; 
ULONG cFlags;
HRESULT hr = PropVariantToBooleanVector(propvar, rgFlags, ARRAYSIZE(rgFlags), &cFlags);

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

Anforderungen

   
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