Procedimientos recomendados para usar matrices seguras

Muchos métodos de interfaz de la API de Microsoft Automatización de la interfaz de usuario toman argumentos denominados matrices seguras, del tipo de datos SAFEARRAY. En este tema se describen los procedimientos recomendados para usar matrices seguras en una Automatización de la interfaz de usuario aplicaciones.

Clientes

Todas las matrices seguras que se usan con los métodos de API de cliente de Automatización de la interfaz de usuario son matrices unidimensionales basadas en cero. Para crear una matriz segura para un método de cliente de Automatización de la interfaz de usuario, use la función SafeArrayCreateVector y para leer y escribir en una matriz segura, use las funciones SafeArrayGetElement y SafeArrayPutElement. Cuando termine de usar una matriz segura, destruya siempre mediante la función SafeArrayDestroy, tanto si creó la matriz segura como si la recibió de un método de cliente Automatización de la interfaz de usuario.

Varios métodos de Automatización de la interfaz de usuario, incluidos los métodos de recuperación de propiedades, como GetCurrentPropertyValue, recuperan variantsque pueden contener estructuras POINT o UiaRect. Un POINT se empaqueta en variant como una matriz segura de dobles (VT_R8) con el miembro x en el índice 0 y el miembro y en el índice 1. Del mismo modo, un UiaRect se empaqueta en un VARIANT como una matriz segura de dobles con los miembros izquierdo, superior, ancho y alto en los índices del 0 al 3, respectivamente. Para una matriz de estructuras UiaRect , la matriz segura contiene una matriz secuencial de cuatro dobles para cada UiaRect. Los miembros izquierdo, superior, ancho y alto del primer UiaRect ocupan el índice de 0 a 3, los miembros del segundo rectángulo ocupan el índice de 4 a 7, etc.

La interfaz IUIAutomation incluye los métodos siguientes para convertir entre SAFEARRAY y otros tipos de datos.

Método Descripción
IUIAutomation::IntNativeArrayToSafeArray Convierte una matriz de enteros en SAFEARRAY.
IUIAutomation::IntSafeArrayToNativeArray Convierte una SAFEARRAY de enteros en una matriz.
IUIAutomation::SafeArrayToRectNativeArray Convierte un SAFEARRAY que contiene coordenadas de rectángulo en una matriz de tipo RECT.

 

Proveedores

Un proveedor debe implementar una serie de métodos de interfaz que Automatización de la interfaz de usuario llamadas para recuperar información del proveedor. Muchas veces, esta información consta de una matriz de valores. Para devolver una matriz a Automatización de la interfaz de usuario, el proveedor debe empaquetar la matriz en una estructura SAFEARRAY. Los elementos de matriz deben ser del tipo de datos esperado y deben aparecer en el orden esperado.

Conceptual

Información general acerca de las propiedades de UI Automation

Fundamentos de UI Automation