Bewährte Methoden für die Verwendung sicherer Arrays

Viele Schnittstellenmethoden der Microsoft Benutzeroberflächenautomatisierung-API verwenden Argumente, die als sichere Arrays des Datentyps SAFEARRAY bezeichnet werden. In diesem Thema werden die bewährten Methoden für die Verwendung sicherer Arrays in einer Benutzeroberflächenautomatisierung Anwendungen beschrieben.

Clients

Alle sicheren Arrays, die mit den Benutzeroberflächenautomatisierung Client-API-Methoden verwendet werden, sind nullbasierte, eindimensionale Arrays. Um ein sicheres Array für eine Benutzeroberflächenautomatisierung-Clientmethode zu erstellen, verwenden Sie die SafeArrayCreateVector-Funktion, und um aus einem sicheren Array zu lesen und in ein sicheres Array zu schreiben, verwenden Sie die Funktionen SafeArrayGetElement und SafeArrayPutElement. Wenn Sie mit der Verwendung eines sicheren Arrays fertig sind, zerstören Sie es immer mithilfe der SafeArrayDestroy-Funktion, unabhängig davon, ob Sie das sichere Array erstellt oder von einer Benutzeroberflächenautomatisierung Clientmethode empfangen haben.

Mehrere Benutzeroberflächenautomatisierung Methoden, einschließlich Methoden zum Abrufen von Eigenschaften wie GetCurrentPropertyValue, rufen VARIANTs ab, die POINT- oder UiaRect-Strukturen enthalten können. Ein POINT wird als sicheres Array von Doubles (VT_R8) mit dem x-Element bei Index 0 und dem y-Element bei Index 1 in eine VARIANT-Instanz gepackt. Auf ähnliche Weise wird ein UiaRect als sicheres Array von Doubles mit den linken, oberen, breiten und Höhenelementen bei den Indizes 0 bis 3 in einen VARIANT gepackt. Für ein Array von UiaRect-Strukturen enthält das sichere Array ein sequenzielles Array von vier Doubles für jede UiaRect. Die linken, oberen, Breiten- und Höhenmitglieder des ersten UiaRect belegen index 0 bis 3, die Elemente des zweiten Rechtecks den Index 4 bis 7 usw.

Die IUIAutomation-Schnittstelle umfasst die folgenden Methoden zum Konvertieren zwischen SAFEARRAY und verschiedenen anderen Datentypen.

Methode Beschreibung
IUIAutomation::IntNativeArrayToSafeArrayArray Konvertiert ein Array von ganzen Zahlen in ein SAFEARRAY.
IUIAutomation::IntSafeArrayToNativeArray Konvertiert ein SAFEARRAY von ganzen Zahlen in ein Array.
IUIAutomation::SafeArrayToRectNativeArray Konvertiert ein SAFEARRAY , das Rechteckkoordinaten enthält, in ein Array vom Typ RECT.

 

Anbieter

Ein Anbieter muss eine Reihe von Schnittstellenmethoden implementieren, die Aufrufe Benutzeroberflächenautomatisierung, um Informationen vom Anbieter abzurufen. Häufig bestehen diese Informationen aus einem Array von Werten. Um ein Array an Benutzeroberflächenautomatisierung zurückzugeben, muss der Anbieter das Array in eine SAFEARRAY-Struktur packen. Die Arrayelemente müssen vom erwarteten Datentyp sein und in der erwarteten Reihenfolge angezeigt werden.

Konzept

Übersicht über die Benutzeroberflächenautomatisierungs-Eigenschaften

Grundlagen der Benutzeroberflächenautomatisierung