зеркало из https://github.com/mozilla/pjs.git
351 строка
11 KiB
Plaintext
351 строка
11 KiB
Plaintext
/*************************************************************************
|
|
*
|
|
* File Name (Accessible2.idl)
|
|
*
|
|
* IAccessible2 IDL Specification
|
|
*
|
|
* Copyright (c) IBM Corp. 2007
|
|
* Copyright (c) Sun Microsystems, Inc. 2000, 2006
|
|
*
|
|
* This library is free software; you can redistribute it and/or
|
|
* modify it under the terms of the GNU Lesser General Public
|
|
* License version 2.1, as published by the Free Software Foundation; either
|
|
* version 2.1 of the License, or (at your option) any later version.
|
|
*
|
|
* This library 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
|
|
* Lesser General Public License for more details.
|
|
*
|
|
* You should have received a copy of the GNU Lesser General Public
|
|
* License along with this library; if not, write to the Free Software
|
|
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02110-1301 USA
|
|
*
|
|
************************************************************************/
|
|
|
|
/** @mainpage
|
|
|
|
@section _interfaces Interfaces
|
|
IAccessible2\n
|
|
IAccessibleAction\n
|
|
IAccessibleApplication\n
|
|
IAccessibleComponent\n
|
|
IAccessibleHypertext\n
|
|
IAccessibleHyperlink\n
|
|
IAccessibleImage\n
|
|
IAccessibleRelation\n
|
|
IAccessibleTable\n
|
|
IAccessibleText\n
|
|
IAccessibleEditableText\n
|
|
IAccessibleValue
|
|
|
|
@section _structs Structs
|
|
IA2Locale\n
|
|
IA2TableModelChange\n
|
|
IA2TextSegment
|
|
|
|
@section _enums Enums
|
|
::IA2CoordinateType values define the requested coordinate type (screen or parent window).\n
|
|
::IA2EventID values identify events.\n
|
|
::IA2Role values define roles.\n
|
|
::IA2ScrollType values define where to place an object or substring on the screen.\n
|
|
::IA2TableModelChangeType values describe the kinds of changes made to a table (insert, delete, update).\n
|
|
::IA2TextBoundaryType values define the requested text unit (character, word, sentence, line, paragraph).
|
|
|
|
@section _constants Constants
|
|
@ref grpRelations\n
|
|
@ref grpStates\n
|
|
|
|
@section _license License
|
|
@ref _licensePage "LGPL"
|
|
|
|
@page _licensePage License
|
|
IAccessible2 IDL Specification
|
|
|
|
Copyright (c) IBM Corp. 2006\n
|
|
Copyright (c) Sun Microsystems, Inc. 2000, 2006
|
|
|
|
This library is free software; you can redistribute it and/or
|
|
modify it under the terms of the GNU Lesser General Public
|
|
License version 2.1, as published by the Free Software Foundation; either
|
|
version 2.1 of the License, or (at your option) any later version.
|
|
|
|
This library 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
|
|
Lesser General Public License for more details.
|
|
|
|
You should have received a copy of the GNU Lesser General Public
|
|
License along with this library; if not, write to the Free Software
|
|
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02110-1301 USA
|
|
|
|
You may also refer to http://www.gnu.org/licenses/lgpl.html
|
|
|
|
**/
|
|
|
|
import "objidl.idl";
|
|
import "oaidl.idl";
|
|
import "oleacc.idl";
|
|
import "AccessibleRelation.idl";
|
|
import "AccessibleStates.idl";
|
|
import "IA2CommonTypes.idl";
|
|
|
|
/// A structure defining the locale of an accessible object.
|
|
typedef struct {
|
|
BSTR language; ///< ISO 639-1 Alpha-2 two character language code
|
|
BSTR country; ///< ISO 3166-1 Alpha-2 two character country code
|
|
BSTR variant; ///< Application specific variant of the locale
|
|
} IA2Locale;
|
|
|
|
/** This interface must always be provided for objects that support some
|
|
portion of the collection of the IAccessible2 interfaces.
|
|
|
|
IAccessible2 is a subclass of MSAA's IAccessible. This is a matter of
|
|
convenience, i.e. an IAccessible2 is an IAccessible so MSAA methods can be
|
|
easily accessed. None of MSAA's IAccessible methods are overridden or extended.
|
|
*/
|
|
[object, uuid(E89F726E-C4F4-4c19-BB19-B647D7FA8478)]
|
|
interface IAccessible2 : IAccessible
|
|
{
|
|
|
|
/** @brief Returns the number of accessible relations for this object.
|
|
@param [out] nRelations
|
|
*/
|
|
[propget] HRESULT nRelations
|
|
(
|
|
[out, retval] long *nRelations
|
|
);
|
|
|
|
/** @brief Returns one accessible relation for this object.
|
|
@param [in] relationIndex
|
|
0-based
|
|
@param [out] relation
|
|
*/
|
|
[propget] HRESULT relation
|
|
(
|
|
[in] long relationIndex,
|
|
[out, retval] IAccessibleRelation **relation
|
|
);
|
|
|
|
/** @brief Returns multiple accessible relations for this object.
|
|
@param [in] maxRelations
|
|
maximum number of relations to get
|
|
@param [out] relation
|
|
array of accessible relation objects
|
|
@param [out] nRelations
|
|
length of array (not more than maxRelations)
|
|
*/
|
|
[propget] HRESULT relations
|
|
(
|
|
[in] long maxRelations,
|
|
[out, size_is(maxRelations), length_is(*nRelations)]
|
|
IAccessibleRelation **relation,
|
|
[out, retval] long *nRelations
|
|
);
|
|
|
|
/** @brief Returns the role of an IAccessible2 object.
|
|
|
|
Note: For convenience MSAA roles are also passed through this method so the
|
|
AT doesn't have to also fetch roles through MSAA's get_accRole.
|
|
@param [out] role
|
|
The role of an IAccessible2 object.
|
|
*/
|
|
HRESULT role
|
|
(
|
|
[out, retval] long *role
|
|
);
|
|
|
|
/** @brief Makes an object visible on the screen.
|
|
@param [in] scrollType
|
|
Defines where the object should be placed on the screen.
|
|
*/
|
|
HRESULT scrollTo
|
|
(
|
|
[in] enum IA2ScrollType scrollType
|
|
);
|
|
|
|
/** @brief Moves the top left of an object to a specified location.
|
|
|
|
Note: S_FALSE is returned if the object is already at the specified location.
|
|
@param [in] coordinateType
|
|
Specifies whether the coordinates are relative to the screen or the parent object.
|
|
@param [in] x
|
|
Defines the x coordinate.
|
|
@param [in] y
|
|
Defines the y coordinate.
|
|
*/
|
|
HRESULT scrollToPoint
|
|
(
|
|
[in] enum IA2CoordinateType coordinateType,
|
|
[in] long x,
|
|
[in] long y
|
|
);
|
|
|
|
/** @brief Returns grouping information.
|
|
|
|
Used for tree items, list items, tab panel labels, radio buttons, etc.
|
|
Also used for collectons of non-text objects.
|
|
|
|
@param [out] groupLevel
|
|
0-based
|
|
@param [out] similarItemsInGroup
|
|
1-based
|
|
@param [out] positionInGroup
|
|
0-based
|
|
*/
|
|
[propget] HRESULT groupPosition
|
|
(
|
|
[out] long *groupLevel,
|
|
[out] long *similarItemsInGroup,
|
|
[out, retval] long *positionInGroup
|
|
);
|
|
|
|
/** @brief Returns the bit strip containing any IAccessible2 states.
|
|
@param [out] states
|
|
*/
|
|
[propget] HRESULT states
|
|
(
|
|
[out, retval] AccessibleStates *states
|
|
);
|
|
|
|
/** @brief Returns the extended role.
|
|
|
|
An extended role is a role which is dynamically generated by the application.
|
|
It is not predefined by the IAccessible2 specification.
|
|
|
|
@param [out] extendedRole
|
|
*/
|
|
[propget] HRESULT extendedRole
|
|
(
|
|
[out, retval] BSTR *extendedRole
|
|
);
|
|
|
|
/** @brief Returns the localized extended role.
|
|
@param [out] localizedExtendedRole
|
|
*/
|
|
[propget] HRESULT localizedExtendedRole
|
|
(
|
|
[out, retval] BSTR *localizedExtendedRole
|
|
);
|
|
|
|
/** @brief Returns the number of extended states.
|
|
@param [out] nExtendedStates
|
|
*/
|
|
[propget] HRESULT nExtendedStates
|
|
(
|
|
[out, retval] long *nExtendedStates
|
|
);
|
|
|
|
/** @brief Returns the extended states (array of strings).
|
|
|
|
An extended state is a state which is dynamically generated by the application.
|
|
It is not predefined by the IAccessible2 specification.
|
|
|
|
@param [in] maxExtendedStates
|
|
@param [out] extendedStates
|
|
@param [out] nExtendedStates
|
|
*/
|
|
[propget] HRESULT extendedStates
|
|
(
|
|
[in] long maxExtendedStates,
|
|
[out, size_is(,maxExtendedStates), length_is(,*nExtendedStates)] BSTR **extendedStates,
|
|
[out, retval] long *nExtendedStates
|
|
);
|
|
|
|
/** @brief Returns the localized extended states (array of strings).
|
|
@param [in] maxLocalizedExtendedStates
|
|
@param [out] localizedExtendedStates
|
|
@param [out] nLocalizedExtendedStates
|
|
*/
|
|
[propget] HRESULT localizedExtendedStates
|
|
(
|
|
[in] long maxLocalizedExtendedStates,
|
|
[out, size_is(,maxLocalizedExtendedStates), length_is(,*nLocalizedExtendedStates)] BSTR **localizedExtendedStates,
|
|
[out, retval] long *nLocalizedExtendedStates
|
|
);
|
|
|
|
/** @brief Returns the unique ID.
|
|
|
|
The uniqueID is an identifier for this object, is unique within the
|
|
current window, and remains the same for the lifetime of the accessible
|
|
object. This is the same value that is passed in the idChild parameter of
|
|
the WinEventProc callback function for any events that occur on the object,
|
|
and is typically a negative number. Using negative numbers prevents the ID
|
|
from conflicting with the use of positive numbers that might possibly be
|
|
used to indicate a direct child N of the window's root accessible object,
|
|
and thus the implementation of get_accChild() can differentiate between
|
|
requests for direct child N vs. a descendant lower in the hierarchy with a
|
|
given uniqueID. This is important because get_accChild() is used by
|
|
AccessibleObjectFromEvent() to retrieve the accessible object which fired
|
|
the event by starting from the window's root accessible object.
|
|
|
|
This value is provided so the AT can have access to it even when not
|
|
handling an event for the object.
|
|
|
|
An example of when this value is useful if the AT wants to build a cache.
|
|
The AT could cache the uniqueIDs in addition to other data being cached.
|
|
When an event is fired the AT could map that to its internal model. Thus,
|
|
if there's a REORDER/SHOW/HIDE event the AT knows which part of the internal
|
|
structure has been invalidated and can refetch just that part.
|
|
|
|
This value can also be used by and AT to determine when the current control
|
|
has changed. If the role is the same for two controls that are adjacent in
|
|
the tab order, this can be used to detect the new control.
|
|
|
|
Another use of this value by an AT is to identify when a grouping object has
|
|
changed, e.g. when moving from a radio button in one group to a radio button in a
|
|
different group.
|
|
|
|
@param [out] uniqueID
|
|
*/
|
|
[propget] HRESULT uniqueID
|
|
(
|
|
[out, retval] long *uniqueID
|
|
);
|
|
|
|
/** @brief Returns the window handle for the parent window which contains this object.
|
|
|
|
This is the same window handle which will be passed for any events that occur on the
|
|
object, but is cached in the accessible object for use when it would be helpful to
|
|
access the window handle in cases where an event isn't fired on this object.
|
|
|
|
A use case is when a screen reader is grabbing an entire web page on a page load.
|
|
Without the availability of windowHandle, the AT would have to get the window handle
|
|
by using WindowFromAccessibleObject on each IAccessible, which is slow because it's
|
|
implemented by oleacc.dll as a loop which crawls up the ancestor chain and looks for
|
|
a ROLE_WINDOW object, mapping that back to a window handle.
|
|
|
|
@param [out] windowHandle
|
|
*/
|
|
[propget] HRESULT windowHandle
|
|
(
|
|
[out, retval] HWND *windowHandle
|
|
);
|
|
|
|
/** @brief Returns the index of this object in its parent object.
|
|
@param [out] indexInParent
|
|
*/
|
|
[propget] HRESULT indexInParent
|
|
(
|
|
[out, retval] long *indexInParent
|
|
);
|
|
|
|
/** @brief Returns the IA2Locale of the accessible object.
|
|
@param [out] locale
|
|
*/
|
|
[propget] HRESULT locale
|
|
(
|
|
[out, retval] IA2Locale *locale
|
|
);
|
|
|
|
/** @brief Returns the attributes specific to this IAccessible2 object, such as a cell's formula.
|
|
@param [out] attributes
|
|
*/
|
|
[propget] HRESULT attributes
|
|
(
|
|
[out, retval] BSTR *attributes
|
|
);
|
|
|
|
}
|
|
|