Método IAccessible::get_accFocus (oleacc.h)
O método IAccessible::get_accFocus recupera o objeto que tem o foco do teclado. Todos os objetos que podem receber o foco do teclado devem dar suporte a essa propriedade.
Sintaxe
HRESULT get_accFocus(
[out, retval] VARIANT *pvarChild
);
Parâmetros
[out, retval] pvarChild
Tipo: VARIANT*
Endereço de uma estrutura VARIANT que recebe informações sobre o objeto que tem o foco. A tabela a seguir descreve as informações retornadas em pvarID.
Valor | Significado |
---|---|
|
Nenhum. Nem esse objeto nem nenhum de seus filhos tem o foco do teclado. |
|
lVal é CHILDID_SELF. O próprio objeto tem o foco do teclado. |
|
LVal contém a ID filho do elemento filho que tem o foco do teclado. |
|
O membro pdispVal é o endereço da interface IDispatch para o objeto filho que tem o foco do teclado. |
Retornar valor
Tipo: HRESULT
Se for bem-sucedido, retornará S_OK.
Se não for bem-sucedido, retornará um dos valores na tabela a seguir ou outro código de erro COM padrão. Os servidores retornam esses valores, mas os clientes devem sempre marcar parâmetros de saída para garantir que eles contenham valores válidos. Para obter mais informações, consulte Verificando valores retornados IAccessible.
Erro | Descrição |
---|---|
|
O objeto é uma janela, mas não a janela em primeiro plano. |
|
O objeto não dá suporte a essa propriedade. |
Comentários
O conceito de foco do teclado está relacionado ao de uma janela ativa. Uma janela ativa é a janela em primeiro plano na qual o usuário trabalha. O objeto com o foco do teclado é a janela ativa ou um objeto filho da janela ativa.
Apenas um objeto ou item dentro de um contêiner tem o foco de uma só vez. O objeto com o foco do teclado nem sempre é o objeto selecionado. Para obter mais informações sobre a diferença entre seleção e foco, consulte Propriedades e métodos de seleção e foco.
Esse método retorna um ponteiro de interface IDispatch ou uma ID filho para o pvarID. Para obter mais informações sobre como usar o ponteiro da interface IDispatch ou a ID filho, consulte Como as IDs filho são usadas em parâmetros.
Assim como acontece com outros métodos e funções IAccessible , os clientes podem receber erros para ponteiros de interface IAccessible devido a uma ação do usuário. Para obter mais informações, consulte Recebendo erros para ponteiros de interface IAccessible.
Exemplo de servidor
O código de exemplo a seguir mostra uma possível implementação desse método para uma caixa de listagem de seleção única personalizada. Se o controle não tiver o foco, VT_EMPTY será retornado na variante pelo objeto acessível padrão para o HWND. Se o controle tiver o foco e um item estiver selecionado, a ID filho desse item será retornada; se não houver seleção, CHILDID_SELF será retornado.
// m_pControl is the control object that is served by this implementation.
// m_pStdAccessibleObject is the object returned by CreateStdAccessibleObject.
HRESULT STDMETHODCALLTYPE AccServer::get_accFocus(VARIANT *pvarChild)
{
FAIL_IF_NO_CONTROL; // Macro that checks for existence of control.
HRESULT hr = m_pStdAccessibleObject->get_accFocus(pvarChild);
if (pvarChild->vt != VT_I4)
{
return hr;
}
else
{
int index = m_pControl->GetSelectedIndex();
if (index <0)
{
pvarChild->lVal = CHILDID_SELF;
}
else
{
// Convert to 1-based index for child ID.
pvarChild->lVal = index + 1;
}
}
return S_OK;
};
Requisitos
Requisito | Valor |
---|---|
Cliente mínimo com suporte | Windows 2000 Professional [somente aplicativos da área de trabalho] |
Servidor mínimo com suporte | Windows Server 2003 [somente aplicativos da área de trabalho] |
Plataforma de Destino | Windows |
Cabeçalho | oleacc.h |
Biblioteca | Oleacc.lib |
DLL | Oleacc.dll |
Redistribuível | Active Accessibility 1.3 RDK no Windows NT 4.0 com SP6 e posterior e Windows 95 |