Fonction SafeArrayAccessData (oleauto.h)
Incrémente le nombre de verrous d’un tableau et récupère un pointeur vers les données du tableau.
Syntaxe
HRESULT SafeArrayAccessData(
[in] SAFEARRAY *psa,
[out] void HUGEP **ppvData
);
Paramètres
[in] psa
Descripteur de tableau créé par SafeArrayCreate.
[out] ppvData
Données du tableau.
Valeur retournée
Cette fonction peut retourner l’une de ces valeurs.
Code de retour | Description |
---|---|
|
Réussite. |
|
L’argument psa n’est pas valide. |
|
Impossible de verrouiller le tableau. |
Remarques
Après avoir appelé SafeArrayAccessData, vous devez appeler la fonction SafeArrayUnaccessData pour déverrouiller le tableau.
Exemples
L’exemple suivant trie un tableau sécurisé d’une dimension qui contient des BSTR en accédant directement aux éléments du tableau. Cette approche est plus rapide que l’utilisation de SafeArrayGetElement et 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);
Configuration requise
Condition requise | Valeur |
---|---|
Plateforme cible | Windows |
En-tête | oleauto.h |
Bibliothèque | OleAut32.lib |
DLL | OleAut32.dll |