Рекомендации по использованию безопасных массивов
Многие методы интерфейса API автоматизации пользовательского интерфейса Майкрософт принимают аргументы, называемые безопасными массивами, типа данных SAFEARRAY. В этом разделе описаны рекомендации по использованию безопасных массивов в приложениях автоматизации пользовательского интерфейса.
Клиенты
Все безопасные массивы, которые используются с методами клиентского API автоматизации пользовательских интерфейсов, являются одномерными массивами с нулевым началом. Чтобы создать безопасный массив для клиентского метода автоматизации пользовательского интерфейса, используйте функцию SafeArrayCreateVector, а также для чтения из и записи в безопасный массив, используйте функции SafeArrayGetElement и функции SafeArrayPutElement. Завершив использование безопасного массива, всегда уничтожайте его с помощью функции SafeArrayDeties, независимо от того, создали ли вы безопасный массив или получили его из метода клиента автоматизации пользовательского интерфейса.
Несколько методов автоматизации пользовательского интерфейса, включая методы извлечения свойств, такие как GetCurrentPropertyValue, извлекают VARIANT, которые могут содержать POINT или структуры UiaRect. POINT упаковывается в VARIANT в виде безопасного массива вещественных чисел двойной точности (VT_R8) с элементом x под индексом 0, а член y под индексом 1. Аналогичным образом UiaRect упаковывается в VARIANT в виде безопасного массива двойника с левой, верхней, шириныи высоты элементов в индексах 0–3 соответственно. Для массива структур UiaRect безопасный массив содержит последовательный массив из четырех двойных для каждого UiaRect. левый, верхний, ширинаи высота элементы первого UiaRect занимают индексы 0–3, элементы второго прямоугольника занимают индексы 4–7 и так далее.
Интерфейс IUIAutomation включает следующие методы для преобразования между SAFEARRAY и различными другими типами данных.
Метод | Описание |
---|---|
IUIAutomation::IntNativeArrayToSafeArray | Преобразует массив целых чисел в SAFEARRAY. |
IUIAutomation::IntSafeArrayToNativeArray | Преобразует SAFEARRAY целых чисел в массив. |
IUIAutomation::SafeArrayToRectNativeArray | Преобразует SAFEARRAY, который содержит координаты прямоугольника, в массив типа RECT. |
Поставщики
Поставщик должен реализовать ряд методов интерфейса, которые служба автоматизации пользовательского интерфейса вызывает для получения сведений от поставщика. Много раз эта информация состоит из массива значений. Чтобы вернуть массив в службу автоматизации пользовательского интерфейса, поставщик должен упаковать массив в структуру SAFEARRAY. Элементы массива должны иметь ожидаемый тип данных и должны отображаться в ожидаемом порядке.
Связанные разделы
-
концептуальные