Partager via


SafeArrayPutElement, fonction (oleauto.h)

Stocke l’élément de données à l’emplacement spécifié dans le tableau.

Syntaxe

HRESULT SafeArrayPutElement(
  [in] SAFEARRAY *psa,
  [in] LONG      *rgIndices,
  [in] void      *pv
);

Paramètres

[in] psa

Descripteur de tableau créé par SafeArrayCreate.

[in] rgIndices

Vecteur d’index pour chaque dimension du tableau. La dimension la plus à droite (la moins significative) est rgIndices[0]. La dimension la plus à gauche est stockée dans rgIndices[psa->cDims – 1].

[in] pv

Données à affecter au tableau. Les types de variantes VT_DISPATCH, VT_UNKNOWN et VT_BSTR sont des pointeurs et ne nécessitent pas un autre niveau d’indirection.

Valeur retournée

Cette fonction peut retourner l’une de ces valeurs.

Code de retour Description
S_OK
Réussite.
DISP_E_BADINDEX
L’index spécifié n’est pas valide.
E_INVALIDARG
L’un des arguments n’est pas valide.
E_OUTOFMEMORY
La mémoire n’a pas pu être allouée à l’élément .

Remarques

Cette fonction appelle automatiquement SafeArrayLock et SafeArrayUnlock avant et après l’affectation de l’élément. Si l’élément de données est une chaîne, un objet ou une variante, la fonction le copie correctement lorsque le tableau sécurisé est détruit. Si l’élément existant est une chaîne, un objet ou une variante, il est effacé correctement. Si l’élément de données est un VT_DISPATCH ou un VT_UNKNOWN, AddRef est appelé pour incrémenter le nombre de références de l’objet.

Note Plusieurs verrous peuvent se trouver sur un tableau. Les éléments peuvent être placés dans un tableau pendant que le tableau est verrouillé par d’autres opérations.
 
Pour obtenir un exemple illustrant l’appel de SafeArrayPutElement, consultez l’exemple de lignes de base COM (CLines ::Add in Lines.cpp).

Configuration requise

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