blob: f3a9b18962f0958599f4bcbe9e834e55cdf9d978 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
|
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] ranges
The array of selection ranges, allocated by the server. The client must
free it with CoTaskMemFree.
* @param [out] nRanges
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
);
}
|