summaryrefslogtreecommitdiff
path: root/other-licenses/ia2/Accessible2_3.idl
diff options
context:
space:
mode:
Diffstat (limited to 'other-licenses/ia2/Accessible2_3.idl')
-rw-r--r--other-licenses/ia2/Accessible2_3.idl47
1 files changed, 47 insertions, 0 deletions
diff --git a/other-licenses/ia2/Accessible2_3.idl b/other-licenses/ia2/Accessible2_3.idl
new file mode 100644
index 0000000000..d60130a08d
--- /dev/null
+++ b/other-licenses/ia2/Accessible2_3.idl
@@ -0,0 +1,47 @@
+import "objidl.idl";
+import "oaidl.idl";
+import "oleacc.idl";
+import "Accessible2_2.idl";
+
+/**
+ * This structure represents a directional range of the content. It is defined
+ * by two points in the content, where each one is defined by an accessible
+ * object and an offset relative to it. A typical case of a range point is
+ * a text accessible and text offset within it.
+ *
+ * The "anchor" is one point of the range and typically remains constant.
+ * The other point is the "active" point, which typically corresponds to
+ * the user's focus or point of interest. The user moves the active point to
+ * expand or collapse the range. In most cases, anchor is the start of the range
+ * and active is the end. However, in case of selection, when selecting
+ * backwards (e.g. pressing shift+left arrow in a text field), the start of
+ * the range is the active point, as the user moves this to manipulate
+ * the selection.
+ */
+typedef struct IA2Range {
+ IUnknown* anchor;
+ long anchorOffset;
+ IUnknown* active;
+ long activeOffset;
+} IA2Range;
+
+/**
+ * @brief This interface is an extension of IAccessible2_2 and IAccessible2
+ * interfaces.
+ */
+[object, uuid(5BE18059-762E-4E73-9476-ABA294FED411)]
+interface IAccessible2_3 : IAccessible2_2
+{
+ /**
+ * @brief Returns an array of ranges for selections within the accessible.
+ * @param [out] the array of selection ranges
+ * @param [out] the array length
+ * @retval S_OK
+ * @retval S_FALSE returned if there is no selection within the accessible
+ */
+ [propget] HRESULT selectionRanges
+ (
+ [out, size_is(,*nRanges)] IA2Range **ranges,
+ [out, retval] long *nRanges
+ );
+}