Meilleures pratiques pour l’utilisation de tableaux sécurisés

De nombreuses méthodes d’interface de l’API Microsoft UI Automation prennent 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 un UI Automation applications.

Clients

Tous les tableaux sécurisés utilisés avec les méthodes d’API clientes UI Automation sont des tableaux unidimensionnels de base zéro. Pour créer un tableau sécurisé pour une méthode cliente 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 terminé d’utiliser un tableau sécurisé, détruisez-le toujours à l’aide de la fonction SafeArrayDestroy, que vous l’ayez créé ou reçu à partir d’une méthode cliente UI Automation.

Plusieurs méthodes UI Automation, y compris les méthodes de récupération de propriétés telles que GetCurrentPropertyValue, récupèrent des VARIANTpouvant contenir des structures POINT ou UiaRect. Un POINT est emballé dans un VARIANT en tant que 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 emballé dans un VARIANT sous la forme d’un tableau sécurisé de doubles avec les membres gauche, supérieur, largeur et hauteur aux index 0 à 3, respectivement. Pour un tableau de structures UiaRect , le tableau sécurisé 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 à 7, et ainsi de suite.

L’interface IUIAutomation inclut 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 rectangles en tableau de type RECT.

 

Fournisseurs

Un fournisseur doit implémenter un certain nombre de méthodes d’interface qui UI Automation appels pour récupérer des informations à partir du fournisseur. Souvent, ces informations se composent d’un tableau de valeurs. Pour renvoyer un tableau à UI Automation, le fournisseur doit l’empaqueter 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.

Conceptuel

Vue d'ensemble des propriétés UI Automation

Notions de base d’UI Automation