SafeArrayAccessData
9/8/2008
Essa função Incrementa a contagem bloqueio de uma matriz e recupera um ponteiro para dados de matriz.
Syntax
HRESULT SafeArrayAccessData(
SAFEARRAY FAR* psa,
void HUGEP* FAR* ppvData
);
Parameters
- psa
[no] Ponteiro para uma descritor de matriz criado por SafeArrayCreate.
- ppvData
[no] Em sair, ponteiro para um ponteiro para dados de matriz.
Return Value
Retorna os valores HRESULT mostrados a seguinte tabela.
Valor | Descrição |
---|---|
S_OK |
O sucesso. |
E_INVALIDARG |
O psa parâmetro não era um válido SafeArray descritor. |
E_UNEXPECTED |
A matriz não pôde ser bloqueado. |
Remarks
Passagem inválido (e, em algumas circunstâncias NULL) ponteiros para essa função faz com que uma terminação inesperada do aplicativo.
Example
O seguinte exemplo de código classifica um SafeArray de uma dimensão que contém BSTRs por acessar os elementos matriz diretamente. Essa abordagem é mais rápida do que usando 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* FAR*)&pBSTR);
if (FAILED(hr))
goto error;
// Bubble sort.
cElements = lUBound–lLBound+1;
for (i = 0; i < cElements–1; i++)
{
min = i;
for (j = i+1; j < 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);
Requirements
Header | oleauto.h |
Library | oleaut32.lib |
Windows Embedded CE | Windows CE 2.0 and later |
Windows Mobile | Windows Mobile Version 5.0 and later |
See Also
Reference
Automation Functions
SafeArrayCreate
SafeArrayGetElement
SafeArrayPutElement