/* * Copyright (c) 2005, 2014, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License version 2 only, as * published by the Free Software Foundation. Oracle designates this * particular file as subject to the "Classpath" exception as provided * by Oracle in the LICENSE file that accompanied this code. * * This code is distributed in the hope that it will be useful, but WITHOUT * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License * version 2 for more details (a copy is included in the LICENSE file that * accompanied this code). * * You should have received a copy of the GNU General Public License version * 2 along with this work; if not, write to the Free Software Foundation, * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. * * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA * or visit www.oracle.com if you need additional information or have any * questions. */ /* * Header file for packages of paramaters passed between Java Accessibility * and native Assistive Technologies */ #ifndef __AccessBridgePackages_H__ #define __AccessBridgePackages_H__ #include #include #ifdef __cplusplus extern "C" { #endif #ifdef ACCESSBRIDGE_ARCH_LEGACY typedef jobject JOBJECT64; typedef HWND ABHWND64; #define ABHandleToLong #define ABLongToHandle #else typedef jlong JOBJECT64; typedef long ABHWND64; #define ABHandleToLong HandleToLong #define ABLongToHandle LongToHandle #endif #define MAX_BUFFER_SIZE 10240 #define MAX_STRING_SIZE 1024 #define SHORT_STRING_SIZE 256 // object types typedef JOBJECT64 AccessibleContext; typedef JOBJECT64 AccessibleText; typedef JOBJECT64 AccessibleValue; typedef JOBJECT64 AccessibleSelection; typedef JOBJECT64 Java_Object; typedef JOBJECT64 PropertyChangeEvent; typedef JOBJECT64 FocusEvent; typedef JOBJECT64 CaretEvent; typedef JOBJECT64 MouseEvent; typedef JOBJECT64 MenuEvent; typedef JOBJECT64 AccessibleTable; typedef JOBJECT64 AccessibleHyperlink; typedef JOBJECT64 AccessibleHypertext; /** ****************************************************** * Java event types ****************************************************** */ #define cPropertyChangeEvent (jlong) 1 // 1 #define cFocusGainedEvent (jlong) 2 // 2 #define cFocusLostEvent (jlong) 4 // 4 #define cCaretUpdateEvent (jlong) 8 // 8 #define cMouseClickedEvent (jlong) 16 // 10 #define cMouseEnteredEvent (jlong) 32 // 20 #define cMouseExitedEvent (jlong) 64 // 40 #define cMousePressedEvent (jlong) 128 // 80 #define cMouseReleasedEvent (jlong) 256 // 100 #define cMenuCanceledEvent (jlong) 512 // 200 #define cMenuDeselectedEvent (jlong) 1024 // 400 #define cMenuSelectedEvent (jlong) 2048 // 800 #define cPopupMenuCanceledEvent (jlong) 4096 // 1000 #define cPopupMenuWillBecomeInvisibleEvent (jlong) 8192 // 2000 #define cPopupMenuWillBecomeVisibleEvent (jlong) 16384 // 4000 #define cJavaShutdownEvent (jlong) 32768 // 8000 /** ****************************************************** * Accessible Roles * Defines all AccessibleRoles in Local.US ****************************************************** */ /** * Object is used to alert the user about something. */ #define ACCESSIBLE_ALERT L"alert" /** * The header for a column of data. */ #define ACCESSIBLE_COLUMN_HEADER L"column header" /** * Object that can be drawn into and is used to trap * events. * see ACCESSIBLE_FRAME * see ACCESSIBLE_GLASS_PANE * see ACCESSIBLE_LAYERED_PANE */ #define ACCESSIBLE_CANVAS L"canvas" /** * A list of choices the user can select from. Also optionally * allows the user to enter a choice of their own. */ #define ACCESSIBLE_COMBO_BOX L"combo box" /** * An iconified internal frame in a DESKTOP_PANE. * see ACCESSIBLE_DESKTOP_PANE * see ACCESSIBLE_INTERNAL_FRAME */ #define ACCESSIBLE_DESKTOP_ICON L"desktop icon" /** * A frame-like object that is clipped by a desktop pane. The * desktop pane, internal frame, and desktop icon objects are * often used to create multiple document interfaces within an * application. * see ACCESSIBLE_DESKTOP_ICON * see ACCESSIBLE_DESKTOP_PANE * see ACCESSIBLE_FRAME */ #define ACCESSIBLE_INTERNAL_FRAME L"internal frame" /** * A pane that supports internal frames and * iconified versions of those internal frames. * see ACCESSIBLE_DESKTOP_ICON * see ACCESSIBLE_INTERNAL_FRAME */ #define ACCESSIBLE_DESKTOP_PANE L"desktop pane" /** * A specialized pane whose primary use is inside a DIALOG * see ACCESSIBLE_DIALOG */ #define ACCESSIBLE_OPTION_PANE L"option pane" /** * A top level window with no title or border. * see ACCESSIBLE_FRAME * see ACCESSIBLE_DIALOG */ #define ACCESSIBLE_WINDOW L"window" /** * A top level window with a title bar, border, menu bar, etc. It is * often used as the primary window for an application. * see ACCESSIBLE_DIALOG * see ACCESSIBLE_CANVAS * see ACCESSIBLE_WINDOW */ #define ACCESSIBLE_FRAME L"frame" /** * A top level window with title bar and a border. A dialog is similar * to a frame, but it has fewer properties and is often used as a * secondary window for an application. * see ACCESSIBLE_FRAME * see ACCESSIBLE_WINDOW */ #define ACCESSIBLE_DIALOG L"dialog" /** * A specialized dialog that lets the user choose a color. */ #define ACCESSIBLE_COLOR_CHOOSER L"color chooser" /** * A pane that allows the user to navigate through * and select the contents of a directory. May be used * by a file chooser. * see ACCESSIBLE_FILE_CHOOSER */ #define ACCESSIBLE_DIRECTORY_PANE L"directory pane" /** * A specialized dialog that displays the files in the directory * and lets the user select a file, browse a different directory, * or specify a filename. May use the directory pane to show the * contents of a directory. * see ACCESSIBLE_DIRECTORY_PANE */ #define ACCESSIBLE_FILE_CHOOSER L"file chooser" /** * An object that fills up space in a user interface. It is often * used in interfaces to tweak the spacing between components, * but serves no other purpose. */ #define ACCESSIBLE_FILLER L"filler" /** * A hypertext anchor */ #define ACCESSIBLE_HYPERLINK L"hyperlink" /** * A small fixed size picture, typically used to decorate components. */ #define ACCESSIBLE_ICON L"icon" /** * An object used to present an icon or short string in an interface. */ #define ACCESSIBLE_LABEL L"label" /** * A specialized pane that has a glass pane and a layered pane as its * children. * see ACCESSIBLE_GLASS_PANE * see ACCESSIBLE_LAYERED_PANE */ #define ACCESSIBLE_ROOT_PANE L"root pane" /** * A pane that is guaranteed to be painted on top * of all panes beneath it. * see ACCESSIBLE_ROOT_PANE * see ACCESSIBLE_CANVAS */ #define ACCESSIBLE_GLASS_PANE L"glass pane" /** * A specialized pane that allows its children to be drawn in layers, * providing a form of stacking order. This is usually the pane that * holds the menu bar as well as the pane that contains most of the * visual components in a window. * see ACCESSIBLE_GLASS_PANE * see ACCESSIBLE_ROOT_PANE */ #define ACCESSIBLE_LAYERED_PANE L"layered pane" /** * An object that presents a list of objects to the user and allows the * user to select one or more of them. A list is usually contained * within a scroll pane. * see ACCESSIBLE_SCROLL_PANE * see ACCESSIBLE_LIST_ITEM */ #define ACCESSIBLE_LIST L"list" /** * An object that presents an element in a list. A list is usually * contained within a scroll pane. * see ACCESSIBLE_SCROLL_PANE * see ACCESSIBLE_LIST */ #define ACCESSIBLE_LIST_ITEM L"list item" /** * An object usually drawn at the top of the primary dialog box of * an application that contains a list of menus the user can choose * from. For example, a menu bar might contain menus for "File," * "Edit," and "Help." * see ACCESSIBLE_MENU * see ACCESSIBLE_POPUP_MENU * see ACCESSIBLE_LAYERED_PANE */ #define ACCESSIBLE_MENU_BAR L"menu bar" /** * A temporary window that is usually used to offer the user a * list of choices, and then hides when the user selects one of * those choices. * see ACCESSIBLE_MENU * see ACCESSIBLE_MENU_ITEM */ #define ACCESSIBLE_POPUP_MENU L"popup menu" /** * An object usually found inside a menu bar that contains a list * of actions the user can choose from. A menu can have any object * as its children, but most often they are menu items, other menus, * or rudimentary objects such as radio buttons, check boxes, or * separators. For example, an application may have an "Edit" menu * that contains menu items for "Cut" and "Paste." * see ACCESSIBLE_MENU_BAR * see ACCESSIBLE_MENU_ITEM * see ACCESSIBLE_SEPARATOR * see ACCESSIBLE_RADIO_BUTTON * see ACCESSIBLE_CHECK_BOX * see ACCESSIBLE_POPUP_MENU */ #define ACCESSIBLE_MENU L"menu" /** * An object usually contained in a menu that presents an action * the user can choose. For example, the "Cut" menu item in an * "Edit" menu would be an action the user can select to cut the * selected area of text in a document. * see ACCESSIBLE_MENU_BAR * see ACCESSIBLE_SEPARATOR * see ACCESSIBLE_POPUP_MENU */ #define ACCESSIBLE_MENU_ITEM L"menu item" /** * An object usually contained in a menu to provide a visual * and logical separation of the contents in a menu. For example, * the "File" menu of an application might contain menu items for * "Open," "Close," and "Exit," and will place a separator between * "Close" and "Exit" menu items. * see ACCESSIBLE_MENU * see ACCESSIBLE_MENU_ITEM */ #define ACCESSIBLE_SEPARATOR L"separator" /** * An object that presents a series of panels (or page tabs), one at a * time, through some mechanism provided by the object. The most common * mechanism is a list of tabs at the top of the panel. The children of * a page tab list are all page tabs. * see ACCESSIBLE_PAGE_TAB */ #define ACCESSIBLE_PAGE_TAB_LIST L"page tab list" /** * An object that is a child of a page tab list. Its sole child is * the panel that is to be presented to the user when the user * selects the page tab from the list of tabs in the page tab list. * see ACCESSIBLE_PAGE_TAB_LIST */ #define ACCESSIBLE_PAGE_TAB L"page tab" /** * A generic container that is often used to group objects. */ #define ACCESSIBLE_PANEL L"panel" /** * An object used to indicate how much of a task has been completed. */ #define ACCESSIBLE_PROGRESS_BAR L"progress bar" /** * A text object used for passwords, or other places where the * text contents is not shown visibly to the user */ #define ACCESSIBLE_PASSWORD_TEXT L"password text" /** * An object the user can manipulate to tell the application to do * something. * see ACCESSIBLE_CHECK_BOX * see ACCESSIBLE_TOGGLE_BUTTON * see ACCESSIBLE_RADIO_BUTTON */ #define ACCESSIBLE_PUSH_BUTTON L"push button" /** * A specialized push button that can be checked or unchecked, but * does not provide a separate indicator for the current state. * see ACCESSIBLE_PUSH_BUTTON * see ACCESSIBLE_CHECK_BOX * see ACCESSIBLE_RADIO_BUTTON */ #define ACCESSIBLE_TOGGLE_BUTTON L"toggle button" /** * A choice that can be checked or unchecked and provides a * separate indicator for the current state. * see ACCESSIBLE_PUSH_BUTTON * see ACCESSIBLE_TOGGLE_BUTTON * see ACCESSIBLE_RADIO_BUTTON */ #define ACCESSIBLE_CHECK_BOX L"check box" /** * A specialized check box that will cause other radio buttons in the * same group to become unchecked when this one is checked. * see ACCESSIBLE_PUSH_BUTTON * see ACCESSIBLE_TOGGLE_BUTTON * see ACCESSIBLE_CHECK_BOX */ #define ACCESSIBLE_RADIO_BUTTON L"radio button" /** * The header for a row of data. */ #define ACCESSIBLE_ROW_HEADER L"row header" /** * An object that allows a user to incrementally view a large amount * of information. Its children can include scroll bars and a viewport. * see ACCESSIBLE_SCROLL_BAR * see ACCESSIBLE_VIEWPORT */ #define ACCESSIBLE_SCROLL_PANE L"scroll pane" /** * An object usually used to allow a user to incrementally view a * large amount of data. Usually used only by a scroll pane. * see ACCESSIBLE_SCROLL_PANE */ #define ACCESSIBLE_SCROLL_BAR L"scroll bar" /** * An object usually used in a scroll pane. It represents the portion * of the entire data that the user can see. As the user manipulates * the scroll bars, the contents of the viewport can change. * see ACCESSIBLE_SCROLL_PANE */ #define ACCESSIBLE_VIEWPORT L"viewport" /** * An object that allows the user to select from a bounded range. For * example, a slider might be used to select a number between 0 and 100. */ #define ACCESSIBLE_SLIDER L"slider" /** * A specialized panel that presents two other panels at the same time. * Between the two panels is a divider the user can manipulate to make * one panel larger and the other panel smaller. */ #define ACCESSIBLE_SPLIT_PANE L"split pane" /** * An object used to present information in terms of rows and columns. * An example might include a spreadsheet application. */ #define ACCESSIBLE_TABLE L"table" /** * An object that presents text to the user. The text is usually * editable by the user as opposed to a label. * see ACCESSIBLE_LABEL */ #define ACCESSIBLE_TEXT L"text" /** * An object used to present hierarchical information to the user. * The individual nodes in the tree can be collapsed and expanded * to provide selective disclosure of the tree's contents. */ #define ACCESSIBLE_TREE L"tree" /** * A bar or palette usually composed of push buttons or toggle buttons. * It is often used to provide the most frequently used functions for an * application. */ #define ACCESSIBLE_TOOL_BAR L"tool bar" /** * An object that provides information about another object. The * accessibleDescription property of the tool tip is often displayed * to the user in a small L"help bubble" when the user causes the * mouse to hover over the object associated with the tool tip. */ #define ACCESSIBLE_TOOL_TIP L"tool tip" /** * An AWT component, but nothing else is known about it. * see ACCESSIBLE_SWING_COMPONENT * see ACCESSIBLE_UNKNOWN */ #define ACCESSIBLE_AWT_COMPONENT L"awt component" /** * A Swing component, but nothing else is known about it. * see ACCESSIBLE_AWT_COMPONENT * see ACCESSIBLE_UNKNOWN */ #define ACCESSIBLE_SWING_COMPONENT L"swing component" /** * The object contains some Accessible information, but its role is * not known. * see ACCESSIBLE_AWT_COMPONENT * see ACCESSIBLE_SWING_COMPONENT */ #define ACCESSIBLE_UNKNOWN L"unknown" /** * A STATUS_BAR is an simple component that can contain * multiple labels of status information to the user. */ #define ACCESSIBLE_STATUS_BAR L"status bar" /** * A DATE_EDITOR is a component that allows users to edit * java.util.Date and java.util.Time objects */ #define ACCESSIBLE_DATE_EDITOR L"date editor" /** * A SPIN_BOX is a simple spinner component and its main use * is for simple numbers. */ #define ACCESSIBLE_SPIN_BOX L"spin box" /** * A FONT_CHOOSER is a component that lets the user pick various * attributes for fonts. */ #define ACCESSIBLE_FONT_CHOOSER L"font chooser" /** * A GROUP_BOX is a simple container that contains a border * around it and contains components inside it. */ #define ACCESSIBLE_GROUP_BOX L"group box" /** * A text header */ #define ACCESSIBLE_HEADER L"header" /** * A text footer */ #define ACCESSIBLE_FOOTER L"footer" /** * A text paragraph */ #define ACCESSIBLE_PARAGRAPH L"paragraph" /** * A ruler is an object used to measure distance */ #define ACCESSIBLE_RULER L"ruler" /** * A role indicating the object acts as a formula for * calculating a value. An example is a formula in * a spreadsheet cell. */ #define ACCESSIBLE_EDITBAR L"editbar" /** * A role indicating the object monitors the progress * of some operation. */ #define PROGRESS_MONITOR L"progress monitor" /** ****************************************************** * Accessibility event types ****************************************************** */ #define cPropertyNameChangeEvent (jlong) 1 // 1 #define cPropertyDescriptionChangeEvent (jlong) 2 // 2 #define cPropertyStateChangeEvent (jlong) 4 // 4 #define cPropertyValueChangeEvent (jlong) 8 // 8 #define cPropertySelectionChangeEvent (jlong) 16 // 10 #define cPropertyTextChangeEvent (jlong) 32 // 20 #define cPropertyCaretChangeEvent (jlong) 64 // 40 #define cPropertyVisibleDataChangeEvent (jlong) 128 // 80 #define cPropertyChildChangeEvent (jlong) 256 // 100 #define cPropertyActiveDescendentChangeEvent (jlong) 512 // 200 #define cPropertyTableModelChangeEvent (jlong) 1024 // 400 /** ****************************************************** * optional AccessibleContext interfaces * * This version of the bridge reuses the accessibleValue * field in the AccessibleContextInfo struct to represent * additional optional interfaces that are supported by * the Java AccessibleContext. This is backwardly compatable * because the old accessibleValue was set to the BOOL * value TRUE (i.e., 1) if the AccessibleValue interface is * supported. ****************************************************** */ #define cAccessibleValueInterface (jlong) 1 // 1 << 1 (TRUE) #define cAccessibleActionInterface (jlong) 2 // 1 << 2 #define cAccessibleComponentInterface (jlong) 4 // 1 << 3 #define cAccessibleSelectionInterface (jlong) 8 // 1 << 4 #define cAccessibleTableInterface (jlong) 16 // 1 << 5 #define cAccessibleTextInterface (jlong) 32 // 1 << 6 #define cAccessibleHypertextInterface (jlong) 64 // 1 << 7 /** ****************************************************** * Accessibility information bundles ****************************************************** */ typedef struct AccessBridgeVersionInfoTag { wchar_t VMversion[SHORT_STRING_SIZE]; // output of "java -version" wchar_t bridgeJavaClassVersion[SHORT_STRING_SIZE]; // version of the AccessBridge.class wchar_t bridgeJavaDLLVersion[SHORT_STRING_SIZE]; // version of JavaAccessBridge.dll wchar_t bridgeWinDLLVersion[SHORT_STRING_SIZE]; // version of WindowsAccessBridge.dll } AccessBridgeVersionInfo; typedef struct AccessibleContextInfoTag { wchar_t name[MAX_STRING_SIZE]; // the AccessibleName of the object wchar_t description[MAX_STRING_SIZE]; // the AccessibleDescription of the object wchar_t role[SHORT_STRING_SIZE]; // localized AccesibleRole string wchar_t role_en_US[SHORT_STRING_SIZE]; // AccesibleRole string in the en_US locale wchar_t states[SHORT_STRING_SIZE]; // localized AccesibleStateSet string (comma separated) wchar_t states_en_US[SHORT_STRING_SIZE]; // AccesibleStateSet string in the en_US locale (comma separated) jint indexInParent; // index of object in parent jint childrenCount; // # of children, if any jint x; // screen coords in pixels jint y; // " jint width; // pixel width of object jint height; // pixel height of object BOOL accessibleComponent; // flags for various additional BOOL accessibleAction; // Java Accessibility interfaces BOOL accessibleSelection; // FALSE if this object doesn't BOOL accessibleText; // implement the additional interface // in question // BOOL accessibleValue; // old BOOL indicating whether AccessibleValue is supported BOOL accessibleInterfaces; // new bitfield containing additional interface flags } AccessibleContextInfo; // AccessibleText packages typedef struct AccessibleTextInfoTag { jint charCount; // # of characters in this text object jint caretIndex; // index of caret jint indexAtPoint; // index at the passsed in point } AccessibleTextInfo; typedef struct AccessibleTextItemsInfoTag { wchar_t letter; wchar_t word[SHORT_STRING_SIZE]; wchar_t sentence[MAX_STRING_SIZE]; } AccessibleTextItemsInfo; typedef struct AccessibleTextSelectionInfoTag { jint selectionStartIndex; jint selectionEndIndex; wchar_t selectedText[MAX_STRING_SIZE]; } AccessibleTextSelectionInfo; typedef struct AccessibleTextRectInfoTag { jint x; // bounding rect of char at index jint y; // " jint width; // " jint height; // " } AccessibleTextRectInfo; // standard attributes for text; note: tabstops are not supported typedef struct AccessibleTextAttributesInfoTag { BOOL bold; BOOL italic; BOOL underline; BOOL strikethrough; BOOL superscript; BOOL subscript; wchar_t backgroundColor[SHORT_STRING_SIZE]; wchar_t foregroundColor[SHORT_STRING_SIZE]; wchar_t fontFamily[SHORT_STRING_SIZE]; jint fontSize; jint alignment; jint bidiLevel; jfloat firstLineIndent; jfloat leftIndent; jfloat rightIndent; jfloat lineSpacing; jfloat spaceAbove; jfloat spaceBelow; wchar_t fullAttributesString[MAX_STRING_SIZE]; } AccessibleTextAttributesInfo; /** ****************************************************** * IPC management typedefs ****************************************************** */ #define cMemoryMappedNameSize 255 /** * sent by the WindowsDLL -> the memory-mapped file is setup * */ typedef struct MemoryMappedFileCreatedPackageTag { // HWND bridgeWindow; // redundant, but easier to get to here... ABHWND64 bridgeWindow; // redundant, but easier to get to here... char filename[cMemoryMappedNameSize]; } MemoryMappedFileCreatedPackage; /** * sent when a new JavaVM attaches to the Bridge * */ typedef struct JavaVMCreatedPackageTag { ABHWND64 bridgeWindow; long vmID; } JavaVMCreatedPackage; /** * sent when a JavaVM detatches from the Bridge * */ typedef struct JavaVMDestroyedPackageTag { ABHWND64 bridgeWindow; } JavaVMDestroyedPackage; /** * sent when a new AT attaches to the Bridge * */ typedef struct WindowsATCreatedPackageTag { ABHWND64 bridgeWindow; } WindowsATCreatedPackage; /** * sent when an AT detatches from the Bridge * */ typedef struct WindowsATDestroyedPackageTag { ABHWND64 bridgeWindow; } WindowsATDestroyedPackage; /** * sent by JVM Bridges in response to a WindowsATCreate * message; saying "howdy, welcome to the neighborhood" * */ typedef struct JavaVMPresentNotificationPackageTag { ABHWND64 bridgeWindow; long vmID; } JavaVMPresentNotificationPackage; /** * sent by AT Bridges in response to a JavaVMCreate * message; saying "howdy, welcome to the neighborhood" * */ typedef struct WindowsATPresentNotificationPackageTag { ABHWND64 bridgeWindow; } WindowsATPresentNotificationPackage; /** ****************************************************** * Core packages ****************************************************** */ typedef struct ReleaseJavaObjectPackageTag { long vmID; JOBJECT64 object; } ReleaseJavaObjectPackage; typedef struct GetAccessBridgeVersionPackageTag { long vmID; // can't get VM info w/out a VM! AccessBridgeVersionInfo rVersionInfo; } GetAccessBridgeVersionPackage; typedef struct IsSameObjectPackageTag { long vmID; JOBJECT64 obj1; JOBJECT64 obj2; jboolean rResult; } IsSameObjectPackage; /** ****************************************************** * Windows packages ****************************************************** */ typedef struct IsJavaWindowPackageTag { jint window; jboolean rResult; } IsJavaWindowPackage; typedef struct GetAccessibleContextFromHWNDPackageTag { jint window; long rVMID; JOBJECT64 rAccessibleContext; } GetAccessibleContextFromHWNDPackage; typedef struct GetHWNDFromAccessibleContextPackageTag { JOBJECT64 accessibleContext; ABHWND64 rHWND; } GetHWNDFromAccessibleContextPackage; /** ****************************************************** * AccessibleContext packages ****************************************************** */ typedef struct GetAccessibleContextAtPackageTag { jint x; jint y; long vmID; JOBJECT64 AccessibleContext; // look within this AC JOBJECT64 rAccessibleContext; } GetAccessibleContextAtPackage; typedef struct GetAccessibleContextWithFocusPackageTag { long rVMID; JOBJECT64 rAccessibleContext; } GetAccessibleContextWithFocusPackage; typedef struct GetAccessibleContextInfoPackageTag { long vmID; JOBJECT64 AccessibleContext; AccessibleContextInfo rAccessibleContextInfo; } GetAccessibleContextInfoPackage; typedef struct GetAccessibleChildFromContextPackageTag { long vmID; JOBJECT64 AccessibleContext; jint childIndex; JOBJECT64 rAccessibleContext; } GetAccessibleChildFromContextPackage; typedef struct GetAccessibleParentFromContextPackageTag { long vmID; JOBJECT64 AccessibleContext; JOBJECT64 rAccessibleContext; } GetAccessibleParentFromContextPackage; /** ****************************************************** * AccessibleTable packages ****************************************************** */ #define MAX_TABLE_SELECTIONS 64 // table information typedef struct AccessibleTableInfoTag { JOBJECT64 caption; // AccesibleContext JOBJECT64 summary; // AccessibleContext jint rowCount; jint columnCount; JOBJECT64 accessibleContext; JOBJECT64 accessibleTable; } AccessibleTableInfo; typedef struct GetAccessibleTableInfoPackageTag { long vmID; JOBJECT64 accessibleContext; AccessibleTableInfo rTableInfo; } GetAccessibleTableInfoPackage; // table cell information typedef struct AccessibleTableCellInfoTag { JOBJECT64 accessibleContext; jint index; jint row; jint column; jint rowExtent; jint columnExtent; jboolean isSelected; } AccessibleTableCellInfo; typedef struct GetAccessibleTableCellInfoPackageTag { long vmID; JOBJECT64 accessibleTable; jint row; jint column; AccessibleTableCellInfo rTableCellInfo; } GetAccessibleTableCellInfoPackage; typedef struct GetAccessibleTableRowHeaderPackageTag { long vmID; JOBJECT64 accessibleContext; AccessibleTableInfo rTableInfo; } GetAccessibleTableRowHeaderPackage; typedef struct GetAccessibleTableColumnHeaderPackageTag { long vmID; JOBJECT64 accessibleContext; AccessibleTableInfo rTableInfo; } GetAccessibleTableColumnHeaderPackage; typedef struct GetAccessibleTableRowDescriptionPackageTag { long vmID; JOBJECT64 accessibleContext; jint row; JOBJECT64 rAccessibleContext; } GetAccessibleTableRowDescriptionPackage; typedef struct GetAccessibleTableColumnDescriptionPackageTag { long vmID; JOBJECT64 accessibleContext; jint column; JOBJECT64 rAccessibleContext; } GetAccessibleTableColumnDescriptionPackage; typedef struct GetAccessibleTableRowSelectionCountPackageTag { long vmID; JOBJECT64 accessibleTable; jint rCount; } GetAccessibleTableRowSelectionCountPackage; typedef struct IsAccessibleTableRowSelectedPackageTag { long vmID; JOBJECT64 accessibleTable; jint row; jboolean rResult; } IsAccessibleTableRowSelectedPackage; typedef struct GetAccessibleTableRowSelectionsPackageTag { long vmID; JOBJECT64 accessibleTable; jint count; jint rSelections[MAX_TABLE_SELECTIONS]; } GetAccessibleTableRowSelectionsPackage; typedef struct GetAccessibleTableColumnSelectionCountPackageTag { long vmID; JOBJECT64 accessibleTable; jint rCount; } GetAccessibleTableColumnSelectionCountPackage; typedef struct IsAccessibleTableColumnSelectedPackageTag { long vmID; JOBJECT64 accessibleTable; jint column; jboolean rResult; } IsAccessibleTableColumnSelectedPackage; typedef struct GetAccessibleTableColumnSelectionsPackageTag { long vmID; JOBJECT64 accessibleTable; jint count; jint rSelections[MAX_TABLE_SELECTIONS]; } GetAccessibleTableColumnSelectionsPackage; typedef struct GetAccessibleTableRowPackageTag { long vmID; JOBJECT64 accessibleTable; jint index; jint rRow; } GetAccessibleTableRowPackage; typedef struct GetAccessibleTableColumnPackageTag { long vmID; JOBJECT64 accessibleTable; jint index; jint rColumn; } GetAccessibleTableColumnPackage; typedef struct GetAccessibleTableIndexPackageTag { long vmID; JOBJECT64 accessibleTable; jint row; jint column; jint rIndex; } GetAccessibleTableIndexPackage; /** ****************************************************** * AccessibleRelationSet packages ****************************************************** */ #define MAX_RELATION_TARGETS 25 #define MAX_RELATIONS 5 typedef struct AccessibleRelationInfoTag { wchar_t key[SHORT_STRING_SIZE]; jint targetCount; JOBJECT64 targets[MAX_RELATION_TARGETS]; // AccessibleContexts } AccessibleRelationInfo; typedef struct AccessibleRelationSetInfoTag { jint relationCount; AccessibleRelationInfo relations[MAX_RELATIONS]; } AccessibleRelationSetInfo; typedef struct GetAccessibleRelationSetPackageTag { long vmID; JOBJECT64 accessibleContext; AccessibleRelationSetInfo rAccessibleRelationSetInfo; } GetAccessibleRelationSetPackage; /** ****************************************************** * AccessibleHypertext packagess ****************************************************** */ #define MAX_HYPERLINKS 64 // maximum number of hyperlinks returned // hyperlink information typedef struct AccessibleHyperlinkInfoTag { wchar_t text[SHORT_STRING_SIZE]; // the hyperlink text jint startIndex; //index in the hypertext document where the link begins jint endIndex; //index in the hypertext document where the link ends JOBJECT64 accessibleHyperlink; // AccessibleHyperlink object } AccessibleHyperlinkInfo; // hypertext information typedef struct AccessibleHypertextInfoTag { jint linkCount; // number of hyperlinks AccessibleHyperlinkInfo links[MAX_HYPERLINKS]; // the hyperlinks JOBJECT64 accessibleHypertext; // AccessibleHypertext object } AccessibleHypertextInfo; // struct for sending a message to get the hypertext for an AccessibleContext typedef struct GetAccessibleHypertextPackageTag { long vmID; // the virtual machine ID JOBJECT64 accessibleContext; // AccessibleContext with hypertext AccessibleHypertextInfo rAccessibleHypertextInfo; // returned hypertext } GetAccessibleHypertextPackage; // struct for sending an message to activate a hyperlink typedef struct ActivateAccessibleHyperlinkPackageTag { long vmID; // the virtual machine ID JOBJECT64 accessibleContext; // AccessibleContext containing the link JOBJECT64 accessibleHyperlink; // the link to activate BOOL rResult; // hyperlink activation return value } ActivateAccessibleHyperlinkPackage; // struct for sending a message to get the number of hyperlinks in a component typedef struct GetAccessibleHyperlinkCountPackageTag { long vmID; // the virtual machine ID JOBJECT64 accessibleContext; // AccessibleContext containing AccessibleHypertext jint rLinkCount; // link count return value } GetAccessibleHyperlinkCountPackage; // struct for sending a message to get the hypertext for an AccessibleContext // starting at a specified index in the document typedef struct GetAccessibleHypertextExtPackageTag { long vmID; // the virtual machine ID JOBJECT64 accessibleContext; // AccessibleContext with hypertext jint startIndex; // start index in document AccessibleHypertextInfo rAccessibleHypertextInfo; // returned hypertext BOOL rSuccess; // whether call succeeded } GetAccessibleHypertextExtPackage; // struct for sending a message to get the nth hyperlink in a document; // maps to AccessibleHypertext.getLink typedef struct GetAccessibleHyperlinkPackageTag { long vmID; // the virtual machine ID JOBJECT64 hypertext; // AccessibleHypertext jint linkIndex; // hyperlink index AccessibleHyperlinkInfo rAccessibleHyperlinkInfo; // returned hyperlink } GetAccessibleHyperlinkPackage; // struct for sending a message to get the index into an array // of hyperlinks that is associated with a character index in a // document; maps to AccessibleHypertext.getLinkIndex typedef struct GetAccessibleHypertextLinkIndexPackageTag { long vmID; // the virtual machine ID JOBJECT64 hypertext; // AccessibleHypertext jint charIndex; // character index in document jint rLinkIndex; // returned hyperlink index } GetAccessibleHypertextLinkIndexPackage; /** ****************************************************** * Accessible Key Bindings packages ****************************************************** */ #define MAX_KEY_BINDINGS 10 // keyboard character modifiers #define ACCESSIBLE_SHIFT_KEYSTROKE 1 #define ACCESSIBLE_CONTROL_KEYSTROKE 2 #define ACCESSIBLE_META_KEYSTROKE 4 #define ACCESSIBLE_ALT_KEYSTROKE 8 #define ACCESSIBLE_ALT_GRAPH_KEYSTROKE 16 #define ACCESSIBLE_BUTTON1_KEYSTROKE 32 #define ACCESSIBLE_BUTTON2_KEYSTROKE 64 #define ACCESSIBLE_BUTTON3_KEYSTROKE 128 #define ACCESSIBLE_FKEY_KEYSTROKE 256 // F key pressed, character contains 1-24 #define ACCESSIBLE_CONTROLCODE_KEYSTROKE 512 // Control code key pressed, character contains control code. // The supported control code keys are: #define ACCESSIBLE_VK_BACK_SPACE 8 #define ACCESSIBLE_VK_DELETE 127 #define ACCESSIBLE_VK_DOWN 40 #define ACCESSIBLE_VK_END 35 #define ACCESSIBLE_VK_HOME 36 #define ACCESSIBLE_VK_INSERT 155 #define ACCESSIBLE_VK_KP_DOWN 225 #define ACCESSIBLE_VK_KP_LEFT 226 #define ACCESSIBLE_VK_KP_RIGHT 227 #define ACCESSIBLE_VK_KP_UP 224 #define ACCESSIBLE_VK_LEFT 37 #define ACCESSIBLE_VK_PAGE_DOWN 34 #define ACCESSIBLE_VK_PAGE_UP 33 #define ACCESSIBLE_VK_RIGHT 39 #define ACCESSIBLE_VK_UP 38 // a key binding associates with a component typedef struct AccessibleKeyBindingInfoTag { jchar character; // the key character jint modifiers; // the key modifiers } AccessibleKeyBindingInfo; // all of the key bindings associated with a component typedef struct AccessibleKeyBindingsTag { int keyBindingsCount; // number of key bindings AccessibleKeyBindingInfo keyBindingInfo[MAX_KEY_BINDINGS]; } AccessibleKeyBindings; // struct to get the key bindings associated with a component typedef struct GetAccessibleKeyBindingsPackageTag { long vmID; // the virtual machine id JOBJECT64 accessibleContext; // the component AccessibleKeyBindings rAccessibleKeyBindings; // the key bindings } GetAccessibleKeyBindingsPackage; /** ****************************************************** * AccessibleIcon packages ****************************************************** */ #define MAX_ICON_INFO 8 // an icon assocated with a component typedef struct AccessibleIconInfoTag { wchar_t description[SHORT_STRING_SIZE]; // icon description jint height; // icon height jint width; // icon width } AccessibleIconInfo; // all of the icons associated with a component typedef struct AccessibleIconsTag { jint iconsCount; // number of icons AccessibleIconInfo iconInfo[MAX_ICON_INFO]; // the icons } AccessibleIcons; // struct to get the icons associated with a component typedef struct GetAccessibleIconsPackageTag { long vmID; // the virtual machine id JOBJECT64 accessibleContext; // the component AccessibleIcons rAccessibleIcons; // the icons } GetAccessibleIconsPackage; /** ****************************************************** * AccessibleAction packages ****************************************************** */ #define MAX_ACTION_INFO 256 #define MAX_ACTIONS_TO_DO 32 // an action assocated with a component typedef struct AccessibleActionInfoTag { wchar_t name[SHORT_STRING_SIZE]; // action name } AccessibleActionInfo; // all of the actions associated with a component typedef struct AccessibleActionsTag { jint actionsCount; // number of actions AccessibleActionInfo actionInfo[MAX_ACTION_INFO]; // the action information } AccessibleActions; // struct for requesting the actions associated with a component typedef struct GetAccessibleActionsPackageTag { long vmID; JOBJECT64 accessibleContext; // the component AccessibleActions rAccessibleActions; // the actions } GetAccessibleActionsPackage; // list of AccessibleActions to do typedef struct AccessibleActionsToDoTag { jint actionsCount; // number of actions to do AccessibleActionInfo actions[MAX_ACTIONS_TO_DO];// the accessible actions to do } AccessibleActionsToDo; // struct for sending an message to do one or more actions typedef struct DoAccessibleActionsPackageTag { long vmID; // the virtual machine ID JOBJECT64 accessibleContext; // component to do the action AccessibleActionsToDo actionsToDo; // the accessible actions to do BOOL rResult; // action return value jint failure; // index of action that failed if rResult is FALSE } DoAccessibleActionsPackage; /** ****************************************************** * AccessibleText packages ****************************************************** */ typedef struct GetAccessibleTextInfoPackageTag { long vmID; JOBJECT64 AccessibleContext; jint x; jint y; AccessibleTextInfo rTextInfo; } GetAccessibleTextInfoPackage; typedef struct GetAccessibleTextItemsPackageTag { long vmID; JOBJECT64 AccessibleContext; jint index; AccessibleTextItemsInfo rTextItemsInfo; } GetAccessibleTextItemsPackage; typedef struct GetAccessibleTextSelectionInfoPackageTag { long vmID; JOBJECT64 AccessibleContext; AccessibleTextSelectionInfo rTextSelectionItemsInfo; } GetAccessibleTextSelectionInfoPackage; typedef struct GetAccessibleTextAttributeInfoPackageTag { long vmID; JOBJECT64 AccessibleContext; jint index; AccessibleTextAttributesInfo rAttributeInfo; } GetAccessibleTextAttributeInfoPackage; typedef struct GetAccessibleTextRectInfoPackageTag { long vmID; JOBJECT64 AccessibleContext; jint index; AccessibleTextRectInfo rTextRectInfo; } GetAccessibleTextRectInfoPackage; typedef struct GetCaretLocationPackageTag { long vmID; JOBJECT64 AccessibleContext; jint index; AccessibleTextRectInfo rTextRectInfo; } GetCaretLocationPackage; typedef struct GetAccessibleTextLineBoundsPackageTag { long vmID; JOBJECT64 AccessibleContext; jint index; jint rLineStart; jint rLineEnd; } GetAccessibleTextLineBoundsPackage; typedef struct GetAccessibleTextRangePackageTag { long vmID; JOBJECT64 AccessibleContext; jint start; jint end; wchar_t rText[MAX_BUFFER_SIZE]; } GetAccessibleTextRangePackage; /** ****************************************************** * * Utility method packages ****************************************************** */ typedef struct SetTextContentsPackageTag { long vmID; JOBJECT64 accessibleContext; // the text field wchar_t text[MAX_STRING_SIZE]; // the text BOOL rResult; } SetTextContentsPackage; typedef struct GetParentWithRolePackageTag { long vmID; JOBJECT64 accessibleContext; wchar_t role[SHORT_STRING_SIZE]; // one of Accessible Roles above JOBJECT64 rAccessibleContext; } GetParentWithRolePackage; typedef struct GetTopLevelObjectPackageTag { long vmID; JOBJECT64 accessibleContext; JOBJECT64 rAccessibleContext; } GetTopLevelObjectPackage; typedef struct GetParentWithRoleElseRootPackageTag { long vmID; JOBJECT64 accessibleContext; wchar_t role[SHORT_STRING_SIZE]; // one of Accessible Roles above JOBJECT64 rAccessibleContext; } GetParentWithRoleElseRootPackage; typedef struct GetObjectDepthPackageTag { long vmID; JOBJECT64 accessibleContext; jint rResult; } GetObjectDepthPackage; typedef struct GetActiveDescendentPackageTag { long vmID; JOBJECT64 accessibleContext; JOBJECT64 rAccessibleContext; } GetActiveDescendentPackage; /** ****************************************************** * AccessibleValue packages ****************************************************** */ typedef struct GetCurrentAccessibleValueFromContextPackageTag { long vmID; JOBJECT64 AccessibleContext; wchar_t rValue[SHORT_STRING_SIZE]; } GetCurrentAccessibleValueFromContextPackage; typedef struct GetMaximumAccessibleValueFromContextPackageTag { long vmID; JOBJECT64 AccessibleContext; wchar_t rValue[SHORT_STRING_SIZE]; } GetMaximumAccessibleValueFromContextPackage; typedef struct GetMinimumAccessibleValueFromContextPackageTag { long vmID; JOBJECT64 AccessibleContext; wchar_t rValue[SHORT_STRING_SIZE]; } GetMinimumAccessibleValueFromContextPackage; /** ****************************************************** * AccessibleSelection packages ****************************************************** */ typedef struct AddAccessibleSelectionFromContextPackageTag { long vmID; JOBJECT64 AccessibleContext; jint index; } AddAccessibleSelectionFromContextPackage; typedef struct ClearAccessibleSelectionFromContextPackageTag { long vmID; JOBJECT64 AccessibleContext; } ClearAccessibleSelectionFromContextPackage; typedef struct GetAccessibleSelectionFromContextPackageTag { long vmID; JOBJECT64 AccessibleContext; jint index; JOBJECT64 rAccessibleContext; } GetAccessibleSelectionFromContextPackage; typedef struct GetAccessibleSelectionCountFromContextPackageTag { long vmID; JOBJECT64 AccessibleContext; jint rCount; } GetAccessibleSelectionCountFromContextPackage; typedef struct IsAccessibleChildSelectedFromContextPackageTag { long vmID; JOBJECT64 AccessibleContext; jint index; jboolean rResult; } IsAccessibleChildSelectedFromContextPackage; typedef struct RemoveAccessibleSelectionFromContextPackageTag { long vmID; JOBJECT64 AccessibleContext; jint index; } RemoveAccessibleSelectionFromContextPackage; typedef struct SelectAllAccessibleSelectionFromContextPackageTag { long vmID; JOBJECT64 AccessibleContext; } SelectAllAccessibleSelectionFromContextPackage; /** ****************************************************** * Java Event Notification Registration packages ****************************************************** */ typedef struct AddJavaEventNotificationPackageTag { jlong type; //HWND DLLwindow; ABHWND64 DLLwindow; } AddJavaEventNotificationPackage; typedef struct RemoveJavaEventNotificationPackageTag { jlong type; //HWND DLLwindow; ABHWND64 DLLwindow; } RemoveJavaEventNotificationPackage; /** ****************************************************** * Accessibility Event Notification Registration packages ****************************************************** */ typedef struct AddAccessibilityEventNotificationPackageTag { jlong type; //HWND DLLwindow; ABHWND64 DLLwindow; } AddAccessibilityEventNotificationPackage; typedef struct RemoveAccessibilityEventNotificationPackageTag { jlong type; //HWND DLLwindow; ABHWND64 DLLwindow; } RemoveAccessibilityEventNotificationPackage; /** ****************************************************** * Accessibility Property Change Event packages ****************************************************** */ typedef struct PropertyCaretChangePackageTag { long vmID; JOBJECT64 Event; JOBJECT64 AccessibleContextSource; jint oldPosition; jint newPosition; } PropertyCaretChangePackage; typedef struct PropertyDescriptionChangePackageTag { long vmID; JOBJECT64 Event; JOBJECT64 AccessibleContextSource; wchar_t oldDescription[SHORT_STRING_SIZE]; wchar_t newDescription[SHORT_STRING_SIZE]; } PropertyDescriptionChangePackage; typedef struct PropertyNameChangePackageTag { long vmID; JOBJECT64 Event; JOBJECT64 AccessibleContextSource; wchar_t oldName[SHORT_STRING_SIZE]; wchar_t newName[SHORT_STRING_SIZE]; } PropertyNameChangePackage; typedef struct PropertySelectionChangePackageTag { long vmID; JOBJECT64 Event; JOBJECT64 AccessibleContextSource; } PropertySelectionChangePackage; typedef struct PropertyStateChangePackageTag { long vmID; JOBJECT64 Event; JOBJECT64 AccessibleContextSource; wchar_t oldState[SHORT_STRING_SIZE]; wchar_t newState[SHORT_STRING_SIZE]; } PropertyStateChangePackage; typedef struct PropertyTextChangePackageTag { long vmID; JOBJECT64 Event; JOBJECT64 AccessibleContextSource; } PropertyTextChangePackage; typedef struct PropertyValueChangePackageTag { long vmID; JOBJECT64 Event; JOBJECT64 AccessibleContextSource; wchar_t oldValue[SHORT_STRING_SIZE]; wchar_t newValue[SHORT_STRING_SIZE]; } PropertyValueChangePackage; typedef struct PropertyVisibleDataChangePackageTag { long vmID; JOBJECT64 Event; JOBJECT64 AccessibleContextSource; } PropertyVisibleDataChangePackage; typedef struct PropertyChildChangePackageTag { long vmID; JOBJECT64 Event; JOBJECT64 AccessibleContextSource; JOBJECT64 oldChildAccessibleContext; JOBJECT64 newChildAccessibleContext; } PropertyChildChangePackage; typedef struct PropertyActiveDescendentChangePackageTag { long vmID; JOBJECT64 Event; JOBJECT64 AccessibleContextSource; JOBJECT64 oldActiveDescendentAccessibleContext; JOBJECT64 newActiveDescendentAccessibleContext; } PropertyActiveDescendentChangePackage; // String format for newValue is: // "type" one of "INSERT", "UPDATE" or "DELETE" // "firstRow" // "lastRow" // "firstColumn" // "lastColumn" // // oldValue is currently unused // typedef struct PropertyTableModelChangePackageTag { long vmID; JOBJECT64 Event; JOBJECT64 AccessibleContextSource; wchar_t oldValue[SHORT_STRING_SIZE]; wchar_t newValue[SHORT_STRING_SIZE]; } PropertyTableModelChangePackage; /** ****************************************************** * Property Change Event packages ****************************************************** */ /* typedef struct PropertyChangePackageTag { long vmID; jobject Event; jobject AccessibleContextSource; char propertyName[SHORT_STRING_SIZE]; char oldValue[SHORT_STRING_SIZE]; // PropertyChangeEvent().getOldValue().toString() char newValue[SHORT_STRING_SIZE]; // PropertyChangeEvent().getNewValue().toString() } PropertyChangePackage; */ /* * Java shutdown event package */ typedef struct JavaShutdownPackageTag { long vmID; } JavaShutdownPackage; /** ****************************************************** * Focus Event packages ****************************************************** */ typedef struct FocusGainedPackageTag { long vmID; JOBJECT64 Event; JOBJECT64 AccessibleContextSource; } FocusGainedPackage; typedef struct FocusLostPackageTag { long vmID; JOBJECT64 Event; JOBJECT64 AccessibleContextSource; } FocusLostPackage; /** ****************************************************** * Caret Event packages ****************************************************** */ typedef struct CaretUpdatePackageTag { long vmID; JOBJECT64 Event; JOBJECT64 AccessibleContextSource; } CaretUpdatePackage; /** ****************************************************** * Mouse Event packages ****************************************************** */ typedef struct MouseClickedPackageTag { long vmID; JOBJECT64 Event; JOBJECT64 AccessibleContextSource; } MouseClickedPackage; typedef struct MouseEnteredPackageTag { long vmID; JOBJECT64 Event; JOBJECT64 AccessibleContextSource; } MouseEnteredPackage; typedef struct MouseExitedPackageTag { long vmID; JOBJECT64 Event; JOBJECT64 AccessibleContextSource; } MouseExitedPackage; typedef struct MousePressedPackageTag { long vmID; JOBJECT64 Event; JOBJECT64 AccessibleContextSource; } MousePressedPackage; typedef struct MouseReleasedPackageTag { long vmID; JOBJECT64 Event; JOBJECT64 AccessibleContextSource; } MouseReleasedPackage; /** ****************************************************** * Menu/PopupMenu Event packages ****************************************************** */ typedef struct MenuCanceledPackageTag { long vmID; JOBJECT64 Event; JOBJECT64 AccessibleContextSource; } MenuCanceledPackage; typedef struct MenuDeselectedPackageTag { long vmID; JOBJECT64 Event; JOBJECT64 AccessibleContextSource; } MenuDeselectedPackage; typedef struct MenuSelectedPackageTag { long vmID; JOBJECT64 Event; JOBJECT64 AccessibleContextSource; } MenuSelectedPackage; typedef struct PopupMenuCanceledPackageTag { long vmID; JOBJECT64 Event; JOBJECT64 AccessibleContextSource; } PopupMenuCanceledPackage; typedef struct PopupMenuWillBecomeInvisiblePackageTag { long vmID; JOBJECT64 Event; JOBJECT64 AccessibleContextSource; } PopupMenuWillBecomeInvisiblePackage; typedef struct PopupMenuWillBecomeVisiblePackageTag { long vmID; JOBJECT64 Event; JOBJECT64 AccessibleContextSource; } PopupMenuWillBecomeVisiblePackage; /** ****************************************************** * Additional methods for Teton ****************************************************** */ /** * Gets the AccessibleName for a component based upon the JAWS algorithm. Returns * whether successful. * * Bug ID 4916682 - Implement JAWS AccessibleName policy */ typedef struct GetVirtualAccessibleNamePackageTag { long vmID; AccessibleContext accessibleContext; wchar_t rName[MAX_STRING_SIZE]; int len; } GetVirtualAccessibleNamePackage; /** * Request focus for a component. Returns whether successful; * * Bug ID 4944757 - requestFocus method needed */ typedef struct RequestFocusPackageTag { long vmID; AccessibleContext accessibleContext; } RequestFocusPackage; /** * Selects text between two indices. Selection includes the text at the start index * and the text at the end index. Returns whether successful; * * Bug ID 4944758 - selectTextRange method needed */ typedef struct SelectTextRangePackageTag { long vmID; AccessibleContext accessibleContext; jint startIndex; jint endIndex; } SelectTextRangePackage; /** * Gets the number of contiguous characters with the same attributes. * * Bug ID 4944761 - getTextAttributes between two indices method needed */ typedef struct GetTextAttributesInRangePackageTag { long vmID; AccessibleContext accessibleContext; jint startIndex; // start index (inclusive) jint endIndex; // end index (inclusive) AccessibleTextAttributesInfo attributes; // character attributes to match short rLength; // number of contiguous characters with matching attributes } GetTextAttributesInRangePackage; #define MAX_VISIBLE_CHILDREN 256 // visible children information typedef struct VisibleChildenInfoTag { int returnedChildrenCount; // number of children returned AccessibleContext children[MAX_VISIBLE_CHILDREN]; // the visible children } VisibleChildrenInfo; // struct for sending a message to get the number of visible children typedef struct GetVisibleChildrenCountPackageTag { long vmID; // the virtual machine ID JOBJECT64 accessibleContext; // AccessibleContext of parent component jint rChildrenCount; // visible children count return value } GetVisibleChildrenCountPackage; // struct for sending a message to get the hypertext for an AccessibleContext // starting at a specified index in the document typedef struct GetVisibleChildrenPackageTag { long vmID; // the virtual machine ID JOBJECT64 accessibleContext; // AccessibleContext of parent component jint startIndex; // start index for retrieving children VisibleChildrenInfo rVisibleChildrenInfo; // returned info BOOL rSuccess; // whether call succeeded } GetVisibleChildrenPackage; /** * Set the caret to a text position. Returns whether successful; * * Bug ID 4944770 - setCaretPosition method needed */ typedef struct SetCaretPositionPackageTag { long vmID; AccessibleContext accessibleContext; jint position; } SetCaretPositionPackage; /** ****************************************************** * Wrapping up all of the packages ****************************************************** */ /** * What is the type of this package */ typedef enum PackageType { cMemoryMappedFileCreatedPackage = 0x11000, // many of these will go away... cJavaVMCreatedPackage = 0x10000, cJavaVMDestroyedPackage, cWindowsATCreatedPackage, cWindowsATDestroyedPackage, cJavaVMPresentNotificationPackage, cWindowsATPresentNotificationPackage, cReleaseJavaObjectPackage = 1, cGetAccessBridgeVersionPackage = 2, cGetAccessibleContextFromHWNDPackage = 0x10, cIsJavaWindowPackage, cGetHWNDFromAccessibleContextPackage, cGetAccessibleContextAtPackage = 0x100, cGetAccessibleContextWithFocusPackage, cGetAccessibleContextInfoPackage, cGetAccessibleChildFromContextPackage, cGetAccessibleParentFromContextPackage, cIsSameObjectPackage, cGetAccessibleTextInfoPackage = 0x200, cGetAccessibleTextItemsPackage, cGetAccessibleTextSelectionInfoPackage, cGetAccessibleTextAttributeInfoPackage, cGetAccessibleTextRectInfoPackage, cGetAccessibleTextLineBoundsPackage, cGetAccessibleTextRangePackage, cGetCurrentAccessibleValueFromContextPackage = 0x300, cGetMaximumAccessibleValueFromContextPackage, cGetMinimumAccessibleValueFromContextPackage, cAddAccessibleSelectionFromContextPackage = 0x400, cClearAccessibleSelectionFromContextPackage, cGetAccessibleSelectionFromContextPackage, cGetAccessibleSelectionCountFromContextPackage, cIsAccessibleChildSelectedFromContextPackage, cRemoveAccessibleSelectionFromContextPackage, cSelectAllAccessibleSelectionFromContextPackage, cAddJavaEventNotificationPackage = 0x900, cRemoveJavaEventNotificationPackage, cAddAccessibilityEventNotificationPackage, cRemoveAccessibilityEventNotificationPackage, cPropertyChangePackage = 0x1000, cJavaShutdownPackage = 0x1010, cFocusGainedPackage, cFocusLostPackage, cCaretUpdatePackage = 0x1020, cMouseClickedPackage = 0x1030, cMouseEnteredPackage, cMouseExitedPackage, cMousePressedPackage, cMouseReleasedPackage, cMenuCanceledPackage = 0x1040, cMenuDeselectedPackage, cMenuSelectedPackage, cPopupMenuCanceledPackage, cPopupMenuWillBecomeInvisiblePackage, cPopupMenuWillBecomeVisiblePackage, cPropertyCaretChangePackage = 0x1100, cPropertyDescriptionChangePackage, cPropertyNameChangePackage, cPropertySelectionChangePackage, cPropertyStateChangePackage, cPropertyTextChangePackage, cPropertyValueChangePackage, cPropertyVisibleDataChangePackage, cPropertyChildChangePackage, cPropertyActiveDescendentChangePackage, // AccessibleTable cGetAccessibleTableInfoPackage = 0x1200, cGetAccessibleTableCellInfoPackage, cGetAccessibleTableRowHeaderPackage, cGetAccessibleTableColumnHeaderPackage, cGetAccessibleTableRowDescriptionPackage, cGetAccessibleTableColumnDescriptionPackage, cGetAccessibleTableRowSelectionCountPackage, cIsAccessibleTableRowSelectedPackage, cGetAccessibleTableRowSelectionsPackage, cGetAccessibleTableColumnSelectionCountPackage, cIsAccessibleTableColumnSelectedPackage, cGetAccessibleTableColumnSelectionsPackage, cGetAccessibleTableRowPackage, cGetAccessibleTableColumnPackage, cGetAccessibleTableIndexPackage, cPropertyTableModelChangePackage, // AccessibleRelationSet cGetAccessibleRelationSetPackage = 0x1300, // AccessibleHypertext cGetAccessibleHypertextPackage = 0x1400, cActivateAccessibleHyperlinkPackage, cGetAccessibleHyperlinkCountPackage, cGetAccessibleHypertextExtPackage, cGetAccessibleHypertextLinkIndexPackage, cGetAccessibleHyperlinkPackage, // Accessible KeyBinding, Icon and Action cGetAccessibleKeyBindingsPackage = 0x1500, cGetAccessibleIconsPackage, cGetAccessibleActionsPackage, cDoAccessibleActionsPackage, // Utility methods cSetTextContentsPackage = 0x1600, cGetParentWithRolePackage, cGetTopLevelObjectPackage, cGetParentWithRoleElseRootPackage, cGetObjectDepthPackage, cGetActiveDescendentPackage, // Additional methods for Teton cGetVirtualAccessibleNamePackage = 0x1700, cRequestFocusPackage, cSelectTextRangePackage, cGetTextAttributesInRangePackage, cGetSameTextAttributesInRangePackage, cGetVisibleChildrenCountPackage, cGetVisibleChildrenPackage, cSetCaretPositionPackage, cGetCaretLocationPackage } PackageType; /** * Union of all package contents */ typedef union AllPackagesTag { // Initial Rendezvous packages MemoryMappedFileCreatedPackage memoryMappedFileCreatedPackage; JavaVMCreatedPackage javaVMCreatedPackage; JavaVMDestroyedPackage javaVMDestroyedPackage; WindowsATCreatedPackage windowsATCreatedPackage; WindowsATDestroyedPackage windowsATDestroyedPackage; JavaVMPresentNotificationPackage javaVMPresentNotificationPackage; WindowsATPresentNotificationPackage windowsATPresentNotificationPackage; // Core packages ReleaseJavaObjectPackage releaseJavaObject; GetAccessBridgeVersionPackage getAccessBridgeVersion; // Window packages GetAccessibleContextFromHWNDPackage getAccessibleContextFromHWND; GetHWNDFromAccessibleContextPackage getHWNDFromAccessibleContext; // AccessibleContext packages GetAccessibleContextAtPackage getAccessibleContextAt; GetAccessibleContextWithFocusPackage getAccessibleContextWithFocus; GetAccessibleContextInfoPackage getAccessibleContextInfo; GetAccessibleChildFromContextPackage getAccessibleChildFromContext; GetAccessibleParentFromContextPackage getAccessibleParentFromContext; // AccessibleText packages GetAccessibleTextInfoPackage getAccessibleTextInfo; GetAccessibleTextItemsPackage getAccessibleTextItems; GetAccessibleTextSelectionInfoPackage getAccessibleTextSelectionInfo; GetAccessibleTextAttributeInfoPackage getAccessibleTextAttributeInfo; GetAccessibleTextRectInfoPackage getAccessibleTextRectInfo; GetAccessibleTextLineBoundsPackage getAccessibleTextLineBounds; GetAccessibleTextRangePackage getAccessibleTextRange; // AccessibleValue packages GetCurrentAccessibleValueFromContextPackage getCurrentAccessibleValueFromContext; GetMaximumAccessibleValueFromContextPackage getMaximumAccessibleValueFromContext; GetMinimumAccessibleValueFromContextPackage getMinimumAccessibleValueFromContext; // AccessibleSelection packages AddAccessibleSelectionFromContextPackage addAccessibleSelectionFromContext; ClearAccessibleSelectionFromContextPackage clearAccessibleSelectionFromContext; GetAccessibleSelectionFromContextPackage getAccessibleSelectionFromContext; GetAccessibleSelectionCountFromContextPackage getAccessibleSelectionCountFromContext; IsAccessibleChildSelectedFromContextPackage isAccessibleChildSelectedFromContext; RemoveAccessibleSelectionFromContextPackage removeAccessibleSelectionFromContext; SelectAllAccessibleSelectionFromContextPackage selectAllAccessibleSelectionFromContext; // Event Notification Registration packages AddJavaEventNotificationPackage addJavaEventNotification; RemoveJavaEventNotificationPackage removeJavaEventNotification; AddAccessibilityEventNotificationPackage addAccessibilityEventNotification; RemoveAccessibilityEventNotificationPackage removeAccessibilityEventNotification; // Event contents packages // PropertyChangePackage propertyChange; PropertyCaretChangePackage propertyCaretChangePackage; PropertyDescriptionChangePackage propertyDescriptionChangePackage; PropertyNameChangePackage propertyNameChangePackage; PropertySelectionChangePackage propertySelectionChangePackage; PropertyStateChangePackage propertyStateChangePackage; PropertyTextChangePackage propertyTextChangePackage; PropertyValueChangePackage propertyValueChangePackage; PropertyVisibleDataChangePackage propertyVisibleDataChangePackage; PropertyChildChangePackage propertyChildChangePackage; PropertyActiveDescendentChangePackage propertyActiveDescendentChangePackage; PropertyTableModelChangePackage propertyTableModelChangePackage; JavaShutdownPackage JavaShutdown; FocusGainedPackage focusGained; FocusLostPackage focusLost; CaretUpdatePackage caretUpdate; MouseClickedPackage mouseClicked; MouseEnteredPackage mouseEntered; MouseExitedPackage mouseExited; MousePressedPackage mousePressed; MouseReleasedPackage mouseReleased; MenuCanceledPackage menuCanceled; MenuDeselectedPackage menuDeselected; MenuSelectedPackage menuSelected; PopupMenuCanceledPackage popupMenuCanceled; PopupMenuWillBecomeInvisiblePackage popupMenuWillBecomeInvisible; PopupMenuWillBecomeVisiblePackage popupMenuWillBecomeVisible; // AccessibleRelationSet GetAccessibleRelationSetPackage getAccessibleRelationSet; // AccessibleHypertext GetAccessibleHypertextPackage _getAccessibleHypertext; ActivateAccessibleHyperlinkPackage _activateAccessibleHyperlink; GetAccessibleHyperlinkCountPackage _getAccessibleHyperlinkCount; GetAccessibleHypertextExtPackage _getAccessibleHypertextExt; GetAccessibleHypertextLinkIndexPackage _getAccessibleHypertextLinkIndex; GetAccessibleHyperlinkPackage _getAccessibleHyperlink; // Accessible KeyBinding, Icon and Action GetAccessibleKeyBindingsPackage getAccessibleKeyBindings; GetAccessibleIconsPackage getAccessibleIcons; GetAccessibleActionsPackage getAccessibleActions; DoAccessibleActionsPackage doAccessibleActions; // utility methods SetTextContentsPackage _setTextContents; GetParentWithRolePackage _getParentWithRole; GetTopLevelObjectPackage _getTopLevelObject; GetParentWithRoleElseRootPackage _getParentWithRoleElseRoot; GetObjectDepthPackage _getObjectDepth; GetActiveDescendentPackage _getActiveDescendent; // Additional methods for Teton GetVirtualAccessibleNamePackage _getVirtualAccessibleName; RequestFocusPackage _requestFocus; SelectTextRangePackage _selectTextRange; GetTextAttributesInRangePackage _getTextAttributesInRange; GetVisibleChildrenCountPackage _getVisibleChildrenCount; GetVisibleChildrenPackage _getVisibleChildren; SetCaretPositionPackage _setCaretPosition; } AllPackages; /** * Union of all Java-initiated package contents */ typedef union JavaInitiatedPackagesTag { // Initial Rendezvous packages JavaVMCreatedPackage javaVMCreatedPackage; JavaVMDestroyedPackage javaVMDestroyedPackage; JavaVMPresentNotificationPackage javaVMPresentNotificationPackage; // Event contents packages PropertyCaretChangePackage propertyCaretChangePackage; PropertyDescriptionChangePackage propertyDescriptionChangePackage; PropertyNameChangePackage propertyNameChangePackage; PropertySelectionChangePackage propertySelectionChangePackage; PropertyStateChangePackage propertyStateChangePackage; PropertyTextChangePackage propertyTextChangePackage; PropertyValueChangePackage propertyValueChangePackage; PropertyVisibleDataChangePackage propertyVisibleDataChangePackage; PropertyChildChangePackage propertyChildChangePackage; PropertyActiveDescendentChangePackage propertyActiveDescendentChangePackage; PropertyTableModelChangePackage propertyTableModelChangePackage; JavaShutdownPackage JavaShutdown; FocusGainedPackage focusGained; FocusLostPackage focusLost; CaretUpdatePackage caretUpdate; MouseClickedPackage mouseClicked; MouseEnteredPackage mouseEntered; MouseExitedPackage mouseExited; MousePressedPackage mousePressed; MouseReleasedPackage mouseReleased; MenuCanceledPackage menuCanceled; MenuDeselectedPackage menuDeselected; MenuSelectedPackage menuSelected; PopupMenuCanceledPackage popupMenuCanceled; PopupMenuWillBecomeInvisiblePackage popupMenuWillBecomeInvisible; PopupMenuWillBecomeVisiblePackage popupMenuWillBecomeVisible; } JavaInitiatedPackages; /** * Union of all Windows-initiated package contents */ typedef union WindowsInitiatedPackagesTag { // Initial Rendezvous packages MemoryMappedFileCreatedPackage memoryMappedFileCreatedPackage; WindowsATCreatedPackage windowsATCreatedPackage; WindowsATDestroyedPackage windowsATDestroyedPackage; WindowsATPresentNotificationPackage windowsATPresentNotificationPackage; // Core packages ReleaseJavaObjectPackage releaseJavaObject; GetAccessBridgeVersionPackage getAccessBridgeVersion; // Window packages GetAccessibleContextFromHWNDPackage getAccessibleContextFromHWND; GetHWNDFromAccessibleContextPackage getHWNDFromAccessibleContext; // AccessibleContext packages GetAccessibleContextAtPackage getAccessibleContextAt; GetAccessibleContextWithFocusPackage getAccessibleContextWithFocus; GetAccessibleContextInfoPackage getAccessibleContextInfo; GetAccessibleChildFromContextPackage getAccessibleChildFromContext; GetAccessibleParentFromContextPackage getAccessibleParentFromContext; // AccessibleText packages GetAccessibleTextInfoPackage getAccessibleTextInfo; GetAccessibleTextItemsPackage getAccessibleTextItems; GetAccessibleTextSelectionInfoPackage getAccessibleTextSelectionInfo; GetAccessibleTextAttributeInfoPackage getAccessibleTextAttributeInfo; GetAccessibleTextRectInfoPackage getAccessibleTextRectInfo; GetAccessibleTextLineBoundsPackage getAccessibleTextLineBounds; GetAccessibleTextRangePackage getAccessibleTextRange; // AccessibleValue packages GetCurrentAccessibleValueFromContextPackage getCurrentAccessibleValueFromContext; GetMaximumAccessibleValueFromContextPackage getMaximumAccessibleValueFromContext; GetMinimumAccessibleValueFromContextPackage getMinimumAccessibleValueFromContext; // AccessibleSelection packages AddAccessibleSelectionFromContextPackage addAccessibleSelectionFromContext; ClearAccessibleSelectionFromContextPackage clearAccessibleSelectionFromContext; GetAccessibleSelectionFromContextPackage getAccessibleSelectionFromContext; GetAccessibleSelectionCountFromContextPackage getAccessibleSelectionCountFromContext; IsAccessibleChildSelectedFromContextPackage isAccessibleChildSelectedFromContext; RemoveAccessibleSelectionFromContextPackage removeAccessibleSelectionFromContext; SelectAllAccessibleSelectionFromContextPackage selectAllAccessibleSelectionFromContext; // Event Notification Registration packages AddJavaEventNotificationPackage addJavaEventNotification; RemoveJavaEventNotificationPackage removeJavaEventNotification; AddAccessibilityEventNotificationPackage addAccessibilityEventNotification; RemoveAccessibilityEventNotificationPackage removeAccessibilityEventNotification; // AccessibleTable GetAccessibleTableInfoPackage _getAccessibleTableInfo; GetAccessibleTableCellInfoPackage _getAccessibleTableCellInfo; GetAccessibleTableRowHeaderPackage _getAccessibleTableRowHeader; GetAccessibleTableColumnHeaderPackage _getAccessibleTableColumnHeader; GetAccessibleTableRowDescriptionPackage _getAccessibleTableRowDescription; GetAccessibleTableColumnDescriptionPackage _getAccessibleTableColumnDescription; GetAccessibleTableRowSelectionCountPackage _getAccessibleTableRowSelectionCount; IsAccessibleTableRowSelectedPackage _isAccessibleTableRowSelected; GetAccessibleTableRowSelectionsPackage _getAccessibleTableRowSelections; GetAccessibleTableColumnSelectionCountPackage _getAccessibleTableColumnSelectionCount; IsAccessibleTableColumnSelectedPackage _isAccessibleTableColumnSelected; GetAccessibleTableColumnSelectionsPackage _getAccessibleTableColumnSelections; GetAccessibleTableRowPackage _getAccessibleTableRow; GetAccessibleTableColumnPackage _getAccessibleTableColumn; GetAccessibleTableIndexPackage _getAccessibleTableIndex; // AccessibleRelationSet GetAccessibleRelationSetPackage _getAccessibleRelationSet; // Accessible KeyBindings, Icons and Actions GetAccessibleKeyBindingsPackage _getAccessibleKeyBindings; GetAccessibleIconsPackage _getAccessibleIcons; GetAccessibleActionsPackage _getAccessibleActions; DoAccessibleActionsPackage _doAccessibleActions; IsSameObjectPackage _isSameObject; // utility methods SetTextContentsPackage _setTextContents; GetParentWithRolePackage _getParentWithRole; GetTopLevelObjectPackage _getTopLevelObject; GetParentWithRoleElseRootPackage _getParentWithRoleElseRoot; GetObjectDepthPackage _getObjectDepth; GetActiveDescendentPackage _getActiveDescendent; // Additional methods for Teton GetVirtualAccessibleNamePackage _getVirtualAccessibleName; RequestFocusPackage _requestFocus; SelectTextRangePackage _selectTextRange; GetTextAttributesInRangePackage _getTextAttributesInRange; GetVisibleChildrenCountPackage _getVisibleChildrenCount; GetVisibleChildrenPackage _getVisibleChildren; SetCaretPositionPackage _setCaretPosition; } WindowsInitiatedPackages; #ifdef __cplusplus } #endif #endif