Compartilhar via


Como as IDs filho são usadas em parâmetros

Este tópico descreve parâmetros de entrada, parâmetros de saída e casos especiais para interpretar IDs filho retornadas de métodos IAccessible .

Parâmetros de Entrada

Muitas das funções de Acessibilidade Ativa da Microsoft e a maioria das propriedades IAccessible têm uma estrutura VARIANT como um parâmetro de entrada. Para a maioria das propriedades IAccessible , esse parâmetro permite que os desenvolvedores cliente especifiquem se desejam informações sobre o próprio objeto ou sobre um dos elementos simples do objeto.

O Microsoft Active Accessibility fornece a constante CHILDID_SELF para indicar que as informações são necessárias sobre o próprio objeto. Para obter informações sobre um elemento simples, os desenvolvedores cliente especificam sua ID filho no parâmetro VARIANT .

Ao inicializar um parâmetro VARIANT , especifique VT_I4 no membro vt , além de especificar o valor da ID filho (ou CHILDID_SELF) no membro lVal .

Por exemplo, para obter o nome de um objeto e não um dos elementos filho do objeto, inicialize o VARIANT para o primeiro parâmetro de IAccessible::get_accName ( CHILDID_SELF no membro lVal e VT_I4 no membro vt ) e chame IAccessible::get_accName.

Parâmetros de saída

Várias funções e métodos IAccessible têm um parâmetro de saída VARIANT* que contém uma ID filho ou um ponteiro de interface IDispatch para um objeto filho. Há diferentes etapas que um cliente deve executar dependendo de receber uma ID filho VT_I4 (elemento simples) ou um ponteiro de interface IDispatch com CHILDID_SELF (objeto completo). Seguir estas etapas fornecerá um ponteiro de interface IAccessible e uma ID filho que, juntos, permitem que os clientes usem os métodos e as propriedades IAccessible . Essas etapas se aplicam aos métodos IAccessible::accHitTest, get_accFocus e get_accSelection . Eles também se aplicam às funções de cliente AccessibleObjectFromEvent, AccessibleObjectFromPoint e AccessibleObjectFromWindow .

A tabela a seguir lista os possíveis resultados retornados e as etapas pós-processamento necessárias para que os clientes tenham um ponteiro de interface IAccessible e uma ID filho.

Resultado retornado Pós-processamento do valor retornado
Ponteiro da interface IDispatch Este é um objeto completo. Chame QueryInterface para acessar o ponteiro da interface IAccessible .
Use o ponteiro de interface IAccessible com CHILDID_SELF para acessar métodos e propriedades IAccessible .
VT_I4 ID filho Chame IAccessible::get_accChild usando a ID filho para ver se você tem um ponteiro de interface IDispatch . Se você receber um ponteiro de interface IDispatch , use-o com CHILDID_SELF para acessar métodos e propriedades de interface IAccessible .
Se a chamada para get_accChild falhar, você terá um elemento simples. Use o ponteiro de interface IAccessible original (aquele que você usou em sua chamada para o método ou função mencionada acima) com a ID filho VT_I4 que a chamada retornou.

Antes de usar um parâmetro VARIANT , você deve inicializá-lo chamando a função COM ( VariantInit Component Object Model). Quando terminar com a estrutura, chame VariantClear para liberar a memória reservada para essa VARIANT.

Casos especiais

Há exceções às diretrizes na tabela acima, como quando uma ID filho é retornada pelo método IAccessible::accHitTest . Os servidores devem retornar uma interface IDispatch se o filho for um objeto acessível. Se uma ID filho for retornada por IAccessible::accHitTest, o filho será um elemento simples.

Além disso, há casos especiais para accNavigate. Para obter mais informações, consulte IAccessible::accNavigate e Navegação Espacial e Lógica.

Conceitual

IDispatch Interface

Estrutura VARIANT