SafeArrayAccessData 函式 (oleauto.h)
遞增數位的鎖定計數,並擷取數位數據的指標。
語法
HRESULT SafeArrayAccessData(
[in] SAFEARRAY *psa,
[out] void HUGEP **ppvData
);
參數
[in] psa
SafeArrayCreate 所建立的陣列描述元。
[out] ppvData
陣列數據。
傳回值
此函式可以傳回其中一個值。
傳回碼 | 描述 |
---|---|
|
成功。 |
|
自變數 是 無效的。 |
|
陣列無法鎖定。 |
備註
呼叫 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 |