Llamadas a la API de Java Access Bridge
El archivo AccessBridgeCalls.h contiene las llamadas a la API de Java Access
Bridge. Para usarlos, compile el archivo AccessBridgeCalls.c. Las llamadas a
la API de Java Access Bridge actúan como la interfaz entre su aplicación y
WindowsAccessBridge.dll
Funciones de inicialización/apagado
Estas dos funciones inician y cierran Java Access Bridge.
BOOL initializeAccessBridge();
Inicia Java Access Bridge. No puede utilizar ninguna parte de la API de Java
Access Bridge hasta que llame a esta función.
BOOL shutdownAccessBridge();
Cierra Java Access Bridge. Es importante llamar a esta función cuando su
aplicación haya terminado de usar Java Access Bridge (antes de que exista su
aplicación) para que Java Access Bridge pueda realizar correctamente la
limpieza de memoria.
Nota: Llamar a la función
shutdownAccessBridge no
sustituye a la liberación de estructuras de datos mantenidas por la JVM; haz
esto llamando a la función
ReleaseJavaObject
Funciones de puerta de enlace
Por lo general, llama a estas funciones antes de llamar a cualquier otra
función de la API de Java Access Bridge:
BOOL IsJavaWindow(HWND window);
Comprueba si la ventana dada implementa la API de accesibilidad de Java.
BOOL GetAccessibleContextFromHWND(HWND target, long *vmID, AccessibleContext *ac);
Obtiene los valores
AccessibleContext y
vmID para la ventana dada.
Muchas funciones de Java Access Bridge requieren los valores AccessibleContext
y vmID.
Funciones de manejo de eventos
Estos llevan un puntero de función a la función que manejará el tipo de
evento. Cuando ya no esté interesado en recibir ese tipo de eventos, vuelva
a llamar a la función, pasando el valor NULL. Busque prototipos para
los punteros de función que necesita pasar a estas funciones en el archivo
AccessBridgeCallbacks.h. Las
devoluciones de llamada de la API de Java Access Bridge describen estos
prototipos.
Funciones generales
void ReleaseJavaObject(long vmID, Java_Object object);
Libera la memoria utilizada por el objeto Java object, dónde object Java
Access Bridge le devuelve un objeto. Java Access Bridge mantiene
automáticamente una referencia a todos los objetos Java que le devuelve en la
JVM para que no se recolectan como basura. Para evitar pérdidas de memoria,
invoque
ReleaseJavaObject todos los
objetos Java que le devolvió Java Access Bridge una vez que haya terminado con
ellos.
BOOL GetVersionInfo(long vmID, AccessBridgeVersionInfo *info);
Obtiene la información de la versión de la instancia de Java Access Bridge que
usa su aplicación. Puede utilizar esta información para determinar la
funcionalidad disponible de su versión de Java Access Bridge.
Nota: Para determinar la versión de la JVM, debe pasar un valor válido
vmID; de lo contrario, todo lo que se devuelve es la versión del archivo
WindowsAccessBridge.DLL al que está conectada su aplicación.
Funciones de contexto accesibles
Estas funciones proporcionan el núcleo de la API de accesibilidad de Java
que expone Java Access Bridge.
Las funciones GetAccessibleContextAt y GetAccessibleContextWithFocus
recuperan un objeto AccessibleContext, que es una cookie mágica (una
referencia Object de Java ) a un objeto Accessible y una cookie JVM. Utiliza
estas dos cookies para hacer referencia a objetos a través de Java Access
Bridge. La mayoría de las funciones de la API de Java Access Bridge
requieren que pase estos dos parámetros.
Nota: Los objetos
AccessibleContext son
referencias de 64 bits bajo comunicación entre procesos de 64 bits (que usa
el archivo windowsaccessbridge-64.dll). Sin embargo, antes de JDK 9, los
objetos
AccessibleContext eran
referencias de 32 bits bajo comunicación entre procesos de 32 bits (que usa
el archivo windowsaccessbridge.dll sin
-32 o
-64 en el nombre del
archivo). En consecuencia, si está convirtiendo sus aplicaciones de
tecnología de asistencia para que se ejecuten en sistemas Windows de 64
bits, debe volver a compilar sus aplicaciones de tecnología de asistencia.
La función
GetAccessibleContextInfo
devuelve información detallada sobre un objeto AccessibleContext que
pertenece a la JVM. Para mejorar el rendimiento, los distintos métodos de la
API de accesibilidad de Java se recopilan en unas pocas rutinas en la API de
Java Access Bridge y se devuelven en valores struct. El archivo
define
AccessBridgePackages.h estos
valores struct y las devoluciones de llamada de la API de Java Access
Bridge los describen.
Las funciones
GetAccessibleChildFromContext
y
GetAccessibleParentFromContext
le permiten caminar por la jerarquía de componentes GUI, recuperar el nº
hijo, o el padre, de un objeto de interfaz gráfica de usuario en particular.
BOOL GetAccessibleContextAt(long vmID, AccessibleContext acParent, jint x, jint y, AccessibleContext *ac)
Recupera un objeto AccessibleContext de la ventana u objeto que se encuentra
debajo del puntero del mouse.
BOOL GetAccessibleContextWithFocus(HWND window, long *vmID, AccessibleContext *ac);
Recupera un objeto AccessibleContext de la ventana u objeto que tiene el foco.
BOOL GetAccessibleContextInfo(long vmID, AccessibleContext ac, AccessibleContextInfo *info);
Recupera un objeto AccessibleContextInfo del objeto AccessibleContext ac.
AccessibleContext GetAccessibleChildFromContext(long vmID, AccessibleContext ac, jint index);
Devuelve un objeto AccessibleContext que representa el n- ésimo hijo del
objeto ac, donde n se especifica mediante el índice de valor.
AccessibleContext GetAccessibleParentFromContext(long vmID, AccessibleContext ac);
Devuelve un objeto AccessibleContext que representa al padre del objeto ac
HWND getHWNDFromAccessibleContext(long vmID, AccessibleContext ac);
Devuelve el HWND del AccessibleContext de una ventana de nivel superior.
Funciones de texto accesibles
Estas funciones obtienen información AccessibleText proporcionada por la API
de accesibilidad de Java, dividida en siete partes para mayor eficiencia. Un
AccessibleContext tiene información AccessibleText contenida en él si
establece el indicador accessibleText en la estructura AccessibleContextInfo
de datos en TRUE. El archivo AccessBridgePackages.h define los valores struct
utilizados en estas funciones.
BOOL GetAccessibleTextInfo(long vmID, AccessibleText at, AccessibleTextInfo *textInfo, jint x, jint y);
BOOL GetAccessibleTextItems(long vmID, AccessibleText at, AccessibleTextItemsInfo *textItems, jint index);
BOOL GetAccessibleTextSelectionInfo(long vmID, AccessibleText at, AccessibleTextSelectionInfo *textSelection);
char *GetAccessibleTextAttributes(long vmID, AccessibleText at, jint index, AccessibleTextAttributesInfo *attributes);
BOOL GetAccessibleTextRect(long vmID, AccessibleText at, AccessibleTextRectInfo *rectInfo, jint index);
BOOL GetAccessibleTextRange(long vmID, AccessibleText at, jint start, jint end, wchar_t *text, short len);
BOOL GetAccessibleTextLineBounds(long vmID, AccessibleText at, jint index, jint *startIndex, jint *endIndex);
Funciones de texto adicionales
BOOL selectTextRange(const long vmID, const AccessibleContext accessibleContext, const int startIndex, const int endIndex);
Selecciona texto entre dos índices. La selección incluye el texto en el índice
inicial y el texto en el índice final. Devuelve si tiene éxito.
BOOL getTextAttributesInRange(const long vmID, const AccessibleContext accessibleContext, const int startIndex, const int endIndex, AccessibleTextAttributesInfo *attributes, short *len);
Obtenga atributos de texto entre dos índices. La lista de atributos incluye el
texto en el índice inicial y el texto en el índice final. Devuelve si tiene
éxito.
BOOL setCaretPosition(const long vmID, const AccessibleContext accessibleContext, const int position);
Establece el símbolo de intercalación en una posición de texto. Devuelve si
tiene éxito.
BOOL getCaretLocation(long vmID, AccessibleContext ac, AccessibleTextRectInfo *rectInfo, jint index);
Obtiene la ubicación del cursor de texto.
BOOL setTextContents (const long vmID, const AccessibleContext accessibleContext, const wchar_t *text);
Establece contenidos de texto editables. El AccessibleContext debe implementar
AccessibleEditableText y ser editable. La longitud máxima del texto que se
puede establecer es MAX_STRING_SIZE - 1. Devuelve si tiene éxito
Funciones de mesa accesibles
BOOL getAccessibleTableInfo(long vmID, AccessibleContext acParent, AccessibleTableInfo *tableInfo);
Devuelve información sobre la tabla, por ejemplo, título, resumen, recuento de
filas y columnas, y AccessibleTable.
BOOL getAccessibleTableCellInfo(long vmID, AccessibleTable accessibleTable, jint row, jint column, AccessibleTableCellInfo *tableCellInfo);
Devuelve información sobre la celda de la tabla especificada. Los
especificadores de fila y columna están basados en cero.
BOOL getAccessibleTableRowHeader(long vmID, AccessibleContext acParent, AccessibleTableInfo *tableInfo);
Devuelve los encabezados de fila de la tabla especificada como una tabla.
BOOL getAccessibleTableColumnHeader(long vmID, AccessibleContext acParent, AccessibleTableInfo *tableInfo);
Devuelve los encabezados de columna de la tabla especificada como una tabla.
AccessibleContext getAccessibleTableRowDescription(long vmID, AccessibleContext acParent, jint row);
Devuelve la descripción de la fila especificada en la tabla especificada. El
especificador de fila está basado en cero.
AccessibleContext getAccessibleTableColumnDescription(long vmID, AccessibleContext acParent, jint column);
Devuelve la descripción de la columna especificada en la tabla especificada.
El especificador de columna es de base cero.
jint getAccessibleTableRowSelectionCount(long vmID, AccessibleTable table);
Devuelve cuántas filas de la tabla están seleccionadas.
BOOL isAccessibleTableRowSelected(long vmID, AccessibleTable table, jint row);
Devuelve verdadero si se selecciona la fila de base cero especificada.
BOOL getAccessibleTableRowSelections(long vmID, AccessibleTable table, jint count, jint *selections);
Devuelve una matriz de índices basados en cero de las filas seleccionadas.
jint getAccessibleTableColumnSelectionCount(long vmID, AccessibleTable table);
Devuelve cuántas columnas de la tabla están seleccionadas.
BOOL isAccessibleTableColumnSelected(long vmID, AccessibleTable table, jint column);
Devuelve verdadero si se selecciona la columna de base cero especificada.
BOOL getAccessibleTableColumnSelections(long vmID, AccessibleTable table, jint count, jint *selections);
Devuelve una matriz de índices basados en cero de las columnas seleccionadas.
jint getAccessibleTableRow(long vmID, AccessibleTable table, jint index);
Devuelve el número de fila de la celda en el índice de celda especificado. Los
valores se basan en cero.
jint getAccessibleTableColumn(long vmID, AccessibleTable table, jint index);
Devuelve el número de columna de la celda en el índice de celda especificado.
Los valores se basan en cero.
jint getAccessibleTableIndex(long vmID, AccessibleTable table, jint row, jint column);
Devuelve el índice de la tabla del desplazamiento de fila y columna
especificado. Los valores se basan en cero.
Función de conjunto de relaciones accesibles
BOOL getAccessibleRelationSet(long vmID, AccessibleContext accessibleContext, AccessibleRelationSetInfo *relationSetInfo);
Devuelve información sobre los objetos relacionados de un objeto.
Funciones de hipertexto accesibles
BOOL getAccessibleHypertext(long vmID, AccessibleContext accessibleContext, AccessibleHypertextInfo *hypertextInfo);
Devuelve información de hipertexto asociada a un componente.
BOOL activateAccessibleHyperlink(long vmID, AccessibleContext accessibleContext, AccessibleHyperlink accessibleHyperlink);
Solicita que se active un hipervínculo.
jint getAccessibleHyperlinkCount(const long vmID, const AccessibleHypertext hypertext);
Devuelve el número de hipervínculos de un componente. Se asigna a
AccessibleHypertext.getLinkCount. Devuelve -1 en caso de error.
BOOL getAccessibleHypertextExt(const long vmID, const AccessibleContext accessibleContext, const jint nStartIndex, AccessibleHypertextInfo *hypertextInfo);
Itera a través de los hipervínculos de un componente. Devuelve información de
hipertexto para un componente que comienza en el índice de hipervínculo
nStartIndex. No se devolverán más de objetos MAX_HYPERLINKS
AccessibleHypertextInfo para cada llamada a este método. Devuelve FALSE en
caso de error.
jint getAccessibleHypertextLinkIndex(const long vmID, const AccessibleHypertext hypertext, const jint nIndex);
Devuelve el índice en una matriz de hipervínculos que se asocia con un índice
de caracteres en el documento. Se asigna a AccessibleHypertext.getLinkIndex.
Devuelve -1 en caso de error.
BOOL getAccessibleHyperlink(const long vmID, const AccessibleHypertext hypertext, const jint nIndex, AccessibleHypertextInfo *hyperlinkInfo);
Devuelve el hipervínculo n en un documento. Se asigna a
AccessibleHypertext.getLink. Devuelve FALSE en caso de error.
Función de enlace de teclas accesible
BOOL getAccessibleKeyBindings(long vmID, AccessibleContext accessibleContext, AccessibleKeyBindings *keyBindings);
Devuelve una lista de combinaciones de teclas asociadas con un componente.
Función de icono accesible
BOOL getAccessibleIcons(long vmID, AccessibleContext accessibleContext, AccessibleIcons *icons);
Devuelve una lista de iconos asociados con un componente.
Funciones de acción accesibles
BOOL getAccessibleActions(long vmID, AccessibleContext accessibleContext, AccessibleActions *actions);
Devuelve una lista de acciones que puede realizar un componente.
BOOL doAccessibleActions(long vmID, AccessibleContext accessibleContext, AccessibleActionsToDo *actionsToDo, jint *failure);
Solicite que un componente realice una lista de AccessibleActions . Devuelve
VERDADERO si se realizan todas las acciones. Devuelve FALSE cuando
falla la primera acción solicitada, en cuyo caso "failure" contiene el índice
de la acción que falló.
Funciones de utilidad
BOOL IsSameObject(long vmID, JOBJECT64 obj1, JOBJECT64 obj2);
Devuelve si dos referencias a objetos se refieren al mismo objeto.
AccessibleContext getParentWithRole (const long vmID, const AccessibleContext accessibleContext, const wchar_t *role);
Devuelve AccessibleContext con el rol especificado que es el ancestro de un
objeto dado. El rol es una de las cadenas de roles definidas en las
estructuras de datos de la API de Java Access Bridge . Si no hay ningún objeto
ancestro que tenga el rol especificado, devuelve (AccessibleContext) 0.
AccessibleContext getParentWithRoleElseRoot (const long vmID, const AccessibleContext accessibleContext, const wchar_t *role);
Devuelve AccessibleContext con el rol especificado que es el ancestro de un
objeto dado. El rol es una de las cadenas de roles definidas en las
estructuras de datos de la API de Java Access Bridge . Si un objeto con el rol
especificado no existe, devuelve el objeto de nivel superior para la ventana
de Java. Devuelve (AccessibleContext) 0 en caso de error.
AccessibleContext getTopLevelObject (const long vmID, const AccessibleContext accessibleContext);
Devuelve AccessibleContext para el objeto de nivel superior en una ventana de
Java. Este es el mismo AccessibleContext que se obtiene de
GetAccessibleContextFromHWND para esa ventana. Devuelve (AccessibleContext) 0
en caso de error.
int getObjectDepth (const long vmID, const AccessibleContext accessibleContext);
Devuelve la profundidad en la jerarquía de objetos de un objeto determinado.
El objeto más alto en la jerarquía de objetos tiene una profundidad de objeto
de 0. Devuelve -1 en caso de error.
AccessibleContext getActiveDescendent (const long vmID, const AccessibleContext accessibleContext);
Devuelve el AccessibleContext del ActiveDescendent actual de un objeto. Este
método asume que ActiveDescendent es el componente que está seleccionado
actualmente en un objeto contenedor. Devuelve (AccessibleContext) 0 en caso de
error o si no hay selección.
BOOL requestFocus(const long vmID, const AccessibleContext accessibleContext);
Solicitar enfoque para un componente. Devuelve si tiene éxito.
int getVisibleChildrenCount(const long vmID, const AccessibleContext accessibleContext);
Devuelve el número de hijos visibles de un componente. Devuelve -1 en caso de
error.
BOOL getVisibleChildren(const long vmID, const AccessibleContext accessibleContext, const int startIndex, VisibleChildrenInfo *visibleChildrenInfo);
Obtiene los elementos secundarios visibles de AccessibleContext. Devuelve
Verdadero si tiene éxito.
int getEventsWaiting();
Obtiene el número de eventos que esperan activarse.
Funciones de valor accesibles
Estas funciones obtienen información AccessibleValue proporcionada por la API
de accesibilidad de Java. Un objeto AccessibleContext tiene información
AccessibleValue contenida dentro de él si la bandera accessibleValue en la
estructura AccessibleContextInfo de datos está establecida en TRUE. Los
valores devueltos se deben a strings (char *value)que no hay forma de saber de
antemano si el valor es un número entero, un valor de punto flotante o algún
otro objeto que sea subclases de la construcción del lenguaje Java
java.lang.Number.
BOOL GetCurrentAccessibleValueFromContext(long vmID, AccessibleValue av, wchar_t *value, short len);
BOOL GetMaximumAccessibleValueFromContext(long vmID, AccessibleValue av, wchar_ *value, short len);
BOOL GetMinimumAccessibleValueFromContext(long vmID, AccessibleValue av, wchar_ *value, short len);
Funciones de selección accesibles
Estas funciones obtienen y manipulan la información AccessibleSelection
proporcionada por la API de accesibilidad de Java. Un AccessibleContext tiene
información AccessibleSelection contenida si el indicador accessibleSelection
en la estructura AccessibleContextInfo de datos está establecido en TRUE. El
soporte AccessibleSelection es el primer lugar donde se puede manipular la
interfaz de usuario, en lugar de ser consultas, mediante la adición y
eliminación de elementos de una selección. Algunas de las funciones usan un
índice que está en coordenadas secundarias, mientras que otras usan
coordenadas de selección. Por ejemplo, agregue para eliminar de una selección
pasando índices secundarios (por ejemplo, agregue el cuarto hijo a la
selección). Por otro lado, la enumeración de los hijos seleccionados se
realiza en coordenadas de selección (por ejemplo, obtener el AccessibleContext
del primer objeto seleccionado).
void AddAccessibleSelectionFromContext(long vmID, AccessibleSelection as, int i);
void ClearAccessibleSelectionFromContext(long vmID, AccessibleSelection as);
jobject GetAccessibleSelectionFromContext(long vmID, AccessibleSelection as, int i);
int GetAccessibleSelectionCountFromContext(long vmID, AccessibleSelection as);
BOOL IsAccessibleChildSelectedFromContext(long vmID, AccessibleSelection as, int i);
void RemoveAccessibleSelectionFromContext(long vmID, AccessibleSelection as, int i);
void SelectAllAccessibleSelectionFromContext(long vmID, AccessibleSelection as);
Comentarios
Publicar un comentario