Partager via


Fonction VariantCopyInd (oleauto.h)

Libère la variante de destination et effectue une copie de la variante source, en effectuant l’indirection nécessaire si la source est spécifiée pour être VT_BYREF.

Syntaxe

HRESULT VariantCopyInd(
  [out] VARIANT          *pvarDest,
  [in]  const VARIANTARG *pvargSrc
);

Paramètres

[out] pvarDest

Variante de destination.

[in] pvargSrc

Variante source.

Valeur retournée

Cette fonction peut retourner l’une de ces valeurs.

Code de retour Description
S_OK
Réussite.
DISP_E_ARRAYISLOCKED
La variante contient un tableau verrouillé.
DISP_E_BADVARTYPE
Le type variant n’est pas un type de variant valide.
E_INVALIDARG
L’un des arguments n’est pas valide.
E_OUTOFMEMORY
Mémoire insuffisante pour terminer l’opération.

Remarques

Cette fonction est utile lorsqu’une copie d’une variante est nécessaire et pour garantir qu’elle n’est pas VT_BYREF, par exemple lors de la gestion des arguments dans une implémentation d’IDispatch ::Invoke.

Par exemple, si la source est un (VT_BYREF | VT_I2), la destination sera BYVAL | VT_I2. Il en va de même pour toutes les combinaisons de VT_BYREF légales, y compris les VT_VARIANT.

Si pvargSrc est (VT_BYREF | VT_VARIANT), et la variante contenue est VT_BYREF, la variante contenue est également déréférencée.

Cette fonction libère tout contenu existant de pvarDest.

Configuration requise

Condition requise Valeur
Plateforme cible Windows
En-tête oleauto.h
Bibliothèque OleAut32.lib
DLL OleAut32.dll

Voir aussi

Fonctions de manipulation des variantes