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

Entradas populares