Recupero di un oggetto IAccessibile
Microsoft Active Accessibility offre funzioni come AccessibleObjectFromWindow e AccessibleObjectFromPoint che consentono ai client di recuperare oggetti accessibili. Queste funzioni restituiscono un puntatore dell'interfaccia IDispatch o IAccessibile tramite cui i client ottengono informazioni sull'oggetto accessibile.
Quando un client chiama AccessibleObjectFromWindow o una delle altre funzioni AccessibleObjectFromX che recuperano un'interfaccia a un oggetto, Microsoft Active Accessibility invia il messaggio della finestra di WM_GETOBJECT alla procedura di finestra applicabile all'interno dell'applicazione appropriata. Per fornire informazioni ai client, i server devono rispondere al messaggio di WM_GETOBJECT .
Per raccogliere informazioni specifiche su un elemento dell'interfaccia utente, i client devono prima recuperare un'interfaccia IAccessibile per l'elemento. Per recuperare l'oggetto IAccess di un elemento, i client possono usare una delle funzioni seguenti:
Per recuperare un puntatore dell'interfaccia IAccessibile
Il client chiama una delle funzioni AccessibleObjectFromX .
Oleacc.dll invia un messaggio WM_GETOBJECT al server.
Il server determina l'elemento dell'interfaccia utente corrispondente alla richiesta.
Il server restituisce zero per richiedere un proxy Oleacc.dll,
Oppure
Restituisce un oggetto IAccess (implementazione nativa). A tale scopo, è possibile:
- Costruisce un oggetto IAccess per l'elemento.
- Chiama LresultFromObject per eseguire il marshalling del puntatore dell'oggetto.
- Restituisce LRESULT in Oleacc.dll.
Oleacc.dll esamina il valore restituito da WM_GETOBJECT.
Se è zero, Oleacc.dll costruisce un oggetto proxy e lo restituisce al client.
Oppure
Se è diverso da zero, Oleacc.dll chiama ObjectFromLresult per annullare il puntatore a oggetti IAccess nativo e lo restituisce al client.