Share via


Función SafeArrayPutElement (oleauto.h)

Almacena el elemento de datos en la ubicación especificada de la matriz.

Sintaxis

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

Parámetros

[in] psa

Descriptor de matriz creado por SafeArrayCreate.

[in] rgIndices

Vector de índices para cada dimensión de la matriz. La dimensión más a la derecha (menos significativa) es rgIndices[0]. La dimensión más a la izquierda se almacena en rgIndices[psa->cDims – 1].

[in] pv

Datos que se van a asignar a la matriz. Los tipos de variante VT_DISPATCH, VT_UNKNOWN y VT_BSTR son punteros y no requieren otro nivel de direccionamiento indirecto.

Valor devuelto

Esta función puede devolver uno de estos valores.

Código devuelto Descripción
S_OK
Correcto.
DISP_E_BADINDEX
El índice especificado no es válido.
E_INVALIDARG
Uno de los argumentos no es válido.
E_OUTOFMEMORY
No se pudo asignar memoria para el elemento .

Comentarios

Esta función llama automáticamente a SafeArrayLock y SafeArrayUnlock antes y después de asignar el elemento. Si el elemento de datos es una cadena, un objeto o una variante, la función la copia correctamente cuando se destruye la matriz segura. Si el elemento existente es una cadena, un objeto o una variante, se borra correctamente. Si el elemento de datos es un VT_DISPATCH o VT_UNKNOWN, se llama a AddRef para incrementar el número de referencias del objeto.

Nota Varios bloqueos pueden estar en una matriz. Los elementos se pueden colocar en una matriz mientras la matriz está bloqueada por otras operaciones.
 
Para ver un ejemplo que muestra cómo llamar a SafeArrayPutElement, vea el ejemplo líneas fundamentales com (CLines::Add in Lines.cpp).

Requisitos

Requisito Value
Plataforma de destino Windows
Encabezado oleauto.h
Library OleAut32.lib
Archivo DLL OleAut32.dll