Verwendung untergeordneter IDs in Parametern

In diesem Thema werden Eingabeparameter, Ausgabeparameter und Spezielle Fälle für die Interpretation untergeordneter IDs beschrieben, die von IAccessible-Methoden zurückgegeben werden.

Eingabeparameter

Viele der Microsoft Active Accessibility-Funktionen und die meisten IAccessible-Eigenschaften verwenden eine VARIANT-Struktur als Eingabeparameter. Für die meisten IAccessible-Eigenschaften können Cliententwickler mit diesem Parameter angeben, ob sie Informationen zum Objekt selbst oder zu einem der einfachen Elemente des Objekts benötigen.

Microsoft Active Accessibility stellt die konstante CHILDID_SELF bereit, um anzugeben, dass Informationen über das Objekt selbst benötigt werden. Um Informationen zu einem einfachen Element abzurufen, geben Cliententwickler die untergeordnete ID im VARIANT-Parameter an.

Achten Sie beim Initialisieren eines VARIANT-Parameters darauf, VT_I4 im vt-Member anzugeben, zusätzlich zum Angeben des untergeordneten ID-Werts (oder CHILDID_SELF) im lVal-Member .

Um beispielsweise den Namen eines Objekts und nicht eines der untergeordneten Elemente des Objekts abzurufen, initialisieren Sie den VARIANT für den ersten Parameter von IAccessible::get_accName ( CHILDID_SELF im lVal-Member und VT_I4 im vt-Member ), und rufen Sie dann IAccessible::get_accName auf.

Ausgabeparameter

Mehrere IAccessible-Funktionen und -Methoden verfügen über einen VARIANT*-Ausgabeparameter, der eine untergeordnete ID oder einen IDispatch-Schnittstellenzeiger auf ein untergeordnetes Objekt enthält. Es gibt verschiedene Schritte, die ein Client ausführen muss, je nachdem, ob er eine VT_I4 untergeordnete ID (einfaches Element) oder einen IDispatch-Schnittstellenzeiger mit CHILDID_SELF (vollständiges Objekt) empfängt. Wenn Sie diese Schritte ausführen, werden ein IAccessible-Schnittstellenzeiger und eine untergeordnete ID bereitgestellt, die es Clients zusammen ermöglichen, die IAccessible-Methoden und -Eigenschaften zu verwenden. Diese Schritte gelten für die Methoden IAccessible::accHitTest, get_accFocus und get_accSelection . Sie gelten auch für die Clientfunktionen AccessibleObjectFromEvent, AccessibleObjectFromPoint und AccessibleObjectFromWindow .

In der folgenden Tabelle werden das mögliche zurückgegebene Ergebnis und die erforderlichen Nachverarbeitungsschritte aufgelistet, damit Clients über einen IAccessible-Schnittstellenzeiger und eine untergeordnete ID verfügen.

Zurückgegebenes Ergebnis Nachverarbeitung für den Rückgabewert
IDispatch-Schnittstellenzeiger Dies ist ein vollständiges Objekt. Rufen Sie QueryInterface auf, um auf den IAccessible-Schnittstellenzeiger zuzugreifen.
Verwenden Sie den IAccessible-Schnittstellenzeiger mit CHILDID_SELF , um auf IAccessible-Methoden und -Eigenschaften zuzugreifen.
VT_I4 untergeordnete ID Rufen Sie IAccessible::get_accChild mit der untergeordneten ID auf, um festzustellen, ob Sie über einen IDispatch-Schnittstellenzeiger verfügen. Wenn Sie einen IDispatch-Schnittstellenzeiger erhalten, verwenden Sie ihn mit CHILDID_SELF , um auf IAccessible-Schnittstellenmethoden und -Eigenschaften zuzugreifen.
Wenn der Aufruf von get_accChild fehlschlägt, verfügen Sie über ein einfaches Element. Verwenden Sie den ursprünglichen IAccessible-Schnittstellenzeiger (den, den Sie in Ihrem Aufruf der oben genannten Methode oder Funktion verwendet haben) mit der VT_I4 untergeordneten ID, die der Aufruf zurückgegeben hat.

Bevor Sie einen VARIANT-Parameter verwenden können, müssen Sie ihn initialisieren, indem Sie die Com-Funktion (VariantInit Component Object Model) aufrufen. Wenn Sie mit der Struktur fertig sind, rufen Sie VariantClear auf, um den für diesen VARIANT reservierten Arbeitsspeicher freizugeben.

Sonderfälle

Es gibt Ausnahmen für die Richtlinien in der obigen Tabelle, z. B. wenn eine untergeordnete ID von der IAccessible::accHitTest-Methode zurückgegeben wird. Server müssen eine IDispatch-Schnittstelle zurückgeben, wenn das untergeordnete Objekt ein zugängliches Objekt ist. Wenn eine untergeordnete ID von IAccessible::accHitTest zurückgegeben wird, ist das untergeordnete Element ein einfaches Element.

Darüber hinaus gibt es Spezielle Fälle für accNavigate. Weitere Informationen finden Sie unter IAccessible::accNavigate und Räumliche und logische Navigation.

Konzept

IDispatch-Schnittstelle

VARIANT-Struktur