Bagikan melalui


Fungsi SafeArrayAccessData (oleauto.h)

Menambah jumlah kunci array, dan mengambil penunjuk ke data array.

Sintaks

HRESULT SafeArrayAccessData(
  [in]  SAFEARRAY  *psa,
  [out] void HUGEP **ppvData
);

Parameter

[in] psa

Deskriptor array yang dibuat oleh SafeArrayCreate.

[out] ppvData

Data array.

Nilai kembali

Fungsi ini dapat mengembalikan salah satu nilai ini.

Menampilkan kode Deskripsi
S_OK
Berhasil.
E_INVALIDARG
Argumen psa tidak valid.
E_UNEXPECTED
Array tidak dapat dikunci.

Keterangan

Setelah memanggil SafeArrayAccessData, Anda harus memanggil fungsi SafeArrayUnaccessData untuk membuka kunci array.

Contoh

Contoh berikut mengurutkan array aman dari satu dimensi yang berisi BSTR dengan mengakses elemen array secara langsung. Pendekatan ini lebih cepat daripada menggunakan SafeArrayGetElement dan 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);

Persyaratan

Persyaratan Nilai
Target Platform Windows
Header oleauto.h
Pustaka OleAut32.lib
DLL OleAut32.dll