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 VARIANT
del 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
existenteVARIANT
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)