You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

2216 lines
75 KiB
C

/*
* Copyright (c) 2005, 2014, Oracle and/or its affiliates. All rights reserved.
* ORACLE PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*/
/*
* Header file for packages of paramaters passed between Java Accessibility
* and native Assistive Technologies
*/
#ifndef __AccessBridgePackages_H__
#define __AccessBridgePackages_H__
#include <jni.h>
#include <windows.h>
#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