Udostępnij za pośrednictwem


Najlepsze praktyki w korzystaniu z bezpiecznych tablic

Wiele metod interfejsu API automatyzacji interfejsu firmy Microsoft przyjmuje argumenty nazywane bezpiecznymi tablicami SAFEARRAY typu danych. W tym temacie opisano najlepsze praktyki dotyczące używania bezpiecznych tablic w aplikacjach UI Automation.

Klienci

Wszystkie bezpieczne tablice, które są używane z API klienta automatyzacji interfejsu użytkownika, to jednowymiarowe tablice o zerowym indeksie. Aby utworzyć bezpieczną tablicę dla metody klienta automatyzacji interfejsu użytkownika, użyj funkcji SafeArrayCreateVector, a do odczytu i zapisu w bezpiecznej tablicy, użyj funkcji SafeArrayGetElement i SafeArrayPutElement. Po zakończeniu korzystania z bezpiecznej tablicy zawsze należy ją zniszczyć przy użyciu funkcji SafeArrayDestroy, niezależnie od tego, czy utworzono bezpieczną tablicę, czy odebrano ją z metody klienta automatyzacji interfejsu użytkownika.

Kilka metod automatyzacji interfejsu użytkownika, w tym metod pobierania właściwości, takich jak GetCurrentPropertyValue, pobierają struktury VARIANT, które mogą zawierać struktury POINT lub UiaRect. POINT jest pakowany w VARIANT jako bezpieczna tablica liczb podwójnej precyzji (VT_R8), z elementem składowym x na indeksie 0, a elementem składowym y na indeksie 1. Podobnie, UiaRect jest zapakowany w VARIANT jako bezpieczna tablica elementów typu double z członami left, top, widthi height, znajdującymi się odpowiednio na indeksach od 0 do 3. W przypadku tablicy struktur UiaRect, bezpieczna tablica zawiera sekwencyjną tablicę czterech liczb zmiennoprzecinkowych dla każdej struktury UiaRect. Lewa , górna , szerokość oraz wysokość składowych pierwszego UiaRect zajmują indeksy od 0 do 3, składowe drugiego prostokąta zajmują indeksy od 4 do 7 itd.

Interfejs IUIAutomation zawiera następujące metody umożliwiające konwersję między a różnymi innymi typami danych.

Metoda Opis
IUIAutomation::IntNativeArrayToSafeArray Konwertuje tablicę liczb całkowitych na SAFEARRAY.
IUIAutomation::IntSafeArrayToNativeArray Konwertuje SAFEARRAY liczb całkowitych na tablicę.
IUIAutomation::SafeArrayToRectNativeArray Konwertuje SAFEARRAY, która zawiera współrzędne prostokąta, na tablicę typu RECT.

 

Dostawców

Dostawca musi zaimplementować wiele metod interfejsu, które usługa Automatyzacja interfejsu użytkownika wywołuje w celu pobrania informacji od dostawcy. Wiele razy te informacje składają się z tablicy wartości. Aby zwrócić tablicę z powrotem do automatyzacji interfejsu użytkownika, dostawca musi spakować tablicę w strukturę SAFEARRAY. Elementy tablicy muszą mieć oczekiwany typ danych i muszą być wyświetlane w oczekiwanej kolejności.

koncepcyjny

Właściwości automatyzacji interfejsu użytkownika — omówienie

Podstawy automatyzacji interfejsu użytkownika