Compartilhar via


SafeArrayAccessData

Windows Mobile SupportedWindows Embedded CE Supported

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