diff --git a/api/Accessible2.idl b/api/Accessible2.idl
index 71b1ef6..a9f9a36 100644
--- a/api/Accessible2.idl
+++ b/api/Accessible2.idl
@@ -4,7 +4,7 @@
*
* 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.
@@ -54,19 +54,22 @@
/** @mainpage
@section _interfaces Interfaces
- IAccessible2\n
+ IAccessible2_2\n
IAccessibleAction\n
IAccessibleApplication\n
IAccessibleComponent\n
- IAccessibleHypertext\n
+ IAccessibleDocument\n
+ IAccessibleEditableText\n
+ IAccessibleHypertext [Deprecated]\n
+ IAccessibleHypertext2\n
IAccessibleHyperlink\n
IAccessibleImage\n
- IAccessibleRelation\n
+ IAccessibleRelation [Deprecated]\n
IAccessibleTable [Deprecated]\n
IAccessibleTable2\n
IAccessibleTableCell\n
- IAccessibleText\n
- IAccessibleEditableText\n
+ IAccessibleText [Deprecated]\n
+ IAccessibleText2\n
IAccessibleValue
@section _structs Structs
@@ -209,9 +212,9 @@
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 six 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,
+ and IAccessibleAction::keyBinding 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.
@@ -372,6 +375,7 @@ interface IAccessible2 : IAccessible
/** @brief Returns the number of accessible relations for this object.
@param [out] nRelations
@retval S_OK
+ @deprecated
*/
[propget] HRESULT nRelations
(
@@ -384,6 +388,7 @@ interface IAccessible2 : IAccessible
@param [out] relation
@retval S_OK
@retval E_INVALIDARG if bad [in] passed
+ @deprecated
*/
[propget] HRESULT relation
(
@@ -402,6 +407,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
+ @deprecated
*/
[propget] HRESULT relations
(
@@ -543,9 +549,6 @@ interface IAccessible2 : IAccessible
An extended state is a state which is dynamically generated by the application.
It is not predefined by the %IAccessible2 specification.
- @param [in] maxExtendedStates
- 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.
@param [out] nExtendedStates
@@ -555,15 +558,11 @@ interface IAccessible2 : IAccessible
*/
[propget] HRESULT extendedStates
(
- [in] long maxExtendedStates,
- [out, size_is(,maxExtendedStates), length_is(,*nExtendedStates)] BSTR **extendedStates,
+ [out, size_is(,*nExtendedStates)] BSTR **extendedStates,
[out, retval] long *nExtendedStates
);
/** @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.
@param [out] nLocalizedExtendedStates
@@ -573,8 +572,7 @@ interface IAccessible2 : IAccessible
*/
[propget] HRESULT localizedExtendedStates
(
- [in] long maxLocalizedExtendedStates,
- [out, size_is(,maxLocalizedExtendedStates), length_is(,*nLocalizedExtendedStates)] BSTR **localizedExtendedStates,
+ [out, size_is(,*nLocalizedExtendedStates)] BSTR **localizedExtendedStates,
[out, retval] long *nLocalizedExtendedStates
);
@@ -665,7 +663,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
@@ -675,5 +673,51 @@ interface IAccessible2 : IAccessible
[out, retval] BSTR *attributes
);
+ /** @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.
+ */
+ [propget] HRESULT attribute
+ (
+ [in] BSTR name,
+ [out, retval] BSTR *attribute
+ );
+
+ /** @brief Returns the 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 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. 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
+ );
+
}
diff --git a/api/Accessible2_2.idl b/api/Accessible2_2.idl
new file mode 100644
index 0000000..a1a4474
--- /dev/null
+++ b/api/Accessible2_2.idl
@@ -0,0 +1,123 @@
+/*************************************************************************
+ *
+ * File Name (Accessible2_2.idl)
+ *
+ * IAccessible2 IDL Specification
+ *
+ * Copyright (c) 2007, 2012 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.
+ *
+ ************************************************************************/
+
+import "objidl.idl";
+import "oaidl.idl";
+import "oleacc.idl";
+import "Accessible2.idl";
+
+/** @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
+ Object Attributes specification for more information.
+ */
+ [propget] HRESULT attribute
+ (
+ [in] BSTR name,
+ [out, retval] VARIANT *attribute
+ );
+
+ /** @brief Returns the 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 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. 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
+ );
+
+}
+
diff --git a/api/AccessibleDocument.idl b/api/AccessibleDocument.idl
new file mode 100644
index 0000000..c4447a1
--- /dev/null
+++ b/api/AccessibleDocument.idl
@@ -0,0 +1,77 @@
+/*************************************************************************
+ *
+ * File Name (AccessibleDocument.idl)
+ *
+ * IAccessible2 IDL Specification
+ *
+ * Copyright (c) 2012 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";
+
+/** @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 an HTML document.
+
+ Anchor targets are those which has been defined with the tag. An HTML page's
+ most recently targeted in-page anchor is returned.
+
+ @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
+ );
+
+}
diff --git a/api/AccessibleEditableText.idl b/api/AccessibleEditableText.idl
index 7e020d8..830fd44 100644
--- a/api/AccessibleEditableText.idl
+++ b/api/AccessibleEditableText.idl
@@ -4,7 +4,7 @@
*
* 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.
@@ -96,6 +96,7 @@ interface IAccessibleEditableText : IUnknown
"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
(
@@ -167,6 +168,7 @@ interface IAccessibleEditableText : IUnknown
"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
(
@@ -192,6 +194,7 @@ interface IAccessibleEditableText : IUnknown
methods.
@retval S_OK
@retval E_INVALIDARG if bad [in] passed
+ @deprecated This function is available via the application's GUI.
*/
HRESULT pasteText
(
diff --git a/api/AccessibleHypertext2.idl b/api/AccessibleHypertext2.idl
new file mode 100644
index 0000000..33be6a1
--- /dev/null
+++ b/api/AccessibleHypertext2.idl
@@ -0,0 +1,89 @@
+/*************************************************************************
+ *
+ * File Name (AccessibleHypertext2.idl)
+ *
+ * IAccessible2 IDL Specification
+ *
+ * Copyright (c) 2007, 2012 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.
+ *
+ ************************************************************************/
+
+import "objidl.idl";
+import "oaidl.idl";
+import "oleacc.idl";
+import "AccessibleHypertext.idl";
+import "AccessibleHyperlink.idl";
+
+/** @brief This interface exposes information about hypertext in a document.
+
+ The %IAccessibleHypertext interface is the main interface to expose
+ hyperlinks in a document, typically a text document, that are used
+ to reference other documents. A typical implementation is to implement
+ this interface on the smallest text object such as a paragraph of text.
+*/
+[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. 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
+ );
+
+}
diff --git a/api/AccessibleRelation.idl b/api/AccessibleRelation.idl
index 109f698..99d91f1 100644
--- a/api/AccessibleRelation.idl
+++ b/api/AccessibleRelation.idl
@@ -4,7 +4,7 @@
*
* 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.
@@ -92,6 +92,9 @@ const WCHAR *const IA2_RELATION_FLOWS_FROM = L"flowsFrom";
/** Content flows from this object to a target object. */
const WCHAR *const IA2_RELATION_FLOWS_TO = L"flowsTo";
+/** This object is a grouping object for the target object. */
+const WCHAR *const IA2_RELATION_GROUPING_OBJECT_FOR = L"groupingObjectFor";
+
/** This object is label for a target object. */
const WCHAR *const IA2_RELATION_LABEL_FOR = L"labelFor";
@@ -111,9 +114,15 @@ const WCHAR *const IA2_RELATION_LABELLED_BY = L"labelledBy";
*/
const WCHAR *const IA2_RELATION_MEMBER_OF = L"memberOf";
+/** The target object is the next object in the tab order. */
+const WCHAR *const IA2_RELATION_NEXT_TABBABLE = L"nextTabbable";
+
/** This object is a child of a target object. */
const WCHAR *const IA2_RELATION_NODE_CHILD_OF = L"nodeChildOf";
+/** This object is a parent of a target object. */
+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";
@@ -122,9 +131,27 @@ const WCHAR *const IA2_RELATION_PARENT_WINDOW_OF = L"parentWindowOf";
*/
const WCHAR *const IA2_RELATION_POPUP_FOR = L"popupFor";
+/** This object is the initiator for the target popup object. */
+const WCHAR *const IA2_RELATION_POPUP_INITIATOR_FOR = L"popInitiatorFor";
+
+/** 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";
+/** The target object is the containing document object. */
+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";
+
+/** The target object is the containing application object. */
+const WCHAR *const IA2_RELATION_CONTAINING_APPLICATION = L"containingApplication";
+
///@}
/// This interface gives access to an object's set of relations.
diff --git a/api/AccessibleTable2.idl b/api/AccessibleTable2.idl
index d975b16..0d39cd3 100644
--- a/api/AccessibleTable2.idl
+++ b/api/AccessibleTable2.idl
@@ -4,7 +4,7 @@
*
* 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.
@@ -94,7 +94,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
(
@@ -196,7 +197,7 @@ interface IAccessibleTable2 : IUnknown
*/
[propget] HRESULT selectedCells
(
- [out, size_is(,*nSelectedCells,)] IUnknown ***cells,
+ [out, size_is(,*nSelectedCells)] IUnknown ***cells,
[out, retval] long *nSelectedCells
);
@@ -239,7 +240,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
(
diff --git a/api/AccessibleTableCell.idl b/api/AccessibleTableCell.idl
index b57a24f..da5ada7 100644
--- a/api/AccessibleTableCell.idl
+++ b/api/AccessibleTableCell.idl
@@ -4,7 +4,7 @@
*
* 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.
@@ -89,7 +89,7 @@ interface IAccessibleTableCell : IUnknown
*/
[propget] HRESULT columnHeaderCells
(
- [out, size_is(,*nColumnHeaderCells,)] IUnknown ***cellAccessibles,
+ [out, size_is(,*nColumnHeaderCells)] IUnknown ***cellAccessibles,
[out, retval] long *nColumnHeaderCells
);
@@ -128,7 +128,7 @@ interface IAccessibleTableCell : IUnknown
*/
[propget] HRESULT rowHeaderCells
(
- [out, size_is(,*nRowHeaderCells,)] IUnknown ***cellAccessibles,
+ [out, size_is(,*nRowHeaderCells)] IUnknown ***cellAccessibles,
[out, retval] long *nRowHeaderCells
);
diff --git a/api/AccessibleText.idl b/api/AccessibleText.idl
index c06f327..af6392a 100644
--- a/api/AccessibleText.idl
+++ b/api/AccessibleText.idl
@@ -468,8 +468,8 @@ interface IAccessibleText : IUnknown
NULL pointer is returned.
@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.
diff --git a/api/AccessibleText2.idl b/api/AccessibleText2.idl
new file mode 100644
index 0000000..cfcf157
--- /dev/null
+++ b/api/AccessibleText2.idl
@@ -0,0 +1,120 @@
+/*************************************************************************
+ *
+ * File Name (AccessibleText2.idl)
+ *
+ * IAccessible2 IDL Specification
+ *
+ * Copyright (c) 2007, 2012 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.
+ *
+ ************************************************************************/
+
+import "objidl.idl";
+import "oaidl.idl";
+import "oleacc.idl";
+import "IA2CommonTypes.idl";
+import "AccessibleText.idl";
+
+/** @brief This interface gives read-only access to text.
+
+ The %IAccessibleText interface should be implemented by all components
+ that present textual information on the display like buttons,
+ text entry fields, or text portions of the document window. The interface
+ provides access to the text's content, attributes, and spatial location.
+ However, text can not be modified with this interface. That is the task
+ of the IAccessibleEditableText interface.
+
+ The text length, i.e. the number of characters in the text, is
+ returned by IAccessibleText::nCharacters. All methods that operate
+ on particular characters (e.g. IAccessibleText::textAtOffset) use character
+ indices from 0 to length-1. All methods that operate on character positions
+ (e.g. IAccessibleText::text) use indices from 0 to length.
+
+ Please note that accessible text does not necessarily support selection.
+ In this case it should behave as if there where no selection. An empty
+ selection is used for example to express the current cursor position.
+
+ 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.
+
+ E_FAIL is returned in the following cases
+ @li endOffset < startOffset
+ @li endoffset > length
+*/
+[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
+ );
+
+}
diff --git a/api/IA2TypeLibrary.idl b/api/IA2TypeLibrary.idl
index 37a1c7d..da32d5e 100644
--- a/api/IA2TypeLibrary.idl
+++ b/api/IA2TypeLibrary.idl
@@ -4,7 +4,7 @@
*
* 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.
@@ -59,9 +59,9 @@ 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
]
@@ -70,18 +70,22 @@ 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;
diff --git a/api/api_all_headers.idl b/api/api_all_headers.idl
new file mode 100644
index 0000000..5b1e770
--- /dev/null
+++ b/api/api_all_headers.idl
@@ -0,0 +1,55 @@
+/*************************************************************************
+ *
+ * File Name (api_all_headers.idl)
+ *
+ * IAccessible2 IDL Specification
+ *
+ * Copyright (c) 2012 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";
+
diff --git a/buildapi.sh b/buildapi.sh
index edfce4a..5379f7a 100644
--- a/buildapi.sh
+++ b/buildapi.sh
@@ -1,65 +1,65 @@
-# run build.sh from the IA2 directory
-
-# make sure we have Cygwin
-if [ ! -d /cygdrive/c ]; then
- echo 'Expected to find Cygwin'
- exit 1
-fi
-
-# make sure we have the proper directory structure
-if [ ! -d api ]; then
- echo 'Expected to find ./api'
- exit 1
-fi
-
-# make sure we have Doxygen
-if [ ! -x /cygdrive/c/program\ files/doxygen/bin/doxygen.exe ]; then
- echo 'Expected to find c:/program files/doxygen/bin/doxygen.exe'
- exit 1
-fi
-
-cd api
-
-# make sure we have a Doxygen configuration file
-if [ ! -f ../doxygen.conf ]; then
- echo 'Expected to find doxygen.conf'
- exit 1
-fi
-
-# clean up test dir
-if [ -f ../IDL-Test/dlldata.c ]; then
- rm ../IDL-Test/*.c
- rm ../IDL-Test/*.h
-fi
-
-cp ../IDL-Test/StdAfxSave/*.* ../IDL-Test
-
-# remove previous autogenerated Doxygen files
-if [ -d ../docs ]; then
- rm -rf ../docs
-fi
-
-# generate IDL documentation with Doxygen
-/cygdrive/c/program\ files/doxygen/bin/doxygen ../doxygen.conf
-
-# remove any previous autogenerated merged IDL file
-if [ -f ../ia2_api_all.idl ]; then
- rm ../ia2_api_all.idl
-fi
-
-# generate merged IDL file - IA2TypeLibrary.idl must be at the end
-cat IA2CommonTypes.idl AccessibleRelation.idl AccessibleAction.idl AccessibleRole.idl AccessibleStates.idl Accessible2.idl AccessibleComponent.idl AccessibleValue.idl AccessibleText.idl AccessibleEditableText.idl AccessibleHyperlink.idl AccessibleHypertext.idl AccessibleTable.idl AccessibleTable2.idl AccessibleTableCell.idl AccessibleImage.idl AccessibleEventId.idl AccessibleApplication.idl IA2TypeLibrary.idl | sed -e 's/import "[A-Z].*$//g' - > ../ia2_api_all.idl
-
-cd ..
-
-# remove previous autogenerated zip file
-if [ -f ia2-api-`date +%Y%m%d`.zip ]; then
- rm ia2-api-`date +%Y%m%d`.zip
-fi
-
-# package merged IDL file and documentation
-zip -9r ia2-api-`date +%Y%m%d`.zip ia2_api_all.idl api/*.idl docs
-
-# list packaged file for visual confirmation
-echo ''
-ls -l ia2-api-`date +%Y%m%d`.zip
+# run build.sh from the IA2 directory
+
+# make sure we have Cygwin
+if [ ! -d /cygdrive/c ]; then
+ echo 'Expected to find Cygwin'
+ exit 1
+fi
+
+# make sure we have the proper directory structure
+if [ ! -d api ]; then
+ echo 'Expected to find ./api'
+ exit 1
+fi
+
+# make sure we have Doxygen
+if [ ! -x /cygdrive/c/program\ files/doxygen/bin/doxygen.exe ]; then
+ echo 'Expected to find c:/program files/doxygen/bin/doxygen.exe'
+ exit 1
+fi
+
+cd api
+
+# make sure we have a Doxygen configuration file
+if [ ! -f ../doxygen.conf ]; then
+ echo 'Expected to find doxygen.conf'
+ exit 1
+fi
+
+# clean up test dir
+if [ -f ../IDL-Test/dlldata.c ]; then
+ rm ../IDL-Test/*.c
+ rm ../IDL-Test/*.h
+fi
+
+cp ../IDL-Test/StdAfxSave/*.* ../IDL-Test
+
+# remove previous autogenerated Doxygen files
+if [ -d ../docs ]; then
+ rm -rf ../docs
+fi
+
+# generate IDL documentation with Doxygen
+/cygdrive/c/program\ files/doxygen/bin/doxygen ../doxygen.conf
+
+# remove any previous autogenerated merged IDL file
+if [ -f ../ia2_api_all.idl ]; then
+ rm ../ia2_api_all.idl
+fi
+
+# generate merged IDL file - IA2TypeLibrary.idl must be at the end
+cat IA2CommonTypes.idl AccessibleRelation.idl AccessibleAction.idl AccessibleRole.idl AccessibleStates.idl Accessible2.idl Accessible2_2.idl AccessibleComponent.idl AccessibleValue.idl AccessibleText.idl AccessibleText2.idl AccessibleEditableText.idl AccessibleHyperlink.idl AccessibleHyperText.idl AccessibleHypertext2.idl AccessibleTable2.idl AccessibleTableCell.idl AccessibleImage.idl AccessibleEventId.idl AccessibleApplication.idl AccessibleDocument.idl IA2TypeLibrary.idl | sed -e 's/import "[A-Za-z0-9].*$//g' - | cat api_all_headers.idl - > ../ia2_api_all.idl
+
+cd ..
+
+# remove previous autogenerated zip file
+if [ -f ia2-api-`date +%Y%m%d`.zip ]; then
+ rm ia2-api-`date +%Y%m%d`.zip
+fi
+
+# package merged IDL file and documentation
+zip -9r ia2-api-`date +%Y%m%d`.zip ia2_api_all.idl api/*.idl docs
+
+# list packaged file for visual confirmation
+echo ''
+ls -l ia2-api-`date +%Y%m%d`.zip
diff --git a/changelog.txt b/changelog.txt
index 3fd8798..e48ca66 100755
--- a/changelog.txt
+++ b/changelog.txt
@@ -1,82 +1,65 @@
-2011-January-21 Pete Brunet