Fonction VariantCopy (oleauto.h)
Libère la variante de destination et effectue une copie de la variante source.
Syntaxe
HRESULT VariantCopy(
[out] VARIANTARG *pvargDest,
[in] const VARIANTARG *pvargSrc
);
Paramètres
[out] pvargDest
Variante de destination.
[in] pvargSrc
Variante source.
Valeur retournée
Cette fonction peut retourner l’une de ces valeurs.
Code de retour | Description |
---|---|
|
Réussite. |
|
La variante contient un tableau verrouillé. |
|
Le type de variant n’est pas un type valide de variant. |
|
L’un des arguments n’est pas valide. |
|
Mémoire insuffisante pour terminer l’opération. |
Notes
Tout d’abord, libérez toute mémoire appartenant à pvargDest, telle que VariantClear (pvargDest doit pointer vers une variante initialisée valide, et pas simplement vers un emplacement de mémoire non initialisé). Ensuite, pvargDest reçoit une copie exacte du contenu de pvargSrc.
Si pvargSrc est un VT_BSTR, une copie de la chaîne est effectuée. Si pvargSrc est un VT_ARRAY, le tableau entier est copié. Si pvargSrc est un VT_DISPATCH ou un VT_UNKNOWN, AddRef est appelé pour incrémenter le nombre de références de l’objet.
Si la variante à copier est un objet COM passé par référence, le champ vtfield du paramètre pvargSrcparameter est VT_DISPATCH | VT_BYREF ou VT_UNKNOWN | VT_BYREF. Dans ce cas, VariantCopy n’incrémente pas le nombre de références sur l’objet référencé. Étant donné que la variante copiée est un pointeur vers une référence à un objet, VariantCopy n’a aucun moyen de déterminer s’il est nécessaire d’incrémenter le nombre de références de l’objet. Il incombe donc à l’appelant d’appeler IUnknown::AddRef sur l’objet ou non, selon le cas.
Configuration requise
Plateforme cible | Windows |
En-tête | oleauto.h |
Bibliothèque | OleAut32.lib |
DLL | OleAut32.dll |