Método IAccessible::accLocation (oleacc.h)
El método IAccessible::accLocation recupera la ubicación de pantalla actual del objeto especificado. Todos los objetos visuales deben admitir este método. Los objetos sound no admiten este método.
HRESULT accLocation(
[out] long *pxLeft,
[out] long *pyTop,
[out] long *pcxWidth,
[out] long *pcyHeight,
[in] VARIANT varChild
);
[out] pxLeft
Tipo: long*
Dirección, en coordenadas de pantalla físicas, de la variable que recibe la coordenada x del límite superior izquierdo de la ubicación del objeto.
[out] pyTop
Tipo: long*
Dirección, en coordenadas de pantalla físicas, de la variable que recibe la coordenada y del límite superior izquierdo de la ubicación del objeto.
[out] pcxWidth
Tipo: long*
Dirección, en píxeles, de la variable que recibe el ancho del objeto.
[out] pcyHeight
Tipo: long*
Dirección, en píxeles, de la variable que recibe el alto del objeto.
[in] varChild
Tipo: VARIANT
Especifica si la ubicación que devuelve el servidor debe ser la del objeto o la de uno de los elementos secundarios del objeto. Este parámetro es CHILDID_SELF (para obtener información sobre el objeto) o un identificador secundario (para obtener información sobre el elemento secundario del objeto). Para obtener más información sobre cómo inicializar la estructura VARIANT, vea Cómo se usan los identificadores secundarios en parámetros.
Tipo: HRESULT
Si se ejecuta correctamente, devuelve S_OK. Los clientes siempre deben comprobar que los parámetros de salida contienen valores válidos.
Si no se ejecuta correctamente, devuelve uno de los valores de la tabla siguiente u otro código de error COM estándar. Para obtener más información, vea Comprobar valores devueltos de IAccessible.
Error | Descripción |
---|---|
|
El objeto no admite este método. |
|
Un argumento no es válido. |
Este método recupera el rectángulo delimitador del objeto. Si el objeto tiene una forma no rectangular, este método devuelve el rectángulo más pequeño que abarca completamente toda la región del objeto. En el caso de los objetos no rectangulares, las coordenadas del rectángulo delimitador del objeto podrían producir un error si se prueba con IAccessible::accHitTest. Algunos ejemplos de estos objetos no rectangulares son elementos de vista de lista en modo de icono grande donde un solo elemento tiene un rectángulo para el icono y otro rectángulo para el texto del icono. Dado que accLocation devuelve un rectángulo delimitador, no todos los puntos de ese rectángulo estarán dentro de los límites reales del objeto. Es posible que algunos puntos dentro del rectángulo delimitador no estén en el objeto . Para obtener más información, vea Navegación a través de pruebas de posicionamiento y ubicación de pantalla.
Nota: Este método devuelve el ancho y el alto. Si desea las coordenadas derecha e inferior, calculelas con right = left + width y bottom = top + height.
En el ejemplo siguiente se muestra una posible implementación del método para un cuadro de lista personalizado cuyos elementos de lista son elementos secundarios. Para el propio cuadro de lista, la llamada se pasa al objeto accesible estándar, que devuelve las coordenadas de pantalla de la ventana.
// m_pStdAccessibleObject is the standard accessible object for the control window.
// m_pControl is the object that represents the control. Its GetItemRect method
// retrieves the screen coordinates of the specified item in a zero-based collection.
//
HRESULT STDMETHODCALLTYPE AccServer::accLocation(
long *pxLeft,
long *pyTop,
long *pcxWidth,
long *pcyHeight,
VARIANT varChild)
{
*pxLeft = 0;
*pyTop = 0;
*pcxWidth = 0;
*pcyHeight = 0;
if (varChild.vt != VT_I4)
{
return E_INVALIDARG;
}
if (varChild.lVal == CHILDID_SELF)
{
return m_pStdAccessibleObject->accLocation(pxLeft, pyTop, pcxWidth, pcyHeight, varChild);
}
else
{
RECT rect;
if (m_pControl->GetItemRect(varChild.lVal - 1, &rect) == FALSE)
{
return E_INVALIDARG;
}
else
{
*pxLeft = rect.left;
*pyTop = rect.top;
*pcxWidth = rect.right - rect.left;
*pcyHeight = rect.bottom - rect.top;
return S_OK;
}
}
};
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 |
Escalado de pantalla de Accesibilidad activa y Windows Vista
Navegación a través de pruebas de posicionamiento y ubicación de pantalla