Compartir a través de


COleSafeArray (clase)

Una clase para trabajar con matrices de tipo y dimensión arbitrarios.

Sintaxis

class COleSafeArray : public tagVARIANT

Miembros

Constructores públicos

Nombre Descripción
COleSafeArray::COleSafeArray Construye un objeto COleSafeArray.

Métodos públicos

Nombre Descripción
COleSafeArray::AccessData Recupera un puntero a los datos de matriz.
COleSafeArray::AllocData Asigna memoria para la matriz.
COleSafeArray::AllocDescriptor Asigna memoria para el descriptor de matriz seguro.
COleSafeArray::Attach Proporciona control de la matriz VARIANT existente al objeto COleSafeArray.
COleSafeArray::Clear Libera todos los datos del objeto VARIANT subyacente.
COleSafeArray::Copy Crea una copia de una matriz existente.
COleSafeArray::Create Crea una matriz segura.
COleSafeArray::CreateOneDim Crea un objeto COleSafeArray unidimensional.
COleSafeArray::Destroy Destruye una matriz existente.
COleSafeArray::DestroyData Destruye los datos de una matriz segura.
COleSafeArray::DestroyDescriptor Destruye un descriptor de una matriz segura.
COleSafeArray::Detach Desasocia la matriz VARIANT del objeto COleSafeArray (de modo que los datos no se libere).
COleSafeArray::GetByteArray Copia el contenido de la matriz segura en una CByteArray.
COleSafeArray::GetDim Devuelve el número de dimensiones de la matriz.
COleSafeArray::GetElement Recupera un único elemento de la matriz segura.
COleSafeArray::GetElemSize Devuelve el tamaño, en bytes, de un elemento de una matriz segura.
COleSafeArray::GetLBound Devuelve el límite inferior de cualquier dimensión de una matriz segura.
COleSafeArray::GetOneDimSize Devuelve el número de elementos del objeto COleSafeArray unidimensional.
COleSafeArray::GetUBound Devuelve el límite superior de cualquier dimensión de una matriz segura.
COleSafeArray::Lock Incrementa el recuento de bloqueos de una matriz y coloca un puntero a los datos de la matriz en el descriptor de matriz.
COleSafeArray::PtrOfIndex Devuelve un puntero al elemento indexado.
COleSafeArray::PutElement Asigna un único elemento en la matriz.
COleSafeArray::Redim Cambia el límite menos significativo (más a la derecha) de una matriz segura.
COleSafeArray::ResizeOneDim Cambia el número de elementos de un objeto COleSafeArray unidimensional.
COleSafeArray::UnaccessData Disminuye el número de bloqueos de una matriz e invalida el puntero recuperado por AccessData.
COleSafeArray::Unlock Disminuye el recuento de bloqueos de una matriz para que se pueda liberar o cambiar el tamaño.

Operadores públicos

Nombre Descripción
COleSafeArray::operator LPCVARIANT Obtiene acceso a la estructura VARIANT subyacente del objeto COleSafeArray.
COleSafeArray::operator LPVARIANT Obtiene acceso a la estructura VARIANT subyacente del objeto COleSafeArray.
COleSafeArray::operator = Copia valores en un objeto COleSafeArray (matriz SAFEARRAY, VARIANT, COleVariant, o COleSafeArray).
COleSafeArray::operator == Compara dos matrices variantes (matrices SAFEARRAY, VARIANT, COleVariant o COleSafeArray).
COleSafeArray::operator << Genera el contenido de un objeto COleSafeArray en el contexto de volcado de memoria.

Comentarios

COleSafeArray deriva de la estructura VARIANT OLE. Las funciones miembro de SAFEARRAY OLE están disponibles a través de COleSafeArray, así como un conjunto de funciones miembro diseñadas específicamente para matrices unidimensionales de bytes.

Jerarquía de herencia

tagVARIANT

COleSafeArray

Requisitos

Encabezado: afxdisp.h

COleSafeArray::AccessData

Recupera un puntero a los datos de matriz.

void AccessData(void** ppvData);

Parámetros

ppvData
Un puntero a un puntero a los datos de matriz.

Comentarios

En caso de error, la función produce una CMemoryException o COleException.

Ejemplo

void CMainFrame::Sort(VARIANT* vArray)
{
   COleSafeArray sa;
   BSTR* pbstr;
   TCHAR buf[1024];
   LONG cElements, lLBound, lUBound;

   //needed for OLE2T macro below, include afxpriv.h
   USES_CONVERSION;

   // Type check VARIANT parameter. It should contain a BSTR array
   // passed by reference. The array must be passed by reference it is
   // an in-out-parameter.
   if (V_VT(vArray) != (VT_ARRAY | VT_BSTR))
   {
      AfxThrowOleDispatchException(1001,
         _T("Type Mismatch in Parameter. Pass a string array by reference"));
   }

   // clears data in sa and copies the variant data into sa
   sa.Attach(*vArray);

   // Check that array is 1 dimensional
   if (sa.GetDim() != 1)
   {
      AfxThrowOleDispatchException(1002,
         _T("Type Mismatch in Parameter. Pass a one-dimensional array"));
   }

   try
   {
      // Get array bounds.
      sa.GetLBound(1, &lLBound);
      sa.GetUBound(1, &lUBound);

      // Get a pointer to the elements of the array
      // and increments the lock count on the array
      sa.AccessData((LPVOID*)& pbstr);

      //get no. of elements in array
      cElements = lUBound - lLBound + 1;
      for (int i = 0; i < cElements; i++)
      {
         //output the elements of the array
         _stprintf_s(buf, 1024, _T("[%s]\n"), OLE2T(pbstr[i]));
         OutputDebugString(buf);
      }

      //decrement lock count
      sa.UnaccessData();
   }
   catch (COleException* pEx)
   {
      AfxThrowOleDispatchException(1003,
         _T("Unexpected Failure in FastSort method"));
      pEx->Delete();
   }
}

COleSafeArray::AllocData

Asigna memoria para una matriz segura.

void AllocData();

Comentarios

En caso de error, la función produce una CMemoryException o COleException.

COleSafeArray::AllocDescriptor

Asigna memoria para el descriptor de una matriz segura.

void AllocDescriptor(DWORD dwDims);

Parámetros

dwDims
Cantidad de dimensiones en la matriz segura.

Comentarios

En caso de error, la función produce una CMemoryException o COleException.

COleSafeArray::Attach

Proporciona control de los datos de la matriz VARIANT existente al objeto COleSafeArray.

void Attach(VARIANT& varSrc);

Parámetros

varSrc
Un objeto VARIANT. El parámetro varSrc debe tener el VARTYPE VT_ARRAY.

Comentarios

El tipo de origen de VARIANT se establece en VT_EMPTY. Esta función borra los datos de matriz actuales, si los hay.

Ejemplo

Vea el ejemplo de COleSafeArray::AccessData.

COleSafeArray::Clear

Borra la matriz segura.

void Clear();

Comentarios

La función borra una matriz segura estableciendo el VARTYPE del objeto en VT_EMPTY. El contenido actual se libera y se libera la matriz.

COleSafeArray::COleSafeArray

Construye un objeto COleSafeArray.

COleSafeArray();

COleSafeArray(
    const SAFEARRAY& saSrc,
    VARTYPE vtSrc);

COleSafeArray(
    LPCSAFEARRAY pSrc,
    VARTYPE vtSrc);

COleSafeArray(const COleSafeArray& saSrc);
COleSafeArray(const VARIANT& varSrc);
COleSafeArray(LPCVARIANT pSrc);
COleSafeArray(const COleVariant& varSrc);

Parámetros

saSrc
Objeto COleSafeArray o SAFEARRAY existente que se va a copiar en este objeto COleSafeArray nuevo.

vtSrc
El VARTYPE para el objeto COleSafeArray nuevo.

psaSrc
Puntero a SAFEARRAY que se va a copiar en el objeto COleSafeArray nuevo.

varSrc
Objeto VARIANT o COleVariant existente que se va a copiar en el nuevo objeto COleSafeArray.

pSrc
Un puntero a un objeto VARIANT que se va a copiar en el nuevo objeto COleSafeArray.

Comentarios

Todos estos constructores crean objetos COleSafeArray nuevos. Si no hay ningún parámetro, se crea un objeto COleSafeArray vacío (VT_EMPTY). Si se copia COleSafeArray de otra matriz cuyo VARTYPE se conoce implícitamente (un COleSafeArray, COleVariant o VARIANT), se conserva el VARTYPE de la matriz de origen y no es necesario especificarlo. Si se copia COleSafeArray de otra matriz cuyo VARTYPE no se conoce (SAFEARRAY), debe especificarse VARTYPE en el parámetro vtSrc.

En caso de error, la función produce una CMemoryException o COleException.

COleSafeArray::Copy

Crea una copia de una matriz segura existente.

void Copy(LPSAFEARRAY* ppsa);

Parámetros

ppsa
Puntero a una ubicación en la que se va a devolver el nuevo descriptor de matriz.

Comentarios

En caso de error, la función produce una CMemoryException o COleException.

COleSafeArray::Create

Asigna e inicializa los datos de la matriz.

void Create(
    VARTYPE vtSrc,
    DWORD dwDims,
    DWORD* rgElements);

void Create(
    VARTYPE vtSrc,
    DWORD dwDims,
    SAFEARRAYBOUND* rgsabounds);

Parámetros

vtSrc
Tipo base de la matriz (es decir, vartype de cada elemento de la matriz). VARTYPE está restringido a un subconjunto de los tipos de variante. Ni se puede establecer el VT_ARRAY ni la marca VT_BYREF. VT_EMPTY y VT_NULL no son tipos base válidos para la matriz. Todos los otros tipos son legales.

dwDims
Cantidad de dimensiones en la matriz. Esto se puede cambiar después de crear la matriz con Redim.

rgElements
Puntero a una matriz del número de elementos para cada dimensión de la matriz.

rgsabounds
Puntero a un vector de límites (uno para cada dimensión) que se va a asignar para la matriz.

Comentarios

Esta función borrará los datos de matriz actuales si es necesario. En caso de error, la función produce una CMemoryException.

Ejemplo

COleSafeArray saMatrix;
DWORD numElements[] = { 10, 5 };

// creates a 2 dimensional safearray of type VT_I2 
// with size 10x5 elements, with all indices starting at 0(default)
saMatrix.Create(VT_I2, 2, numElements);

ASSERT(saMatrix.GetDim() == 2);

COleSafeArray saVector;
SAFEARRAYBOUND rgsabounds[] = { {5, 2} };

// creates a 1 dimensional safearray of type VT_I1 
// with size 5 elements, with the index starting at 2
saVector.Create(VT_I1, 1, rgsabounds);

ASSERT(saVector.GetDim() == 1);

COleSafeArray::CreateOneDim

Crea un objeto COleSafeArray unidimensional nuevo.

void CreateOneDim(
    VARTYPE vtSrc,
    DWORD dwElements,
    const void* pvSrcData = NULL,
    long nLBound = 0);

Parámetros

vtSrc
Tipo base de la matriz (es decir, vartype de cada elemento de la matriz).

dwElements
Cantidad de elementos en la matriz. Esto se puede cambiar después de crear la matriz con ResizeOneDim.

pvSrcData
Puntero a los datos que se van a copiar en la matriz.

nLBound
El límite inferior de la matriz.

Comentarios

La función asigna e inicializa los datos de la matriz, copiando los datos especificados si el puntero pvSrcData no es NULL.

En caso de error, la función produce una CMemoryException.

Ejemplo

VARIANT varColInfo[3];

//initialize VARIANTs
for (int i = 0; i < 3; i++)
   VariantInit(&varColInfo[i]);

// Column Name
varColInfo[0].vt = VT_BSTR;
varColInfo[0].bstrVal = ::SysAllocString(L"Name");

// Column Type
varColInfo[1].vt = VT_UI4;
varColInfo[1].lVal = 1;

COleSafeArray sa;
//create a 1 dimensional safearray of VARIANTs
//& initialize it with varColInfo VARIANT array
sa.CreateOneDim(VT_VARIANT, 2, varColInfo);

//check that the dimension is 2
ASSERT(sa.GetOneDimSize() == 2);

//increase safearray size by 1
sa.ResizeOneDim(3);

// populate the last element of the safearray, (Column Size)
varColInfo[2].vt = VT_I4;
varColInfo[2].lVal = 30;
long el = 2;
sa.PutElement(&el, &varColInfo[2]);

COleSafeArray::Destroy

Destruye un descriptor de matriz existente y todos los datos de la matriz.

void Destroy();

Comentarios

Si los objetos se almacenan en la matriz, se libera cada objeto. En caso de error, la función produce una CMemoryException o COleException.

COleSafeArray::DestroyData

Destruye todos los datos de una matriz segura.

void DestroyData();

Comentarios

Si los objetos se almacenan en la matriz, se libera cada objeto. En caso de error, la función produce una CMemoryException o COleException.

COleSafeArray::DestroyDescriptor

Destruye un descriptor de una matriz segura.

void DestroyDescriptor();

Comentarios

En caso de error, la función produce una CMemoryException o COleException.

COleSafeArray::Detach

Desasocia los datos de VARIANTdel objeto COleSafeArray.

VARIANT Detach();

Valor devuelto

Valor VARIANT subyacente en el objeto COleSafeArray.

Comentarios

La función desasocia los datos de una matriz segura estableciendo varTYPE del objeto en VT_EMPTY. Es responsabilidad del autor de la llamada liberar la matriz llamando a la función de Windows VariantClear.

En caso de error, la función produce una COleException.

Ejemplo

Vea el ejemplo de COleSafeArray::PutElement.

COleSafeArray::GetByteArray

Copia el contenido de la matriz segura en una CByteArray.

void GetByteArray(CByteArray& bytes);

Parámetros

bytes
Referencia a un objeto CByteArray.

COleSafeArray::GetDim

Devuelve el número de dimensiones del objeto COleSafeArray.

DWORD GetDim();

Valor devuelto

La cantidad de dimensiones en la matriz segura.

Ejemplo

COleSafeArray saMatrix;
DWORD numElements[] = { 10, 5 };

// creates a 2 dimensional safearray of type VT_I2 
// with size 10x5 elements, with all indices starting at 0(default)
saMatrix.Create(VT_I2, 2, numElements);

ASSERT(saMatrix.GetDim() == 2);

COleSafeArray saVector;
SAFEARRAYBOUND rgsabounds[] = { {5, 2} };

// creates a 1 dimensional safearray of type VT_I1 
// with size 5 elements, with the index starting at 2
saVector.Create(VT_I1, 1, rgsabounds);

ASSERT(saVector.GetDim() == 1);

COleSafeArray::GetElement

Recupera un único elemento de la matriz segura.

void GetElement(
    long* rgIndices,
    void* pvData);

Parámetros

rgIndices
Puntero a una matriz de índices para cada dimensión de la matriz.

pvData
Puntero a la ubicación para colocar el elemento de la matriz.

Comentarios

Esta función llama automáticamente a las funciones SafeArrayLock y SafeArrayUnlock de Windows antes y después de recuperar el elemento. Si el elemento de datos es una cadena, un objeto o una variante, la función copia el elemento de la manera correcta. El parámetro pvData debe apuntar a un búfer lo suficientemente grande como para contener el elemento.

En caso de error, la función produce una CMemoryException o COleException.

Ejemplo

//sa is of type COleSafeArray with 2 dimensions

//Determine upper bounds for both dimensions
long lNumRows;
long lNumCols;
sa.GetUBound(1, &lNumRows);
sa.GetUBound(2, &lNumCols);

//Display the elements in the SAFEARRAY.
long index[2];
VARIANT val;

//Determine lower bounds for both dimensions
long lowRow, lowCol;
sa.GetLBound(1, &lowRow);
sa.GetLBound(2, &lowCol);

for (long r = lowRow; r <= lNumRows; r++)
{
   for (long c = lowCol; c <= lNumCols; c++)
   {
      index[0] = r;
      index[1] = c;

      //retrieve each element of the safearray
      sa.GetElement(index, &val);

      switch (val.vt)
      {
      case VT_R8:
         TRACE(_T("%1.2f\n"), val.dblVal);
         break;

      case VT_BSTR:
         TRACE(_T("%s\n"), (CString)val.bstrVal);
         break;

         // other cases omitted

      case VT_EMPTY:
         TRACE(_T("<empty>\n"));
         break;
      }
   }
}

COleSafeArray::GetElemSize

Recupera el tamaño de un elemento de un objeto COleSafeArray.

DWORD GetElemSize();

Valor devuelto

Tamaño, en bytes, de los elementos de una matriz segura.

COleSafeArray::GetLBound

Devuelve el límite inferior de cualquier dimensión de un objeto COleSafeArray.

void GetLBound(
    DWORD dwDim,
    long* pLBound);

Parámetros

dwDim
Dimensión de matriz para la que se va a obtener el límite inferior.

pLBound
Puntero a la ubicación para devolver el límite inferior.

Comentarios

En caso de error, la función produce una COleException.

Ejemplo

COleSafeArray saMatrix;
DWORD numElements[] = { 10, 5 };

// creates a 2 dimensional safearray of type VT_I2 
// with size 10x5 elements, with all indices starting at 0(default)
saMatrix.Create(VT_I2, 2, numElements);

long lLBound;

//get lower bound for 1st dimension
saMatrix.GetLBound(1, &lLBound);

ASSERT(lLBound == 0);

//get lower for 2nd dimension
saMatrix.GetLBound(2, &lLBound);

ASSERT(lLBound == 0);

COleSafeArray saVector;
SAFEARRAYBOUND rgsabounds[] = { {5, 1} };

// creates a 1 dimensional safearray of type VT_I1 
// with size 5 elements, with the index starting at 1
saVector.Create(VT_I1, 1, rgsabounds);

//get lower bound for 1st dimension
saVector.GetLBound(1, &lLBound);

ASSERT(lLBound == 1);

COleSafeArray::GetOneDimSize

Devuelve el número de elementos del objeto COleSafeArray unidimensional.

DWORD GetOneDimSize();

Valor devuelto

El número de elementos de la matriz segura unidimensional.

Ejemplo

Vea el ejemplo de COleSafeArray::CreateOneDim.

COleSafeArray::GetUBound

Devuelve el límite superior de cualquier dimensión de una matriz segura.

void GetUBound(
    DWORD dwDim,
    long* pUBound);

Parámetros

dwDim
Dimensión de matriz para la que se va a obtener el límite superior.

pUBound
Puntero a la ubicación para devolver el límite superior.

Comentarios

En caso de error, la función produce una COleException.

Ejemplo

COleSafeArray saMatrix;
DWORD numElements[] = { 10, 5 };

// creates a 2 dimensional safearray of type VT_I2 
// with size 10x5 elements, with all indices starting at 0(default)
saMatrix.Create(VT_I2, 2, numElements);

long lUBound;
ASSERT(saMatrix.GetDim() == 2);

//get upper bound for 1st dimension
saMatrix.GetUBound(1, &lUBound);

ASSERT(lUBound == 9);

//get upper bound for 2nd dimension
saMatrix.GetUBound(2, &lUBound);

ASSERT(lUBound == 4);

COleSafeArray saVector;
SAFEARRAYBOUND rgsabounds[] = { {5, 1} };

// creates a 1 dimensional safearray of type VT_I1 
// with size 5 elements, with the index starting at 1
saVector.Create(VT_I1, 1, rgsabounds);

//get upper bound for 1st dimension
saVector.GetUBound(1, &lUBound);

ASSERT(lUBound == 5);

COleSafeArray::Lock

Incrementa el recuento de bloqueos de una matriz y coloca un puntero a los datos de la matriz en el descriptor de matriz.

void Lock();

Comentarios

Si se produce un error, produce una COleException.

El puntero del descriptor de matriz es válido hasta que se llama a Unlock. Las llamadas a Lock se pueden anidar; se requiere un número igual de llamadas a Unlock.

No se puede eliminar una matriz mientras está bloqueada.

COleSafeArray::operator LPCVARIANT

Llame a este operador de conversión para acceder a la estructura VARIANT subyacente de este objeto COleSafeArray.

operator LPCVARIANT() const;

COleSafeArray::operator LPVARIANT

Llame a este operador de conversión para acceder a la estructura VARIANT subyacente de este objeto COleSafeArray.

operator LPVARIANT();

Comentarios

Tenga en cuenta que cambiar el valor de la estructura VARIANT, a la que accede el puntero devuelto por esta función, cambiará el valor de este objeto COleSafeArray.

COleSafeArray::operator =

Estos operadores de asignación sobrecargados copian el valor de origen en este objeto COleSafeArray.

COleSafeArray& operator=(const COleSafeArray& saSrc);
COleSafeArray& operator=(const VARIANT& varSrc);
COleSafeArray& operator=(LPCVARIANT pSrc);
COleSafeArray& operator=(const COleVariant& varSrc);

Comentarios

A continuación, se muestra una breve descripción de cada operador:

  • operator =( saSrc ) Copia un objeto existente COleSafeArray en este objeto.

  • operator =( varSrc ) Copia una matriz o COleVariant existente VARIANT en este objeto.

  • operator =( pSrc ) Copia el VARIANT objeto de matriz al que tiene acceso pSrc en este objeto.

COleSafeArray::operator ==

Este operador compara dos matrices (matrices SAFEARRAY, VARIANT, COleVariant o COleSafeArray) y devuelve un valor distinto de cero si son iguales; en caso contrario, 0.

BOOL operator==(const SAFEARRAY& saSrc) const;  BOOL operator==(LPCSAFEARRAY pSrc) const;

BOOL operator==(const COleSafeArray& saSrc) const;  BOOL operator==(const VARIANT& varSrc) const;

BOOL operator==(LPCVARIANT pSrc) const;  BOOL operator==(const COleVariant& varSrc) const;

Comentarios

Dos matrices son iguales si tienen un número igual de dimensiones, igual tamaño en cada dimensión y valores de elemento iguales.

COleSafeArray::operator <<

El operador de inserción COleSafeArray (<<) admite el volcado de diagnóstico y el almacenamiento de un objeto en un archivo COleSafeArray.

CDumpContext& AFXAPI operator<<(
    CDumpContext& dc,
    COleSafeArray& saSrc);

COleSafeArray::PtrOfIndex

Devuelve un puntero al elemento especificado por los valores de índice.

void PtrOfIndex(
    long* rgIndices,
    void** ppvData);

Parámetros

rgIndices
Matriz de valores de índice que identifican un elemento de la matriz. Se deben especificar todos los índices del elemento.

ppvData
En la devolución, puntero al elemento identificado por los valores de rgIndices.

COleSafeArray::PutElement

Asigna un único elemento en la matriz.

void PutElement(
    long* rgIndices,
    void* pvData);

Parámetros

rgIndices
Puntero a una matriz de índices para cada dimensión de la matriz.

pvData
Puntero a los datos que se va a asignar a la matriz. VT_DISPATCH, VT_UNKNOWN y VT_BSTR tipos variant son punteros y no requieren otro nivel de direccionamiento indirecto.

Comentarios

Esta función llama automáticamente a las funciones de Windows 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 lo copia correctamente y si el elemento existente es una cadena, un objeto o una variante, se borra correctamente.

Tenga en cuenta que puede tener múltiples bloqueos en una matriz, por lo que puede colocar elementos en una matriz, mientras que la matriz está bloqueada por otras operaciones.

En caso de error, la función produce una CMemoryException o COleException.

Ejemplo

VARIANT retVariantArray()
{
   COleSafeArray saRet;
   DWORD numElements[] = { 10, 10 }; // 10x10

   // Create the 2 dimensional safe-array of type VT_R8 with size 10x10
   saRet.Create(VT_R8, 2, numElements);

   // Initialize safearray  with values...
   long index[2];
   for (index[0] = 0; index[0] < 10; index[0]++)
   {
      for (index[1] = 0; index[1] < 10; index[1]++)
      {
         double val = index[0] + index[1] * 10;
         //populate the safearray elements with double values
         saRet.PutElement(index, &val);
      }
   }
   // Return the safe-array encapsulated in a VARIANT...
   return saRet.Detach();
}

COleSafeArray::Redim

Cambia el límite menos significativo (más a la derecha) de una matriz segura.

void Redim(SAFEARRAYBOUND* psaboundNew);

Parámetros

psaboundNew
Puntero a una nueva estructura enlazada de matriz segura que contiene el nuevo límite de matriz. Solo se puede cambiar la dimensión menos significativa de una matriz.

Comentarios

En caso de error, la función produce una COleException.

COleSafeArray::ResizeOneDim

Cambia el número de elementos de un objeto COleSafeArray unidimensional.

void ResizeOneDim(DWORD dwElements);

Parámetros

dwElements
Número de elementos de la matriz segura unidimensional.

Comentarios

En caso de error, la función produce una COleException.

Ejemplo

Vea el ejemplo de COleSafeArray::CreateOneDim.

COleSafeArray::UnaccessData

Disminuye el número de bloqueos de una matriz e invalida el puntero recuperado por AccessData.

void UnaccessData();

Comentarios

En caso de error, la función produce una COleException.

Ejemplo

Vea el ejemplo de COleSafeArray::AccessData.

COleSafeArray::Unlock

Disminuye el recuento de bloqueos de una matriz para que se pueda liberar o cambiar el tamaño.

void Unlock();

Comentarios

Se llama a esta función después de finalizar el acceso a los datos de una matriz. Si se produce un error, produce una COleException.

Consulte también

Gráfico de jerarquías
COleVariant (clase)
CRecordset (clase)
CDatabase (clase)