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.
Tematy pokrewne