diff options
author | dmazzoni@chromium.org <dmazzoni@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2014-05-06 16:27:52 +0000 |
---|---|---|
committer | dmazzoni@chromium.org <dmazzoni@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2014-05-06 16:27:52 +0000 |
commit | 0fbfc4984b0f65818caa4ddcf69199fd6cad3a8c (patch) | |
tree | c9585e3ac5a50b22cd32aa6990edcd6b97a889b3 | |
parent | 142235a7774acd337761bf2b542230bab246e3c6 (diff) | |
download | chromium_src-0fbfc4984b0f65818caa4ddcf69199fd6cad3a8c.zip chromium_src-0fbfc4984b0f65818caa4ddcf69199fd6cad3a8c.tar.gz chromium_src-0fbfc4984b0f65818caa4ddcf69199fd6cad3a8c.tar.bz2 |
Update iaccessible2 api to version 1.3.
This file was downloaded from:
http://accessibility.linuxfoundation.org/a11yspecs/ia2/ia2_api_all.idl
BUG=369903
Review URL: https://codereview.chromium.org/262793007
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@268531 0039d316-1c4b-4281-b951-d872f2087c98
-rw-r--r-- | third_party/iaccessible2/README.chromium | 3 | ||||
-rw-r--r-- | third_party/iaccessible2/ia2_api_all.idl | 1137 |
2 files changed, 906 insertions, 234 deletions
diff --git a/third_party/iaccessible2/README.chromium b/third_party/iaccessible2/README.chromium index c224897..6ce0cbd 100644 --- a/third_party/iaccessible2/README.chromium +++ b/third_party/iaccessible2/README.chromium @@ -1,8 +1,9 @@ Name: IAccessible2 COM interfaces for accessibility Short Name: IAccessible2 URL: http://www.linuxfoundation.org/collaborate/workgroups/accessibility/iaccessible2 -Version: unknown +Version: 1.3 License: BSD +Security Critical: yes Description: This directory contains the IAccessible2 API, a set of COM interfaces diff --git a/third_party/iaccessible2/ia2_api_all.idl b/third_party/iaccessible2/ia2_api_all.idl index 564c920..729ed26 100644 --- a/third_party/iaccessible2/ia2_api_all.idl +++ b/third_party/iaccessible2/ia2_api_all.idl @@ -1,10 +1,65 @@ /************************************************************************* * + * File Name (api_all_headers.idl) + * + * IAccessible2 IDL Specification + * + * Copyright (c) 2013 Linux Foundation + * All rights reserved. + * + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following + * disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * 3. Neither the name of the Linux Foundation nor the names of its + * contributors may be used to endorse or promote products + * derived from this software without specific prior written + * permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND + * CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, + * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR + * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, + * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * This BSD License conforms to the Open Source Initiative "Simplified + * BSD License" as published at: + * http://www.opensource.org/licenses/bsd-license.php + * + * IAccessible2 is a trademark of the Linux Foundation. The IAccessible2 + * mark may be used in accordance with the Linux Foundation Trademark + * Policy to indicate compliance with the IAccessible2 specification. + * + ************************************************************************/ + +import "objidl.idl"; +import "oaidl.idl"; +import "oleacc.idl"; + +/************************************************************************* + * * File Name (IA2CommonTypes.idl) * * IAccessible2 IDL Specification * - * Copyright (c) 2007, 2010 Linux Foundation + * Copyright (c) 2007, 2013 Linux Foundation * Copyright (c) 2006 IBM Corporation * Copyright (c) 2000, 2006 Sun Microsystems, Inc. * All rights reserved. @@ -195,7 +250,7 @@ typedef struct IA2TableModelChange { * * IAccessible2 IDL Specification * - * Copyright (c) 2007, 2010 Linux Foundation + * Copyright (c) 2007, 2013 Linux Foundation * Copyright (c) 2006 IBM Corporation * Copyright (c) 2000, 2006 Sun Microsystems, Inc. * All rights reserved. @@ -242,9 +297,9 @@ typedef struct IA2TableModelChange { * ************************************************************************/ -import "objidl.idl"; -import "oaidl.idl"; -import "oleacc.idl"; + + + /** @defgroup grpRelations Relations Use the following constants to compare against the BSTRs returned by @@ -252,6 +307,20 @@ import "oleacc.idl"; */ ///@{ +/** The target object is the containing application object. */ +const WCHAR *const IA2_RELATION_CONTAINING_APPLICATION = L"containingApplication"; + +/** The target object is the containing document object. The target object implements + the IAccessibleDocument interface. +*/ +const WCHAR *const IA2_RELATION_CONTAINING_DOCUMENT = L"containingDocument"; + +/** The target object is the containing tab pane object. */ +const WCHAR *const IA2_RELATION_CONTAINING_TAB_PANE = L"containingTabPane"; + +/** The target object is the containing window object. */ +const WCHAR *const IA2_RELATION_CONTAINING_WINDOW = L"containingWindow"; + /** Some attribute of this object is affected by a target object. */ const WCHAR *const IA2_RELATION_CONTROLLED_BY = L"controlledBy"; @@ -302,23 +371,39 @@ const WCHAR *const IA2_RELATION_LABELLED_BY = L"labelledBy"; */ const WCHAR *const IA2_RELATION_MEMBER_OF = L"memberOf"; -/** This object is a child of a target object. */ +/** The target object is the next object in the tab order. */ +const WCHAR *const IA2_RELATION_NEXT_TABBABLE = L"nextTabbable"; + +/** This object is a logical child of a target object. This relation is the reciprocal + of the IA2_RELATION_NODE_PARENT_OF relation. In some cases an application's accessible + tree is such that objects can be in a logical parent-child relationship which is + different from the hierarchy of the accessible tree. */ const WCHAR *const IA2_RELATION_NODE_CHILD_OF = L"nodeChildOf"; +/** This object is a logical parent of a target object. This relation is the reciprocal + of the IA2_RELATION_NODE_CHILD_OF relation. In some cases an application's accessible + tree is such that objects can be in a logical parent-child relationship which is + different from the hierarchy of the accessible tree. */ +const WCHAR *const IA2_RELATION_NODE_PARENT_OF = L"nodeParentOf"; + /** This object is a parent window of the target object. */ const WCHAR *const IA2_RELATION_PARENT_WINDOW_OF = L"parentWindowOf"; /** This object is a transient component related to the target object. - When this object is activated the target object doesn't loose focus. + When this object is activated the target object doesn't lose focus. */ const WCHAR *const IA2_RELATION_POPUP_FOR = L"popupFor"; +/** The target object is the previous object in the tab order. */ +const WCHAR *const IA2_RELATION_PREVIOUS_TABBABLE = L"previousTabbable"; + /** This object is a sub window of a target object. */ const WCHAR *const IA2_RELATION_SUBWINDOW_OF = L"subwindowOf"; ///@} -/// This interface gives access to an object's set of relations. +/** This interface gives access to an object's set of relations. +*/ [object, uuid(7CDF86EE-C3DA-496a-BDA4-281B336E1FDC)] interface IAccessibleRelation : IUnknown { @@ -355,8 +440,7 @@ interface IAccessibleRelation : IUnknown 0 based index @param [out] target @retval S_OK - @retval S_FALSE if there is nothing to return, [out] value is NULL - @retval E_INVALIDARG if bad [in] passed, [out] value is NULL + @retval E_INVALIDARG if bad [in] passed @note Use QueryInterface to get IAccessible2. */ [propget] HRESULT target @@ -376,7 +460,7 @@ interface IAccessibleRelation : IUnknown @param [out] nTargets actual number of targets in the returned array (not more than maxTargets) @retval S_OK - @retval S_FALSE if there is nothing to return, nTargets is set to 0 + @retval E_INVALIDARG if bad [in] passed, e.g. a negative value */ [propget] HRESULT targets ( @@ -393,7 +477,7 @@ interface IAccessibleRelation : IUnknown * * IAccessible2 IDL Specification * - * Copyright (c) 2007, 2010 Linux Foundation + * Copyright (c) 2007, 2013 Linux Foundation * Copyright (c) 2006 IBM Corporation * Copyright (c) 2000, 2006 Sun Microsystems, Inc. * All rights reserved. @@ -440,9 +524,34 @@ interface IAccessibleRelation : IUnknown * ************************************************************************/ -import "objidl.idl"; -import "oaidl.idl"; -import "oleacc.idl"; + + + + +/** This enum defines values which are predefined actions for use when implementing + support for media. + + This enum is used when specifying an action for IAccessibleAction::doAction. +*/ + +enum IA2Actions { + IA2_ACTION_OPEN = -1, /**< Used to inform the server that the client will + signal via IA2_ACTION_COMPLETE when it has consumed + the content provided by the object. This action + allows the object's server to wait for all clients + to signal their readiness for additional content. + Any form of content generation that requires + synchronization with an AT would require use of this + action. One example is the generation of text describing + visual content not obvious from a video's sound track. + In this scenario the Text to Speech or Braille output + may take more time than the related length of silence + in the video's sound track. */ + IA2_ACTION_COMPLETE = -2, /**< Used by the client to inform the server that it has + consumed the most recent content provided by this object. */ + IA2_ACTION_CLOSE = -3 /**< Used to inform the server that the client no longer + requires synchronization. */ +}; /** @brief This interface gives access to actions that can be executed for accessible objects. @@ -486,7 +595,9 @@ interface IAccessibleAction : IUnknown 0 based index specifying the action to perform. If it lies outside the valid range no action is performed. @retval S_OK - @retval E_INVALIDARG if bad [in] passed + @retval S_FALSE if action could not be performed + @retval E_INVALIDARG if bad [in] passed + @note If implementing support for media, refer to the predefined constants in the ::IA2Actions enum. */ HRESULT doAction ( @@ -501,7 +612,7 @@ interface IAccessibleAction : IUnknown The returned value is a localized string of the specified action. @retval S_OK @retval S_FALSE if there is nothing to return, [out] value is NULL - @retval E_INVALIDARG if bad [in] passed, [out] value is NULL + @retval E_INVALIDARG if bad [in] passed */ [propget] HRESULT description ( @@ -536,12 +647,12 @@ interface IAccessibleAction : IUnknown "Special Consideration when using Arrays" for more details. @param [out] keyBindings An array of BSTRs, allocated by the server, one for each key binding. - Free it with CoTaskMemFree. + The client must free it with CoTaskMemFree. @param [out] nBindings The number of key bindings returned; the size of the returned array. @retval S_OK - @retval S_FALSE if there are no relations, [out] values are NULL and 0 respectively - @retval E_INVALIDARG if bad [in] passed, [out] values are NULL and 0 respectively + @retval S_FALSE if there are no key bindings, [out] values are NULL and 0 respectively + @retval E_INVALIDARG if bad [in] passed */ [propget] HRESULT keyBinding ( @@ -557,7 +668,7 @@ interface IAccessibleAction : IUnknown @param [out] name @retval S_OK @retval S_FALSE if there is nothing to return, [out] value is NULL - @retval E_INVALIDARG if bad [in] passed, [out] value is NULL + @retval E_INVALIDARG if bad [in] passed */ [propget] HRESULT name ( @@ -571,7 +682,7 @@ interface IAccessibleAction : IUnknown @param [out] localizedName @retval S_OK @retval S_FALSE if there is nothing to return, [out] value is NULL - @retval E_INVALIDARG if bad [in] passed, [out] value is NULL + @retval E_INVALIDARG if bad [in] passed */ [propget] HRESULT localizedName ( @@ -586,7 +697,7 @@ interface IAccessibleAction : IUnknown * * IAccessible2 IDL Specification * - * Copyright (c) 2007, 2010 Linux Foundation + * Copyright (c) 2007, 2013 Linux Foundation * Copyright (c) 2006 IBM Corporation * Copyright (c) 2000, 2006 Sun Microsystems, Inc. * All rights reserved. @@ -633,7 +744,7 @@ interface IAccessibleAction : IUnknown * ************************************************************************/ -import "objidl.idl"; + /** Collection of roles @@ -683,10 +794,9 @@ enum IA2Role { */ IA2_ROLE_DIRECTORY_PANE, - /** An editable text object in a toolbar. - <BR><B>Note:</B> This role has been deprecated. The edit bar role was meant - for a text area in a tool bar. However, to detect a text area in a tool bar - the AT can query the parent. + /** An editable text object in a toolbar. <b>Deprecated.</b> + The edit bar role was meant for a text area in a tool bar. However, to detect + a text area in a tool bar the AT can query the parent. */ IA2_ROLE_EDITBAR, @@ -739,7 +849,7 @@ enum IA2Role { */ IA2_ROLE_HEADER, - /// Heading. Use the IAccessible2::attributes heading-level attribute to determine the heading level. + /// Heading. Use the IAccessible2::attributes level attribute to determine the heading level. IA2_ROLE_HEADING, /// A small fixed size picture, typically used to decorate components. @@ -774,7 +884,9 @@ enum IA2Role { */ IA2_ROLE_LAYERED_PANE, - /// An embedded note which is not visible until activated. + /** A section whose content is parenthetic or ancillary to the main content + of the resource. + */ IA2_ROLE_NOTE, /** A specialized pane whose primary use is inside a dialog. @@ -860,7 +972,18 @@ enum IA2Role { the scroll bars, the contents of the viewport can change. Also refer to ::IA2_ROLE_SCROLL_PANE. */ - IA2_ROLE_VIEW_PORT + IA2_ROLE_VIEW_PORT, + + /** An object containing content which is complementary to the main content of + a document, but remains meaningful when separated from the main content. There + are various types of content that would appropriately have this role. For example, + in the case where content is delivered via a web portal to a web browser, this may + include but not be limited to show times, current weather, related articles, or + stocks to watch. The complementary role indicates that contained content is relevant + to the main content. If the complementary content is completely separable main + content, it may be appropriate to use a more general role. + */ + IA2_ROLE_COMPLEMENTARY_CONTENT }; /************************************************************************* @@ -916,7 +1039,7 @@ enum IA2Role { * ************************************************************************/ -import "objidl.idl"; + typedef long AccessibleStates; @@ -957,7 +1080,12 @@ IA2_STATE_ARMED = 0x2, /** Indicates the user interface object corresponding to this object no longer exists. */ IA2_STATE_DEFUNCT = 0x4, -/** Indicates the user can change the contents of this object. */ +/** An object with this state has a caret and implements the IAccessibleText interface. + + Such fields may be read-only, so STATE_SYSTEM_READONLY is valid in combination + with IA2_STATE_EDITABLE. + +*/ IA2_STATE_EDITABLE = 0x8, /** Indicates the orientation of this object is horizontal. */ @@ -1043,7 +1171,28 @@ IA2_STATE_SUPPORTS_AUTOCOMPLETION = 0x8000, IA2_STATE_TRANSIENT = 0x10000, /** Indicates the orientation of this object is vertical. */ -IA2_STATE_VERTICAL = 0x20000 +IA2_STATE_VERTICAL = 0x20000, + +/** Indicates this object is checkable. + + The standard checkable objects are check boxes, radio buttons, check box menu + items, radio menu items, and toggle buttons. Since assistive technology will + determine that these objects are checkable via the object's role the checkable + state is not required. However, this state is necessary in those cases where + an object has a role which is not one of the previously mentioned roles. An + example is a table cell which indicates whether or not an email has an attachment, + whether or not an mail is considered spam, and whether or not an email has been read. + */ +IA2_STATE_CHECKABLE = 0x40000, + +/** Indicates this object is pinned. + + This state indicates that an object is fixed at a certain location. One example + is a browser tab that when pinned cannot be moved until unpinned. Another example + is a movable or floating object that when pinned remains in its pinned location + until being unpinned. + */ +IA2_STATE_PINNED = 0x80000 }; /************************************************************************* @@ -1052,7 +1201,7 @@ IA2_STATE_VERTICAL = 0x20000 * * IAccessible2 IDL Specification * - * Copyright (c) 2007, 2010 Linux Foundation + * Copyright (c) 2007, 2013 Linux Foundation * Copyright (c) 2006 IBM Corporation * Copyright (c) 2000, 2006 Sun Microsystems, Inc. * All rights reserved. @@ -1103,18 +1252,22 @@ IA2_STATE_VERTICAL = 0x20000 @section _interfaces Interfaces IAccessible2\n + IAccessible2_2\n IAccessibleAction\n IAccessibleApplication\n IAccessibleComponent\n + IAccessibleDocument\n + IAccessibleEditableText\n IAccessibleHypertext\n + IAccessibleHypertext2\n IAccessibleHyperlink\n IAccessibleImage\n IAccessibleRelation\n - IAccessibleTable [deprecated]\n + IAccessibleTable [Deprecated]\n IAccessibleTable2\n IAccessibleTableCell\n IAccessibleText\n - IAccessibleEditableText\n + IAccessibleText2\n IAccessibleValue @section _structs Structs @@ -1123,6 +1276,7 @@ IA2_STATE_VERTICAL = 0x20000 IA2TextSegment @section _enums Enums + ::IA2Actions values are predefined actions for use when implementing support for HTML5 media.\n ::IA2CoordinateType values define the requested coordinate type (screen or parent window).\n ::IA2EventID values identify events.\n ::IA2Role values defines roles which are in addition to the existing MSAA roles.\n @@ -1142,7 +1296,7 @@ IA2_STATE_VERTICAL = 0x20000 @page _licensePage BSD License %IAccessible2 IDL Specification - Copyright (c) 2007, 2010 Linux Foundation\n + Copyright (c) 2007, 2013 Linux Foundation\n Copyright (c) 2006 IBM Corporation\n Copyright (c) 2000, 2006 Sun Microsystems, Inc.\n All rights reserved. @@ -1194,7 +1348,7 @@ IA2_STATE_VERTICAL = 0x20000 @ref _memory\n @ref _arrayConsideration\n @ref _indexes\n - @ref _enums\n + @ref _enumBase\n @ref _specialOffsets\n @ref _dicoveringInterfaces\n @ref _changingInterfaces\n @@ -1205,9 +1359,9 @@ IA2_STATE_VERTICAL = 0x20000 @ref _trademark @section _errors Error Handling - HRESULT values are defined by the Microsoft® Win32® API. For more information, refer to - <a href="http://msdn2.microsoft.com/en-us/library/bb401631.aspx">Interpreting HRESULT Values</a> - in MSDN®. + HRESULT values are defined by the Microsoft® Win32® API. For more information, refer to + <a href="http://msdn.microsoft.com/en-us/library/windows/desktop/aa378137%28v=vs.85%29.aspx"> + Interpreting HRESULT Values</a> in MSDN®. Note that the S_FALSE return value is considered a non-error value and the SUCCEEDED macro will return TRUE. S_FALSE is used when there is no failure @@ -1244,26 +1398,33 @@ IA2_STATE_VERTICAL = 0x20000 String: What are the rules for BSTR allocation and deallocation?</a> @subsection _arrayConsideration Special Consideration when using Arrays - There are several methods which return arrays. It is considered a best practice - for the client to allocate and free the arrays. This can be done for - IAccessible2::relations and IAccessibleRelation::targets. However, due to the - coding of the IDL for the remaining methods which return arrays, the server must - allocate the array and the client must free the array when no longer needed. - These methods are IAccessible2::extendedStates, IAccessible2::localizedExtendedStates, - IAccessibleAction::keyBinding, IAccessibleTable::selectedChildren, - IAccessibleTable::selectedColumns, and IAccessibleTable::selectedRows. For those - methods, the server must allocate both the top level array and any storage - associated with it, e.g. for BSTRs. The client must use CoTaskMemFree to free - the array and any BSTRs must be freed with SysFreeString. + There are several methods which return arrays. In the case of IAccessible2::relations + and IAccessibleRelation::targets the client must allocate and free the arrays. + + For the remaining methods which return arrays, the server must allocate the array + and the client must free the array when no longer needed. These methods are + IAccessible2::extendedStates, IAccessible2::localizedExtendedStates, + IAccessible2_2::relationTargetsOfType, IAccessibleAction::keyBinding, + IAccessibleHypertext2::hyperlinks, IAccessibleTable::selectedChildren, + IAccessibleTable::selectedColumns, IAccessibleTable::selectedRows, + IAccessibleTable2::selectedCells, IAccessibleTable2::selectedColumns, + IAccessibleTable2::selectedRows, IAccessibleTableCell::columnHeaderCells, + and IAccessibleTableCell::rowHeaderCells. + For those methods, the server must allocate both the top level array and any storage + associated with it, e.g. for BSTRs. The server must allocate the arrays with + CoTaskMemAlloc and any BSTRs with SysAllocString. The client must use CoTaskMemFree + to free the array and any BSTRs must be freed with SysFreeString. - Also, the IDL for those methods includes an extraneous [in] parameter for the - caller to specify the max size of the array. This parameter will be ignored by - the COM server. + Also, the IDL for IAccessible2::extendedStates, IAccessible2::localizedExtendedStates, + IAccessibleAction::keyBinding, IAccessibleTable::selectedChildren, + IAccessibleTable::selectedColumns, and IAccessibleTable::selectedRows includes an + extraneous [in] parameter for the caller to specify the max size of the array. + This parameter will be ignored by the COM server. @section _indexes Zero and One Based Indexes Unless otherwise specified all offsets and indexes are 0 based. - @section _enums Enums + @section _enumBase Enum Base Note that enums start at 0. @section _specialOffsets Special Offsets for use in the IAccessibleText and IAccessibleEditableText Methods @@ -1303,18 +1464,16 @@ IA2_STATE_VERTICAL = 0x20000 } @endcode - @section _changingInterfaces Changing between Accessible Interfaces - Note that developers must always implement MSAA's IAccessible and, if needed, some - of the interfaces in the set of IAccessible2 interfaces. Although the IAccessible2 - IDL is currently coded such that IAccessible2 is a subclass of MSAA's IAccessible, - none of MSAA's IAccessible methods are overridden or extended. In order to allow - future removal of the inheritance, Assistive Technologies (ATs) should not rely on - that inheritance. + @section _changingInterfaces Changing between Accessible Interfaces + Note that developers must always implement MSAA's IAccessible and, if needed, some + of the interfaces in the set of IAccessible2 interfaces. Although the IAccessible2 + IDL is coded such that IAccessible2 is a subclass of MSAA's IAccessible, none of + MSAA's IAccessible methods are redefined by IAccessible2. QueryService must be used to switch from a reference to an MSAA IAccessible interface to another interface. This has been - <a href="http://www.accessinteropalliance.org/docs/Introducing_IAccessibleEx.doc"> - documented by Microsoft</a> and the pertinent facts have been extracted below: + <a href="http://www.atia.org/files/public/Introducing_IAccessibleEx.doc"> + documented</a> and the pertinent facts have been extracted below: @par Why use QueryService instead of just using QueryInterface to get IAccessibleEx @@ -1387,9 +1546,9 @@ IA2_STATE_VERTICAL = 0x20000 **/ -import "objidl.idl"; -import "oaidl.idl"; -import "oleacc.idl"; + + + @@ -1404,13 +1563,15 @@ typedef struct IA2Locale { BSTR variant; ///< Application specific variant of the locale } IA2Locale; -/** This interface must always be provided for objects that support some +/** @brief This interface exposes the primary set of information about an + IAccessible2 enabled accessible object. + + This interface must always be provided for objects that support some portion of the collection of the %IAccessible2 interfaces. Please refer to @ref _changingInterfaces "Changing between Accessible Interfaces" for special considerations related to use of the MSAA IAccessible interface and the set of %IAccessible2 interfaces. - */ [object, uuid(E89F726E-C4F4-4c19-BB19-B647D7FA8478)] interface IAccessible2 : IAccessible @@ -1430,7 +1591,7 @@ interface IAccessible2 : IAccessible 0 based @param [out] relation @retval S_OK - @retval E_INVALIDARG if bad [in] passed, [out] value is NULL + @retval E_INVALIDARG if bad [in] passed */ [propget] HRESULT relation ( @@ -1449,6 +1610,7 @@ interface IAccessible2 : IAccessible actual number of relations in the returned array (not more than maxRelations) @retval S_OK @retval S_FALSE if there are no relations, nRelations is set to 0 + @note As a performant alternative, client code should consider using IAccessible2_2::relationTargetsOfType. */ [propget] HRESULT relations ( @@ -1518,16 +1680,19 @@ interface IAccessible2 : IAccessible 1 based, 0 indicates that this value is not applicable @param [out] positionInGroup 1 based, 0 indicates that this value is not applicable. This is an index - into the objects in the current group, not an index into all the objects - at the same group level. + into the objects in the current group, not an index into all the objects + at the same group level. @retval S_OK if at least one value is valid - @retval S_FALSE if no values are valid + @retval S_FALSE if no values are valid, [out] values are 0s @note This method is meant to describe the nature of an object's containment - structure. This is normally not implemented on a combo box to describe the nature + structure. It's exposed by trees, tree grids, nested lists, nested menus, + but not headings, which uses the level object attribute. It is also exposed + by radio buttons (with groupLevel == 0). + @note This is normally not implemented on a combo box to describe the nature of its contents. Normally an AT will get that information from its child list - object. However, in some cases when combo boxes are not able to be structured - such that the list is a child of the combo box, this method is implemented - on the combo box itself. ATs can use this interface if a child list is not found. + object. However, in some cases when non-edit combo boxes are not able to be structured + such that the list is a child of the combo box, this method is implemented on + the combo box itself. ATs can use this interface if a child list is not found. */ [propget] HRESULT groupPosition ( @@ -1591,7 +1756,7 @@ interface IAccessible2 : IAccessible This parameter is ignored. Refer to @ref _arrayConsideration "Special Consideration when using Arrays" for more details. @param [out] extendedStates - This array is allocated by the server. Free it with CoTaskMemFree. + This array is allocated by the server. The client must free it with CoTaskMemFree. @param [out] nExtendedStates The number of extended states returned; the size of the returned array. @retval S_OK @@ -1605,11 +1770,12 @@ interface IAccessible2 : IAccessible ); /** @brief Returns the localized extended states (array of strings). + @param [in] maxLocalizedExtendedStates This parameter is ignored. Refer to @ref _arrayConsideration "Special Consideration when using Arrays" for more details. @param [out] localizedExtendedStates - This array is allocated by the server. Free it with CoTaskMemFree. + This array is allocated by the server. The client must free it with CoTaskMemFree. @param [out] nLocalizedExtendedStates The number of localized extended states returned; the size of the returned array. @retval S_OK @@ -1654,7 +1820,11 @@ interface IAccessible2 : IAccessible One means of implementing this would be to create a factory with a 32 bit number generator and a reuse pool. The number generator would emit numbers starting at 1. Each time an object's life cycle ended, its number would be saved into a - resuse pool. The number generator would be used whenever the reuse pool was empty. + reuse pool. The number generator would be used whenever the reuse pool was empty. + + Another way to create a unique ID is to generate it from a pointer value, e.g. an + object's address. That would be unique because no two active objects can use the + same allocated memory space. @param [out] uniqueID @retval S_OK @@ -1705,7 +1875,7 @@ interface IAccessible2 : IAccessible [out, retval] IA2Locale *locale ); - /** @brief Returns the attributes specific to this %IAccessible2 object, such as a cell's formula. + /** @brief Returns the attributes specific to this object, such as a cell's formula. @param [out] attributes @retval S_OK @retval S_FALSE returned if there is nothing to return, [out] value is NULL @@ -1719,6 +1889,129 @@ interface IAccessible2 : IAccessible /************************************************************************* * + * File Name (Accessible2_2.idl) + * + * IAccessible2 IDL Specification + * + * Copyright (c) 2007, 2013 Linux Foundation + * Copyright (c) 2006 IBM Corporation + * Copyright (c) 2000, 2006 Sun Microsystems, Inc. + * All rights reserved. + * + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following + * disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * 3. Neither the name of the Linux Foundation nor the names of its + * contributors may be used to endorse or promote products + * derived from this software without specific prior written + * permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND + * CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, + * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR + * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, + * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * This BSD License conforms to the Open Source Initiative "Simplified + * BSD License" as published at: + * http://www.opensource.org/licenses/bsd-license.php + * + * IAccessible2 is a trademark of the Linux Foundation. The IAccessible2 + * mark may be used in accordance with the Linux Foundation Trademark + * Policy to indicate compliance with the IAccessible2 specification. + * + ************************************************************************/ + + + + + + +/** @brief This interface exposes the primary set of information about an + IAccessible2 enabled accessible object. + + This interface must always be provided for objects that support some + portion of the collection of the %IAccessible2 interfaces. + + Please refer to @ref _changingInterfaces "Changing between Accessible Interfaces" + for special considerations related to use of the MSAA IAccessible interface and + the set of %IAccessible2 interfaces. + */ +[object, uuid(6C9430E9-299D-4E6F-BD01-A82A1E88D3FF)] +interface IAccessible2_2 : IAccessible2 +{ + /** @brief Returns the attribute value of a specified attribute specific to this object. + @param [in] name + @param [out] attribute + @retval S_OK + @retval S_FALSE returned if there is nothing to return, [out] value is NULL. + @retval E_INVALIDARG if bad [in] passed. + @note The output value is a VARIANT. Typically it will be a VT_BSTR, but there + are some cases where it will be a VT_I4 or VT_BOOL. Refer to the <a href= + "http://www.linuxfoundation.org/collaborate/workgroups/accessibility/iaccessible2/objectattributesIAccessible2"> + Object Attributes specification</a> for more information. + */ + [propget] HRESULT attribute + ( + [in] BSTR name, + [out, retval] VARIANT *attribute + ); + + /** @brief Returns the deepest hypertext accessible in the subtree of this object, and the caret offset within it. + @param [out] accessible + @param [out] caretOffset + @retval S_OK + @retval S_FALSE returned if there is no caret in any of the objects in the subtree, [out] accessible is NULL and [out] caretOffset is -1. + */ + [propget] HRESULT accessibleWithCaret + ( + [out] IUnknown **accessible, + [out, retval] long *caretOffset + ); + + /** @brief Returns relation targets for a specified target type. + @param [in] type + The requested @ref grpRelations "relation type". + @param [in] maxTargets + The number of targets requested. 0 indicates that all targets should be returned. + @param [out] targets + This array is allocated by the server. The client must free it with CoTaskMemFree. + @param [out] nTargets + The number of targets returned; the size of the returned array. + @retval S_OK + @retval S_FALSE if there are no targets, [out] values are NULL and 0 respectively. + @retval E_INVALIDARG if bad [in] passed. + */ + [propget] HRESULT relationTargetsOfType + ( + [in] BSTR type, + [in] long maxTargets, + [out, size_is(,*nTargets)] IUnknown ***targets, + [out, retval] long *nTargets + ); + +} + +/************************************************************************* + * * File Name (AccessibleComponent.idl) * * IAccessible2 IDL Specification @@ -1770,9 +2063,9 @@ interface IAccessible2 : IAccessible * ************************************************************************/ -import "objidl.idl"; -import "oaidl.idl"; -import "oleacc.idl"; + + + /** A value specifying a color in ARGB format, where each 8 bit color component specifies alpha, red, green, and blue respectively. The alpha value is optional. @@ -1894,9 +2187,9 @@ interface IAccessibleComponent : IUnknown * ************************************************************************/ -import "objidl.idl"; -import "oaidl.idl"; -import "oleacc.idl"; + + + /** @brief This interface gives access to a single numerical value. @@ -1917,7 +2210,7 @@ interface IAccessibleValue : IUnknown Returns the current value represented by this object. See the section about @ref _variants "VARIANTs" for additional information. @retval S_OK - @retval S_FALSE if there is nothing to return, [out] value is NULL + @retval S_FALSE if there is nothing to return, [out] value is a VARIANT with vt = VT_EMPTY */ [propget] HRESULT currentValue ( @@ -1932,7 +2225,7 @@ interface IAccessibleValue : IUnknown value the new value will be the minimum and if it is greater than the maximum then the new value will be the maximum. - @param [out] value + @param [in] value The new value represented by this object. The set of admissible types for this argument is implementation dependent. @retval S_OK @@ -1952,6 +2245,7 @@ interface IAccessibleValue : IUnknown has no upper bound then an empty object is returned. See the section about @ref _variants "VARIANTs" for additional information. @retval S_OK + @retval S_FALSE if there is nothing to return, [out] value is a VARIANT with vt = VT_EMPTY */ [propget] HRESULT maximumValue ( @@ -1968,6 +2262,7 @@ interface IAccessibleValue : IUnknown has no lower bound then an empty object is returned. See the section about @ref _variants "VARIANTs" for additional information. @retval S_OK + @retval S_FALSE if there is nothing to return, [out] value is a VARIANT with vt = VT_EMPTY */ [propget] HRESULT minimumValue ( @@ -1981,7 +2276,7 @@ interface IAccessibleValue : IUnknown * * IAccessible2 IDL Specification * - * Copyright (c) 2007, 2010 Linux Foundation + * Copyright (c) 2007, 2013 Linux Foundation * Copyright (c) 2006 IBM Corporation * Copyright (c) 2000, 2006 Sun Microsystems, Inc. * All rights reserved. @@ -2028,9 +2323,9 @@ interface IAccessibleValue : IUnknown * ************************************************************************/ -import "objidl.idl"; -import "oaidl.idl"; -import "oleacc.idl"; + + + /** A structure containing a substring and the start and end offsets in the enclosing string. @@ -2059,25 +2354,25 @@ typedef struct IA2TextSegment { */ enum IA2TextBoundaryType { - IA2_TEXT_BOUNDARY_CHAR, /**< Typically, a single character is returned. In some cases more than - one character is returned, for example, when a document contains field - data such as a field containing a date, time, or footnote reference. - In this case the caret can move over several characters in one movement - of the caret. Note that after the caret moves, the caret offset changes - by the number of characters in the field, e.g. by 8 characters in the - following date: 03/26/07. */ - IA2_TEXT_BOUNDARY_WORD, /**< The range provided matches the range observed when the application - processes the Ctrl + left arrow and Ctrl + right arrow key sequences. - Typically this is from the start of one word to the start of the next, but - various applications are inconsistent in the handling of the end of a line. */ - IA2_TEXT_BOUNDARY_SENTENCE, ///< Range is from start of one sentence to the start of another sentence. - IA2_TEXT_BOUNDARY_PARAGRAPH, ///< Range is from start of one paragraph to the start of another paragraph. - IA2_TEXT_BOUNDARY_LINE, /**< Range is from start of one line to the start of another line. This + IA2_TEXT_BOUNDARY_CHAR, /**< Typically, a single character is returned. In some cases more than + one character is returned, for example, when a document contains field + data such as a field containing a date, time, or footnote reference. + In this case the caret can move over several characters in one movement + of the caret. Note that after the caret moves, the caret offset changes + by the number of characters in the field, e.g. by 8 characters in the + following date: 03/26/07. */ + IA2_TEXT_BOUNDARY_WORD, /**< The range provided matches the range observed when the application + processes the Ctrl + left arrow and Ctrl + right arrow key sequences. + Typically this is from the start of one word to the start of the next, but + various applications are inconsistent in the handling of the end of a line. */ + IA2_TEXT_BOUNDARY_SENTENCE, ///< Range is from start of one sentence to the start of another sentence. + IA2_TEXT_BOUNDARY_PARAGRAPH, ///< Range is from start of one paragraph to the start of another paragraph. + IA2_TEXT_BOUNDARY_LINE, /**< Range is from start of one line to the start of another line. This often means that an end-of-line character will appear at the end of the - range. However in the case of some applications an end-of-line character - indicates the end of a paragraph and the lines composing the paragraph, - other than the last line, do not contain an end of line character. */ - IA2_TEXT_BOUNDARY_ALL ///< Using this value will cause all text to be returned. + range. However in the case of some applications an end-of-line character + indicates the end of a paragraph and the lines composing the paragraph, + other than the last line, do not contain an end of line character. */ + IA2_TEXT_BOUNDARY_ALL ///< Using this value will cause all text to be returned. }; /** @brief This interface gives read-only access to text. @@ -2118,6 +2413,9 @@ interface IAccessibleText : IUnknown Offset of first character after new selection (0 based). @retval S_OK @retval E_INVALIDARG if bad [in] passed + @note Refer to @ref _specialOffsets + "Special Offsets for use in the IAccessibleText and IAccessibleEditableText Methods" + for information about special offsets that can be used in %IAccessibleText methods. */ HRESULT addSelection ( @@ -2127,21 +2425,22 @@ interface IAccessibleText : IUnknown /** @brief Returns text attributes. @param [in] offset - Text offset (0 based) + Text offset (0 based). Refer to @ref _specialOffsets + "Special Offsets for use in the IAccessibleText and IAccessibleEditableText Methods" + for information about special offsets that can be used in %IAccessibleText methods. @param [out] startOffset The starting offset of the character range over which all text attributes match - those of offset. (0 based) + those of offset. (0 based) @param [out] endOffset The offset of the first character past the character range over which all text - attributes match those of offset. (0 based) + attributes match those of offset. (0 based) @param [out] textAttributes A string of attributes describing the text. The attributes are described in the <a href="http://www.linuxfoundation.org/en/Accessibility/IAccessible2/TextAttributes"> text attributes specification</a> on the %IAccessible2 web site. @retval S_OK @retval S_FALSE if there is nothing to return, [out] values are 0s and NULL respectively - @retval E_INVALIDARG if bad [in] passed, [out] values are 0s and NULL respectively - + @retval E_INVALIDARG if bad [in] passed */ [propget] HRESULT attributes ( @@ -2168,7 +2467,8 @@ interface IAccessibleText : IUnknown <li>the caretOffset for "two" would be 2, matching the "o"</li> </ul> The caret position/offset is that of the character logically following it, e.g. - to the right of it in a left to right language. + to the right of it in a left to right language, or to the left of it in a right + to left language. @param [out] offset The returned offset is relative to the text represented by this object. @retval S_OK @@ -2202,7 +2502,9 @@ interface IAccessibleText : IUnknown event for this index. @param [in] offset Index of the character for which to return its bounding box. The valid range - is 0..length. + is 0..length. Refer to @ref _specialOffsets + "Special Offsets for use in the IAccessibleText and IAccessibleEditableText Methods" + for information about special offsets that can be used in %IAccessibleText methods. @param [in] coordType Specifies if the coordinates are relative to the screen or to the parent window. @param [out] x @@ -2214,7 +2516,7 @@ interface IAccessibleText : IUnknown @param [out] height Height of the bounding box of the referenced character. @retval S_OK - @retval E_INVALIDARG if bad [in] passed, [out] values are 0s + @retval E_INVALIDARG if bad [in] passed */ [propget] HRESULT characterExtents ( @@ -2246,17 +2548,19 @@ interface IAccessibleText : IUnknown @param [in] x The position's x value for which to look up the index of the character that - is rendered on to the display at that point. + is rendered on to the display at that point. @param [in] y The position's y value for which to look up the index of the character that - is rendered on to the display at that point. + is rendered on to the display at that point. @param [in] coordType Screen coordinates or window coordinates. @param [out] offset Index of the character under the given point or -1 if the point is invalid or there is no character under the point. @retval S_OK - @retval E_INVALIDARG if bad [in] passed, [out] value is 0 + @retval S_FALSE if nothing to return, [out] value is -1 + + @retval E_INVALIDARG if bad [in] passed */ [propget] HRESULT offsetAtPoint ( @@ -2267,6 +2571,27 @@ interface IAccessibleText : IUnknown ); /** @brief Returns the character offsets of Nth active text selection + + Returns the 0-based starting and ending offsets of the Nth selection. If the + text is implemented as a tree of text objects with embed characters in higher + levels representing substrings of child text objects, consider the following. + If the starting selection offset is in one of the child text objects, then the + starting offset in the higher level text object would be at the embed character + representing the child text object that contains the starting selection offset. + If the ending selection offset is in one of the child text objects, then the + ending offset in the higher level text object would be just after the embed + character representing the child text object that contains the ending selection + offset. + + For example, if the string "one two three" is implemented as a two text objects, + with a top level text object containing an embed character "one ? three" and a + child text object containing "two" and if the selection is the string "two" then: + <ul> + <li>the startOffset for the "one ? three" object would be 4, matching the embed character and the endOffset would be 5.</li> + <li>the startOffset for the "two" object would be 0, and the endOffset would be 3</li> + </ul> + Selection offsets are that of the character logically following it, e.g. + to the right of it in a left to right language or to the left of it in a right to left language. @param [in] selectionIndex Index of selection (0 based). @param [out] startOffset @@ -2274,8 +2599,7 @@ interface IAccessibleText : IUnknown @param [out] endOffset 0 based offset of one past the last selected character. @retval S_OK - @retval S_FALSE if there is nothing to return, [out] values are 0s - @retval E_INVALIDARG if bad [in] passed, [out] values are 0s + @retval E_INVALIDARG if bad [in] passed */ [propget] HRESULT selection ( @@ -2288,12 +2612,12 @@ interface IAccessibleText : IUnknown The substring starts with the character at startOffset (inclusive) and up to the character at endOffset (exclusive), if startOffset is less or equal - endOffste. If endOffset is lower than startOffset, the result is the same + endOffset. If endOffset is lower than startOffset, the result is the same as a call with the two arguments being exchanged. The whole text can be requested by passing the indices zero and IAccessibleText::nCharacters. If both indices have the same value, an empty - string is returned. + string is returned. @param [in] startOffset Index of the first character to include in the returned string. The valid range is 0..length. @@ -2305,9 +2629,13 @@ interface IAccessibleText : IUnknown and up to the character at endOffset (exclusive), if startOffset is less than or equal to endOffset. @retval S_OK - @retval E_INVALIDARG if bad [in] passed, [out] value is NULL - @note The returned string may be longer than endOffset-startOffset bytes if text - contains multi-byte characters. + @retval E_INVALIDARG if bad [in] passed + @note + @li The returned string may be longer than endOffset-startOffset bytes if text + contains multi-byte characters. + @li Refer to @ref _specialOffsets + "Special Offsets for use in the IAccessibleText and IAccessibleEditableText Methods" + for information about special offsets that can be used in %IAccessibleText methods. */ [propget] HRESULT text ( @@ -2326,15 +2654,19 @@ interface IAccessibleText : IUnknown For example, if text type is ::IA2_TEXT_BOUNDARY_WORD, then the complete word that is closest to and located before offset is returned. - If the index is valid, but no suitable word (or other boundary type) is found, a - NULL pointer is returned. + If the index is valid, but no text is found, S_FALSE is returned along with out + values of 0, 0, and a NULL pointer. This would happen for boundary types other + than character when the text consists entirely of whitespace. @param [in] offset Index of the character for which to return the text part before it. The index character will not be part of the returned string. The valid range is 0..length. + Refer to @ref _specialOffsets + "Special Offsets for use in the IAccessibleText and IAccessibleEditableText Methods" + for information about special offsets that can be used in %IAccessibleText methods. @param [in] boundaryType The type of the text portion to return. See ::IA2TextBoundaryType for the - complete list. + complete list. @param [out] startOffset 0 based offset of first character. @param [out] endOffset @@ -2345,8 +2677,8 @@ interface IAccessibleText : IUnknown @retval S_OK @retval S_FALSE if the requested boundary type is not implemented, such as ::IA2_TEXT_BOUNDARY_SENTENCE, or if there is nothing to return; - [out] values are 0s and NULL respectively - @retval E_INVALIDARG if bad [in] passed, [out] values are 0s and NULL respectively + [out] values are 0s and NULL respectively + @retval E_INVALIDARG if bad [in] passed */ [propget] HRESULT textBeforeOffset ( @@ -2367,12 +2699,16 @@ interface IAccessibleText : IUnknown For example, if text type is ::IA2_TEXT_BOUNDARY_WORD, then the complete word that is closest to and located after offset is returned. - If the index is valid, but no suitable word (or other text type) is found, a - NULL pointer is returned. + If the index is valid, but no text is found, S_FALSE is returned along with out + values of 0, 0, and a NULL pointer. This would happen for boundary types other + than character when the text consists entirely of whitespace. @param [in] offset - Index of the character for which to return the text part before it. The index + Index of the character for which to return the text part after it. The index character will not be part of the returned string. The valid range is 0..length. + Refer to @ref _specialOffsets + "Special Offsets for use in the IAccessibleText and IAccessibleEditableText Methods" + for information about special offsets that can be used in %IAccessibleText methods. @param [in] boundaryType The type of the text portion to return. See ::IA2TextBoundaryType for the complete list. @@ -2386,8 +2722,8 @@ interface IAccessibleText : IUnknown @retval S_OK @retval S_FALSE if the requested boundary type is not implemented, such as ::IA2_TEXT_BOUNDARY_SENTENCE, or if there is nothing to return; - [out] values are 0s and NULL respectively - @retval E_INVALIDARG if bad [in] passed, [out] values are 0s and NULL respectively + [out] values are 0s and NULL respectively + @retval E_INVALIDARG if bad [in] passed */ [propget] HRESULT textAfterOffset ( @@ -2399,15 +2735,26 @@ interface IAccessibleText : IUnknown ); /** @brief Returns a text portion that spans the given position. - - Returns the substring of the specified text type at the specified offset. - If the index is valid, but no suitable word (or other text type) is found, a - NULL pointer is returned. + Returns the substring defined by the specified boundary type at the specified + offset. Refer to IA2TextBoundaryType for more details. + + For the word boundary type the returned string will contain the word at the + offset if the offset is inside a word and will contain the word before the + offset if the offset is not inside a word. All offsets from the first to the + last characters of a word are considered inside the word. Boundary types of + sentence and paragraph should exhibit similar behavior. + + If the index is valid, but no text is found, S_FALSE is returned along with out + values of 0, 0, and a NULL pointer. This would happen for boundary types other + than character when the text consists entirely of whitespace. @param [in] offset - Index of the character for which to return the text part before it. The index - character will not be part of the returned string. The valid range is 0..length. + Index of the character for which to return the text part it belongs to. The valid + range is 0..length. + Refer to @ref _specialOffsets + "Special Offsets for use in the IAccessibleText and IAccessibleEditableText Methods" + for information about special offsets that can be used in %IAccessibleText methods. @param [in] boundaryType The type of the text portion to return. See ::IA2TextBoundaryType for the complete list. @@ -2421,8 +2768,8 @@ interface IAccessibleText : IUnknown @retval S_OK @retval S_FALSE if the requested boundary type is not implemented, such as ::IA2_TEXT_BOUNDARY_SENTENCE, or if there is nothing to return; - [out] values are 0s and NULL respectively - @retval E_INVALIDARG if bad [in] passed, [out] values are 0s and NULL respectively + [out] values are 0s and NULL respectively + @retval E_INVALIDARG if bad [in] passed */ [propget] HRESULT textAtOffset ( @@ -2460,7 +2807,9 @@ interface IAccessibleText : IUnknown The new index of the caret. This caret is actually placed to the left side of the character with that index. An index of 0 places the caret so that the next insertion goes before the first character. An index of IAccessibleText::nCharacters - leads to insertion after the last character. + leads to insertion after the last character. Refer to @ref _specialOffsets + "Special Offsets for use in the IAccessibleText and IAccessibleEditableText Methods" + for information about special offsets that can be used in %IAccessibleText methods. @retval S_OK @retval E_FAIL if the caret cannot be set @retval E_INVALIDARG if bad [in] passed @@ -2479,6 +2828,9 @@ interface IAccessibleText : IUnknown New ending offset (0 based) - the offset of the character just past the last character of the selection. @retval S_OK @retval E_INVALIDARG if bad [in] passed + @note Refer to @ref _specialOffsets + "Special Offsets for use in the IAccessibleText and IAccessibleEditableText Methods" + for information about special offsets that can be used in %IAccessibleText methods. */ HRESULT setSelection ( @@ -2508,12 +2860,15 @@ interface IAccessibleText : IUnknown Defines where the object should be placed on the screen. @retval S_OK @retval E_INVALIDARG if bad [in] passed + @note Refer to @ref _specialOffsets + "Special Offsets for use in the IAccessibleText and IAccessibleEditableText Methods" + for information about special offsets that can be used in %IAccessibleText methods. */ HRESULT scrollSubstringTo ( [in] long startIndex, [in] long endIndex, - [in] enum IA2ScrollType scrollType + [in] enum IA2ScrollType scrollType ); /** @brief Moves the top left of a substring to a specified location. @@ -2531,14 +2886,17 @@ interface IAccessibleText : IUnknown @retval S_OK @retval S_FALSE if the object is already at the specified location. @retval E_INVALIDARG if bad [in] passed + @note Refer to @ref _specialOffsets + "Special Offsets for use in the IAccessibleText and IAccessibleEditableText Methods" + for information about special offsets that can be used in %IAccessibleText methods. */ HRESULT scrollSubstringToPoint ( [in] long startIndex, [in] long endIndex, [in] enum IA2CoordinateType coordinateType, - [in] long x, - [in] long y + [in] long x, + [in] long y ); /** @brief Returns any inserted text. @@ -2560,12 +2918,14 @@ interface IAccessibleText : IUnknown @param [out] newText The text that was just inserted. @retval S_OK - @retval S_FALSE if there is nothing to return, [out] value is NULL + @retval S_FALSE If there is nothing to return, the values of IA2TextSegment + struct are set as follows: text = NULL, start = 0, end = 0. + */ [propget] HRESULT newText ( - [out, retval] IA2TextSegment *newText - ); + [out, retval] IA2TextSegment *newText + ); /** @brief Returns any removed text. @@ -2585,12 +2945,111 @@ interface IAccessibleText : IUnknown @param [out] oldText The text that was just removed. @retval S_OK - @retval S_FALSE if there is nothing to return, [out] value is NULL + @retval S_FALSE If there is nothing to return, the values of IA2TextSegment + struct are set as follows: text = NULL, start = 0, end = 0. */ [propget] HRESULT oldText ( - [out, retval] IA2TextSegment *oldText - ); + [out, retval] IA2TextSegment *oldText + ); + +} +/************************************************************************* + * + * File Name (AccessibleText2.idl) + * + * IAccessible2 IDL Specification + * + * Copyright (c) 2007, 2013 Linux Foundation + * Copyright (c) 2006 IBM Corporation + * Copyright (c) 2000, 2006 Sun Microsystems, Inc. + * All rights reserved. + * + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following + * disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * 3. Neither the name of the Linux Foundation nor the names of its + * contributors may be used to endorse or promote products + * derived from this software without specific prior written + * permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND + * CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, + * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR + * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, + * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * This BSD License conforms to the Open Source Initiative "Simplified + * BSD License" as published at: + * http://www.opensource.org/licenses/bsd-license.php + * + * IAccessible2 is a trademark of the Linux Foundation. The IAccessible2 + * mark may be used in accordance with the Linux Foundation Trademark + * Policy to indicate compliance with the IAccessible2 specification. + * + ************************************************************************/ + + + + + + + +/** @brief This interface gives read-only access to text. + + The %IAccessibleText2 interface extends the functionality of the + %IAccessibleText interface. +*/ +[object, uuid(9690A9CC-5C80-4DF5-852E-2D5AE4189A54)] +interface IAccessibleText2 : IAccessibleText +{ + + /** @brief Returns the range and of the specified set of attributes. + + Return the range (start and end offsets) and text attributes that correspond + to the given attributes filter at the given offset. + + @param [in] offset + The offset at which to search for the attributes specified in the filter. + @param [in] filter + The requested attribute names. The filter format is "attribute1, attribute2". + @param [out] startOffset + The starting (0-based) offset of the text containing the specified attributes. + @param [out] endOffset + The (0-based) offset one past the last character of the text containing the + specified attributes. + @param [out] attributeValues + The values of the requested attributes. + @retval S_OK + @retval S_FALSE if nothing to return, [out] values are -1, -1, NULL respectively. + @retval E_INVALIDARG if bad [in] passed. + */ + [propget] HRESULT attributeRange + ( + [in] long offset, + [in] BSTR filter, + [out] long *startOffset, + [out] long *endOffset, + [out, retval] BSTR *attributeValues + ); } /************************************************************************* @@ -2599,7 +3058,7 @@ interface IAccessibleText : IUnknown * * IAccessible2 IDL Specification * - * Copyright (c) 2007, 2010 Linux Foundation + * Copyright (c) 2007, 2012 Linux Foundation * Copyright (c) 2006 IBM Corporation * Copyright (c) 2000, 2006 Sun Microsystems, Inc. * All rights reserved. @@ -2646,9 +3105,9 @@ interface IAccessibleText : IUnknown * ************************************************************************/ -import "objidl.idl"; -import "oaidl.idl"; -import "oleacc.idl"; + + + /** @brief This interface provides clipboard capability to text objects. @@ -2676,8 +3135,8 @@ interface IAccessibleEditableText : IUnknown /** @brief Copies the text range into the clipboard. - The specified text between the two given indices is copied into the - system clipboard. + The selection is set to the specified offsets and then selection is copied into + the system clipboard. @param [in] startOffset Start index of the text to moved into the clipboard. @@ -2687,6 +3146,11 @@ interface IAccessibleEditableText : IUnknown The valid range is 0..length. @retval S_OK @retval E_INVALIDARG if bad [in] passed + @note Refer to @ref _specialOffsets + "Special Offsets for use in the IAccessibleText and IAccessibleEditableText Methods" + for information about special offsets that can be used in %IAccessibleEditableText + methods. + @deprecated This function is available via the application's GUI. */ HRESULT copyText ( @@ -2707,6 +3171,10 @@ interface IAccessibleEditableText : IUnknown The valid range is 0..length. @retval S_OK @retval E_INVALIDARG if bad [in] passed + @note Refer to @ref _specialOffsets + "Special Offsets for use in the IAccessibleText and IAccessibleEditableText Methods" + for information about special offsets that can be used in %IAccessibleEditableText + methods. */ HRESULT deleteText ( @@ -2722,6 +3190,10 @@ interface IAccessibleEditableText : IUnknown @param [in] offset Index at which to insert the text. The valid range is 0..length. + Refer to @ref _specialOffsets + "Special Offsets for use in the IAccessibleText and IAccessibleEditableText Methods" + for information about special offsets that can be used in %IAccessibleEditableText + methods. @param [in] text Text that is inserted. @retval S_OK @@ -2735,8 +3207,8 @@ interface IAccessibleEditableText : IUnknown /** @brief Deletes a range of text and copies it to the clipboard. - The text between the two given indices is deleted from the text - represented by this object and copied to the clipboard. + The selection is set to the specified offsets, the selection is then copied into + the system clipboard, and then the selection is deleted. @param [in] startOffset Start index of the text to be deleted. @@ -2746,6 +3218,11 @@ interface IAccessibleEditableText : IUnknown The valid range is 0..length. @retval S_OK @retval E_INVALIDARG if bad [in] passed + @note Refer to @ref _specialOffsets + "Special Offsets for use in the IAccessibleText and IAccessibleEditableText Methods" + for information about special offsets that can be used in %IAccessibleEditableText + methods. + @deprecated This function is available via the application's GUI. */ HRESULT cutText ( @@ -2753,19 +3230,25 @@ interface IAccessibleEditableText : IUnknown [in] long endOffset ); - /** @brief Pastes text from the clipboard. + /** @brief Pastes content from the clipboard. - The text in the system clipboard is pasted into the text represented - by this object at the given index. This method is similar to the - IAccessibleEditableText::insertText method. If the index is not valid - the system clipboard text is not inserted. - + Any existing selection is removed, the clipboard content is then pasted into + this object's text at the given offset. This method is similar to the insertText + method. If the index is not valid the system clipboard content is not inserted. The + behavior is the same as when Ctrl+V is used, i.e. the pasted contents are not + necessarily plain text. + @param [in] offset - Index at which to insert the text from the system clipboard into + Index at which to insert the content from the system clipboard into the text represented by this object. The valid range is 0..length. + Refer to @ref _specialOffsets + "Special Offsets for use in the IAccessibleText and IAccessibleEditableText Methods" + for information about special offsets that can be used in %IAccessibleEditableText + methods. @retval S_OK @retval E_INVALIDARG if bad [in] passed + @deprecated This function is available via the application's GUI. */ HRESULT pasteText ( @@ -2784,12 +3267,16 @@ interface IAccessibleEditableText : IUnknown Start index of the text to be replaced. The valid range is 0..length. @param [in] endOffset - Start index of the text to be replaced. + End index of the text to be replaced. The valid range is 0..length. @param [in] text The Text that replaces the text between the given indices. @retval S_OK @retval E_INVALIDARG if bad [in] passed + @note Refer to @ref _specialOffsets + "Special Offsets for use in the IAccessibleText and IAccessibleEditableText Methods" + for information about special offsets that can be used in %IAccessibleEditableText + methods. */ HRESULT replaceText ( @@ -2807,13 +3294,17 @@ interface IAccessibleEditableText : IUnknown Start index of the text whose attributes are modified. The valid range is 0..length. @param [in] endOffset - Start index of the text whose attributes are modified. + End index of the text whose attributes are modified. The valid range is 0..length. @param [in] attributes Set of attributes that replaces the old list of attributes of the specified text portion. @retval S_OK @retval E_INVALIDARG if bad [in] passed + @note Refer to @ref _specialOffsets + "Special Offsets for use in the IAccessibleText and IAccessibleEditableText Methods" + for information about special offsets that can be used in %IAccessibleEditableText + methods. */ HRESULT setAttributes ( @@ -2876,9 +3367,9 @@ interface IAccessibleEditableText : IUnknown * ************************************************************************/ -import "objidl.idl"; -import "oaidl.idl"; -import "oleacc.idl"; + + + /** @brief This interface represents hyperlinks. @@ -2936,8 +3427,7 @@ interface IAccessibleHyperlink : IAccessibleAction an IUnknown VARIANT for IAccessibleImage. See the section about @ref _variants "VARIANTs" for additional information. @retval S_OK - @retval S_FALSE if there is nothing to return, [out] value is NULL - @retval E_INVALIDARG if bad [in] passed, [out] value is NULL + @retval E_INVALIDARG if bad [in] passed */ [propget] HRESULT anchor ( @@ -2958,8 +3448,7 @@ interface IAccessibleHyperlink : IAccessibleAction activated when the link is activated. See the section about @ref _variants "VARIANTs" for additional information. @retval S_OK - @retval S_FALSE if there is nothing to return, [out] value is NULL - @retval E_INVALIDARG if bad [in] passed, [out] value is NULL + @retval E_INVALIDARG if bad [in] passed */ [propget] HRESULT anchorTarget ( @@ -2999,12 +3488,13 @@ interface IAccessibleHyperlink : IAccessibleAction This has also been used to indicate whether or not the URI of the anchorTarget is malformed. - Note: This method is not being used, is deprecated, and should not be implemented or - used. It is likely that this method will be removed in a later version of the IDL. - @param [out] valid + If false, one or more of the object's links are invalid. + If true, all of the object's links are valid. @retval S_OK - @retval S_FALSE if there is nothing to return, [out] value is FALSE + @retval S_FALSE if there is nothing to return, [out] value is FALSE + @note This method is not being used, is deprecated, and should not be implemented or + used. It is likely that this method will be removed in a later version of the IDL. */ [propget] HRESULT valid ( @@ -3064,9 +3554,9 @@ interface IAccessibleHyperlink : IAccessibleAction * ************************************************************************/ -import "objidl.idl"; -import "oaidl.idl"; -import "oleacc.idl"; + + + @@ -3104,7 +3594,7 @@ interface IAccessibleHypertext : IAccessibleText of links minus one, a reference to the specified hyperlink object is returned. If the index is invalid then a NULL pointer is returned. @retval S_OK - @retval E_INVALIDARG if bad [in] passed, [out] value is NULL + @retval E_INVALIDARG if bad [in] passed */ [propget] HRESULT hyperlink ( @@ -3125,7 +3615,7 @@ interface IAccessibleHypertext : IAccessibleText character index, or -1 if charIndex is not on a link. @retval S_OK @retval S_FALSE if there is nothing to return, [out] value is -1 - @retval E_INVALIDARG if bad [in] passed, [out] value is NULL + @retval E_INVALIDARG if bad [in] passed */ [propget] HRESULT hyperlinkIndex ( @@ -3136,11 +3626,98 @@ interface IAccessibleHypertext : IAccessibleText } /************************************************************************* * + * File Name (AccessibleHypertext2.idl) + * + * IAccessible2 IDL Specification + * + * Copyright (c) 2007, 2013 Linux Foundation + * Copyright (c) 2006 IBM Corporation + * Copyright (c) 2000, 2006 Sun Microsystems, Inc. + * All rights reserved. + * + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following + * disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * 3. Neither the name of the Linux Foundation nor the names of its + * contributors may be used to endorse or promote products + * derived from this software without specific prior written + * permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND + * CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, + * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR + * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, + * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * This BSD License conforms to the Open Source Initiative "Simplified + * BSD License" as published at: + * http://www.opensource.org/licenses/bsd-license.php + * + * IAccessible2 is a trademark of the Linux Foundation. The IAccessible2 + * mark may be used in accordance with the Linux Foundation Trademark + * Policy to indicate compliance with the IAccessible2 specification. + * + ************************************************************************/ + + + + + + + +/** @brief This interface exposes information about hypertext in a document. + + The %IAccessibleHypertext2 interface extends the functinality of the + %IAccessibleHypertext inteface. +*/ +[object, uuid(CF64D89F-8287-4B44-8501-A827453A6077)] +interface IAccessibleHypertext2 : IAccessibleHypertext +{ + + /** @brief Returns the links for this object. + + The returned IAccessibleHyperlink objects encapsulate the hyperlink and + provides several kinds of information describing it. + + @param [out] hyperlinks + This array is allocated by the server. The client must free it with CoTaskMemFree. + @param [out] nHyperlinks + The number of links returned; the size of the returned array. + @retval S_OK + @retval S_FALSE if there are no links, [out] values are NULL and 0 respectively + */ + [propget] HRESULT hyperlinks + ( + [out, size_is(,*nHyperlinks)] IAccessibleHyperlink ***hyperlinks, + [out, retval] long *nHyperlinks + ); + +} +/************************************************************************* + * * File Name (AccessibleTable.idl) * * IAccessible2 IDL Specification * - * Copyright (c) 2007, 2010 Linux Foundation + * Copyright (c) 2007, 2013 Linux Foundation * Copyright (c) 2006 IBM Corporation * Copyright (c) 2000, 2006 Sun Microsystems, Inc. * All rights reserved. @@ -3187,9 +3764,9 @@ interface IAccessibleHypertext : IAccessibleText * ************************************************************************/ -import "objidl.idl"; -import "oaidl.idl"; -import "oleacc.idl"; + + + @@ -3473,7 +4050,7 @@ interface IAccessibleTable : IUnknown "Special Consideration when using Arrays" for more details. @param [out] children An array of cell indexes of selected cells (each index is 0 based), - allocated by the server. Free it with CoTaskMemFree. + allocated by the server. The client must free it with CoTaskMemFree. @param [out] nChildren The number of cell indexes returned; the size of the returned array. @retval S_OK @@ -3492,7 +4069,7 @@ interface IAccessibleTable : IUnknown "Special Consideration when using Arrays" for more details. @param [out] columns An array of column indexes of selected columns (each index is 0 based), allocated - by the server. Free it with CoTaskMemFree. + by the server. The client must free it with CoTaskMemFree. @param [out] nColumns The number of column indexes returned; the size of the returned array. @retval S_OK @@ -3511,7 +4088,7 @@ interface IAccessibleTable : IUnknown "Special Consideration when using Arrays" for more details. @param [out] rows An array of row indexes of selected rows (each index is 0 based), allocated - by the server. Free it with CoTaskMemFree. + by the server. The client must free it with CoTaskMemFree. @param [out] nRows The number of row indexes returned; the size of the returned array. @retval S_OK @@ -3691,7 +4268,7 @@ interface IAccessibleTable : IUnknown * * IAccessible2 IDL Specification * - * Copyright (c) 2007, 2010 Linux Foundation + * Copyright (c) 2007, 2012 Linux Foundation * Copyright (c) 2006 IBM Corporation * Copyright (c) 2000, 2006 Sun Microsystems, Inc. * All rights reserved. @@ -3738,9 +4315,9 @@ interface IAccessibleTable : IUnknown * ************************************************************************/ -import "objidl.idl"; -import "oaidl.idl"; -import "oleacc.idl"; + + + @@ -3766,7 +4343,7 @@ interface IAccessibleTable2 : IUnknown object is returned that represents the requested cell regardless of whether the cell is currently visible (on the screen). @retval S_OK - @retval E_INVALIDARG if bad [in] passed, [out] value is NULL + @retval E_INVALIDARG if bad [in] passed */ [propget] HRESULT cellAt ( @@ -3781,7 +4358,8 @@ interface IAccessibleTable2 : IUnknown If the table has a caption then a reference to it is returned, else a NULL pointer is returned. @retval S_OK - @retval S_FALSE if there is nothing to return, [out] value is NULL + @retval S_FALSE if there is nothing to return, [out] value is NULL + @deprecated use a describedBy relation */ [propget] HRESULT caption ( @@ -3796,7 +4374,7 @@ interface IAccessibleTable2 : IUnknown description exists. Otherwise a NULL pointer is returned. @retval S_OK @retval S_FALSE if there is nothing to return, [out] value is NULL - @retval E_INVALIDARG if bad [in] passed, [out] value is NULL + @retval E_INVALIDARG if bad [in] passed */ [propget] HRESULT columnDescription ( @@ -3863,7 +4441,7 @@ interface IAccessibleTable2 : IUnknown description exists. Otherwise a NULL pointer is returned. @retval S_OK @retval S_FALSE if there is nothing to return, [out] value is NULL - @retval E_INVALIDARG if bad [in] passed, [out] value is NULL + @retval E_INVALIDARG if bad [in] passed */ [propget] HRESULT rowDescription ( @@ -3874,7 +4452,8 @@ interface IAccessibleTable2 : IUnknown /** @brief Returns a list of accessibles currently selected. @param [out] cells Pointer to an array of references to selected accessibles. The array is - allocated by the server. Free it with CoTaskMemFree. + allocated by the server with CoTaskMemAlloc and freed by the client with + CoTaskMemFree. @param [out] nSelectedCells The number of accessibles returned; the size of the returned array. @retval S_OK @@ -3882,14 +4461,15 @@ interface IAccessibleTable2 : IUnknown */ [propget] HRESULT selectedCells ( - [out, size_is(,*nSelectedCells,)] IUnknown ***cells, + [out, size_is(,*nSelectedCells)] IUnknown ***cells, [out, retval] long *nSelectedCells ); /** @brief Returns a list of column indexes currently selected (0 based). @param [out] selectedColumns A pointer to an array of column indexes of selected columns (each index is - 0 based). The array is allocated by the server. Free it with CoTaskMemFree. + 0 based). The array is allocated by the server with CoTaskMemAlloc and + freed by the client with CoTaskMemFree. @param [out] nColumns The number of column indexes returned; the size of the returned array. @retval S_OK @@ -3903,8 +4483,9 @@ interface IAccessibleTable2 : IUnknown /** @brief Returns a list of row indexes currently selected (0 based). @param [out] selectedRows - An array of row indexes of selected rows (each index is 0 based), allocated - by the server. Free it with CoTaskMemFree. + An array of row indexes of selected rows (each index is 0 based). The array + is allocated by the server with CoTaskMemAlloc and freed by the client with + CoTaskMemFree. @param [out] nRows The number of row indexes returned; the size of the returned array. @retval S_OK @@ -3923,7 +4504,8 @@ interface IAccessibleTable2 : IUnknown representing the table's summary or a NULL pointer if the table does not support a summary. @retval S_OK - @retval S_FALSE if there is nothing to return, [out] value is NULL + @retval S_FALSE if there is nothing to return, [out] value is NULL + @deprecated Use the labeledBy relation */ [propget] HRESULT summary ( @@ -3937,7 +4519,7 @@ interface IAccessibleTable2 : IUnknown @param [out] isSelected Returns TRUE if the specified column is selected completely and FALSE otherwise. @retval S_OK - @retval E_INVALIDARG if bad [in] passed, [out] value is FALSE + @retval E_INVALIDARG if bad [in] passed */ [propget] HRESULT isColumnSelected ( @@ -3952,7 +4534,7 @@ interface IAccessibleTable2 : IUnknown @param [out] isSelected Returns TRUE if the specified row is selected completely and FALSE otherwise. @retval S_OK - @retval E_INVALIDARG if bad [in] passed, [out] value is FALSE + @retval E_INVALIDARG if bad [in] passed */ [propget] HRESULT isRowSelected ( @@ -4063,7 +4645,7 @@ interface IAccessibleTable2 : IUnknown * * IAccessible2 IDL Specification * - * Copyright (c) 2007, 2010 Linux Foundation + * Copyright (c) 2007, 2013 Linux Foundation * Copyright (c) 2006 IBM Corporation * Copyright (c) 2000, 2006 Sun Microsystems, Inc. * All rights reserved. @@ -4110,9 +4692,9 @@ interface IAccessibleTable2 : IUnknown * ************************************************************************/ -import "objidl.idl"; -import "oaidl.idl"; -import "oleacc.idl"; + + + /** @brief This interface gives access to the cells of a two-dimensional table. @@ -4140,7 +4722,7 @@ interface IAccessibleTableCell : IUnknown @param [out] cellAccessibles Pointer to an array of references to cell accessibles. The array is allocated - by the server. Free it with CoTaskMemFree. + by the server. The client must free it with CoTaskMemFree. @param [out] nColumnHeaderCells The number of accessibles returned; the size of the returned array. @retval S_OK @@ -4148,7 +4730,7 @@ interface IAccessibleTableCell : IUnknown */ [propget] HRESULT columnHeaderCells ( - [out, size_is(,*nColumnHeaderCells,)] IUnknown ***cellAccessibles, + [out, size_is(,*nColumnHeaderCells)] IUnknown ***cellAccessibles, [out, retval] long *nColumnHeaderCells ); @@ -4179,7 +4761,7 @@ interface IAccessibleTableCell : IUnknown @param [out] cellAccessibles Pointer to an array of references to cell accessibles. The array is allocated - by the server. Free it with CoTaskMemFree. + by the server. The client must free it with CoTaskMemFree. @param [out] nRowHeaderCells The number of accessibles returned; the size of the returned array. @retval S_OK @@ -4187,7 +4769,7 @@ interface IAccessibleTableCell : IUnknown */ [propget] HRESULT rowHeaderCells ( - [out, size_is(,*nRowHeaderCells,)] IUnknown ***cellAccessibles, + [out, size_is(,*nRowHeaderCells)] IUnknown ***cellAccessibles, [out, retval] long *nRowHeaderCells ); @@ -4304,9 +4886,9 @@ interface IAccessibleTableCell : IUnknown * ************************************************************************/ -import "objidl.idl"; -import "oaidl.idl"; -import "oleacc.idl"; + + + /** @brief This interface represents images and icons. @@ -4427,7 +5009,7 @@ enum IA2EventID { */ IA2_EVENT_ACTION_CHANGED = 0x101, - /** The active descendant of a component has changed. + /** <b>Deprecated.</b> The active descendant of a component has changed. Note: This event constant is misspelled and thus is deprecated and will be removed in a later version. Please use the correctly spelled version which @@ -4646,9 +5228,9 @@ enum IA2EventID { ************************************************************************/ -import "objidl.idl"; -import "oaidl.idl"; -import "oleacc.idl"; + + + /** @brief This interface gives access to the application's name and version information. @@ -4677,6 +5259,9 @@ interface IAccessibleApplication : IUnknown /** @brief Returns the application version. @param [out] version + The version string must not contain levels when it is know beforehand that + this information will never require a change in a client's behavior. + For example, use "3.6.0" rather than "3.6.0.v201005131500". @retval S_OK @retval S_FALSE if there is nothing to return, [out] value is NULL */ @@ -4697,6 +5282,9 @@ interface IAccessibleApplication : IUnknown /** @brief Returns the toolkit/bridge version. @param [out] version + The version string must not contain levels when it is know beforehand that + this information will never require a change in a client's behavior. + For example, use "3.6.0" rather than "3.6.0.v201005131500". @retval S_OK @retval S_FALSE if there is nothing to return, [out] value is NULL */ @@ -4709,11 +5297,89 @@ interface IAccessibleApplication : IUnknown /************************************************************************* * + * File Name (AccessibleDocument.idl) + * + * IAccessible2 IDL Specification + * + * Copyright (c) 2013 Linux Foundation + * All rights reserved. + * + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following + * disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * 3. Neither the name of the Linux Foundation nor the names of its + * contributors may be used to endorse or promote products + * derived from this software without specific prior written + * permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND + * CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, + * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR + * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, + * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * This BSD License conforms to the Open Source Initiative "Simplified + * BSD License" as published at: + * http://www.opensource.org/licenses/bsd-license.php + * + * IAccessible2 is a trademark of the Linux Foundation. The IAccessible2 + * mark may be used in accordance with the Linux Foundation Trademark + * Policy to indicate compliance with the IAccessible2 specification. + * + ************************************************************************/ + + + + + +/** @brief This interface represents documents. + + This interface is used for a representation of documents. +*/ +[object, uuid(C48C7FCF-4AB5-4056-AFA6-902D6E1D1149)] +interface IAccessibleDocument : IUnknown +{ + /** @brief Returns the most recently used anchor target within a document. + + A document's most recently targeted in-page anchor is returned. A typical use + of this method is to fetch the anchor target within an HTML document. In this + case anchor targets are those which have been defined with the <a> tag. + + @param [out] accessible + @retval S_OK + @retval S_FALSE if there are no existing valid anchor targets, [out] value is NULL. + */ + [propget] HRESULT anchorTarget + ( + [out, retval] IUnknown **accessible + ); + +} +/************************************************************************* + * * File Name (IA2TypeLibrary.idl) * * IAccessible2 IDL Specification * - * Copyright (c) 2007, 2010 Linux Foundation + * Copyright (c) 2007, 2012 Linux Foundation * Copyright (c) 2006 IBM Corporation * Copyright (c) 2000, 2006 Sun Microsystems, Inc. * All rights reserved. @@ -4768,28 +5434,33 @@ cpp_quote("// Type Library Definitions") cpp_quote("") [ - uuid(c974e070-3787-490a-87b0-e333b06ca1e2), + uuid(CE3F726E-D1D3-44FE-B995-FF1DB3B48B2B), helpstring("IAccessible2 Type Library"), - version(1.2), + version(1.3), hidden ] library IAccessible2Lib { importlib ("stdole2.tlb"); + importlib ("oleacc.dll"); interface IAccessible2; + interface IAccessible2_2; interface IAccessibleAction; interface IAccessibleApplication; interface IAccessibleComponent; + interface IAccessibleDocument; interface IAccessibleEditableText; interface IAccessibleHyperlink; interface IAccessibleHypertext; + interface IAccessibleHypertext2; interface IAccessibleImage; interface IAccessibleRelation; interface IAccessibleTable; interface IAccessibleTable2; interface IAccessibleTableCell; interface IAccessibleText; + interface IAccessibleText2; interface IAccessibleValue; enum IA2CoordinateType; enum IA2EventID; |