Compartir a través de


Método IAccessible::get_accFocus (oleacc.h)

El método IAccessible::get_accFocus recupera el objeto que tiene el foco del teclado. Todos los objetos que pueden recibir el foco del teclado deben admitir esta propiedad.

Sintaxis

HRESULT get_accFocus(
  [out, retval] VARIANT *pvarChild
);

Parámetros

[out, retval] pvarChild

Tipo: VARIANT*

Dirección de una estructura VARIANT que recibe información sobre el objeto que tiene el foco. En la tabla siguiente se describe la información devuelta en pvarID.

Valor Significado
VT_EMPTY
Ninguno. Ni este objeto ni ninguno de sus elementos secundarios tienen el foco del teclado.
VT_I4
lVal es CHILDID_SELF. El propio objeto tiene el foco del teclado.
VT_I4
lVal contiene el identificador secundario del elemento secundario que tiene el foco del teclado.
VT_DISPATCH
El miembro pdispVal es la dirección de la interfaz IDispatch del objeto secundario que tiene el foco del teclado.

Valor devuelto

Tipo: HRESULT

Si se ejecuta correctamente, devuelve S_OK.

Si no se ejecuta correctamente, devuelve uno de los valores de la tabla siguiente u otro código de error COM estándar. Los servidores devuelven estos valores, pero los clientes siempre deben comprobar los parámetros de salida para asegurarse de que contienen valores válidos. Para obtener más información, vea Comprobación de valores devueltos de IAccessible.

Error Descripción
S_FALSE
El objeto es una ventana pero no la ventana de primer plano.
DISP_E_MEMBERNOTFOUND
El objeto no admite esta propiedad.

Comentarios

El concepto de foco de teclado está relacionado con el de una ventana activa. Una ventana activa es la ventana de primer plano en la que funciona el usuario. El objeto con el foco del teclado es la ventana activa o un objeto secundario de la ventana activa.

Solo un objeto o elemento dentro de un contenedor tiene el foco en cualquier momento. El objeto con el foco del teclado no siempre es el objeto seleccionado. Para obtener más información sobre la diferencia entre la selección y el foco, vea Propiedades y métodos de selección y enfoque.

Este método devuelve un puntero de interfaz IDispatch o un identificador secundario para pvarID. Para obtener más información sobre cómo usar el puntero de interfaz IDispatch o el identificador secundario, vea Cómo se usan los identificadores secundarios en parámetros.

Al igual que con otros métodos y funciones IAccessible , los clientes pueden recibir errores para punteros de interfaz IAccessible debido a una acción del usuario. Para obtener más información, vea Recepción de errores para punteros de interfaz IAccessible.

Ejemplo de servidor

En el código de ejemplo siguiente se muestra una posible implementación de este método para un cuadro de lista de selección única personalizada. Si el control no tiene el foco, el objeto accesible estándar devuelve VT_EMPTY en la variante para el HWND. Si el control tiene el foco y se selecciona un elemento, se devuelve el identificador secundario de ese elemento; si no hay ninguna selección, se devuelve CHILDID_SELF.

// 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 Value
Cliente mínimo compatible Windows 2000 Professional [solo aplicaciones de escritorio]
Servidor mínimo compatible Windows Server 2003 [solo aplicaciones de escritorio]
Plataforma de destino Windows
Encabezado oleacc.h
Library Oleacc.lib
Archivo DLL Oleacc.dll
Redistribuible RDK de accesibilidad activa 1.3 en Windows NT 4.0 con SP6 y versiones posteriores y Windows 95

Consulte también

IAccessible

IAccessible::accSelect

IAccessible::get_accSelection

IDispatch

Propiedades y métodos de selección y enfoque