Condividi tramite


Funzione VariantToBooleanArray (propvarutil.h)

Estrae una matrice di valori booleani da una struttura VARIANT .

Sintassi

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

Parametri

[in] var

Tipo: REFVARIANT

Riferimento a una struttura VARIANT di origine.

[out] prgf

Tipo: BOOL*

Puntatore a un buffer contenente valori booleani crgn . Al termine di questa funzione, il buffer è stato inizializzato con gli elementi *pcElemBOOL estratti dalla struttura VARIANT di origine.

[in] crgn

Tipo: ULONG

Numero di elementi nel buffer a cui punta prgf.

[out] pcElem

Tipo: ULONG*

Quando termina, questa funzione contiene un puntatore al conteggio degli elementi BOOL estratti dalla struttura VARIANT di origine.

Valore restituito

Tipo: HRESULT

Restituisce S_OK in caso di esito positivo o un valore di errore, incluso quanto segue:

Codice restituito Descrizione
TYPE_E_BUFFERTOOSMALL
L'origine VARIANT contiene più valori crgn .
E_INVALIDARG
VARIANT non era del tipo appropriato.

Commenti

Questa funzione helper viene usata quando l'applicazione chiamante prevede che un valore VARIANT contenga una matrice costituita da un numero fisso di valori booleani.

Se l'origine VARIANT è di tipo VT_ARRAY | VT_BOOL, questa funzione estrae fino a valori BOOLcrgn e li inserisce nel buffer a cui punta prgf. Se variant contiene più elementi di quelli che verranno inseriti nel buffer prgf , questa funzione restituisce un errore e imposta *pcElem su 0.

Esempio

Nell'esempio seguente, da includere come parte di un programma più ampio, viene illustrato come usare VariantToBooleanArray per accedere a una matrice di valori BOOL archiviati in una struttura VARIANT .

// 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.
    }
}

Requisiti

Requisito Valore
Client minimo supportato Windows XP con SP2, Windows Vista [solo app desktop]
Server minimo supportato Windows Server 2003 con SP1 [solo app desktop]
Piattaforma di destinazione Windows
Intestazione propvarutil.h
Libreria Propsys.lib
DLL Propsys.dll (versione 6.0 o successiva)
Componente ridistribuibile Windows Desktop Search (WDS) 3.0

Vedi anche

InitVariantFromBooleanArray

PropVariantToBooleanVector

VariantGetBooleanElem

VariantToBoolean

VariantToBooleanArrayAlloc