Path: blob/aarch64-shenandoah-jdk8u272-b10/jdk/src/windows/native/sun/bridge/AccessBridgeCalls.h
32287 views
/*1* Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved.2* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.3*4* This code is free software; you can redistribute it and/or modify it5* under the terms of the GNU General Public License version 2 only, as6* published by the Free Software Foundation. Oracle designates this7* particular file as subject to the "Classpath" exception as provided8* by Oracle in the LICENSE file that accompanied this code.9*10* This code is distributed in the hope that it will be useful, but WITHOUT11* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or12* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License13* version 2 for more details (a copy is included in the LICENSE file that14* accompanied this code).15*16* You should have received a copy of the GNU General Public License version17* 2 along with this work; if not, write to the Free Software Foundation,18* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.19*20* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA21* or visit www.oracle.com if you need additional information or have any22* questions.23*/2425/*26* Wrapper functions around calls to the AccessBridge DLL27*/2829#include <windows.h>30#include <jni.h>31#include "AccessBridgeCallbacks.h"32#include "AccessBridgePackages.h"3334#ifdef __cplusplus35extern "C" {36#endif3738#define null NULL3940typedef JOBJECT64 AccessibleContext;41typedef JOBJECT64 AccessibleText;42typedef JOBJECT64 AccessibleValue;43typedef JOBJECT64 AccessibleSelection;44typedef JOBJECT64 Java_Object;45typedef JOBJECT64 PropertyChangeEvent;46typedef JOBJECT64 FocusEvent;47typedef JOBJECT64 CaretEvent;48typedef JOBJECT64 MouseEvent;49typedef JOBJECT64 MenuEvent;50typedef JOBJECT64 AccessibleTable;51typedef JOBJECT64 AccessibleHyperlink;52typedef JOBJECT64 AccessibleHypertext;535455typedef void (*Windows_runFP) ();5657typedef void (*SetPropertyChangeFP) (AccessBridge_PropertyChangeFP fp);5859typedef void (*SetJavaShutdownFP) (AccessBridge_JavaShutdownFP fp);60typedef void (*SetFocusGainedFP) (AccessBridge_FocusGainedFP fp);61typedef void (*SetFocusLostFP) (AccessBridge_FocusLostFP fp);6263typedef void (*SetCaretUpdateFP) (AccessBridge_CaretUpdateFP fp);6465typedef void (*SetMouseClickedFP) (AccessBridge_MouseClickedFP fp);66typedef void (*SetMouseEnteredFP) (AccessBridge_MouseEnteredFP fp);67typedef void (*SetMouseExitedFP) (AccessBridge_MouseExitedFP fp);68typedef void (*SetMousePressedFP) (AccessBridge_MousePressedFP fp);69typedef void (*SetMouseReleasedFP) (AccessBridge_MouseReleasedFP fp);7071typedef void (*SetMenuCanceledFP) (AccessBridge_MenuCanceledFP fp);72typedef void (*SetMenuDeselectedFP) (AccessBridge_MenuDeselectedFP fp);73typedef void (*SetMenuSelectedFP) (AccessBridge_MenuSelectedFP fp);74typedef void (*SetPopupMenuCanceledFP) (AccessBridge_PopupMenuCanceledFP fp);75typedef void (*SetPopupMenuWillBecomeInvisibleFP) (AccessBridge_PopupMenuWillBecomeInvisibleFP fp);76typedef void (*SetPopupMenuWillBecomeVisibleFP) (AccessBridge_PopupMenuWillBecomeVisibleFP fp);7778typedef void (*SetPropertyNameChangeFP) (AccessBridge_PropertyNameChangeFP fp);79typedef void (*SetPropertyDescriptionChangeFP) (AccessBridge_PropertyDescriptionChangeFP fp);80typedef void (*SetPropertyStateChangeFP) (AccessBridge_PropertyStateChangeFP fp);81typedef void (*SetPropertyValueChangeFP) (AccessBridge_PropertyValueChangeFP fp);82typedef void (*SetPropertySelectionChangeFP) (AccessBridge_PropertySelectionChangeFP fp);83typedef void (*SetPropertyTextChangeFP) (AccessBridge_PropertyTextChangeFP fp);84typedef void (*SetPropertyCaretChangeFP) (AccessBridge_PropertyCaretChangeFP fp);85typedef void (*SetPropertyVisibleDataChangeFP) (AccessBridge_PropertyVisibleDataChangeFP fp);86typedef void (*SetPropertyChildChangeFP) (AccessBridge_PropertyChildChangeFP fp);87typedef void (*SetPropertyActiveDescendentChangeFP) (AccessBridge_PropertyActiveDescendentChangeFP fp);8889typedef void (*SetPropertyTableModelChangeFP) (AccessBridge_PropertyTableModelChangeFP fp);9091typedef void (*ReleaseJavaObjectFP) (long vmID, Java_Object object);9293typedef BOOL (*GetVersionInfoFP) (long vmID, AccessBridgeVersionInfo *info);9495typedef BOOL (*IsJavaWindowFP) (HWND window);96typedef BOOL (*IsSameObjectFP) (long vmID, JOBJECT64 obj1, JOBJECT64 obj2);97typedef BOOL (*GetAccessibleContextFromHWNDFP) (HWND window, long *vmID, AccessibleContext *ac);98typedef HWND (*getHWNDFromAccessibleContextFP) (long vmID, AccessibleContext ac);99100typedef BOOL (*GetAccessibleContextAtFP) (long vmID, AccessibleContext acParent,101jint x, jint y, AccessibleContext *ac);102typedef BOOL (*GetAccessibleContextWithFocusFP) (HWND window, long *vmID, AccessibleContext *ac);103typedef BOOL (*GetAccessibleContextInfoFP) (long vmID, AccessibleContext ac, AccessibleContextInfo *info);104typedef AccessibleContext (*GetAccessibleChildFromContextFP) (long vmID, AccessibleContext ac, jint i);105typedef AccessibleContext (*GetAccessibleParentFromContextFP) (long vmID, AccessibleContext ac);106107/* begin AccessibleTable */108typedef BOOL (*getAccessibleTableInfoFP) (long vmID, AccessibleContext ac, AccessibleTableInfo *tableInfo);109typedef BOOL (*getAccessibleTableCellInfoFP) (long vmID, AccessibleTable accessibleTable,110jint row, jint column, AccessibleTableCellInfo *tableCellInfo);111112typedef BOOL (*getAccessibleTableRowHeaderFP) (long vmID, AccessibleContext acParent, AccessibleTableInfo *tableInfo);113typedef BOOL (*getAccessibleTableColumnHeaderFP) (long vmID, AccessibleContext acParent, AccessibleTableInfo *tableInfo);114115typedef AccessibleContext (*getAccessibleTableRowDescriptionFP) (long vmID, AccessibleContext acParent, jint row);116typedef AccessibleContext (*getAccessibleTableColumnDescriptionFP) (long vmID, AccessibleContext acParent, jint column);117118typedef jint (*getAccessibleTableRowSelectionCountFP) (long vmID, AccessibleTable table);119typedef BOOL (*isAccessibleTableRowSelectedFP) (long vmID, AccessibleTable table, jint row);120typedef BOOL (*getAccessibleTableRowSelectionsFP) (long vmID, AccessibleTable table, jint count,121jint *selections);122123typedef jint (*getAccessibleTableColumnSelectionCountFP) (long vmID, AccessibleTable table);124typedef BOOL (*isAccessibleTableColumnSelectedFP) (long vmID, AccessibleTable table, jint column);125typedef BOOL (*getAccessibleTableColumnSelectionsFP) (long vmID, AccessibleTable table, jint count,126jint *selections);127128typedef jint (*getAccessibleTableRowFP) (long vmID, AccessibleTable table, jint index);129typedef jint (*getAccessibleTableColumnFP) (long vmID, AccessibleTable table, jint index);130typedef jint (*getAccessibleTableIndexFP) (long vmID, AccessibleTable table, jint row, jint column);131/* end AccessibleTable */132133/* AccessibleRelationSet */134typedef BOOL (*getAccessibleRelationSetFP) (long vmID, AccessibleContext accessibleContext,135AccessibleRelationSetInfo *relationSetInfo);136137/* AccessibleHypertext */138typedef BOOL (*getAccessibleHypertextFP)(long vmID, AccessibleContext accessibleContext,139AccessibleHypertextInfo *hypertextInfo);140141typedef BOOL (*activateAccessibleHyperlinkFP)(long vmID, AccessibleContext accessibleContext,142AccessibleHyperlink accessibleHyperlink);143144typedef jint (*getAccessibleHyperlinkCountFP)(const long vmID,145const AccessibleContext accessibleContext);146147typedef BOOL (*getAccessibleHypertextExtFP) (const long vmID,148const AccessibleContext accessibleContext,149const jint nStartIndex,150AccessibleHypertextInfo *hypertextInfo);151152typedef jint (*getAccessibleHypertextLinkIndexFP)(const long vmID,153const AccessibleHypertext hypertext,154const jint nIndex);155156typedef BOOL (*getAccessibleHyperlinkFP)(const long vmID,157const AccessibleHypertext hypertext,158const jint nIndex,159AccessibleHyperlinkInfo *hyperlinkInfo);160161162/* Accessible KeyBindings, Icons and Actions */163typedef BOOL (*getAccessibleKeyBindingsFP)(long vmID, AccessibleContext accessibleContext,164AccessibleKeyBindings *keyBindings);165166typedef BOOL (*getAccessibleIconsFP)(long vmID, AccessibleContext accessibleContext,167AccessibleIcons *icons);168169typedef BOOL (*getAccessibleActionsFP)(long vmID, AccessibleContext accessibleContext,170AccessibleActions *actions);171172typedef BOOL (*doAccessibleActionsFP)(long vmID, AccessibleContext accessibleContext,173AccessibleActionsToDo *actionsToDo, jint *failure);174175176/* AccessibleText */177178typedef BOOL (*GetAccessibleTextInfoFP) (long vmID, AccessibleText at, AccessibleTextInfo *textInfo, jint x, jint y);179typedef BOOL (*GetAccessibleTextItemsFP) (long vmID, AccessibleText at, AccessibleTextItemsInfo *textItems, jint index);180typedef BOOL (*GetAccessibleTextSelectionInfoFP) (long vmID, AccessibleText at, AccessibleTextSelectionInfo *textSelection);181typedef BOOL (*GetAccessibleTextAttributesFP) (long vmID, AccessibleText at, jint index, AccessibleTextAttributesInfo *attributes);182typedef BOOL (*GetAccessibleTextRectFP) (long vmID, AccessibleText at, AccessibleTextRectInfo *rectInfo, jint index);183typedef BOOL (*GetAccessibleTextLineBoundsFP) (long vmID, AccessibleText at, jint index, jint *startIndex, jint *endIndex);184typedef BOOL (*GetAccessibleTextRangeFP) (long vmID, AccessibleText at, jint start, jint end, wchar_t *text, short len);185186typedef BOOL (*GetCurrentAccessibleValueFromContextFP) (long vmID, AccessibleValue av, wchar_t *value, short len);187typedef BOOL (*GetMaximumAccessibleValueFromContextFP) (long vmID, AccessibleValue av, wchar_t *value, short len);188typedef BOOL (*GetMinimumAccessibleValueFromContextFP) (long vmID, AccessibleValue av, wchar_t *value, short len);189190typedef void (*AddAccessibleSelectionFromContextFP) (long vmID, AccessibleSelection as, int i);191typedef void (*ClearAccessibleSelectionFromContextFP) (long vmID, AccessibleSelection as);192typedef JOBJECT64 (*GetAccessibleSelectionFromContextFP) (long vmID, AccessibleSelection as, int i);193typedef int (*GetAccessibleSelectionCountFromContextFP) (long vmID, AccessibleSelection as);194typedef BOOL (*IsAccessibleChildSelectedFromContextFP) (long vmID, AccessibleSelection as, int i);195typedef void (*RemoveAccessibleSelectionFromContextFP) (long vmID, AccessibleSelection as, int i);196typedef void (*SelectAllAccessibleSelectionFromContextFP) (long vmID, AccessibleSelection as);197198/* Utility methods */199200typedef BOOL (*setTextContentsFP) (const long vmID, const AccessibleContext ac, const wchar_t *text);201typedef AccessibleContext (*getParentWithRoleFP) (const long vmID, const AccessibleContext ac, const wchar_t *role);202typedef AccessibleContext (*getParentWithRoleElseRootFP) (const long vmID, const AccessibleContext ac, const wchar_t *role);203typedef AccessibleContext (*getTopLevelObjectFP) (const long vmID, const AccessibleContext ac);204typedef int (*getObjectDepthFP) (const long vmID, const AccessibleContext ac);205typedef AccessibleContext (*getActiveDescendentFP) (const long vmID, const AccessibleContext ac);206207208typedef BOOL (*getVirtualAccessibleNameFP) (const long vmID, const AccessibleContext accessibleContext,209wchar_t *name, int len);210211typedef BOOL (*requestFocusFP) (const long vmID, const AccessibleContext accessibleContext);212213typedef BOOL (*selectTextRangeFP) (const long vmID, const AccessibleContext accessibleContext,214const int startIndex, const int endIndex);215216typedef BOOL (*getTextAttributesInRangeFP) (const long vmID, const AccessibleContext accessibleContext,217const int startIndex, const int endIndex,218AccessibleTextAttributesInfo *attributes, short *len);219220typedef int (*getVisibleChildrenCountFP) (const long vmID, const AccessibleContext accessibleContext);221222typedef BOOL (*getVisibleChildrenFP) (const long vmID, const AccessibleContext accessibleContext,223const int startIndex, VisibleChildrenInfo *children);224225typedef BOOL (*setCaretPositionFP) (const long vmID, const AccessibleContext accessibleContext, const int position);226227typedef BOOL (*getCaretLocationFP) (long vmID, AccessibleContext ac, AccessibleTextRectInfo *rectInfo, jint index);228229typedef int (*getEventsWaitingFP) ();230231typedef struct AccessBridgeFPsTag {232Windows_runFP Windows_run;233234SetPropertyChangeFP SetPropertyChange;235236SetJavaShutdownFP SetJavaShutdown;237SetFocusGainedFP SetFocusGained;238SetFocusLostFP SetFocusLost;239240SetCaretUpdateFP SetCaretUpdate;241242SetMouseClickedFP SetMouseClicked;243SetMouseEnteredFP SetMouseEntered;244SetMouseExitedFP SetMouseExited;245SetMousePressedFP SetMousePressed;246SetMouseReleasedFP SetMouseReleased;247248SetMenuCanceledFP SetMenuCanceled;249SetMenuDeselectedFP SetMenuDeselected;250SetMenuSelectedFP SetMenuSelected;251SetPopupMenuCanceledFP SetPopupMenuCanceled;252SetPopupMenuWillBecomeInvisibleFP SetPopupMenuWillBecomeInvisible;253SetPopupMenuWillBecomeVisibleFP SetPopupMenuWillBecomeVisible;254255SetPropertyNameChangeFP SetPropertyNameChange;256SetPropertyDescriptionChangeFP SetPropertyDescriptionChange;257SetPropertyStateChangeFP SetPropertyStateChange;258SetPropertyValueChangeFP SetPropertyValueChange;259SetPropertySelectionChangeFP SetPropertySelectionChange;260SetPropertyTextChangeFP SetPropertyTextChange;261SetPropertyCaretChangeFP SetPropertyCaretChange;262SetPropertyVisibleDataChangeFP SetPropertyVisibleDataChange;263SetPropertyChildChangeFP SetPropertyChildChange;264SetPropertyActiveDescendentChangeFP SetPropertyActiveDescendentChange;265266SetPropertyTableModelChangeFP SetPropertyTableModelChange;267268ReleaseJavaObjectFP ReleaseJavaObject;269GetVersionInfoFP GetVersionInfo;270271IsJavaWindowFP IsJavaWindow;272IsSameObjectFP IsSameObject;273GetAccessibleContextFromHWNDFP GetAccessibleContextFromHWND;274getHWNDFromAccessibleContextFP getHWNDFromAccessibleContext;275276GetAccessibleContextAtFP GetAccessibleContextAt;277GetAccessibleContextWithFocusFP GetAccessibleContextWithFocus;278GetAccessibleContextInfoFP GetAccessibleContextInfo;279GetAccessibleChildFromContextFP GetAccessibleChildFromContext;280GetAccessibleParentFromContextFP GetAccessibleParentFromContext;281282getAccessibleTableInfoFP getAccessibleTableInfo;283getAccessibleTableCellInfoFP getAccessibleTableCellInfo;284285getAccessibleTableRowHeaderFP getAccessibleTableRowHeader;286getAccessibleTableColumnHeaderFP getAccessibleTableColumnHeader;287288getAccessibleTableRowDescriptionFP getAccessibleTableRowDescription;289getAccessibleTableColumnDescriptionFP getAccessibleTableColumnDescription;290291getAccessibleTableRowSelectionCountFP getAccessibleTableRowSelectionCount;292isAccessibleTableRowSelectedFP isAccessibleTableRowSelected;293getAccessibleTableRowSelectionsFP getAccessibleTableRowSelections;294295getAccessibleTableColumnSelectionCountFP getAccessibleTableColumnSelectionCount;296isAccessibleTableColumnSelectedFP isAccessibleTableColumnSelected;297getAccessibleTableColumnSelectionsFP getAccessibleTableColumnSelections;298299getAccessibleTableRowFP getAccessibleTableRow;300getAccessibleTableColumnFP getAccessibleTableColumn;301getAccessibleTableIndexFP getAccessibleTableIndex;302303getAccessibleRelationSetFP getAccessibleRelationSet;304305getAccessibleHypertextFP getAccessibleHypertext;306activateAccessibleHyperlinkFP activateAccessibleHyperlink;307getAccessibleHyperlinkCountFP getAccessibleHyperlinkCount;308getAccessibleHypertextExtFP getAccessibleHypertextExt;309getAccessibleHypertextLinkIndexFP getAccessibleHypertextLinkIndex;310getAccessibleHyperlinkFP getAccessibleHyperlink;311312getAccessibleKeyBindingsFP getAccessibleKeyBindings;313getAccessibleIconsFP getAccessibleIcons;314getAccessibleActionsFP getAccessibleActions;315doAccessibleActionsFP doAccessibleActions;316317GetAccessibleTextInfoFP GetAccessibleTextInfo;318GetAccessibleTextItemsFP GetAccessibleTextItems;319GetAccessibleTextSelectionInfoFP GetAccessibleTextSelectionInfo;320GetAccessibleTextAttributesFP GetAccessibleTextAttributes;321GetAccessibleTextRectFP GetAccessibleTextRect;322GetAccessibleTextLineBoundsFP GetAccessibleTextLineBounds;323GetAccessibleTextRangeFP GetAccessibleTextRange;324325GetCurrentAccessibleValueFromContextFP GetCurrentAccessibleValueFromContext;326GetMaximumAccessibleValueFromContextFP GetMaximumAccessibleValueFromContext;327GetMinimumAccessibleValueFromContextFP GetMinimumAccessibleValueFromContext;328329AddAccessibleSelectionFromContextFP AddAccessibleSelectionFromContext;330ClearAccessibleSelectionFromContextFP ClearAccessibleSelectionFromContext;331GetAccessibleSelectionFromContextFP GetAccessibleSelectionFromContext;332GetAccessibleSelectionCountFromContextFP GetAccessibleSelectionCountFromContext;333IsAccessibleChildSelectedFromContextFP IsAccessibleChildSelectedFromContext;334RemoveAccessibleSelectionFromContextFP RemoveAccessibleSelectionFromContext;335SelectAllAccessibleSelectionFromContextFP SelectAllAccessibleSelectionFromContext;336337setTextContentsFP setTextContents;338getParentWithRoleFP getParentWithRole;339getTopLevelObjectFP getTopLevelObject;340getParentWithRoleElseRootFP getParentWithRoleElseRoot;341getObjectDepthFP getObjectDepth;342getActiveDescendentFP getActiveDescendent;343344getVirtualAccessibleNameFP getVirtualAccessibleName;345requestFocusFP requestFocus;346selectTextRangeFP selectTextRange;347getTextAttributesInRangeFP getTextAttributesInRange;348getVisibleChildrenCountFP getVisibleChildrenCount;349getVisibleChildrenFP getVisibleChildren;350setCaretPositionFP setCaretPosition;351getCaretLocationFP getCaretLocation;352353getEventsWaitingFP getEventsWaiting;354355} AccessBridgeFPs;356357358/**359* Initialize the world360*/361BOOL initializeAccessBridge();362BOOL shutdownAccessBridge();363364/**365* Window routines366*/367BOOL IsJavaWindow(HWND window);368369// Returns the virtual machine ID and AccessibleContext for a top-level window370BOOL GetAccessibleContextFromHWND(HWND target, long *vmID, AccessibleContext *ac);371372// Returns the HWND from the AccessibleContext of a top-level window373HWND getHWNDFromAccessibleContext(long vmID, AccessibleContext ac);374375376/**377* Event handling routines378*/379void SetJavaShutdown(AccessBridge_JavaShutdownFP fp);380void SetFocusGained(AccessBridge_FocusGainedFP fp);381void SetFocusLost(AccessBridge_FocusLostFP fp);382383void SetCaretUpdate(AccessBridge_CaretUpdateFP fp);384385void SetMouseClicked(AccessBridge_MouseClickedFP fp);386void SetMouseEntered(AccessBridge_MouseEnteredFP fp);387void SetMouseExited(AccessBridge_MouseExitedFP fp);388void SetMousePressed(AccessBridge_MousePressedFP fp);389void SetMouseReleased(AccessBridge_MouseReleasedFP fp);390391void SetMenuCanceled(AccessBridge_MenuCanceledFP fp);392void SetMenuDeselected(AccessBridge_MenuDeselectedFP fp);393void SetMenuSelected(AccessBridge_MenuSelectedFP fp);394void SetPopupMenuCanceled(AccessBridge_PopupMenuCanceledFP fp);395void SetPopupMenuWillBecomeInvisible(AccessBridge_PopupMenuWillBecomeInvisibleFP fp);396void SetPopupMenuWillBecomeVisible(AccessBridge_PopupMenuWillBecomeVisibleFP fp);397398void SetPropertyNameChange(AccessBridge_PropertyNameChangeFP fp);399void SetPropertyDescriptionChange(AccessBridge_PropertyDescriptionChangeFP fp);400void SetPropertyStateChange(AccessBridge_PropertyStateChangeFP fp);401void SetPropertyValueChange(AccessBridge_PropertyValueChangeFP fp);402void SetPropertySelectionChange(AccessBridge_PropertySelectionChangeFP fp);403void SetPropertyTextChange(AccessBridge_PropertyTextChangeFP fp);404void SetPropertyCaretChange(AccessBridge_PropertyCaretChangeFP fp);405void SetPropertyVisibleDataChange(AccessBridge_PropertyVisibleDataChangeFP fp);406void SetPropertyChildChange(AccessBridge_PropertyChildChangeFP fp);407void SetPropertyActiveDescendentChange(AccessBridge_PropertyActiveDescendentChangeFP fp);408409void SetPropertyTableModelChange(AccessBridge_PropertyTableModelChangeFP fp);410411412/**413* General routines414*/415void ReleaseJavaObject(long vmID, Java_Object object);416BOOL GetVersionInfo(long vmID, AccessBridgeVersionInfo *info);417HWND GetHWNDFromAccessibleContext(long vmID, JOBJECT64 accesibleContext);418419/**420* Accessible Context routines421*/422BOOL GetAccessibleContextAt(long vmID, AccessibleContext acParent,423jint x, jint y, AccessibleContext *ac);424BOOL GetAccessibleContextWithFocus(HWND window, long *vmID, AccessibleContext *ac);425BOOL GetAccessibleContextInfo(long vmID, AccessibleContext ac, AccessibleContextInfo *info);426AccessibleContext GetAccessibleChildFromContext(long vmID, AccessibleContext ac, jint index);427AccessibleContext GetAccessibleParentFromContext(long vmID, AccessibleContext ac);428429/**430* Accessible Text routines431*/432BOOL GetAccessibleTextInfo(long vmID, AccessibleText at, AccessibleTextInfo *textInfo, jint x, jint y);433BOOL GetAccessibleTextItems(long vmID, AccessibleText at, AccessibleTextItemsInfo *textItems, jint index);434BOOL GetAccessibleTextSelectionInfo(long vmID, AccessibleText at, AccessibleTextSelectionInfo *textSelection);435BOOL GetAccessibleTextAttributes(long vmID, AccessibleText at, jint index, AccessibleTextAttributesInfo *attributes);436BOOL GetAccessibleTextRect(long vmID, AccessibleText at, AccessibleTextRectInfo *rectInfo, jint index);437BOOL GetAccessibleTextLineBounds(long vmID, AccessibleText at, jint index, jint *startIndex, jint *endIndex);438BOOL GetAccessibleTextRange(long vmID, AccessibleText at, jint start, jint end, wchar_t *text, short len);439440/* begin AccessibleTable routines */441BOOL getAccessibleTableInfo(long vmID, AccessibleContext acParent, AccessibleTableInfo *tableInfo);442443BOOL getAccessibleTableCellInfo(long vmID, AccessibleTable accessibleTable, jint row, jint column,444AccessibleTableCellInfo *tableCellInfo);445446BOOL getAccessibleTableRowHeader(long vmID, AccessibleContext acParent, AccessibleTableInfo *tableInfo);447BOOL getAccessibleTableColumnHeader(long vmID, AccessibleContext acParent, AccessibleTableInfo *tableInfo);448449AccessibleContext getAccessibleTableRowDescription(long vmID, AccessibleContext acParent, jint row);450AccessibleContext getAccessibleTableColumnDescription(long vmID, AccessibleContext acParent, jint column);451452jint getAccessibleTableRowSelectionCount(long vmID, AccessibleTable table);453BOOL isAccessibleTableRowSelected(long vmID, AccessibleTable table, jint row);454BOOL getAccessibleTableRowSelections(long vmID, AccessibleTable table, jint count, jint *selections);455456jint getAccessibleTableColumnSelectionCount(long vmID, AccessibleTable table);457BOOL isAccessibleTableColumnSelected(long vmID, AccessibleTable table, jint column);458BOOL getAccessibleTableColumnSelections(long vmID, AccessibleTable table, jint count, jint *selections);459460jint getAccessibleTableRow(long vmID, AccessibleTable table, jint index);461jint getAccessibleTableColumn(long vmID, AccessibleTable table, jint index);462jint getAccessibleTableIndex(long vmID, AccessibleTable table, jint row, jint column);463/* end AccessibleTable */464465/* ----- AccessibleRelationSet routines */466BOOL getAccessibleRelationSet(long vmID, AccessibleContext accessibleContext,467AccessibleRelationSetInfo *relationSetInfo);468469/* ----- AccessibleHypertext routines */470471/*472* Returns hypertext information associated with a component.473*/474BOOL getAccessibleHypertext(long vmID, AccessibleContext accessibleContext,475AccessibleHypertextInfo *hypertextInfo);476477/*478* Requests that a hyperlink be activated.479*/480BOOL activateAccessibleHyperlink(long vmID, AccessibleContext accessibleContext,481AccessibleHyperlink accessibleHyperlink);482483/*484* Returns the number of hyperlinks in a component485* Maps to AccessibleHypertext.getLinkCount.486* Returns -1 on error.487*/488jint getAccessibleHyperlinkCount(const long vmID,489const AccessibleHypertext hypertext);490491/*492* This method is used to iterate through the hyperlinks in a component. It493* returns hypertext information for a component starting at hyperlink index494* nStartIndex. No more than MAX_HYPERLINKS AccessibleHypertextInfo objects will495* be returned for each call to this method.496* Returns FALSE on error.497*/498BOOL getAccessibleHypertextExt(const long vmID,499const AccessibleContext accessibleContext,500const jint nStartIndex,501/* OUT */ AccessibleHypertextInfo *hypertextInfo);502503/*504* Returns the index into an array of hyperlinks that is associated with505* a character index in document; maps to AccessibleHypertext.getLinkIndex506* Returns -1 on error.507*/508jint getAccessibleHypertextLinkIndex(const long vmID,509const AccessibleHypertext hypertext,510const jint nIndex);511512/*513* Returns the nth hyperlink in a document514* Maps to AccessibleHypertext.getLink.515* Returns FALSE on error516*/517BOOL getAccessibleHyperlink(const long vmID,518const AccessibleHypertext hypertext,519const jint nIndex,520/* OUT */ AccessibleHyperlinkInfo *hyperlinkInfo);521522/* Accessible KeyBindings, Icons and Actions */523524/*525* Returns a list of key bindings associated with a component.526*/527BOOL getAccessibleKeyBindings(long vmID, AccessibleContext accessibleContext,528AccessibleKeyBindings *keyBindings);529530/*531* Returns a list of icons associate with a component.532*/533BOOL getAccessibleIcons(long vmID, AccessibleContext accessibleContext,534AccessibleIcons *icons);535536/*537* Returns a list of actions that a component can perform.538*/539BOOL getAccessibleActions(long vmID, AccessibleContext accessibleContext,540AccessibleActions *actions);541542/*543* Request that a list of AccessibleActions be performed by a component.544* Returns TRUE if all actions are performed. Returns FALSE545* when the first requested action fails in which case "failure"546* contains the index of the action that failed.547*/548BOOL doAccessibleActions(long vmID, AccessibleContext accessibleContext,549AccessibleActionsToDo *actionsToDo, jint *failure);550551552553/* Additional utility methods */554555/*556* Returns whether two object references refer to the same object.557*/558BOOL IsSameObject(long vmID, JOBJECT64 obj1, JOBJECT64 obj2);559560/**561* Sets editable text contents. The AccessibleContext must implement AccessibleEditableText and562* be editable. The maximum text length that can be set is MAX_STRING_SIZE - 1.563* Returns whether successful564*/565BOOL setTextContents (const long vmID, const AccessibleContext accessibleContext, const wchar_t *text);566567/**568* Returns the Accessible Context with the specified role that is the569* ancestor of a given object. The role is one of the role strings570* defined in AccessBridgePackages.h571* If there is no ancestor object that has the specified role,572* returns (AccessibleContext)0.573*/574AccessibleContext getParentWithRole (const long vmID, const AccessibleContext accessibleContext,575const wchar_t *role);576577/**578* Returns the Accessible Context with the specified role that is the579* ancestor of a given object. The role is one of the role strings580* defined in AccessBridgePackages.h. If an object with the specified581* role does not exist, returns the top level object for the Java Window.582* Returns (AccessibleContext)0 on error.583*/584AccessibleContext getParentWithRoleElseRoot (const long vmID, const AccessibleContext accessibleContext,585const wchar_t *role);586587/**588* Returns the Accessible Context for the top level object in589* a Java Window. This is same Accessible Context that is obtained590* from GetAccessibleContextFromHWND for that window. Returns591* (AccessibleContext)0 on error.592*/593AccessibleContext getTopLevelObject (const long vmID, const AccessibleContext accessibleContext);594595/**596* Returns how deep in the object hierarchy a given object is.597* The top most object in the object hierarchy has an object depth of 0.598* Returns -1 on error.599*/600int getObjectDepth (const long vmID, const AccessibleContext accessibleContext);601602/**603* Returns the Accessible Context of the current ActiveDescendent of an object.604* This method assumes the ActiveDescendent is the component that is currently605* selected in a container object.606* Returns (AccessibleContext)0 on error or if there is no selection.607*/608AccessibleContext getActiveDescendent (const long vmID, const AccessibleContext accessibleContext);609610/**611/**612* Accessible Value routines613*/614BOOL GetCurrentAccessibleValueFromContext(long vmID, AccessibleValue av, wchar_t *value, short len);615BOOL GetMaximumAccessibleValueFromContext(long vmID, AccessibleValue av, wchar_t *value, short len);616BOOL GetMinimumAccessibleValueFromContext(long vmID, AccessibleValue av, wchar_t *value, short len);617618/**619* Accessible Selection routines620*/621void AddAccessibleSelectionFromContext(long vmID, AccessibleSelection as, int i);622void ClearAccessibleSelectionFromContext(long vmID, AccessibleSelection as);623JOBJECT64 GetAccessibleSelectionFromContext(long vmID, AccessibleSelection as, int i);624int GetAccessibleSelectionCountFromContext(long vmID, AccessibleSelection as);625BOOL IsAccessibleChildSelectedFromContext(long vmID, AccessibleSelection as, int i);626void RemoveAccessibleSelectionFromContext(long vmID, AccessibleSelection as, int i);627void SelectAllAccessibleSelectionFromContext(long vmID, AccessibleSelection as);628629/**630* Additional methods for Teton631*/632633/**634* Gets the AccessibleName for a component based upon the JAWS algorithm. Returns635* whether successful.636*637* Bug ID 4916682 - Implement JAWS AccessibleName policy638*/639BOOL getVirtualAccessibleName(const long vmID, const AccessibleContext accessibleContext,640wchar_t *name, int len);641642/**643* Request focus for a component. Returns whether successful.644*645* Bug ID 4944757 - requestFocus method needed646*/647BOOL requestFocus(const long vmID, const AccessibleContext accessibleContext);648649/**650* Selects text between two indices. Selection includes the text at the start index651* and the text at the end index. Returns whether successful.652*653* Bug ID 4944758 - selectTextRange method needed654*/655BOOL selectTextRange(const long vmID, const AccessibleContext accessibleContext, const int startIndex,656const int endIndex);657658/**659* Get text attributes between two indices. The attribute list includes the text at the660* start index and the text at the end index. Returns whether successful;661*662* Bug ID 4944761 - getTextAttributes between two indices method needed663*/664BOOL getTextAttributesInRange(const long vmID, const AccessibleContext accessibleContext,665const int startIndex, const int endIndex,666AccessibleTextAttributesInfo *attributes, short *len);667668/**669* Returns the number of visible children of a component. Returns -1 on error.670*671* Bug ID 4944762- getVisibleChildren for list-like components needed672*/673int getVisibleChildrenCount(const long vmID, const AccessibleContext accessibleContext);674675/**676* Gets the visible children of an AccessibleContext. Returns whether successful.677*678* Bug ID 4944762- getVisibleChildren for list-like components needed679*/680BOOL getVisibleChildren(const long vmID, const AccessibleContext accessibleContext,681const int startIndex,682VisibleChildrenInfo *visibleChildrenInfo);683684/**685* Set the caret to a text position. Returns whether successful.686*687* Bug ID 4944770 - setCaretPosition method needed688*/689BOOL setCaretPosition(const long vmID, const AccessibleContext accessibleContext,690const int position);691692/**693* Gets the text caret location694*/695BOOL getCaretLocation(long vmID, AccessibleContext ac,696AccessibleTextRectInfo *rectInfo, jint index);697698/**699* Gets the number of events waiting to fire700*/701int getEventsWaiting();702703#ifdef __cplusplus704}705#endif706707708