SafeArrayAccessData-Funktion (oleauto.h)
Erhöht die Sperranzahl eines Arrays und ruft einen Zeiger auf die Arraydaten ab.
Syntax
HRESULT SafeArrayAccessData(
[in] SAFEARRAY *psa,
[out] void HUGEP **ppvData
);
Parameter
[in] psa
Ein arraydeskriptor, der von SafeArrayCreate erstellt wurde.
[out] ppvData
Die Arraydaten.
Rückgabewert
Diese Funktion kann einen dieser Werte zurückgeben.
Rückgabecode | BESCHREIBUNG |
---|---|
|
Erfolg. |
|
Das Argument psa ist ungültig. |
|
Das Array konnte nicht gesperrt werden. |
Hinweise
Nachdem Sie SafeArrayAccessData aufgerufen haben, müssen Sie die Funktion SafeArrayUnaccessData aufrufen, um das Array zu entsperren.
Beispiele
Im folgenden Beispiel wird ein sicheres Array einer Dimension sortiert, das BSTRs enthält, indem direkt auf die Arrayelemente zugegriffen wird. Dieser Ansatz ist schneller als die Verwendung von SafeArrayGetElement und 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);
Anforderungen
Anforderung | Wert |
---|---|
Zielplattform | Windows |
Kopfzeile | oleauto.h |
Bibliothek | OleAut32.lib |
DLL | OleAut32.dll |