Funzione SafeArrayAccessData (oleauto.h)
Incrementa il numero di blocchi di una matrice e recupera un puntatore ai dati della matrice.
Sintassi
HRESULT SafeArrayAccessData(
[in] SAFEARRAY *psa,
[out] void HUGEP **ppvData
);
Parametri
[in] psa
Descrittore di matrice creato da SafeArrayCreate.
[out] ppvData
Dati della matrice.
Valore restituito
Questa funzione può restituire uno di questi valori.
Codice restituito | Descrizione |
---|---|
|
Operazione completata. |
|
L'argomento psa non è valido. |
|
Impossibile bloccare la matrice. |
Commenti
Dopo aver chiamato SafeArrayAccessData, è necessario chiamare la funzione SafeArrayUnaccessData per sbloccare la matrice.
Esempio
Nell'esempio seguente viene ordinata una matrice sicura di una dimensione che contiene le route BST accedendo direttamente agli elementi della matrice. Questo approccio è più veloce rispetto all'uso di 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**)&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);
Requisiti
Requisito | Valore |
---|---|
Piattaforma di destinazione | Windows |
Intestazione | oleauto.h |
Libreria | OleAut32.lib |
DLL | OleAut32.dll |