Partager via


Fonction InitVariantFromVariantArrayElem (propvarutil.h)

Initialise une structure VARIANT avec une valeur stockée dans une autre structure VARIANT .

Syntaxe

PSSTDAPI InitVariantFromVariantArrayElem(
  [in]  REFVARIANT varIn,
  [in]  ULONG      iElem,
  [out] VARIANT    *pvar
);

Paramètres

[in] varIn

Type : REFVARIANT

Référence à la structure VARIANT source.

[in] iElem

Type : ULONG

Index de l’un des éléments de structure VARIANT source.

[out] pvar

Type : VARIANT*

Lorsque cette fonction retourne, contient la structure VARIANT initialisée.

Valeur retournée

Type : HRESULT

Si cette fonction réussit, elle retourne S_OK. Sinon, elle retourne un code d’erreur HRESULT.

Remarques

Cette fonction d’assistance fonctionne pour les structures VARIANT des types suivants :

  • VT_BSTR
  • VT_BOOL
  • VT_I2
  • VT_I4
  • VT_I8
  • VT_U12
  • VT_U14
  • VT_U18
  • VT_DATE
  • VT_ARRAY | (toute VT_BSTR, VT_BOOL, VT_I2, VT_I4, VT_I8, VT_U12, VT_U14, VT_U18, VT_DATE)
D’autres types peuvent être pris en charge à l’avenir.

Cette fonction extrait une seule valeur de la structure VARIANT source et utilise cette valeur pour initialiser la structure VARIANT de sortie. L’application appelante doit utiliser VariantClear pour libérer le VARIANT auquel il est fait référence par pvar lorsqu’il n’est plus nécessaire.

Si le VARIANT source est un tableau, iElem doit être inférieur au nombre d’éléments dans le tableau.

Si le VARIANT source a une seule valeur, iElem doit être 0.

Si le VARIANT source est vide, cette fonction retourne toujours un code d’erreur.

Vous pouvez utiliser VariantGetElementCount pour obtenir le nombre d’éléments dans le tableau ou le tableau.

Exemples

L’exemple suivant, à inclure dans le cadre d’un programme plus grand, montre comment utiliser InitVariantFromVariantArrayElem dans une instruction d’itération pour accéder aux valeurs d’un VARIANT.

// VARIANT var;
// Assume var is initialized and valid.
UINT cElem = VariantGetElementCount(var);
HRESULT hr = <mark type="const">S_OK</mark>;

for (UINT iElem = 0; SUCCEEDED(hr) && iElem < cElem; iElem ++)
{
    VARIANT varElem = {0};

    hr = InitVariantFromVariantArrayElem(var, iElem, &varElem);

    if (SUCCEEDED(hr))
    {
        // varElem is now valid.
        VariantClear(&varElem);
    }
}

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

InitPropVariantFromPropVariantVectorElem

VariantGetElem