Função SafeArrayAccessData (oleauto.h)
Incrementa a contagem de bloqueios de uma matriz e recupera um ponteiro para os dados da matriz.
Sintaxe
HRESULT SafeArrayAccessData(
[in] SAFEARRAY *psa,
[out] void HUGEP **ppvData
);
Parâmetros
[in] psa
Um descritor de matriz criado por SafeArrayCreate.
[out] ppvData
Os dados da matriz.
Retornar valor
Essa função pode retornar um desses valores.
Código de retorno | Descrição |
---|---|
|
Êxito. |
|
O argumento psa não é válido. |
|
A matriz não pôde ser bloqueada. |
Comentários
Depois de chamar SafeArrayAccessData, você deve chamar a função SafeArrayUnaccessData para desbloquear a matriz.
Exemplos
O exemplo a seguir classifica uma matriz segura de uma dimensão que contém BSTRs acessando os elementos da matriz diretamente. Essa abordagem é mais rápida do que usar SafeArrayGetElement e 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 | Valor |
---|---|
Plataforma de Destino | Windows |
Cabeçalho | oleauto.h |
Biblioteca | OleAut32.lib |
DLL | OleAut32.dll |