Partager via


Fonction VariantToBooleanArray (propvarutil.h)

Extrait un tableau de valeurs booléennes d’une structure VARIANT .

Syntaxe

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

Paramètres

[in] var

Type : REFVARIANT

Référence à une structure VARIANT source.

[out] prgf

Type : BOOL*

Pointeur vers une mémoire tampon qui contient des valeurs booléennes crgn . Lorsque cette fonction est retournée, la mémoire tampon a été initialisée avec des éléments *pcElemBOOL extraits de la structure VARIANT source.

[in] crgn

Type : ULONG

Nombre d’éléments dans la mémoire tampon pointés par prgf.

[out] pcElem

Type : ULONG*

Lorsque cette fonction retourne, contient un pointeur vers le nombre d’éléments BOOL extraits de la structure VARIANT source.

Valeur retournée

Type : HRESULT

Retourne S_OK en cas de réussite, ou une valeur d’erreur dans le cas contraire, y compris les éléments suivants :

Code de retour Description
TYPE_E_BUFFERTOOSMALL
Le VARIANT source contenait plus de valeurs crgn .
E_INVALIDARG
Variant n’était pas du type approprié.

Remarques

Cette fonction d’assistance est utilisée lorsque l’application appelante s’attend à ce qu’un VARIANT contienne un tableau qui se compose d’un nombre fixe de valeurs booléennes.

Si le VARIANT source est de type VT_ARRAY | VT_BOOL, cette fonction extrait jusqu’à crgnvaleurs BOOL et les place dans la mémoire tampon vers laquelle pointe prgf. Si la fonction VARIANT contient plus d’éléments que la mémoire tampon prgf , cette fonction retourne une erreur et définit *pcElem sur 0.

Exemples

L’exemple suivant, à inclure dans le cadre d’un programme plus large, montre comment utiliser VariantToBooleanArray pour accéder à un tableau de valeurs BOOL stockées dans une structure 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.
    }
}

Configuration requise

Condition requise Valeur
Client minimal pris en charge Windows XP avec SP2, Windows Vista [applications de bureau uniquement]
Serveur minimal pris en charge Windows Server 2003 avec SP1 [applications de bureau uniquement]
Plateforme cible Windows
En-tête propvarutil.h
Bibliothèque Propsys.lib
DLL Propsys.dll (version 6.0 ou ultérieure)
Composant redistribuable Windows Desktop Search (WDS) 3.0

Voir aussi

InitVariantFromBooleanArray

PropVariantToBooleanVector

VariantGetBooleanElem

VariantToBoolean

VariantToBooleanArrayAlloc