Come vengono utilizzati gli ID figli nei parametri
In questo argomento vengono descritti i parametri di input, i parametri di output e i casi speciali per interpretare i child IDs restituiti dai metodi di IAccessible.
Parametri di input
Molte delle funzioni di accessibilità di Microsoft Active e la maggior parte delle proprietà IAccessible accettano una struttura VARIANT come parametro di input. Per la maggior parte delle proprietà IAccessible, questo parametro consente agli sviluppatori client di specificare se desiderano informazioni sull'oggetto stesso o su uno degli elementi semplici dell'oggetto.
Microsoft Active Accessibility fornisce la costante CHILDID_SELF per indicare che sono necessarie informazioni sull'oggetto stesso. Per ottenere informazioni su un elemento semplice, gli sviluppatori client specificano il child ID nel parametro VARIANT.
Quando si inizializza un parametro VARIANT , assicurarsi di specificare VT_I4 nel membro vt , oltre a specificare il valore ID figlio (o CHILDID_SELF) nel membro lVal .
Ad esempio, per ottenere il nome di un oggetto e non uno degli elementi figlio dell'oggetto, inizializzare ilVARIANTper il primo parametro di IAccessible::get_accName ( CHILDID_SELF nel membro lVal e VT_I4 nel membro vt), e quindi chiamare IAccessible::get_accName.
Parametri di output
Diverse funzioni e metodi IAccessible hanno un parametro di output VARIANT* che contiene un ID figlio o un puntatore dell'interfaccia IDispatch a un oggetto figlio. Esistono passaggi diversi che un client deve eseguire a seconda che riceva un ID figlio VT_I4 (elemento semplice) o un puntatore all'interfaccia IDispatch con CHILDID_SELF (oggetto completo). Seguendo questa procedura verrà fornito un puntatore di interfaccia IAccessible e un ID figlio che consente ai client di usare i metodi e le proprietà IAccessible . Questi passaggi si applicano ai metodi IAccessible::accHitTest, get_accFocuse get_accSelection. Si applicano anche alle funzioni clientAccessibleObjectFromEvent, AccessibleObjectFromPointe AccessibleObjectFromWindow.
Nella tabella seguente sono elencati i possibili risultati restituiti e i passaggi di post-elaborazione necessari in modo che i client abbiano un puntatore di interfaccia IAccessible e l'ID figlio.
Risultato restituito | Elaborazione finale del valore restituito |
---|---|
puntatore dell'interfaccia IDispatch | Questo è un oggetto completo. Chiamare QueryInterface per accedere al puntatore di interfaccia IAccessible. Usare il puntatore a interfacciaIAccessiblecon CHILDID_SELF per accedere ai metodi e alle proprietà IAccessible. |
ID figlio VT_I4 | Chiamare IAccessible::get_accChild usando l'ID figlio per verificare se si dispone di un puntatore a interfaccia IDispatch. Se si ottiene un puntatore a interfaccia IDispatch, usarlo con CHILDID_SELF per accedere ai metodi e alle proprietà di interfaccia IAccessible. Se la chiamata a get_accChild ha esito negativo, si dispone di un elemento semplice. Usare il puntatore dell'interfaccia originale IAccessible (quello utilizzato nella chiamata ai metodi o alle funzioni menzionati in precedenza) con l'ID figlio VT_I4 restituito dalla chiamata. |
Prima di poter usare un parametroVARIANT, è necessario inizializzarlo chiamando la funzione VariantInit Component Object Model (COM). Al termine della struttura, chiamare VariantClear per liberare la memoria riservata per tale VARIANT.
Casi speciali
Esistono eccezioni alle linee guida nella tabella precedente, ad esempio quando un ID figlio viene restituito dal metodo IAccessible::accHitTest. I server devono restituire un'interfaccia IDispatch se l'elemento figlio è un oggetto accessibile. Se un ID figlio viene restituito da IAccessible::accHitTest, l'elemento figlio è un elemento semplice.
Inoltre, esistono casi speciali per accNavigate. Per ulteriori informazioni, vedere IAccessible::accNavigate e Navigazione spaziale e logica.
Argomenti correlati
-
concettuale