SafeArrayLock, fonction (oleauto.h)
Incrémente le nombre de verrous d’un tableau et place un pointeur vers les données du tableau dans pvData du descripteur de tableau.
Syntaxe
HRESULT SafeArrayLock(
[in] SAFEARRAY *psa
);
Paramètres
[in] psa
Descripteur de tableau créé par SafeArrayCreate.
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
Le pointeur dans le descripteur de tableau est valide jusqu’à ce que la fonction SafeArrayUnlock soit appelée. Les appels à SafeArrayLock peuvent être imbriqués, auquel cas un nombre égal d’appels à SafeArrayUnlock est requis.
Un tableau ne peut pas être supprimé tant qu’il est verrouillé.
Cohérence de thread
Tous les membres statiques publics (partagés en Visual Basic) du type de données SAFEARRAY sont thread-safe. Il n’est pas garanti que les membres de l’instance soient thread-safe.
Prenons l’exemple d’une application qui utilise les fonctions SafeArrayLock et SafeArrayUnlock . Si ces fonctions sont appelées simultanément à partir de threads différents sur le même type de données SAFEARRAY instance, un nombre de verrous incohérent peut être créé. La fonction SafeArrayUnlock finira par retourner E_UNEXPECTED. Vous pouvez éviter cela en fournissant votre propre code de synchronisation.
Configuration requise
Condition requise | Valeur |
---|---|
Plateforme cible | Windows |
En-tête | oleauto.h |
Bibliothèque | OleAut32.lib |
DLL | OleAut32.dll |