SafeArrayAccessData 함수(oleauto.h)
배열의 잠금 수를 증가시키고 배열 데이터에 대한 포인터를 검색합니다.
구문
HRESULT SafeArrayAccessData(
[in] SAFEARRAY *psa,
[out] void HUGEP **ppvData
);
매개 변수
[in] psa
SafeArrayCreate에서 만든 배열 설명자입니다.
[out] ppvData
배열 데이터입니다.
반환 값
이 함수는 이러한 값 중 하나를 반환할 수 있습니다.
반환 코드 | Description |
---|---|
|
성공. |
|
psa 인수가 잘못되었습니다. |
|
배열을 잠글 수 없습니다. |
설명
SafeArrayAccessData를 호출한 후 SafeArrayUnaccessData 함수를 호출하여 배열의 잠금을 해제해야 합니다.
예제
다음 예제에서는 배열 요소에 직접 액세스하여 BSTR을 포함하는 하나의 차원의 안전한 배열을 정렬합니다. 이 방법은 SafeArrayGetElement 및 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);
요구 사항
요구 사항 | 값 |
---|---|
대상 플랫폼 | Windows |
헤더 | oleauto.h |
라이브러리 | OleAut32.lib |
DLL | OleAut32.dll |