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 |
---|---|
|
Ninguno. Ni este objeto ni ninguno de sus elementos secundarios tienen el foco del teclado. |
|
lVal es CHILDID_SELF. El propio objeto tiene el foco del teclado. |
|
lVal contiene el identificador secundario del elemento secundario que tiene el foco del teclado. |
|
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 |
---|---|
|
El objeto es una ventana pero no la ventana de primer plano. |
|
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 |