AccessBridgeCalls.h revision 11740:8c996a225c1b
11590Srgrimes/* 21590Srgrimes * Copyright (c) 2005, 2015, Oracle and/or its affiliates. All rights reserved. 31590Srgrimes * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 41590Srgrimes * 51590Srgrimes * This code is free software; you can redistribute it and/or modify it 61590Srgrimes * under the terms of the GNU General Public License version 2 only, as 71590Srgrimes * published by the Free Software Foundation. Oracle designates this 81590Srgrimes * particular file as subject to the "Classpath" exception as provided 91590Srgrimes * by Oracle in the LICENSE file that accompanied this code. 101590Srgrimes * 111590Srgrimes * This code is distributed in the hope that it will be useful, but WITHOUT 121590Srgrimes * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 131590Srgrimes * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License 141590Srgrimes * version 2 for more details (a copy is included in the LICENSE file that 151590Srgrimes * accompanied this code). 161590Srgrimes * 171590Srgrimes * You should have received a copy of the GNU General Public License version 181590Srgrimes * 2 along with this work; if not, write to the Free Software Foundation, 191590Srgrimes * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. 201590Srgrimes * 211590Srgrimes * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA 221590Srgrimes * or visit www.oracle.com if you need additional information or have any 231590Srgrimes * questions. 241590Srgrimes */ 251590Srgrimes 261590Srgrimes/* 271590Srgrimes * Wrapper functions around calls to the AccessBridge DLL 281590Srgrimes */ 291590Srgrimes 301590Srgrimes#include <windows.h> 311590Srgrimes#include <jni.h> 321590Srgrimes#include "AccessBridgeCallbacks.h" 331590Srgrimes#include "AccessBridgePackages.h" 341590Srgrimes 351590Srgrimes#ifdef __cplusplus 361590Srgrimesextern "C" { 371590Srgrimes#endif 3823693Speter 391590Srgrimes#define null NULL 401590Srgrimes 411590Srgrimes typedef JOBJECT64 AccessibleContext; 421590Srgrimes typedef JOBJECT64 AccessibleText; 431590Srgrimes typedef JOBJECT64 AccessibleValue; 441590Srgrimes typedef JOBJECT64 AccessibleSelection; 451590Srgrimes typedef JOBJECT64 Java_Object; 461590Srgrimes typedef JOBJECT64 PropertyChangeEvent; 4723693Speter typedef JOBJECT64 FocusEvent; 481590Srgrimes typedef JOBJECT64 CaretEvent; 491590Srgrimes typedef JOBJECT64 MouseEvent; 501590Srgrimes typedef JOBJECT64 MenuEvent; 511590Srgrimes typedef JOBJECT64 AccessibleTable; 521590Srgrimes typedef JOBJECT64 AccessibleHyperlink; 531590Srgrimes typedef JOBJECT64 AccessibleHypertext; 541590Srgrimes 551590Srgrimes 561590Srgrimes typedef void (*Windows_runFP) (); 571590Srgrimes 581590Srgrimes typedef void (*SetPropertyChangeFP) (AccessBridge_PropertyChangeFP fp); 591590Srgrimes 601590Srgrimes typedef void (*SetJavaShutdownFP) (AccessBridge_JavaShutdownFP fp); 611590Srgrimes typedef void (*SetFocusGainedFP) (AccessBridge_FocusGainedFP fp); 621590Srgrimes typedef void (*SetFocusLostFP) (AccessBridge_FocusLostFP fp); 631590Srgrimes 641590Srgrimes typedef void (*SetCaretUpdateFP) (AccessBridge_CaretUpdateFP fp); 651590Srgrimes 661590Srgrimes typedef void (*SetMouseClickedFP) (AccessBridge_MouseClickedFP fp); 671590Srgrimes typedef void (*SetMouseEnteredFP) (AccessBridge_MouseEnteredFP fp); 681590Srgrimes typedef void (*SetMouseExitedFP) (AccessBridge_MouseExitedFP fp); 691590Srgrimes typedef void (*SetMousePressedFP) (AccessBridge_MousePressedFP fp); 701590Srgrimes typedef void (*SetMouseReleasedFP) (AccessBridge_MouseReleasedFP fp); 711590Srgrimes 721590Srgrimes typedef void (*SetMenuCanceledFP) (AccessBridge_MenuCanceledFP fp); 731590Srgrimes typedef void (*SetMenuDeselectedFP) (AccessBridge_MenuDeselectedFP fp); 741590Srgrimes typedef void (*SetMenuSelectedFP) (AccessBridge_MenuSelectedFP fp); 7523693Speter typedef void (*SetPopupMenuCanceledFP) (AccessBridge_PopupMenuCanceledFP fp); 761590Srgrimes typedef void (*SetPopupMenuWillBecomeInvisibleFP) (AccessBridge_PopupMenuWillBecomeInvisibleFP fp); 771590Srgrimes typedef void (*SetPopupMenuWillBecomeVisibleFP) (AccessBridge_PopupMenuWillBecomeVisibleFP fp); 781590Srgrimes 791590Srgrimes typedef void (*SetPropertyNameChangeFP) (AccessBridge_PropertyNameChangeFP fp); 801590Srgrimes typedef void (*SetPropertyDescriptionChangeFP) (AccessBridge_PropertyDescriptionChangeFP fp); 8123693Speter typedef void (*SetPropertyStateChangeFP) (AccessBridge_PropertyStateChangeFP fp); 821590Srgrimes typedef void (*SetPropertyValueChangeFP) (AccessBridge_PropertyValueChangeFP fp); 831590Srgrimes typedef void (*SetPropertySelectionChangeFP) (AccessBridge_PropertySelectionChangeFP fp); 8423693Speter typedef void (*SetPropertyTextChangeFP) (AccessBridge_PropertyTextChangeFP fp); 8523693Speter typedef void (*SetPropertyCaretChangeFP) (AccessBridge_PropertyCaretChangeFP fp); 861590Srgrimes typedef void (*SetPropertyVisibleDataChangeFP) (AccessBridge_PropertyVisibleDataChangeFP fp); 871590Srgrimes typedef void (*SetPropertyChildChangeFP) (AccessBridge_PropertyChildChangeFP fp); 881590Srgrimes typedef void (*SetPropertyActiveDescendentChangeFP) (AccessBridge_PropertyActiveDescendentChangeFP fp); 891590Srgrimes 901590Srgrimes typedef void (*SetPropertyTableModelChangeFP) (AccessBridge_PropertyTableModelChangeFP fp); 911590Srgrimes 921590Srgrimes typedef void (*ReleaseJavaObjectFP) (long vmID, Java_Object object); 931590Srgrimes 941590Srgrimes typedef BOOL (*GetVersionInfoFP) (long vmID, AccessBridgeVersionInfo *info); 951590Srgrimes 961590Srgrimes typedef BOOL (*IsJavaWindowFP) (HWND window); 971590Srgrimes typedef BOOL (*IsSameObjectFP) (long vmID, JOBJECT64 obj1, JOBJECT64 obj2); 981590Srgrimes typedef BOOL (*GetAccessibleContextFromHWNDFP) (HWND window, long *vmID, AccessibleContext *ac); 991590Srgrimes typedef HWND (*getHWNDFromAccessibleContextFP) (long vmID, AccessibleContext ac); 1001590Srgrimes 1011590Srgrimes typedef BOOL (*GetAccessibleContextAtFP) (long vmID, AccessibleContext acParent, 1021590Srgrimes jint x, jint y, AccessibleContext *ac); 1031590Srgrimes typedef BOOL (*GetAccessibleContextWithFocusFP) (HWND window, long *vmID, AccessibleContext *ac); 1041590Srgrimes typedef BOOL (*GetAccessibleContextInfoFP) (long vmID, AccessibleContext ac, AccessibleContextInfo *info); 1051590Srgrimes typedef AccessibleContext (*GetAccessibleChildFromContextFP) (long vmID, AccessibleContext ac, jint i); 1061590Srgrimes typedef AccessibleContext (*GetAccessibleParentFromContextFP) (long vmID, AccessibleContext ac); 1071590Srgrimes 1081590Srgrimes /* begin AccessibleTable */ 1099993Sache typedef BOOL (*getAccessibleTableInfoFP) (long vmID, AccessibleContext ac, AccessibleTableInfo *tableInfo); 1109993Sache typedef BOOL (*getAccessibleTableCellInfoFP) (long vmID, AccessibleTable accessibleTable, 1111590Srgrimes jint row, jint column, AccessibleTableCellInfo *tableCellInfo); 1121590Srgrimes 1131590Srgrimes typedef BOOL (*getAccessibleTableRowHeaderFP) (long vmID, AccessibleContext acParent, AccessibleTableInfo *tableInfo); 1141590Srgrimes typedef BOOL (*getAccessibleTableColumnHeaderFP) (long vmID, AccessibleContext acParent, AccessibleTableInfo *tableInfo); 1151590Srgrimes 1161590Srgrimes typedef AccessibleContext (*getAccessibleTableRowDescriptionFP) (long vmID, AccessibleContext acParent, jint row); 1171590Srgrimes typedef AccessibleContext (*getAccessibleTableColumnDescriptionFP) (long vmID, AccessibleContext acParent, jint column); 1181590Srgrimes 1192537Spst typedef jint (*getAccessibleTableRowSelectionCountFP) (long vmID, AccessibleTable table); 1201590Srgrimes typedef BOOL (*isAccessibleTableRowSelectedFP) (long vmID, AccessibleTable table, jint row); 1211590Srgrimes typedef BOOL (*getAccessibleTableRowSelectionsFP) (long vmID, AccessibleTable table, jint count, 1221590Srgrimes jint *selections); 1231590Srgrimes 1241590Srgrimes typedef jint (*getAccessibleTableColumnSelectionCountFP) (long vmID, AccessibleTable table); 1251590Srgrimes typedef BOOL (*isAccessibleTableColumnSelectedFP) (long vmID, AccessibleTable table, jint column); 1261590Srgrimes typedef BOOL (*getAccessibleTableColumnSelectionsFP) (long vmID, AccessibleTable table, jint count, 1271590Srgrimes jint *selections); 1281590Srgrimes 1291590Srgrimes typedef jint (*getAccessibleTableRowFP) (long vmID, AccessibleTable table, jint index); 1301590Srgrimes typedef jint (*getAccessibleTableColumnFP) (long vmID, AccessibleTable table, jint index); 1311590Srgrimes typedef jint (*getAccessibleTableIndexFP) (long vmID, AccessibleTable table, jint row, jint column); 1321590Srgrimes /* end AccessibleTable */ 1331590Srgrimes 1341590Srgrimes /* AccessibleRelationSet */ 1351590Srgrimes typedef BOOL (*getAccessibleRelationSetFP) (long vmID, AccessibleContext accessibleContext, 1361590Srgrimes AccessibleRelationSetInfo *relationSetInfo); 1371590Srgrimes 1381590Srgrimes /* AccessibleHypertext */ 1391590Srgrimes typedef BOOL (*getAccessibleHypertextFP)(long vmID, AccessibleContext accessibleContext, 1401590Srgrimes AccessibleHypertextInfo *hypertextInfo); 1411590Srgrimes 1421590Srgrimes typedef BOOL (*activateAccessibleHyperlinkFP)(long vmID, AccessibleContext accessibleContext, 1431590Srgrimes AccessibleHyperlink accessibleHyperlink); 1441590Srgrimes 1451590Srgrimes typedef jint (*getAccessibleHyperlinkCountFP)(const long vmID, 1461590Srgrimes const AccessibleContext accessibleContext); 1471590Srgrimes 1481590Srgrimes typedef BOOL (*getAccessibleHypertextExtFP) (const long vmID, 1491590Srgrimes const AccessibleContext accessibleContext, 1501590Srgrimes const jint nStartIndex, 1511590Srgrimes AccessibleHypertextInfo *hypertextInfo); 1521590Srgrimes 1531590Srgrimes typedef jint (*getAccessibleHypertextLinkIndexFP)(const long vmID, 1541590Srgrimes const AccessibleHypertext hypertext, 1551590Srgrimes const jint nIndex); 1561590Srgrimes 1571590Srgrimes typedef BOOL (*getAccessibleHyperlinkFP)(const long vmID, 1581590Srgrimes const AccessibleHypertext hypertext, 1592537Spst const jint nIndex, 1602537Spst AccessibleHyperlinkInfo *hyperlinkInfo); 1611590Srgrimes 1621590Srgrimes 1631590Srgrimes /* Accessible KeyBindings, Icons and Actions */ 1641590Srgrimes typedef BOOL (*getAccessibleKeyBindingsFP)(long vmID, AccessibleContext accessibleContext, 1651590Srgrimes AccessibleKeyBindings *keyBindings); 1661590Srgrimes 1671590Srgrimes typedef BOOL (*getAccessibleIconsFP)(long vmID, AccessibleContext accessibleContext, 1681590Srgrimes AccessibleIcons *icons); 1691590Srgrimes 1701590Srgrimes typedef BOOL (*getAccessibleActionsFP)(long vmID, AccessibleContext accessibleContext, 1711590Srgrimes AccessibleActions *actions); 1721590Srgrimes 1731590Srgrimes typedef BOOL (*doAccessibleActionsFP)(long vmID, AccessibleContext accessibleContext, 1741590Srgrimes AccessibleActionsToDo *actionsToDo, jint *failure); 1751590Srgrimes 1761590Srgrimes 1779993Sache /* AccessibleText */ 1781590Srgrimes 1791590Srgrimes typedef BOOL (*GetAccessibleTextInfoFP) (long vmID, AccessibleText at, AccessibleTextInfo *textInfo, jint x, jint y); 1801590Srgrimes typedef BOOL (*GetAccessibleTextItemsFP) (long vmID, AccessibleText at, AccessibleTextItemsInfo *textItems, jint index); 1811590Srgrimes typedef BOOL (*GetAccessibleTextSelectionInfoFP) (long vmID, AccessibleText at, AccessibleTextSelectionInfo *textSelection); 1821590Srgrimes typedef BOOL (*GetAccessibleTextAttributesFP) (long vmID, AccessibleText at, jint index, AccessibleTextAttributesInfo *attributes); 1831590Srgrimes typedef BOOL (*GetAccessibleTextRectFP) (long vmID, AccessibleText at, AccessibleTextRectInfo *rectInfo, jint index); 1841590Srgrimes typedef BOOL (*GetAccessibleTextLineBoundsFP) (long vmID, AccessibleText at, jint index, jint *startIndex, jint *endIndex); 1851590Srgrimes typedef BOOL (*GetAccessibleTextRangeFP) (long vmID, AccessibleText at, jint start, jint end, wchar_t *text, short len); 1861590Srgrimes 1871590Srgrimes typedef BOOL (*GetCurrentAccessibleValueFromContextFP) (long vmID, AccessibleValue av, wchar_t *value, short len); 1881590Srgrimes typedef BOOL (*GetMaximumAccessibleValueFromContextFP) (long vmID, AccessibleValue av, wchar_t *value, short len); 1891590Srgrimes typedef BOOL (*GetMinimumAccessibleValueFromContextFP) (long vmID, AccessibleValue av, wchar_t *value, short len); 1901590Srgrimes 1911590Srgrimes typedef void (*AddAccessibleSelectionFromContextFP) (long vmID, AccessibleSelection as, int i); 1921590Srgrimes typedef void (*ClearAccessibleSelectionFromContextFP) (long vmID, AccessibleSelection as); 1931590Srgrimes typedef JOBJECT64 (*GetAccessibleSelectionFromContextFP) (long vmID, AccessibleSelection as, int i); 1941590Srgrimes typedef int (*GetAccessibleSelectionCountFromContextFP) (long vmID, AccessibleSelection as); 1951590Srgrimes typedef BOOL (*IsAccessibleChildSelectedFromContextFP) (long vmID, AccessibleSelection as, int i); 1961590Srgrimes typedef void (*RemoveAccessibleSelectionFromContextFP) (long vmID, AccessibleSelection as, int i); 1971590Srgrimes typedef void (*SelectAllAccessibleSelectionFromContextFP) (long vmID, AccessibleSelection as); 1981590Srgrimes 1991590Srgrimes /* Utility methods */ 2001590Srgrimes 2011590Srgrimes typedef BOOL (*setTextContentsFP) (const long vmID, const AccessibleContext ac, const wchar_t *text); 2021590Srgrimes typedef AccessibleContext (*getParentWithRoleFP) (const long vmID, const AccessibleContext ac, const wchar_t *role); 2031590Srgrimes typedef AccessibleContext (*getParentWithRoleElseRootFP) (const long vmID, const AccessibleContext ac, const wchar_t *role); 2041590Srgrimes typedef AccessibleContext (*getTopLevelObjectFP) (const long vmID, const AccessibleContext ac); 2051590Srgrimes typedef int (*getObjectDepthFP) (const long vmID, const AccessibleContext ac); 2061590Srgrimes typedef AccessibleContext (*getActiveDescendentFP) (const long vmID, const AccessibleContext ac); 2071590Srgrimes 2081590Srgrimes 2091590Srgrimes typedef BOOL (*getVirtualAccessibleNameFP) (const long vmID, const AccessibleContext accessibleContext, 2101590Srgrimes wchar_t *name, int len); 2119993Sache 2121590Srgrimes typedef BOOL (*requestFocusFP) (const long vmID, const AccessibleContext accessibleContext); 2139987Swollman 2141590Srgrimes typedef BOOL (*selectTextRangeFP) (const long vmID, const AccessibleContext accessibleContext, 2151590Srgrimes const int startIndex, const int endIndex); 2161590Srgrimes 2171590Srgrimes typedef BOOL (*getTextAttributesInRangeFP) (const long vmID, const AccessibleContext accessibleContext, 2181590Srgrimes const int startIndex, const int endIndex, 2191590Srgrimes AccessibleTextAttributesInfo *attributes, short *len); 2201590Srgrimes 2211590Srgrimes typedef int (*getVisibleChildrenCountFP) (const long vmID, const AccessibleContext accessibleContext); 2221590Srgrimes 2231590Srgrimes typedef BOOL (*getVisibleChildrenFP) (const long vmID, const AccessibleContext accessibleContext, 2241590Srgrimes const int startIndex, VisibleChildrenInfo *children); 2251590Srgrimes 2261590Srgrimes typedef BOOL (*setCaretPositionFP) (const long vmID, const AccessibleContext accessibleContext, const int position); 2271590Srgrimes 2281590Srgrimes typedef BOOL (*getCaretLocationFP) (long vmID, AccessibleContext ac, AccessibleTextRectInfo *rectInfo, jint index); 2292537Spst 2302537Spst typedef int (*getEventsWaitingFP) (); 2312537Spst 2322537Spst typedef struct AccessBridgeFPsTag { 2339993Sache Windows_runFP Windows_run; 2342537Spst 2352537Spst SetPropertyChangeFP SetPropertyChange; 2362537Spst 2379993Sache SetJavaShutdownFP SetJavaShutdown; 2382537Spst SetFocusGainedFP SetFocusGained; 2392537Spst SetFocusLostFP SetFocusLost; 2402537Spst 2412537Spst SetCaretUpdateFP SetCaretUpdate; 2429993Sache 2432537Spst SetMouseClickedFP SetMouseClicked; 2442537Spst SetMouseEnteredFP SetMouseEntered; 2452537Spst SetMouseExitedFP SetMouseExited; 2461590Srgrimes SetMousePressedFP SetMousePressed; 2471590Srgrimes SetMouseReleasedFP SetMouseReleased; 2481590Srgrimes 2491590Srgrimes SetMenuCanceledFP SetMenuCanceled; 2501590Srgrimes SetMenuDeselectedFP SetMenuDeselected; 2511590Srgrimes SetMenuSelectedFP SetMenuSelected; 2521590Srgrimes SetPopupMenuCanceledFP SetPopupMenuCanceled; 2531590Srgrimes SetPopupMenuWillBecomeInvisibleFP SetPopupMenuWillBecomeInvisible; 2541590Srgrimes SetPopupMenuWillBecomeVisibleFP SetPopupMenuWillBecomeVisible; 2551590Srgrimes 2561590Srgrimes SetPropertyNameChangeFP SetPropertyNameChange; 2571590Srgrimes SetPropertyDescriptionChangeFP SetPropertyDescriptionChange; 2581590Srgrimes SetPropertyStateChangeFP SetPropertyStateChange; 2591590Srgrimes SetPropertyValueChangeFP SetPropertyValueChange; 2601590Srgrimes SetPropertySelectionChangeFP SetPropertySelectionChange; 2611590Srgrimes SetPropertyTextChangeFP SetPropertyTextChange; 2621590Srgrimes SetPropertyCaretChangeFP SetPropertyCaretChange; 2631590Srgrimes SetPropertyVisibleDataChangeFP SetPropertyVisibleDataChange; 2641590Srgrimes SetPropertyChildChangeFP SetPropertyChildChange; 2651590Srgrimes SetPropertyActiveDescendentChangeFP SetPropertyActiveDescendentChange; 2661590Srgrimes 2671590Srgrimes SetPropertyTableModelChangeFP SetPropertyTableModelChange; 2681590Srgrimes 2691590Srgrimes ReleaseJavaObjectFP ReleaseJavaObject; 2701590Srgrimes GetVersionInfoFP GetVersionInfo; 2711590Srgrimes 2721590Srgrimes IsJavaWindowFP IsJavaWindow; 2731590Srgrimes IsSameObjectFP IsSameObject; 2741590Srgrimes GetAccessibleContextFromHWNDFP GetAccessibleContextFromHWND; 2751590Srgrimes getHWNDFromAccessibleContextFP getHWNDFromAccessibleContext; 2761590Srgrimes 2771590Srgrimes GetAccessibleContextAtFP GetAccessibleContextAt; 2781590Srgrimes GetAccessibleContextWithFocusFP GetAccessibleContextWithFocus; 2791590Srgrimes GetAccessibleContextInfoFP GetAccessibleContextInfo; 2801590Srgrimes GetAccessibleChildFromContextFP GetAccessibleChildFromContext; 2811590Srgrimes GetAccessibleParentFromContextFP GetAccessibleParentFromContext; 2821590Srgrimes 2831590Srgrimes getAccessibleTableInfoFP getAccessibleTableInfo; 2841590Srgrimes getAccessibleTableCellInfoFP getAccessibleTableCellInfo; 2851590Srgrimes 2861590Srgrimes getAccessibleTableRowHeaderFP getAccessibleTableRowHeader; 2871590Srgrimes getAccessibleTableColumnHeaderFP getAccessibleTableColumnHeader; 2881590Srgrimes 2891590Srgrimes getAccessibleTableRowDescriptionFP getAccessibleTableRowDescription; 2901590Srgrimes getAccessibleTableColumnDescriptionFP getAccessibleTableColumnDescription; 2911590Srgrimes 2921590Srgrimes getAccessibleTableRowSelectionCountFP getAccessibleTableRowSelectionCount; 2931590Srgrimes isAccessibleTableRowSelectedFP isAccessibleTableRowSelected; 2941590Srgrimes getAccessibleTableRowSelectionsFP getAccessibleTableRowSelections; 2951590Srgrimes 2961590Srgrimes getAccessibleTableColumnSelectionCountFP getAccessibleTableColumnSelectionCount; 2971590Srgrimes isAccessibleTableColumnSelectedFP isAccessibleTableColumnSelected; 2981590Srgrimes getAccessibleTableColumnSelectionsFP getAccessibleTableColumnSelections; 2991590Srgrimes 3001590Srgrimes getAccessibleTableRowFP getAccessibleTableRow; 3011590Srgrimes getAccessibleTableColumnFP getAccessibleTableColumn; 3021590Srgrimes getAccessibleTableIndexFP getAccessibleTableIndex; 3031590Srgrimes 3041590Srgrimes getAccessibleRelationSetFP getAccessibleRelationSet; 3051590Srgrimes 3061590Srgrimes getAccessibleHypertextFP getAccessibleHypertext; 3071590Srgrimes activateAccessibleHyperlinkFP activateAccessibleHyperlink; 3081590Srgrimes getAccessibleHyperlinkCountFP getAccessibleHyperlinkCount; 3091590Srgrimes getAccessibleHypertextExtFP getAccessibleHypertextExt; 3101590Srgrimes getAccessibleHypertextLinkIndexFP getAccessibleHypertextLinkIndex; 3111590Srgrimes getAccessibleHyperlinkFP getAccessibleHyperlink; 3121590Srgrimes 3131590Srgrimes getAccessibleKeyBindingsFP getAccessibleKeyBindings; 3141590Srgrimes getAccessibleIconsFP getAccessibleIcons; 3151590Srgrimes getAccessibleActionsFP getAccessibleActions; 31623971Sache doAccessibleActionsFP doAccessibleActions; 31723971Sache 3181590Srgrimes GetAccessibleTextInfoFP GetAccessibleTextInfo; 3191590Srgrimes GetAccessibleTextItemsFP GetAccessibleTextItems; 3201590Srgrimes GetAccessibleTextSelectionInfoFP GetAccessibleTextSelectionInfo; 3211590Srgrimes GetAccessibleTextAttributesFP GetAccessibleTextAttributes; 3221590Srgrimes GetAccessibleTextRectFP GetAccessibleTextRect; 3231590Srgrimes GetAccessibleTextLineBoundsFP GetAccessibleTextLineBounds; 3241590Srgrimes GetAccessibleTextRangeFP GetAccessibleTextRange; 3251590Srgrimes 3261590Srgrimes GetCurrentAccessibleValueFromContextFP GetCurrentAccessibleValueFromContext; 3271590Srgrimes GetMaximumAccessibleValueFromContextFP GetMaximumAccessibleValueFromContext; 3281590Srgrimes GetMinimumAccessibleValueFromContextFP GetMinimumAccessibleValueFromContext; 3291590Srgrimes 33023971Sache AddAccessibleSelectionFromContextFP AddAccessibleSelectionFromContext; 33123971Sache ClearAccessibleSelectionFromContextFP ClearAccessibleSelectionFromContext; 3321590Srgrimes GetAccessibleSelectionFromContextFP GetAccessibleSelectionFromContext; 3331590Srgrimes GetAccessibleSelectionCountFromContextFP GetAccessibleSelectionCountFromContext; 3341590Srgrimes IsAccessibleChildSelectedFromContextFP IsAccessibleChildSelectedFromContext; 3351590Srgrimes RemoveAccessibleSelectionFromContextFP RemoveAccessibleSelectionFromContext; 3361590Srgrimes SelectAllAccessibleSelectionFromContextFP SelectAllAccessibleSelectionFromContext; 3371590Srgrimes 3381590Srgrimes setTextContentsFP setTextContents; 3391590Srgrimes getParentWithRoleFP getParentWithRole; 3401590Srgrimes getTopLevelObjectFP getTopLevelObject; 3411590Srgrimes getParentWithRoleElseRootFP getParentWithRoleElseRoot; 3421590Srgrimes getObjectDepthFP getObjectDepth; 3431590Srgrimes getActiveDescendentFP getActiveDescendent; 3449994Sache 3451590Srgrimes getVirtualAccessibleNameFP getVirtualAccessibleName; 3461590Srgrimes requestFocusFP requestFocus; 3471590Srgrimes selectTextRangeFP selectTextRange; 3481590Srgrimes getTextAttributesInRangeFP getTextAttributesInRange; 3491590Srgrimes getVisibleChildrenCountFP getVisibleChildrenCount; 3501590Srgrimes getVisibleChildrenFP getVisibleChildren; 3511590Srgrimes setCaretPositionFP setCaretPosition; 3521590Srgrimes getCaretLocationFP getCaretLocation; 3531590Srgrimes 3541590Srgrimes getEventsWaitingFP getEventsWaiting; 3551590Srgrimes 3561590Srgrimes } AccessBridgeFPs; 3571590Srgrimes 358 359 /** 360 * Initialize the world 361 */ 362 BOOL initializeAccessBridge(); 363 BOOL shutdownAccessBridge(); 364 365 /** 366 * Window routines 367 */ 368 BOOL IsJavaWindow(HWND window); 369 370 // Returns the virtual machine ID and AccessibleContext for a top-level window 371 BOOL GetAccessibleContextFromHWND(HWND target, long *vmID, AccessibleContext *ac); 372 373 // Returns the HWND from the AccessibleContext of a top-level window 374 HWND getHWNDFromAccessibleContext(long vmID, AccessibleContext ac); 375 376 377 /** 378 * Event handling routines 379 */ 380 void SetJavaShutdown(AccessBridge_JavaShutdownFP fp); 381 void SetFocusGained(AccessBridge_FocusGainedFP fp); 382 void SetFocusLost(AccessBridge_FocusLostFP fp); 383 384 void SetCaretUpdate(AccessBridge_CaretUpdateFP fp); 385 386 void SetMouseClicked(AccessBridge_MouseClickedFP fp); 387 void SetMouseEntered(AccessBridge_MouseEnteredFP fp); 388 void SetMouseExited(AccessBridge_MouseExitedFP fp); 389 void SetMousePressed(AccessBridge_MousePressedFP fp); 390 void SetMouseReleased(AccessBridge_MouseReleasedFP fp); 391 392 void SetMenuCanceled(AccessBridge_MenuCanceledFP fp); 393 void SetMenuDeselected(AccessBridge_MenuDeselectedFP fp); 394 void SetMenuSelected(AccessBridge_MenuSelectedFP fp); 395 void SetPopupMenuCanceled(AccessBridge_PopupMenuCanceledFP fp); 396 void SetPopupMenuWillBecomeInvisible(AccessBridge_PopupMenuWillBecomeInvisibleFP fp); 397 void SetPopupMenuWillBecomeVisible(AccessBridge_PopupMenuWillBecomeVisibleFP fp); 398 399 void SetPropertyNameChange(AccessBridge_PropertyNameChangeFP fp); 400 void SetPropertyDescriptionChange(AccessBridge_PropertyDescriptionChangeFP fp); 401 void SetPropertyStateChange(AccessBridge_PropertyStateChangeFP fp); 402 void SetPropertyValueChange(AccessBridge_PropertyValueChangeFP fp); 403 void SetPropertySelectionChange(AccessBridge_PropertySelectionChangeFP fp); 404 void SetPropertyTextChange(AccessBridge_PropertyTextChangeFP fp); 405 void SetPropertyCaretChange(AccessBridge_PropertyCaretChangeFP fp); 406 void SetPropertyVisibleDataChange(AccessBridge_PropertyVisibleDataChangeFP fp); 407 void SetPropertyChildChange(AccessBridge_PropertyChildChangeFP fp); 408 void SetPropertyActiveDescendentChange(AccessBridge_PropertyActiveDescendentChangeFP fp); 409 410 void SetPropertyTableModelChange(AccessBridge_PropertyTableModelChangeFP fp); 411 412 413 /** 414 * General routines 415 */ 416 void ReleaseJavaObject(long vmID, Java_Object object); 417 BOOL GetVersionInfo(long vmID, AccessBridgeVersionInfo *info); 418 HWND GetHWNDFromAccessibleContext(long vmID, JOBJECT64 accesibleContext); 419 420 /** 421 * Accessible Context routines 422 */ 423 BOOL GetAccessibleContextAt(long vmID, AccessibleContext acParent, 424 jint x, jint y, AccessibleContext *ac); 425 BOOL GetAccessibleContextWithFocus(HWND window, long *vmID, AccessibleContext *ac); 426 BOOL GetAccessibleContextInfo(long vmID, AccessibleContext ac, AccessibleContextInfo *info); 427 AccessibleContext GetAccessibleChildFromContext(long vmID, AccessibleContext ac, jint index); 428 AccessibleContext GetAccessibleParentFromContext(long vmID, AccessibleContext ac); 429 430 /** 431 * Accessible Text routines 432 */ 433 BOOL GetAccessibleTextInfo(long vmID, AccessibleText at, AccessibleTextInfo *textInfo, jint x, jint y); 434 BOOL GetAccessibleTextItems(long vmID, AccessibleText at, AccessibleTextItemsInfo *textItems, jint index); 435 BOOL GetAccessibleTextSelectionInfo(long vmID, AccessibleText at, AccessibleTextSelectionInfo *textSelection); 436 BOOL GetAccessibleTextAttributes(long vmID, AccessibleText at, jint index, AccessibleTextAttributesInfo *attributes); 437 BOOL GetAccessibleTextRect(long vmID, AccessibleText at, AccessibleTextRectInfo *rectInfo, jint index); 438 BOOL GetAccessibleTextLineBounds(long vmID, AccessibleText at, jint index, jint *startIndex, jint *endIndex); 439 BOOL GetAccessibleTextRange(long vmID, AccessibleText at, jint start, jint end, wchar_t *text, short len); 440 441 /* begin AccessibleTable routines */ 442 BOOL getAccessibleTableInfo(long vmID, AccessibleContext acParent, AccessibleTableInfo *tableInfo); 443 444 BOOL getAccessibleTableCellInfo(long vmID, AccessibleTable accessibleTable, jint row, jint column, 445 AccessibleTableCellInfo *tableCellInfo); 446 447 BOOL getAccessibleTableRowHeader(long vmID, AccessibleContext acParent, AccessibleTableInfo *tableInfo); 448 BOOL getAccessibleTableColumnHeader(long vmID, AccessibleContext acParent, AccessibleTableInfo *tableInfo); 449 450 AccessibleContext getAccessibleTableRowDescription(long vmID, AccessibleContext acParent, jint row); 451 AccessibleContext getAccessibleTableColumnDescription(long vmID, AccessibleContext acParent, jint column); 452 453 jint getAccessibleTableRowSelectionCount(long vmID, AccessibleTable table); 454 BOOL isAccessibleTableRowSelected(long vmID, AccessibleTable table, jint row); 455 BOOL getAccessibleTableRowSelections(long vmID, AccessibleTable table, jint count, jint *selections); 456 457 jint getAccessibleTableColumnSelectionCount(long vmID, AccessibleTable table); 458 BOOL isAccessibleTableColumnSelected(long vmID, AccessibleTable table, jint column); 459 BOOL getAccessibleTableColumnSelections(long vmID, AccessibleTable table, jint count, jint *selections); 460 461 jint getAccessibleTableRow(long vmID, AccessibleTable table, jint index); 462 jint getAccessibleTableColumn(long vmID, AccessibleTable table, jint index); 463 jint getAccessibleTableIndex(long vmID, AccessibleTable table, jint row, jint column); 464 /* end AccessibleTable */ 465 466 /* ----- AccessibleRelationSet routines */ 467 BOOL getAccessibleRelationSet(long vmID, AccessibleContext accessibleContext, 468 AccessibleRelationSetInfo *relationSetInfo); 469 470 /* ----- AccessibleHypertext routines */ 471 472 /* 473 * Returns hypertext information associated with a component. 474 */ 475 BOOL getAccessibleHypertext(long vmID, AccessibleContext accessibleContext, 476 AccessibleHypertextInfo *hypertextInfo); 477 478 /* 479 * Requests that a hyperlink be activated. 480 */ 481 BOOL activateAccessibleHyperlink(long vmID, AccessibleContext accessibleContext, 482 AccessibleHyperlink accessibleHyperlink); 483 484 /* 485 * Returns the number of hyperlinks in a component 486 * Maps to AccessibleHypertext.getLinkCount. 487 * Returns -1 on error. 488 */ 489 jint getAccessibleHyperlinkCount(const long vmID, 490 const AccessibleHypertext hypertext); 491 492 /* 493 * This method is used to iterate through the hyperlinks in a component. It 494 * returns hypertext information for a component starting at hyperlink index 495 * nStartIndex. No more than MAX_HYPERLINKS AccessibleHypertextInfo objects will 496 * be returned for each call to this method. 497 * Returns FALSE on error. 498 */ 499 BOOL getAccessibleHypertextExt(const long vmID, 500 const AccessibleContext accessibleContext, 501 const jint nStartIndex, 502 /* OUT */ AccessibleHypertextInfo *hypertextInfo); 503 504 /* 505 * Returns the index into an array of hyperlinks that is associated with 506 * a character index in document; maps to AccessibleHypertext.getLinkIndex 507 * Returns -1 on error. 508 */ 509 jint getAccessibleHypertextLinkIndex(const long vmID, 510 const AccessibleHypertext hypertext, 511 const jint nIndex); 512 513 /* 514 * Returns the nth hyperlink in a document 515 * Maps to AccessibleHypertext.getLink. 516 * Returns FALSE on error 517 */ 518 BOOL getAccessibleHyperlink(const long vmID, 519 const AccessibleHypertext hypertext, 520 const jint nIndex, 521 /* OUT */ AccessibleHyperlinkInfo *hyperlinkInfo); 522 523 /* Accessible KeyBindings, Icons and Actions */ 524 525 /* 526 * Returns a list of key bindings associated with a component. 527 */ 528 BOOL getAccessibleKeyBindings(long vmID, AccessibleContext accessibleContext, 529 AccessibleKeyBindings *keyBindings); 530 531 /* 532 * Returns a list of icons associate with a component. 533 */ 534 BOOL getAccessibleIcons(long vmID, AccessibleContext accessibleContext, 535 AccessibleIcons *icons); 536 537 /* 538 * Returns a list of actions that a component can perform. 539 */ 540 BOOL getAccessibleActions(long vmID, AccessibleContext accessibleContext, 541 AccessibleActions *actions); 542 543 /* 544 * Request that a list of AccessibleActions be performed by a component. 545 * Returns TRUE if all actions are performed. Returns FALSE 546 * when the first requested action fails in which case "failure" 547 * contains the index of the action that failed. 548 */ 549 BOOL doAccessibleActions(long vmID, AccessibleContext accessibleContext, 550 AccessibleActionsToDo *actionsToDo, jint *failure); 551 552 553 554 /* Additional utility methods */ 555 556 /* 557 * Returns whether two object references refer to the same object. 558 */ 559 BOOL IsSameObject(long vmID, JOBJECT64 obj1, JOBJECT64 obj2); 560 561 /** 562 * Sets editable text contents. The AccessibleContext must implement AccessibleEditableText and 563 * be editable. The maximum text length that can be set is MAX_STRING_SIZE - 1. 564 * Returns whether successful 565 */ 566 BOOL setTextContents (const long vmID, const AccessibleContext accessibleContext, const wchar_t *text); 567 568 /** 569 * Returns the Accessible Context with the specified role that is the 570 * ancestor of a given object. The role is one of the role strings 571 * defined in AccessBridgePackages.h 572 * If there is no ancestor object that has the specified role, 573 * returns (AccessibleContext)0. 574 */ 575 AccessibleContext getParentWithRole (const long vmID, const AccessibleContext accessibleContext, 576 const wchar_t *role); 577 578 /** 579 * Returns the Accessible Context with the specified role that is the 580 * ancestor of a given object. The role is one of the role strings 581 * defined in AccessBridgePackages.h. If an object with the specified 582 * role does not exist, returns the top level object for the Java Window. 583 * Returns (AccessibleContext)0 on error. 584 */ 585 AccessibleContext getParentWithRoleElseRoot (const long vmID, const AccessibleContext accessibleContext, 586 const wchar_t *role); 587 588 /** 589 * Returns the Accessible Context for the top level object in 590 * a Java Window. This is same Accessible Context that is obtained 591 * from GetAccessibleContextFromHWND for that window. Returns 592 * (AccessibleContext)0 on error. 593 */ 594 AccessibleContext getTopLevelObject (const long vmID, const AccessibleContext accessibleContext); 595 596 /** 597 * Returns how deep in the object hierarchy a given object is. 598 * The top most object in the object hierarchy has an object depth of 0. 599 * Returns -1 on error. 600 */ 601 int getObjectDepth (const long vmID, const AccessibleContext accessibleContext); 602 603 /** 604 * Returns the Accessible Context of the current ActiveDescendent of an object. 605 * This method assumes the ActiveDescendent is the component that is currently 606 * selected in a container object. 607 * Returns (AccessibleContext)0 on error or if there is no selection. 608 */ 609 AccessibleContext getActiveDescendent (const long vmID, const AccessibleContext accessibleContext); 610 611 /** 612 /** 613 * Accessible Value routines 614 */ 615 BOOL GetCurrentAccessibleValueFromContext(long vmID, AccessibleValue av, wchar_t *value, short len); 616 BOOL GetMaximumAccessibleValueFromContext(long vmID, AccessibleValue av, wchar_t *value, short len); 617 BOOL GetMinimumAccessibleValueFromContext(long vmID, AccessibleValue av, wchar_t *value, short len); 618 619 /** 620 * Accessible Selection routines 621 */ 622 void AddAccessibleSelectionFromContext(long vmID, AccessibleSelection as, int i); 623 void ClearAccessibleSelectionFromContext(long vmID, AccessibleSelection as); 624 JOBJECT64 GetAccessibleSelectionFromContext(long vmID, AccessibleSelection as, int i); 625 int GetAccessibleSelectionCountFromContext(long vmID, AccessibleSelection as); 626 BOOL IsAccessibleChildSelectedFromContext(long vmID, AccessibleSelection as, int i); 627 void RemoveAccessibleSelectionFromContext(long vmID, AccessibleSelection as, int i); 628 void SelectAllAccessibleSelectionFromContext(long vmID, AccessibleSelection as); 629 630 /** 631 * Additional methods for Teton 632 */ 633 634 /** 635 * Gets the AccessibleName for a component based upon the JAWS algorithm. Returns 636 * whether successful. 637 * 638 * Bug ID 4916682 - Implement JAWS AccessibleName policy 639 */ 640 BOOL getVirtualAccessibleName(const long vmID, const AccessibleContext accessibleContext, 641 wchar_t *name, int len); 642 643 /** 644 * Request focus for a component. Returns whether successful. 645 * 646 * Bug ID 4944757 - requestFocus method needed 647 */ 648 BOOL requestFocus(const long vmID, const AccessibleContext accessibleContext); 649 650 /** 651 * Selects text between two indices. Selection includes the text at the start index 652 * and the text at the end index. Returns whether successful. 653 * 654 * Bug ID 4944758 - selectTextRange method needed 655 */ 656 BOOL selectTextRange(const long vmID, const AccessibleContext accessibleContext, const int startIndex, 657 const int endIndex); 658 659 /** 660 * Get text attributes between two indices. The attribute list includes the text at the 661 * start index and the text at the end index. Returns whether successful; 662 * 663 * Bug ID 4944761 - getTextAttributes between two indices method needed 664 */ 665 BOOL getTextAttributesInRange(const long vmID, const AccessibleContext accessibleContext, 666 const int startIndex, const int endIndex, 667 AccessibleTextAttributesInfo *attributes, short *len); 668 669 /** 670 * Returns the number of visible children of a component. Returns -1 on error. 671 * 672 * Bug ID 4944762- getVisibleChildren for list-like components needed 673 */ 674 int getVisibleChildrenCount(const long vmID, const AccessibleContext accessibleContext); 675 676 /** 677 * Gets the visible children of an AccessibleContext. Returns whether successful. 678 * 679 * Bug ID 4944762- getVisibleChildren for list-like components needed 680 */ 681 BOOL getVisibleChildren(const long vmID, const AccessibleContext accessibleContext, 682 const int startIndex, 683 VisibleChildrenInfo *visibleChildrenInfo); 684 685 /** 686 * Set the caret to a text position. Returns whether successful. 687 * 688 * Bug ID 4944770 - setCaretPosition method needed 689 */ 690 BOOL setCaretPosition(const long vmID, const AccessibleContext accessibleContext, 691 const int position); 692 693 /** 694 * Gets the text caret location 695 */ 696 BOOL getCaretLocation(long vmID, AccessibleContext ac, 697 AccessibleTextRectInfo *rectInfo, jint index); 698 699 /** 700 * Gets the number of events waiting to fire 701 */ 702 int getEventsWaiting(); 703 704#ifdef __cplusplus 705} 706#endif 707