Freigeben über


AccessibleObjectFromEvent-Funktion (oleacc.h)

Ruft die Adresse der IAccessible-Schnittstelle für das Objekt ab, das das Ereignis generiert hat, das derzeit von der Ereignishakenfunktion des Clients verarbeitet wird.

Syntax

HRESULT AccessibleObjectFromEvent(
  [in]  HWND        hwnd,
  [in]  DWORD       dwId,
  [in]  DWORD       dwChildId,
  [out] IAccessible **ppacc,
  [out] VARIANT     *pvarChild
);

Parameter

[in] hwnd

Typ: HWND

Gibt das Fensterhandle des Fensters an, das das Ereignis generiert hat. Dieser Wert muss das Fensterhandle sein, das an die Ereignishakenfunktion gesendet wird.

[in] dwId

Typ: DWORD

Gibt die Objekt-ID des Objekts an, das das Ereignis generiert hat. Dieser Wert muss die Objekt-ID sein, die an die Ereignishakenfunktion gesendet wird.

[in] dwChildId

Typ: DWORD

Gibt an, ob das Ereignis von einem Objekt oder einem seiner untergeordneten Elemente ausgelöst wurde. Wenn das -Objekt das Ereignis ausgelöst hat, wird dwChildID CHILDID_SELF. Wenn ein untergeordnetes Element das Ereignis ausgelöst hat, ist dwChildID die untergeordnete ID des Elements. Dieser Wert muss die untergeordnete ID sein, die an die Ereignishakenfunktion gesendet wird.

[out] ppacc

Typ: IAccessible**

Adresse einer Zeigervariable, die die Adresse einer IAccessible-Schnittstelle empfängt . Die Schnittstelle ist entweder für das Objekt, das das Ereignis generiert hat, oder für das übergeordnete Element des Elements, das das Ereignis generiert hat.

[out] pvarChild

Typ: VARIANT*

Adresse einer VARIANT-Struktur , die die untergeordnete ID angibt, die für den Zugriff auf Informationen über das UI-Element verwendet werden kann.

Rückgabewert

Typ: STDAPI

Gibt bei Erfolg S_OK zurück.

Wenn dies nicht erfolgreich ist, gibt einen der folgenden oder einen anderen COM-Standardfehlercode zurück.

Rückgabecode Beschreibung
E_INVALIDARG
Ein Argument ist ungültig.

Hinweise

Clients rufen diese Funktion innerhalb einer Ereignishakenfunktion auf, um einen IAccessible-Schnittstellenzeiger entweder auf das Objekt abzurufen, das das Ereignis generiert hat, oder auf das übergeordnete Element des Elements, das das Ereignis generiert hat. Die an die WinEventProc-Rückruffunktion gesendeten Parameter müssen für die Parameter hwnd, dwObjectID und dwChildID dieser Funktion verwendet werden.

Diese Funktion ruft das Objekt der niedrigsten Ebene ab, auf das in der Objekthierarchie zugegriffen werden kann, das einem Ereignis zugeordnet ist. Wenn das Element, das das Ereignis generiert hat, kein barrierefreies Objekt ist (d. h. IAccessible wird nicht unterstützt), ruft die Funktion die IAccessible-Schnittstelle des übergeordneten Objekts ab. Das übergeordnete Objekt muss Über die IAccessible-Schnittstelle Informationen zum untergeordneten Element bereitstellen.

Wie bei anderen IAccessible-Methoden und Funktionen erhalten Clients aufgrund einer Benutzeraktion möglicherweise Fehler für IAccessible-Schnittstellenzeiger . Weitere Informationen finden Sie unter Empfangen von Fehlern für IAccessible-Schnittstellenzeiger.

Diese Funktion schlägt fehl, wenn sie als Antwort auf EVENT_OBJECT_CREATE aufgerufen wird, da das Objekt nicht vollständig initialisiert ist. Ebenso sollten Clients dies nicht als Reaktion auf EVENT_OBJECT_DESTROY aufrufen, da das Objekt nicht mehr verfügbar ist und nicht reagieren kann. Clients watch für EVENT_OBJECT_SHOW- und EVENT_OBJECT_HIDE-Ereignisse statt für EVENT_OBJECT_CREATE und EVENT_OBJECT_DESTROY.

Beispiele

Der folgende Beispielcode zeigt, dass diese Methode in einem WinEventProc-Ereignishandler aufgerufen wird.


void CALLBACK HandleWinEvent(HWINEVENTHOOK hook, DWORD event, HWND hwnd, 
                             LONG idObject, LONG idChild, 
                             DWORD dwEventThread, DWORD dwmsEventTime)
{
    IAccessible* pAcc = NULL;
    VARIANT varChild;
    HRESULT hr = AccessibleObjectFromEvent(hwnd, idObject, idChild, &pAcc, &varChild);  
    if ((hr == S_OK) && (pAcc != NULL))
    {
        // Do something with the accessible object, then release it.        
        // ... 
        pAcc->Release();
    }
}

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Windows 2000 Professional [nur Desktop-Apps]
Unterstützte Mindestversion (Server) Windows Server 2003 [nur Desktop-Apps]
Zielplattform Windows
Kopfzeile oleacc.h
Bibliothek Oleacc.lib
DLL Oleacc.dll
Verteilbare Komponente Active Accessibility 1.3 RDK unter Windows NT 4.0 mit SP6 und höher und Windows 95

Weitere Informationen

AccessibleObjectFromPoint

AccessibleObjectFromWindow

Iaccessible

VARIANTE

WinEventProc