Función SafeArrayAccessData (oleauto.h)
Incrementa el recuento de bloqueos de una matriz y recupera un puntero a los datos de la matriz.
Sintaxis
HRESULT SafeArrayAccessData(
[in] SAFEARRAY *psa,
[out] void HUGEP **ppvData
);
Parámetros
[in] psa
Descriptor de matriz creado por SafeArrayCreate.
[out] ppvData
Los datos de la matriz.
Valor devuelto
Esta función puede devolver uno de estos valores.
Código devuelto | Descripción |
---|---|
|
Correcto. |
|
El argumento psa no es válido. |
|
No se pudo bloquear la matriz. |
Comentarios
Después de llamar a SafeArrayAccessData, debe llamar a la función SafeArrayUnaccessData para desbloquear la matriz.
Ejemplos
En el ejemplo siguiente se ordena una matriz segura de una dimensión que contiene los BSTR accediendo directamente a los elementos de la matriz. Este enfoque es más rápido que usar SafeArrayGetElement y SafeArrayPutElement.
long i, j, min;
BSTR bstrTemp;
BSTR HUGEP *pbstr;
HRESULT hr;
// Get a pointer to the elements of the array.
hr = SafeArrayAccessData(psa, (void HUGEP**)&pbstr);
if (FAILED(hr))
goto error;
// Selection sort.
for (i = 0; i < psa->rgsabound.cElements-1; i++)
{
min = i;
for (j = i+1; j < psa->rgsabound.cElements; j++)
{
if (wcscmp(pbstr[j], pbstr[min]) < 0)
min = j;
}
// Swap array[min] and array[i].
bstrTemp = pbstr[min];
pbstr[min] = pbstr[i];
pbstr[i] = bstrTemp;
}
SafeArrayUnaccessData(psa);
Requisitos
Requisito | Value |
---|---|
Plataforma de destino | Windows |
Encabezado | oleauto.h |
Library | OleAut32.lib |
Archivo DLL | OleAut32.dll |