meilleures pratiques pour l’utilisation de Coffre des tableaux
De nombreuses méthodes d’interface de l’API d’automatisation d’interface utilisateur de Microsoft acceptent des arguments appelés tableaux sécurisés, du type de données SAFEARRAY . Cette rubrique décrit les meilleures pratiques pour l’utilisation de tableaux sécurisés dans une application UI Automation.
Clients
Tous les tableaux sécurisés qui sont utilisés avec les méthodes de l’API du client UI Automation sont des tableaux unidimensionnels de base zéro. Pour créer un tableau sécurisé pour une méthode de client UI Automation, utilisez la fonction SafeArrayCreateVector , et pour lire et écrire dans un tableau sécurisé, utilisez les fonctions SafeArrayGetElement et SafeArrayPutElement . Lorsque vous avez fini d’utiliser un tableau sécurisé, détruisez-le toujours à l’aide de la fonction SafeArrayDestroy , que vous ayez créé ou reçu le tableau sécurisé à partir d’une méthode de client UI Automation.
Plusieurs méthodes UI Automation, y compris les méthodes de récupération de propriété telles que GetCurrentPropertyValue, récupèrent des variantesqui peuvent contenir des structures point ou UiaRect . Un point est empaqueté dans un Variant comme un tableau sécurisé de doubles (VT _ R8) avec le membre x à l’index 0, et le membre y à l’index 1. De même, un UiaRect est empaqueté dans un Variant comme un tableau sécurisé de doubles avec les membres de gauche, de haut, de largeur et de hauteur aux index 0 à 3, respectivement. Pour un tableau de structures UiaRect , le tableau Safe contient un tableau séquentiel de quatre doubles pour chaque UiaRect. Les membres gauche, supérieur, largeur et hauteur du premier UiaRect occupent l’index 0 à 3, les membres du deuxième rectangle occupent l’index 4 jusqu’à 7, et ainsi de suite.
L’interface IUIAutomation comprend les méthodes suivantes pour la conversion entre SAFEARRAY et différents autres types de données.
| Méthode | Description |
|---|---|
| IUIAutomation::IntNativeArrayToSafeArray | Convertit un tableau d’entiers en SAFEARRAY. |
| IUIAutomation::IntSafeArrayToNativeArray | Convertit un SAFEARRAY d’entiers en tableau. |
| IUIAutomation::SafeArrayToRectNativeArray | Convertit un SAFEARRAY qui contient des coordonnées de rectangle en tableau de type Rect. |
Fournisseurs
Un fournisseur doit implémenter un certain nombre de méthodes d’interface appelées par UI Automation pour récupérer des informations à partir du fournisseur. De nombreuses fois, ces informations se composent d’un tableau de valeurs. Pour retourner un tableau à UI Automation, le fournisseur doit empaqueter le tableau dans une structure SAFEARRAY . Les éléments de tableau doivent être du type de données attendu et doivent apparaître dans l’ordre attendu.