15821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/*************************************************************************
25821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *
3010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) *  File Name (api_all_headers.idl)
4010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) *
5010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) *  IAccessible2 IDL Specification
6010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) *
7010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) *  Copyright (c) 2013 Linux Foundation
8010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) *  All rights reserved.
9010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) *
10010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) *
11010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) *  Redistribution and use in source and binary forms, with or without
12010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) *  modification, are permitted provided that the following conditions
13010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) *  are met:
14010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) *
15010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) *   1. Redistributions of source code must retain the above copyright
16010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) *      notice, this list of conditions and the following disclaimer.
17010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) *
18010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) *   2. Redistributions in binary form must reproduce the above
19010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) *      copyright notice, this list of conditions and the following
20010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) *      disclaimer in the documentation and/or other materials
21010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) *      provided with the distribution.
22010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) *
23010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) *   3. Neither the name of the Linux Foundation nor the names of its
24010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) *      contributors may be used to endorse or promote products
25010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) *      derived from this software without specific prior written
26010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) *      permission.
27010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) *
28010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) *  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
29010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) *  CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
30010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) *  INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
31010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) *  MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
32010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) *  DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
33010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) *  CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
34010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) *  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
35010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) *  NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
36010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) *  LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
37010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) *  HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
38010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) *  CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
39010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) *  OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
40010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) *  EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
41010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) *
42010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) *  This BSD License conforms to the Open Source Initiative "Simplified
43010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) *  BSD License" as published at:
44010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) *  http://www.opensource.org/licenses/bsd-license.php
45010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) *
46010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) *  IAccessible2 is a trademark of the Linux Foundation. The IAccessible2
47010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) *  mark may be used in accordance with the Linux Foundation Trademark
48010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) *  Policy to indicate compliance with the IAccessible2 specification.
49010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) *
50010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) ************************************************************************/
51010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)
52010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)import "objidl.idl";
53010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)import "oaidl.idl";
54010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)import "oleacc.idl";
55010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)
56010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)/*************************************************************************
57010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) *
585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  File Name (IA2CommonTypes.idl)
595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *
605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  IAccessible2 IDL Specification
615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *
62010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) *  Copyright (c) 2007, 2013 Linux Foundation
635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  Copyright (c) 2006 IBM Corporation
645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  Copyright (c) 2000, 2006 Sun Microsystems, Inc.
655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  All rights reserved.
665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *
675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *
685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  Redistribution and use in source and binary forms, with or without
695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  modification, are permitted provided that the following conditions
705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  are met:
715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *
725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *   1. Redistributions of source code must retain the above copyright
735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *      notice, this list of conditions and the following disclaimer.
745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *
755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *   2. Redistributions in binary form must reproduce the above
765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *      copyright notice, this list of conditions and the following
775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *      disclaimer in the documentation and/or other materials
785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *      provided with the distribution.
795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *
805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *   3. Neither the name of the Linux Foundation nor the names of its
815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *      contributors may be used to endorse or promote products
825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *      derived from this software without specific prior written
835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *      permission.
845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *
855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *
995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  This BSD License conforms to the Open Source Initiative "Simplified
1005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  BSD License" as published at:
1015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  http://www.opensource.org/licenses/bsd-license.php
1025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *
1035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  IAccessible2 is a trademark of the Linux Foundation. The IAccessible2
1045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  mark may be used in accordance with the Linux Foundation Trademark
1055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  Policy to indicate compliance with the IAccessible2 specification.
1065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *
1075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ************************************************************************/
1085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) /** These constants control the scrolling of an object or substring into a window.
1105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) This enum is used in IAccessible2::scrollTo and IAccessibleText::scrollSubstringTo.
1125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)*/
1135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)enum IA2ScrollType {
1145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  /** Scroll the top left corner of the object or substring such that the top left
1165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   corner (and as much as possible of the rest of the object or substring) is within
1175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   the top level window.  In cases where the entire object or substring fits within
1185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   the top level window, the placement of the object or substring is dependent on
1195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   the application.  For example, the object or substring may be scrolled to the
1205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   closest edge, the furthest edge, or midway between those two edges.  In cases
1215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   where there is a hierarchy of nested scrollable controls, more than one control
1225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   may have to be scrolled.
1235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  */
1245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  IA2_SCROLL_TYPE_TOP_LEFT,
1255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  /** Scroll the bottom right corner of the object or substring such that the bottom right
1275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   corner (and as much as possible of the rest of the object or substring) is within
1285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   the top level window.  In cases where the entire object or substring fits within
1295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   the top level window, the placement of the object or substring is dependent on
1305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   the application.  For example, the object or substring may be scrolled to the
1315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   closest edge, the furthest edge, or midway between those two edges.  In cases
1325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   where there is a hierarchy of nested scrollable controls, more than one control
1335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   may have to be scrolled.
1345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  */
1355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  IA2_SCROLL_TYPE_BOTTOM_RIGHT,
1365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  /** Scroll the top edge of the object or substring such that the top edge
1385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   (and as much as possible of the rest of the object or substring) is within the
1395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   top level window.  In cases where the entire object or substring fits within
1405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   the top level window, the placement of the object or substring is dependent on
1415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   the application.  For example, the object or substring may be scrolled to the
1425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   closest edge, the furthest edge, or midway between those two edges.  In cases
1435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   where there is a hierarchy of nested scrollable controls, more than one control
1445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   may have to be scrolled.
1455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  */
1465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  IA2_SCROLL_TYPE_TOP_EDGE,
1475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  /** Scroll the bottom edge of the object or substring such that the bottom edge
1495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   (and as much as possible of the rest of the object or substring) is within the
1505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   top level window.  In cases where the entire object or substring fits within
1515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   the top level window, the placement of the object or substring is dependent on
1525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   the application.  For example, the object or substring may be scrolled to the
1535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   closest edge, the furthest edge, or midway between those two edges.  In cases
1545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   where there is a hierarchy of nested scrollable controls, more than one control
1555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   may have to be scrolled.
1565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  */
1575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  IA2_SCROLL_TYPE_BOTTOM_EDGE,
1585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  /** Scroll the left edge of the object or substring such that the left edge
1605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   (and as much as possible of the rest of the object or substring) is within the
1615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   top level window.  In cases where the entire object or substring fits within
1625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   the top level window, the placement of the object or substring is dependent on
1635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   the application.  For example, the object or substring may be scrolled to the
1645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   closest edge, the furthest edge, or midway between those two edges.  In cases
1655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   where there is a hierarchy of nested scrollable controls, more than one control
1665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   may have to be scrolled.
1675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  */
1685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  IA2_SCROLL_TYPE_LEFT_EDGE,
1695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  /** Scroll the right edge of the object or substring such that the right edge
1715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   (and as much as possible of the rest of the object or substring) is within the
1725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   top level window.  In cases where the entire object or substring fits within
1735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   the top level window, the placement of the object or substring is dependent on
1745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   the application.  For example, the object or substring may be scrolled to the
1755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   closest edge, the furthest edge, or midway between those two edges.  In cases
1765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   where there is a hierarchy of nested scrollable controls, more than one control
1775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   may have to be scrolled.
1785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  */
1795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  IA2_SCROLL_TYPE_RIGHT_EDGE,
1805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  /** Scroll the object or substring such that as much as possible of the
1825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   object or substring is within the top level window.  The placement of
1835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   the object is dependent on the application.  For example, the object or
1845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   substring may be scrolled to to closest edge, the furthest edge, or midway
1855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   between those two edges.
1865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  */
1875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  IA2_SCROLL_TYPE_ANYWHERE
1885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)};
1895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/** These constants define which coordinate system a point is located in.
1915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) This enum is used in IAccessible2::scrollToPoint, IAccessibleImage::imagePosition,
1935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) IAccessibleText::characterExtents, and IAccessibleText::offsetAtPoint, and
1945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) IAccessibleText::scrollSubstringToPoint.
1955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)*/
1965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)enum IA2CoordinateType {
1975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  /// The coordinates are relative to the screen.
1995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  IA2_COORDTYPE_SCREEN_RELATIVE,
2005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
2015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  /** The coordinates are relative to the upper left corner of the bounding box
2025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   of the immediate parent.
2035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  */
2045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  IA2_COORDTYPE_PARENT_RELATIVE
2055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
2065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)};
2075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
2085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/** Special offsets for use in IAccessibleText and IAccessibleEditableText methods
2095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
2105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  Refer to @ref _specialOffsets
2115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  "Special Offsets for use in the IAccessibleText and IAccessibleEditableText Methods"
2125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  for more information.
2135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)*/
2145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)enum IA2TextSpecialOffsets {
2155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  IA2_TEXT_OFFSET_LENGTH = -1,	/**< This offset is equivalent to the length of the string.  It eliminates
2165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)								 the need to call IAccessibleText::nCharacters. */
2175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  IA2_TEXT_OFFSET_CARET = -2	/**< This offset signifies that the text related to the physical location
2185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)								 of the caret should be used. */
2195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)};
2205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
2215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/** These constants specify the kind of change made to a table.
2225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
2235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   This enum is used in the IA2TableModelChange struct which in turn is used by
2245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   IAccessibleTable::modelChange and IAccessibleTable2::modelChange.
2255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)*/
2265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)enum IA2TableModelChangeType {
2275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  IA2_TABLE_MODEL_CHANGE_INSERT,  // = 0;
2285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  IA2_TABLE_MODEL_CHANGE_DELETE,
2295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  IA2_TABLE_MODEL_CHANGE_UPDATE
2305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)};
2315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
2325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/** A structure defining the type of and extents of changes made to a table
2335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
2345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) IAccessibleTable::modelChange and IAccessibleTable2::modelChange return this struct.
2355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) In the case of an insertion or change the row and column offsets define the boundaries
2365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) of the inserted or changed subtable after the operation.  In the case of a deletion
2375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) the row and column offsets define the boundaries of the subtable being removed before
2385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) the removal.
2395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)*/
2405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)typedef struct IA2TableModelChange {
2415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  enum IA2TableModelChangeType type;	// insert, delete, update
2425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  long firstRow;		///< 0 based, inclusive
2435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  long lastRow;			///< 0 based, inclusive
2445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  long firstColumn;		///< 0 based, inclusive
2455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  long lastColumn;		///< 0 based, inclusive
2465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} IA2TableModelChange;
2475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/*************************************************************************
2485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *
2495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  File Name (AccessibleRelation.idl)
2505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *
2515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  IAccessible2 IDL Specification
2525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *
253010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) *  Copyright (c) 2007, 2013 Linux Foundation
2545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  Copyright (c) 2006 IBM Corporation
2555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  Copyright (c) 2000, 2006 Sun Microsystems, Inc.
2565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  All rights reserved.
2575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *
2585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *
2595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  Redistribution and use in source and binary forms, with or without
2605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  modification, are permitted provided that the following conditions
2615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  are met:
2625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *
2635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *   1. Redistributions of source code must retain the above copyright
2645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *      notice, this list of conditions and the following disclaimer.
2655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *
2665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *   2. Redistributions in binary form must reproduce the above
2675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *      copyright notice, this list of conditions and the following
2685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *      disclaimer in the documentation and/or other materials
2695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *      provided with the distribution.
2705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *
2715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *   3. Neither the name of the Linux Foundation nor the names of its
2725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *      contributors may be used to endorse or promote products
2735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *      derived from this software without specific prior written
2745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *      permission.
2755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *
2765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
2775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
2785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
2795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
2805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
2815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
2825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
2835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
2845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
2855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
2865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
2875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
2885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
2895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *
2905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  This BSD License conforms to the Open Source Initiative "Simplified
2915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  BSD License" as published at:
2925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  http://www.opensource.org/licenses/bsd-license.php
2935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *
2945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  IAccessible2 is a trademark of the Linux Foundation. The IAccessible2
2955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  mark may be used in accordance with the Linux Foundation Trademark
2965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  Policy to indicate compliance with the IAccessible2 specification.
2975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *
2985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ************************************************************************/
2995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
300010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)
301010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)
302010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)
3035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
3045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/** @defgroup grpRelations Relations
3055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  Use the following constants to compare against the BSTRs returned by
3065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  IAccessibleRelation::relationType.
3075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)*/
3085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)///@{
3095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
310010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)/** The target object is the containing application object. */
311010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)const WCHAR *const IA2_RELATION_CONTAINING_APPLICATION = L"containingApplication";
312010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)
313010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)/** The target object is the containing document object. The target object implements
314010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) the IAccessibleDocument interface.
315010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)*/
316010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)const WCHAR *const IA2_RELATION_CONTAINING_DOCUMENT = L"containingDocument";
317010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)
318010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)/** The target object is the containing tab pane object. */
319010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)const WCHAR *const IA2_RELATION_CONTAINING_TAB_PANE = L"containingTabPane";
320010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)
321010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)/** The target object is the containing window object. */
322010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)const WCHAR *const IA2_RELATION_CONTAINING_WINDOW = L"containingWindow";
323010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)
3245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/** Some attribute of this object is affected by a target object. */
3255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)const WCHAR *const IA2_RELATION_CONTROLLED_BY = L"controlledBy";
3265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
3275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/** This object is interactive and controls some attribute of a target object. */
3285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)const WCHAR *const IA2_RELATION_CONTROLLER_FOR = L"controllerFor";
3295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
3305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/** This object is described by the target object. */
3315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)const WCHAR *const IA2_RELATION_DESCRIBED_BY = L"describedBy";
3325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
3335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/** This object is describes the target object. */
3345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)const WCHAR *const IA2_RELATION_DESCRIPTION_FOR = L"descriptionFor";
3355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
3365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/** This object is embedded by a target object. */
3375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)const WCHAR *const IA2_RELATION_EMBEDDED_BY = L"embeddedBy";
3385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
3395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/** This object embeds a target object. This relation can be used on the
3405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) OBJID_CLIENT accessible for a top level window to show where the content
3415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) areas are.
3425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)*/
3435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)const WCHAR *const IA2_RELATION_EMBEDS = L"embeds";
3445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
3455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/** Content flows to this object from a target object.
3465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) This relation and IA2_RELATION_FLOWS_TO are useful to tie text and non-text
3475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) objects together in order to allow assistive technology to follow the
3485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) intended reading order.
3495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)*/
3505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)const WCHAR *const IA2_RELATION_FLOWS_FROM = L"flowsFrom";
3515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
3525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/** Content flows from this object to a target object. */
3535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)const WCHAR *const IA2_RELATION_FLOWS_TO = L"flowsTo";
3545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
3555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/** This object is label for a target object. */
3565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)const WCHAR *const IA2_RELATION_LABEL_FOR = L"labelFor";
3575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
3585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/** This object is labelled by a target object. Note that the double L spelling
3595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) which follows is preferred.  Please use it instead.  This single L version may
3605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) be removed in a later version.
3615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)*/
3625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)const WCHAR *const IA2_RELATION_LABELED_BY = L"labelledBy";
3635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
3645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/** This object is labelled by a target object. */
3655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)const WCHAR *const IA2_RELATION_LABELLED_BY = L"labelledBy";
3665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
3675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/** This object is a member of a group of one or more objects. When
3685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) there is more than one object in the group each member may have one and the
3695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) same target, e.g. a grouping object.  It is also possible that each member has
3705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) multiple additional targets, e.g. one for every other member in the group.
3715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)*/
3725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)const WCHAR *const IA2_RELATION_MEMBER_OF = L"memberOf";
3735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
374010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)/** The target object is the next object in the tab order. */
375010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)const WCHAR *const IA2_RELATION_NEXT_TABBABLE = L"nextTabbable";
376010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)
377010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)/** This object is a logical child of a target object.  This relation is the reciprocal
378010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) of the IA2_RELATION_NODE_PARENT_OF relation. In some cases an application's accessible
379010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) tree is such that objects can be in a logical parent-child relationship which is
380010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) different from the hierarchy of the accessible tree. */
3815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)const WCHAR *const IA2_RELATION_NODE_CHILD_OF = L"nodeChildOf";
3825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
383010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)/** This object is a logical parent of a target object. This relation is the reciprocal
384010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) of the IA2_RELATION_NODE_CHILD_OF relation. In some cases an application's accessible
385010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) tree is such that objects can be in a logical parent-child relationship which is
386010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) different from the hierarchy of the accessible tree. */
387010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)const WCHAR *const IA2_RELATION_NODE_PARENT_OF = L"nodeParentOf";
388010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)
3895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/** This object is a parent window of the target object. */
3905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)const WCHAR *const IA2_RELATION_PARENT_WINDOW_OF = L"parentWindowOf";
3915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
3925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/** This object is a transient component related to the target object.
393010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) When this object is activated the target object doesn't lose focus.
3945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)*/
3955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)const WCHAR *const IA2_RELATION_POPUP_FOR = L"popupFor";
3965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
397010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)/** The target object is the previous object in the tab order. */
398010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)const WCHAR *const IA2_RELATION_PREVIOUS_TABBABLE = L"previousTabbable";
399010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)
4005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/** This object is a sub window of a target object. */
4015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)const WCHAR *const IA2_RELATION_SUBWINDOW_OF = L"subwindowOf";
4025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
4035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)///@}
4045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
405010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)/** This interface gives access to an object's set of relations.
406010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)*/
4075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)[object, uuid(7CDF86EE-C3DA-496a-BDA4-281B336E1FDC)]
4085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)interface IAccessibleRelation : IUnknown
4095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles){
4105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  /** @brief Returns the type of the relation.
4115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @param [out] relationType
4125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    The strings returned are defined @ref grpRelations "in this section of the documentation".
4135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @retval S_OK
4145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  */
4155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  [propget] HRESULT relationType
4165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    (
4175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)     [out, retval] BSTR *relationType
4185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    );
4195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
4205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  /** @brief Returns a localized version of the relation type.
4215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @param [out] localizedRelationType
4225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @retval S_OK
4235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  */
4245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  [propget] HRESULT localizedRelationType
4255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    (
4265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)     [out, retval] BSTR *localizedRelationType
4275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    );
4285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
4295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  /** @brief Returns the number of targets for this relation.
4305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @param [out] nTargets
4315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @retval S_OK
4325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  */
4335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  [propget] HRESULT nTargets
4345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    (
4355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)     [out, retval] long *nTargets
4365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    );
4375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
4385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  /** @brief Returns one accessible relation target.
4395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @param [in] targetIndex
4405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    0 based index
4415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @param [out] target
4425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @retval S_OK
443010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)   @retval E_INVALIDARG if bad [in] passed
4445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @note Use QueryInterface to get IAccessible2.
4455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  */
4465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  [propget] HRESULT target
4475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    (
4485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)     [in] long targetIndex,
4495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)     [out, retval] IUnknown **target
4505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    );
4515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
4525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  /** @brief Returns multiple accessible relation targets
4535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @param [in] maxTargets
4545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    maximum size of the array allocated by the client
4555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @param [out] targets
4565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    The array of target objects.  Note that this array is to be allocated by the
4575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	client and freed when no longer needed.  Refer to @ref _arrayConsideration
4585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	"Special Consideration when using Arrays" for more details.  You will need to use
4595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	QueryInterface on the IUnknown to get the IAccessible2.
4605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @param [out] nTargets
4615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	actual number of targets in the returned array (not more than maxTargets)
4625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @retval S_OK
463010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)   @retval E_INVALIDARG if bad [in] passed, e.g. a negative value
4645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  */
4655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  [propget] HRESULT targets
4665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    (
4675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)     [in] long maxTargets,
4685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)     [out, size_is(maxTargets), length_is(*nTargets)]
4695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)       IUnknown **targets,
4705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)     [out, retval] long *nTargets
4715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    );
4725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
4735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
4745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/*************************************************************************
4755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *
4765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  File Name (AccessibleAction.idl)
4775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *
4785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  IAccessible2 IDL Specification
4795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *
480010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) *  Copyright (c) 2007, 2013 Linux Foundation
4815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  Copyright (c) 2006 IBM Corporation
4825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  Copyright (c) 2000, 2006 Sun Microsystems, Inc.
4835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  All rights reserved.
4845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *
4855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *
4865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  Redistribution and use in source and binary forms, with or without
4875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  modification, are permitted provided that the following conditions
4885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  are met:
4895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *
4905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *   1. Redistributions of source code must retain the above copyright
4915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *      notice, this list of conditions and the following disclaimer.
4925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *
4935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *   2. Redistributions in binary form must reproduce the above
4945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *      copyright notice, this list of conditions and the following
4955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *      disclaimer in the documentation and/or other materials
4965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *      provided with the distribution.
4975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *
4985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *   3. Neither the name of the Linux Foundation nor the names of its
4995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *      contributors may be used to endorse or promote products
5005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *      derived from this software without specific prior written
5015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *      permission.
5025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *
5035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
5045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
5055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
5065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
5075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
5085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
5095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
5105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
5115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
5125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
5135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
5145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
5155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
5165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *
5175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  This BSD License conforms to the Open Source Initiative "Simplified
5185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  BSD License" as published at:
5195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  http://www.opensource.org/licenses/bsd-license.php
5205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *
5215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  IAccessible2 is a trademark of the Linux Foundation. The IAccessible2
5225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  mark may be used in accordance with the Linux Foundation Trademark
5235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  Policy to indicate compliance with the IAccessible2 specification.
5245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *
5255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ************************************************************************/
5265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
527010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)
528010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)
529010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)
530010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)
531010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)/** This enum defines values which are predefined actions for use when implementing
532010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) support for media.
533010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)
534010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) This enum is used when specifying an action for IAccessibleAction::doAction.
535010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)*/
536010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)
537010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)enum IA2Actions {
538010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)  IA2_ACTION_OPEN = -1,         /**< Used to inform the server that the client will
539010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)                                signal via IA2_ACTION_COMPLETE when it has consumed
540010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)                                the content provided by the object.  This action
541010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)                                allows the object's server to wait for all clients
542010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)                                to signal their readiness for additional content.
543010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)                                Any form of content generation that requires
544010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)                                synchronization with an AT would require use of this
545010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)                                action.  One example is the generation of text describing
546010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)                                visual content not obvious from a video's sound track.
547010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)                                In this scenario the Text to Speech or Braille output
548010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)                                may take more time than the related length of silence
549010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)                                in the video's sound track. */
550010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)  IA2_ACTION_COMPLETE = -2,  	/**< Used by the client to inform the server that it has
551010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)                                consumed the most recent content provided by this object. */
552010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)  IA2_ACTION_CLOSE = -3         /**< Used to inform the server that the client no longer
553010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)                                requires synchronization. */
554010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)};
5555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
5565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/** @brief This interface gives access to actions that can be executed
5575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  for accessible objects.
5585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
5595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) Every accessible object that can be manipulated via the native GUI beyond the
5605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  methods available either in the MSAA IAccessible interface or in the set of
5615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  IAccessible2 interfaces (other than this IAccessibleAction interface) should
5625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  support the IAccessibleAction interface in order to provide Assistive Technology
5635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  access to all the actions that can be performed by the object.  Each action can
5645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  be performed or queried for a name, description or associated key bindings.
5655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  Actions are needed more for ATs that assist the mobility impaired, such as
5665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  on-screen keyboards and voice command software.  By providing actions directly,
5675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  the AT can present them to the user without the user having to perform the extra
5685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  steps to navigate a context menu.
5695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
5705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) The first action should be equivalent to the MSAA default action.  If there is
5715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  only one action, %IAccessibleAction should also be implemented.
5725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)*/
5735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)[object, uuid(B70D9F59-3B5A-4dba-AB9E-22012F607DF5)]
5745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)interface IAccessibleAction : IUnknown
5755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles){
5765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
5775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  /** @brief Returns the number of accessible actions available in this object.
5785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
5795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   If there are more than one, the first one is considered the
5805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    "default" action of the object.
5815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @param [out] nActions
5825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    The returned value of the number of actions is zero if there are
5835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    no actions.
5845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @retval S_OK
5855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @note This method is missing a [propget] prefix in the IDL.  The result is the
5865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    method is named nActions in generated C++ code instead of get_nActions.
5875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  */
5885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  HRESULT nActions
5895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    (
5905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)     [out,retval] long* nActions
5915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    );
5925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
5935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  /** @brief Performs the specified Action on the object.
5945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @param [in] actionIndex
5955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    0 based index specifying the action to perform.  If it lies outside
5965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    the valid range no action is performed.
5975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @retval S_OK
598010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)   @retval S_FALSE if action could not be performed
599010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)   @retval E_INVALIDARG if bad [in] passed
600010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)   @note If implementing support for media, refer to the predefined constants in the ::IA2Actions enum.
6015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    */
6025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  HRESULT doAction
6035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    (
6045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)     [in] long actionIndex
6055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    );
6065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
6075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  /** @brief Returns a description of the specified action of the object.
6085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @param [in] actionIndex
6095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    0 based index specifying which action's description to return.
6105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    If it lies outside the valid range an empty string is returned.
6115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @param [out] description
6125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    The returned value is a localized string of the specified action.
6135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @retval S_OK
6145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @retval S_FALSE if there is nothing to return, [out] value is NULL
615010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)   @retval E_INVALIDARG if bad [in] passed
6165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    */
6175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  [propget] HRESULT description
6185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    (
6195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)     [in] long actionIndex,
6205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)     [out, retval] BSTR *description
6215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    );
6225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
6235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  /** @brief Returns an array of BSTRs describing one or more key bindings, if
6245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   there are any, associated with the specified action.
6255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
6265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   The returned strings are the localized human readable key sequences to be
6275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   used to activate each action, e.g. "Ctrl+Shift+D".  Since these key
6285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   sequences are to be used when the object has focus, they are like
6295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   mnemonics (access keys), and not like shortcut (accelerator) keys.
6305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
6315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   There is no need to implement this method for single action controls since
6325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   that would be redundant with the standard MSAA programming practice of
6335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   getting the mnemonic from get_accKeyboardShortcut.
6345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
6355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   An AT such as an On Screen Keyboard might not expose these bindings but
6365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   provide alternative means of activation.
6375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
6385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   Note: the client allocates and passes in an array of pointers.  The server
6395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   allocates the BSTRs and passes back one or more pointers to these BSTRs into
6405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   the array of pointers allocated by the client.  The client is responsible
6415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   for deallocating the BSTRs.
6425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
6435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @param [in] actionIndex
6445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    0 based index specifying which action's key bindings should be returned.
6455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @param [in] nMaxBindings
6465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    This parameter is ignored. Refer to @ref _arrayConsideration
6475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	"Special Consideration when using Arrays" for more details.
6485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @param [out] keyBindings
6495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    An array of BSTRs, allocated by the server, one for each key binding.
650010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)	The client must free it with CoTaskMemFree.
6515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @param [out] nBindings
6525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    The number of key bindings returned; the size of the returned array.
6535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @retval S_OK
654010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)   @retval S_FALSE if there are no key bindings, [out] values are NULL and 0 respectively
655010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)   @retval E_INVALIDARG if bad [in] passed
6565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	*/
6575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  [propget] HRESULT keyBinding
6585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    (
6595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)     [in] long actionIndex,
6605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)     [in] long nMaxBindings,
6615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)     [out, size_is(,nMaxBindings), length_is(,*nBindings)] BSTR **keyBindings,
6625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	 [out, retval] long *nBindings
6635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    );
6645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
6655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  /** @brief Returns the non-localized name of specified action.
6665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @param [in] actionIndex
6675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    0 based index specifying which action's non-localized name should be returned.
6685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @param [out] name
6695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @retval S_OK
6705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @retval S_FALSE if there is nothing to return, [out] value is NULL
671010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)   @retval E_INVALIDARG if bad [in] passed
6725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   */
6735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  [propget] HRESULT name
6745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    (
6755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)     [in] long actionIndex,
6765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)     [out, retval] BSTR *name
6775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    );
6785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
6795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  /** @brief Returns the localized name of specified action.
6805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @param [in] actionIndex
6815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    0 based index specifying which action's localized name should be returned.
6825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @param [out] localizedName
6835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @retval S_OK
6845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @retval S_FALSE if there is nothing to return, [out] value is NULL
685010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)   @retval E_INVALIDARG if bad [in] passed
6865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   */
6875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  [propget] HRESULT localizedName
6885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    (
6895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)     [in] long actionIndex,
6905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)     [out, retval] BSTR *localizedName
6915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    );
6925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
6935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
6945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/*************************************************************************
6955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *
6965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  File Name (AccessibleRole.idl)
6975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *
6985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  IAccessible2 IDL Specification
6995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *
700010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) *  Copyright (c) 2007, 2013 Linux Foundation
7015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  Copyright (c) 2006 IBM Corporation
7025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  Copyright (c) 2000, 2006 Sun Microsystems, Inc.
7035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  All rights reserved.
7045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *
7055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *
7065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  Redistribution and use in source and binary forms, with or without
7075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  modification, are permitted provided that the following conditions
7085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  are met:
7095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *
7105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *   1. Redistributions of source code must retain the above copyright
7115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *      notice, this list of conditions and the following disclaimer.
7125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *
7135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *   2. Redistributions in binary form must reproduce the above
7145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *      copyright notice, this list of conditions and the following
7155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *      disclaimer in the documentation and/or other materials
7165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *      provided with the distribution.
7175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *
7185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *   3. Neither the name of the Linux Foundation nor the names of its
7195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *      contributors may be used to endorse or promote products
7205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *      derived from this software without specific prior written
7215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *      permission.
7225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *
7235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
7245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
7255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
7265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
7275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
7285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
7295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
7305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
7315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
7325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
7335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
7345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
7355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
7365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *
7375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  This BSD License conforms to the Open Source Initiative "Simplified
7385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  BSD License" as published at:
7395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  http://www.opensource.org/licenses/bsd-license.php
7405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *
7415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  IAccessible2 is a trademark of the Linux Foundation. The IAccessible2
7425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  mark may be used in accordance with the Linux Foundation Trademark
7435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  Policy to indicate compliance with the IAccessible2 specification.
7445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *
7455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ************************************************************************/
7465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
747010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)
7485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
7495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/** Collection of roles
7505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
7515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  This enumerator defines an extended set of accessible roles of objects implementing
7525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  the %IAccessible2 interface. These roles are in addition to the MSAA roles obtained
7535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  through the MSAA get_accRole method.  Examples are 'footnote', 'heading', and
7545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  'label'. You obtain an object's %IAccessible2 roles by calling IAccessible2::role.
7555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)*/
7565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)enum IA2Role {
7575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
7585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  /** Unknown role. The object contains some Accessible information, but its
7595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   role is not known.
7605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  */
7615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  IA2_ROLE_UNKNOWN = 0,
7625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
7635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  /** An object that can be drawn into and to manage events from the objects
7645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   drawn into it.  Also refer to ::IA2_ROLE_FRAME,
7655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   ::IA2_ROLE_GLASS_PANE, and ::IA2_ROLE_LAYERED_PANE.
7665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  */
7675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  IA2_ROLE_CANVAS = 0x401,
7685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
7695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  /// A caption describing another object.
7705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  IA2_ROLE_CAPTION,
7715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
7725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  /// Used for check buttons that are menu items.
7735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  IA2_ROLE_CHECK_MENU_ITEM,
7745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
7755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  /// A specialized dialog that lets the user choose a color.
7765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  IA2_ROLE_COLOR_CHOOSER,
7775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
7785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  /// A date editor.
7795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  IA2_ROLE_DATE_EDITOR,
7805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
7815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  /** An iconified internal frame in an ::IA2_ROLE_DESKTOP_PANE.
7825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   Also refer to ::IA2_ROLE_INTERNAL_FRAME.
7835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  */
7845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  IA2_ROLE_DESKTOP_ICON,
7855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
7865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  /** A desktop pane. A pane that supports internal frames and iconified
7875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   versions of those internal frames.  Also refer to ::IA2_ROLE_INTERNAL_FRAME.
7885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  */
7895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  IA2_ROLE_DESKTOP_PANE,
7905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
7915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  /** A directory pane. A pane that allows the user to navigate through
7925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   and select the contents of a directory. May be used by a file chooser.
7935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   Also refer to ::IA2_ROLE_FILE_CHOOSER.
7945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  */
7955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  IA2_ROLE_DIRECTORY_PANE,
7965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
797010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)  /** An editable text object in a toolbar. <b>Deprecated.</b>
798010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)   The edit bar role was meant for a text area in a tool bar. However, to detect
799010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)   a text area in a tool bar the AT can query the parent.
8005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  */
8015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  IA2_ROLE_EDITBAR,
8025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
8035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  /// Embedded (OLE) object.
8045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  IA2_ROLE_EMBEDDED_OBJECT,
8055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
8065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  /// Text that is used as an endnote (footnote at the end of a chapter or section).
8075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  IA2_ROLE_ENDNOTE,
8085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
8095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  /** A file chooser. A specialized dialog that displays the files in the
8105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   directory and lets the user select a file, browse a different directory,
8115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   or specify a filename. May use the directory pane to show the contents of
8125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   a directory.
8135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   Also refer to ::IA2_ROLE_DIRECTORY_PANE.
8145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  */
8155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  IA2_ROLE_FILE_CHOOSER,
8165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
8175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  /** A font chooser. A font chooser is a component that lets the user pick
8185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   various attributes for fonts.
8195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  */
8205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  IA2_ROLE_FONT_CHOOSER,
8215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
8225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  /** Footer of a document page.
8235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   Also refer to ::IA2_ROLE_HEADER.
8245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  */
8255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  IA2_ROLE_FOOTER,
8265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
8275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  /// Text that is used as a footnote.  Also refer to ::IA2_ROLE_ENDNOTE.
8285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  IA2_ROLE_FOOTNOTE,
8295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
8305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  /** A container of form controls.  An example of the use of this role is to
8315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   represent an HTML FORM tag.
8325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  */
8335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  IA2_ROLE_FORM,
8345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
8355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  /** Frame role. A top level window with a title bar, border, menu bar, etc.
8365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   It is often used as the primary window for an application.  Also refer to
8375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   ::IA2_ROLE_CANVAS and the MSAA roles of dialog and window.
8385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  */
8395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  IA2_ROLE_FRAME,
8405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
8415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  /** A glass pane. A pane that is guaranteed to be painted on top of all panes
8425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   beneath it.  Also refer to ::IA2_ROLE_CANVAS, ::IA2_ROLE_INTERNAL_FRAME, and
8435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   ::IA2_ROLE_ROOT_PANE.
8445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  */
8455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  IA2_ROLE_GLASS_PANE,
8465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
8475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  /** Header of a document page.
8485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   Also refer to ::IA2_ROLE_FOOTER.
8495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  */
8505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  IA2_ROLE_HEADER,
8515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
852010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)  /// Heading.  Use the IAccessible2::attributes level attribute to determine the heading level.
8535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  IA2_ROLE_HEADING,
8545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
8555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  /// A small fixed size picture, typically used to decorate components.
8565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  IA2_ROLE_ICON,
8575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
8585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  /** An image map object.  Usually a graphic with multiple hotspots, where
8595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   each hotspot can be activated resulting in the loading of another document
8605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   or section of a document.
8615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  */
8625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  IA2_ROLE_IMAGE_MAP,
8635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
8645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  /** An object which is used to allow input of characters not found on a keyboard,
8655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   such as the input of Chinese characters on a Western keyboard.
8665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  */
8675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  IA2_ROLE_INPUT_METHOD_WINDOW,
8685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
8695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  /** An internal frame. A frame-like object that is clipped by a desktop pane.
8705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   The desktop pane, internal frame, and desktop icon objects are often used to
8715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   create multiple document interfaces within an application.
8725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   Also refer to ::IA2_ROLE_DESKTOP_ICON, ::IA2_ROLE_DESKTOP_PANE, and ::IA2_ROLE_FRAME.
8735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  */
8745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  IA2_ROLE_INTERNAL_FRAME,
8755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
8765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  /// An object used to present an icon or short string in an interface.
8775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  IA2_ROLE_LABEL,
8785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
8795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  /** A layered pane. A specialized pane that allows its children to be drawn
8805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   in layers, providing a form of stacking order. This is usually the pane that
8815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   holds the menu bar as  well as the pane that contains most of the visual
8825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   components in a window.
8835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   Also refer to ::IA2_ROLE_CANVAS, ::IA2_ROLE_GLASS_PANE, and ::IA2_ROLE_ROOT_PANE.
8845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  */
8855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  IA2_ROLE_LAYERED_PANE,
8865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
887010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)  /** A section whose content is parenthetic or ancillary to the main content
888010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)   of the resource.
889010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)  */
8905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  IA2_ROLE_NOTE,
8915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
8925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) /** A specialized pane whose primary use is inside a dialog.
8935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   Also refer to MSAA's dialog role.
8945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  */
8955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  IA2_ROLE_OPTION_PANE,
8965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
8975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  /** An object representing a page of document content.  It is used in documents
8985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   which are accessed by the user on a page by page basis.
8995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  */
9005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  IA2_ROLE_PAGE,
9015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
9025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  /// A paragraph of text.
9035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  IA2_ROLE_PARAGRAPH,
9045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
9055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  /** A radio button that is a menu item.
9065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   Also refer to MSAA's button and menu item roles.
9075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  */
9085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  IA2_ROLE_RADIO_MENU_ITEM,
9095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
9105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  /** An object which is redundant with another object in the accessible hierarchy.
9115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   ATs typically ignore objects with this role.
9125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  */
9135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  IA2_ROLE_REDUNDANT_OBJECT,
9145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
9155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  /** A root pane. A specialized pane that has a glass pane and a layered pane
9165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   as its children.
9175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   Also refer to ::IA2_ROLE_GLASS_PANE and ::IA2_ROLE_LAYERED_PANE
9185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  */
9195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  IA2_ROLE_ROOT_PANE,
9205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
9215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  /** A ruler such as those used in word processors.
9225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  */
9235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  IA2_ROLE_RULER,
9245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
9255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  /** A scroll pane. An object that allows a user to incrementally view a large
9265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   amount of information.  Its children can include scroll bars and a viewport.
9275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   Also refer to ::IA2_ROLE_VIEW_PORT and MSAA's scroll bar role.
9285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  */
9295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  IA2_ROLE_SCROLL_PANE,
9305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
9315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  /** A container of document content.  An example of the use of this role is to
9325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   represent an HTML DIV tag.  A section may be used as a region.  A region is a
9335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   group of elements that together form a perceivable unit.  A region does not
9345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   necessarily follow the logical structure of the content, but follows the
9355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   perceivable structure of the page.  A region may have an attribute in the set
9365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   of IAccessible2::attributes which indicates that it is "live".  A live region
9375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   is content that is likely to change in response to a timed change, a user
9385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   event, or some other programmed logic or event.
9395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  */
9405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  IA2_ROLE_SECTION,
9415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
9425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  /// Object with graphical representation used to represent content on draw pages.
9435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  IA2_ROLE_SHAPE,
9445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
9455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  /** A split pane. A specialized panel that presents two other panels at the
9465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   same time. Between the two panels is a divider the user can manipulate to make
9475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   one panel larger and the other panel smaller.
9485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  */
9495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  IA2_ROLE_SPLIT_PANE,
9505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
9515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  /** An object that forms part of a menu system but which can be "undocked"
9525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   from or "torn off" the menu system to exist as a separate window.
9535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  */
9545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  IA2_ROLE_TEAR_OFF_MENU,
9555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
9565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  /// An object used as a terminal emulator.
9575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  IA2_ROLE_TERMINAL,
9585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
9595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  /// Collection of objects that constitute a logical text entity.
9605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  IA2_ROLE_TEXT_FRAME,
9615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
9625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  /** A toggle button. A specialized push button that can be checked or unchecked,
9635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   but does not provide a separate indicator for the current state.
9645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   Also refer to MSAA's roles of push button, check box, and radio button.
9655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   <BR><B>Note:</B> IA2_ROLE_TOGGLE_BUTTON should not be used.  Instead, use MSAA's
9665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   ROLE_SYSTEM_PUSHBUTTON and STATE_SYSTEM_PRESSED.
9675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  */
9685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  IA2_ROLE_TOGGLE_BUTTON,
9695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
9705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  /** A viewport. An object usually used in a scroll pane. It represents the
9715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   portion of the entire data that the user can see. As the user manipulates
9725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   the scroll bars, the contents of the viewport can change.
9735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   Also refer to ::IA2_ROLE_SCROLL_PANE.
9745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  */
975010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)  IA2_ROLE_VIEW_PORT,
976010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)
977010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)  /** An object containing content which is complementary to the main content of
978010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)   a document, but remains meaningful when separated from the main content.  There
979010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)   are various types of content that would appropriately have this role.  For example,
980010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)   in the case where content is delivered via a web portal to a web browser, this may
981010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)   include but not be limited to show times, current weather, related articles, or
982010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)   stocks to watch.  The complementary role indicates that contained content is relevant
983010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)   to the main content.  If the complementary content is completely separable main
984010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)   content, it may be appropriate to use a more general role.
985010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)  */
986010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)  IA2_ROLE_COMPLEMENTARY_CONTENT
9875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
9885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)};
9895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/*************************************************************************
9905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *
9915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  File Name (AccessibleStates.idl)
9925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *
9935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  IAccessible2 IDL Specification
9945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *
9955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  Copyright (c) 2007, 2010 Linux Foundation
9965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  Copyright (c) 2006 IBM Corporation
9975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  Copyright (c) 2000, 2006 Sun Microsystems, Inc.
9985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  All rights reserved.
9995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *
10005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *
10015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  Redistribution and use in source and binary forms, with or without
10025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  modification, are permitted provided that the following conditions
10035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  are met:
10045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *
10055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *   1. Redistributions of source code must retain the above copyright
10065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *      notice, this list of conditions and the following disclaimer.
10075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *
10085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *   2. Redistributions in binary form must reproduce the above
10095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *      copyright notice, this list of conditions and the following
10105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *      disclaimer in the documentation and/or other materials
10115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *      provided with the distribution.
10125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *
10135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *   3. Neither the name of the Linux Foundation nor the names of its
10145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *      contributors may be used to endorse or promote products
10155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *      derived from this software without specific prior written
10165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *      permission.
10175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *
10185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
10195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
10205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
10215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
10225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
10235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
10245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
10255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
10265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
10275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
10285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
10295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
10305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
10315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *
10325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  This BSD License conforms to the Open Source Initiative "Simplified
10335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  BSD License" as published at:
10345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  http://www.opensource.org/licenses/bsd-license.php
10355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *
10365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  IAccessible2 is a trademark of the Linux Foundation. The IAccessible2
10375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  mark may be used in accordance with the Linux Foundation Trademark
10385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  Policy to indicate compliance with the IAccessible2 specification.
10395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *
10405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ************************************************************************/
10415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1042010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)
10435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
10445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)typedef long AccessibleStates;
10455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
10465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/** %IAccessible2 specific state bit constants
10475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
10485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  This enum defines the state bits returned by IAccessible2::states.  The
10495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  %IAccessible2 state bits are in addition to those returned by MSAA.
10505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)*/
10515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)enum IA2States {
10525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
10535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/** Indicates a window is currently the active window, or is an active subelement
10545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  within a container or table.
10555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
10565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) This state can be used to indicate the current active item in a container, even
10575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  if the container itself is not currently active. In other words this would indicate
10585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  the item that will get focus if you tab to the container.
10595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
10605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) This information is important for knowing what to report for trees and potentially
10615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  other containers in a virtual buffer.
10625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
10635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) Also, see ::IA2_STATE_MANAGES_DESCENDANTS for more information.
10645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)*/
10655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)IA2_STATE_ACTIVE =					0x1,
10665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
10675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/** Indicates that the object is armed.
10685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
10695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) Used to indicate that the control is "pressed" and will be invoked when the
10705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  actuator, e.g. a mouse button, is "released".  An AT which either monitors the
10715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  mouse or synthesizes mouse events might need to know that, and possibly a talking
10725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  interface would even let the user know about it.  It could also potentially be
10735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  useful to on screen keyboards or test tools since the information does indicate
10745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  something about the state of the interface, for example, code operating asynchronously
10755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  might need to wait for the armed state to change before doing something else.
10765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
10775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)*/
10785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)IA2_STATE_ARMED =					0x2,
10795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
10805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/** Indicates the user interface object corresponding to this object no longer exists. */
10815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)IA2_STATE_DEFUNCT =					0x4,
10825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1083010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)/** An object with this state has a caret and implements the IAccessibleText interface.
1084010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)
1085010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) Such fields may be read-only, so STATE_SYSTEM_READONLY is valid in combination
1086010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)  with IA2_STATE_EDITABLE.
1087010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)
1088010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)*/
10895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)IA2_STATE_EDITABLE =				0x8,
10905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
10915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/** Indicates the orientation of this object is horizontal. */
10925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)IA2_STATE_HORIZONTAL =				0x10,
10935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
10945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/** Indicates this object is minimized and is represented only by an icon. */
10955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)IA2_STATE_ICONIFIED =				0x20,
10965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
10975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/** Indicates an input validation failure. */
10985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)IA2_STATE_INVALID_ENTRY =			0x40,
10995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
11005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/** Indicates that this object manages its children.
11015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
11025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) Note: Due to the fact that MSAA's WinEvents don't allow the active child index
11035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  to be passed on the IA2_EVENT_ACTIVE_DESCENDANT_CHANGED event, the manages
11045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  descendants	scheme can't be used.  Instead the active child object has to fire
11055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  MSAA's EVENT_OBJECT_FOCUS.  In a future release a new event mechanism may be
11065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  added to provide for event specific data to be passed with the event.  At that
11075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  time the IA2_EVENT_ACTIVE_DECENDENT_CHANGED event and
11085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  IA2_STATE_MANAGES_DESCENDANTS state would be useful.
11095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)*/
11105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)IA2_STATE_MANAGES_DESCENDANTS =		0x80,
11115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
11125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/** Indicates that an object is modal.
11135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
11145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) Modal objects have the behavior that something must be done with the object
11155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  before the user can interact with an object in a different window.
11165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)*/
11175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)IA2_STATE_MODAL =					0x100,
11185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
11195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/** Indicates this text object can contain multiple lines of text. */
11205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)IA2_STATE_MULTI_LINE =				0x200,
11215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
11225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/** Indicates this object paints every pixel within its rectangular region. */
11235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)IA2_STATE_OPAQUE =					0x400,
11245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
11255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/** Indicates that user interaction is required.
11265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
11275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) An example of when this state is used is when a field in a form must be filled
11285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  before a form can be processed.
11295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)*/
11305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)IA2_STATE_REQUIRED =				0x800,
11315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
11325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/** Indicates an object which supports text selection.
11335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
11345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) Note: This is different than MSAA STATE_SYSTEM_SELECTABLE.
11355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)*/
11365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)IA2_STATE_SELECTABLE_TEXT =			0x1000,
11375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
11385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/** Indicates that this text object can contain only a single line of text. */
11395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)IA2_STATE_SINGLE_LINE =				0x2000,
11405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
11415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/** Indicates that the accessible object is stale.
11425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
11435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) This state is used when the accessible object no longer accurately
11445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  represents the state of the object which it is representing such as when an
11455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  object is transient or when an object has been or is in the process of being
11465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  destroyed or when the object's index in its parent has changed.
11475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)*/
11485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)IA2_STATE_STALE =					0x4000,
11495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
11505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/** Indicates that the object implements autocompletion.
11515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
11525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) This state indicates that a text control will respond to the input of
11535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) one ore more characters and cause a sub-item to become selected.  The
11545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) selection may also result in events fired on the parent object.
11555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)*/
11565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)IA2_STATE_SUPPORTS_AUTOCOMPLETION =	0x8000,
11575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
11585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/** Indicates this object is transient.
11595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
11605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) An object has this state when its parent object has the state ::IA2_STATE_MANAGES_DESCENDANTS.
11615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) For example, a list item object may be managed by its parent list object and may only
11625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) exist as long as the object is actually rendered.  Similarly a table cell's accessible
11635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) object may exist only while the cell has focus.  However, from the perspective of an
11645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) assistive technology a transient object behaves like a non-transient object.  As a
11655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) result it is likely that this state is not of use to an assistive technology, but it
11665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) is provided in case an assistive technology determines that knowledge of the transient
11675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) nature of the object is useful and also for harmony with the Linux accessibility API.
11685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
11695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) Also, see ::IA2_STATE_MANAGES_DESCENDANTS for more information.
11705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */
11715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)IA2_STATE_TRANSIENT =				0x10000,
11725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
11735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/** Indicates the orientation of this object is vertical. */
1174010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)IA2_STATE_VERTICAL =				0x20000,
1175010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)
1176010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)/** Indicates this object is checkable.
1177010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)
1178010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) The standard checkable objects are check boxes, radio buttons, check box menu
1179010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) items, radio menu items, and toggle buttons.  Since assistive technology will
1180010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) determine that these objects are checkable via the object's role the checkable
1181010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) state is not required.  However, this state is necessary in those cases where
1182010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) an object has a role which is not one of the previously mentioned roles.  An
1183010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) example is a table cell which indicates whether or not an email has an attachment,
1184010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) whether or not an mail is considered spam, and whether or not an email has been read.
1185010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) */
1186010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)IA2_STATE_CHECKABLE =				0x40000,
1187010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)
1188010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)/** Indicates this object is pinned.
1189010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)
1190010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) This state indicates that an object is fixed at a certain location.  One example
1191010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) is a browser tab that when pinned cannot be moved until unpinned.  Another example
1192010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) is a movable or floating object that when pinned remains in its pinned location
1193010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) until being unpinned.
1194010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) */
1195010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)IA2_STATE_PINNED =					0x80000
11965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
11975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)};
11985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/*************************************************************************
11995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *
12005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  File Name (Accessible2.idl)
12015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *
12025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  IAccessible2 IDL Specification
12035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *
1204010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) *  Copyright (c) 2007, 2013 Linux Foundation
12055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  Copyright (c) 2006 IBM Corporation
12065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  Copyright (c) 2000, 2006 Sun Microsystems, Inc.
12075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  All rights reserved.
12085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *
12095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *
12105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  Redistribution and use in source and binary forms, with or without
12115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  modification, are permitted provided that the following conditions
12125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  are met:
12135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *
12145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *   1. Redistributions of source code must retain the above copyright
12155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *      notice, this list of conditions and the following disclaimer.
12165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *
12175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *   2. Redistributions in binary form must reproduce the above
12185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *      copyright notice, this list of conditions and the following
12195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *      disclaimer in the documentation and/or other materials
12205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *      provided with the distribution.
12215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *
12225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *   3. Neither the name of the Linux Foundation nor the names of its
12235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *      contributors may be used to endorse or promote products
12245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *      derived from this software without specific prior written
12255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *      permission.
12265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *
12275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
12285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
12295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
12305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
12315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
12325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
12335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
12345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
12355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
12365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
12375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
12385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
12395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
12405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *
12415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  This BSD License conforms to the Open Source Initiative "Simplified
12425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  BSD License" as published at:
12435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  http://www.opensource.org/licenses/bsd-license.php
12445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *
12455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  IAccessible2 is a trademark of the Linux Foundation. The IAccessible2
12465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  mark may be used in accordance with the Linux Foundation Trademark
12475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  Policy to indicate compliance with the IAccessible2 specification.
12485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *
12495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ************************************************************************/
12505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
12515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/** @mainpage
12525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
12535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) @section _interfaces Interfaces
12545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  IAccessible2\n
1255010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)  IAccessible2_2\n
12565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  IAccessibleAction\n
12575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  IAccessibleApplication\n
12585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  IAccessibleComponent\n
1259010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)  IAccessibleDocument\n
1260010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)  IAccessibleEditableText\n
12615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  IAccessibleHypertext\n
1262010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)  IAccessibleHypertext2\n
12635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  IAccessibleHyperlink\n
12645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  IAccessibleImage\n
12655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  IAccessibleRelation\n
1266010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)  IAccessibleTable [Deprecated]\n
12675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  IAccessibleTable2\n
12685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  IAccessibleTableCell\n
12695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  IAccessibleText\n
1270010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)  IAccessibleText2\n
12715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  IAccessibleValue
12725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
12735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) @section _structs Structs
12745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  IA2Locale\n
12755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  IA2TableModelChange\n
12765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  IA2TextSegment
12775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
12785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) @section _enums Enums
1279010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)  ::IA2Actions values are predefined actions for use when implementing support for HTML5 media.\n
12805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  ::IA2CoordinateType values define the requested coordinate type (screen or parent window).\n
12815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  ::IA2EventID values identify events.\n
12825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  ::IA2Role values defines roles which are in addition to the existing MSAA roles.\n
12835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  ::IA2ScrollType values define where to place an object or substring on the screen.\n
12845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  ::IA2States values define states which are in addition to the existing MSAA states.\n
12855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  ::IA2TableModelChangeType values describe the kinds of changes made to a table (insert, delete, update).\n
12865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  ::IA2TextBoundaryType values define the requested text unit (character, word, sentence, line, paragraph).\n
12875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  ::IA2TextSpecialOffsets values define special offsets for use in the text interfaces.
12885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
12895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) @section _constants Constants
12905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  @ref grpRelations
12915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
12925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) @section _misc Miscellaneous
12935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  @ref _licensePage "BSD License"\n
12945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  @ref _generalInfo "General Information"\n
12955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
12965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) @page _licensePage BSD License
12975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  %IAccessible2 IDL Specification
12985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1299010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)  Copyright (c) 2007, 2013 Linux Foundation\n
13005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  Copyright (c) 2006 IBM Corporation\n
13015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  Copyright (c) 2000, 2006 Sun Microsystems, Inc.\n
13025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  All rights reserved.
13035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
13045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  Redistribution and use in source and binary forms, with or without
13055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  modification, are permitted provided that the following conditions
13065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  are met:
13075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
13085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   1. Redistributions of source code must retain the above copyright
13095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      notice, this list of conditions and the following disclaimer.
13105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
13115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   2. Redistributions in binary form must reproduce the above
13125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      copyright notice, this list of conditions and the following
13135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      disclaimer in the documentation and/or other materials
13145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      provided with the distribution.
13155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
13165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   3. Neither the name of the Linux Foundation nor the names of its
13175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      contributors may be used to endorse or promote products
13185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      derived from this software without specific prior written
13195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      permission.
13205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
13215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
13225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
13235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
13245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
13255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
13265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
13275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
13285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
13295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
13305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
13315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
13325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
13335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
13345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
13355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  This BSD License conforms to the Open Source Initiative "Simplified
13365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  BSD License" as published at:
13375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  http://www.opensource.org/licenses/bsd-license.php
13385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
13395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  %IAccessible2 is a trademark of the Linux Foundation. The %IAccessible2
13405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  mark may be used in accordance with the
13415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  <a href="http://www.linuxfoundation.org/collaborate/workgroups/accessibility/trademark-policy">
13425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  Linux Foundation Trademark Policy</a> to indicate compliance with the %IAccessible2 specification.
13435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
13445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) @page _generalInfo General Information
13455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  The following information is applicable to two or more interfaces.
13465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
13475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) @ref _errors\n
13485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) @ref _memory\n
13495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) &nbsp;&nbsp;@ref _arrayConsideration\n
13505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) @ref _indexes\n
1351010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) @ref _enumBase\n
13525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) @ref _specialOffsets\n
13535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) @ref _dicoveringInterfaces\n
13545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) @ref _changingInterfaces\n
13555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) @ref _applicationInfo\n
13565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) @ref _childIDs\n
13575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) @ref _variants\n
13585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) @ref _iaaction-iahyperlink\n
13595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) @ref _trademark
13605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
13615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) @section _errors Error Handling
1362010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)  HRESULT values are defined by the Microsoft&reg; Win32&reg; API.  For more information, refer to
1363010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)  <a href="http://msdn.microsoft.com/en-us/library/windows/desktop/aa378137%28v=vs.85%29.aspx">
1364010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)  Interpreting HRESULT Values</a> in MSDN&reg;.
13655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
13665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  Note that the S_FALSE return value is considered a non-error value and the
13675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  SUCCEEDED macro will return TRUE.  S_FALSE is used when there is no failure
13685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  but there was nothing valid to return, e.g. in IAccessible2::attributes when
13695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  there are no attributes.  When S_FALSE is returned [out] pointer types should
13705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  be NULL and [out] longs should generally be 0, but sometimes -1 is used such
13715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  as IAccessible2::indexInParent, IAccessibleText::caretOffset, and
13725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  IAccessibleHypertext::hyperlinkIndex.
13735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
13745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  Note that for BSTR [out] variables common COM practice is that the server does
13755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  the SysAllocString and the client does the SysFreeString.  Also note that when
13765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  NULL is returned there is no need for the client to call SysFreeString.  Please
13775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  refer to the documentation for each method for more details regarding error handling.
13785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
13795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) @section _memory Memory Management
13805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  The following memory management issues should be considered:
13815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  @li Although [out] BSTR variables are declared by the client, their space is
13825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   allocated by the server.  They need to be freed with SysFreeString by the
13835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   client at end of life; the same is true when BSTRs are used in structs or
13845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   arrays which are passed to the server.
13855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  @li If there is no valid [out] BSTR to return, the server should return S_FALSE and
13865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   assign NULL to the output, e.g. *theOutBSTR = NULL;.
13875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  @li COM interfaces need to be referenced with AddRef when used and dereferenced
13885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   with Release at end of life.
13895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  @li Single [out] longs, HWNDs, booleans, and structs are declared by the caller
13905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   and passed by reference. The marshaller does all the memory management.
13915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
13925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  The following articles may be helpful for understanding memory management issues:
13935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  @li An article by Don Box in a
13945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   <a href="http://www.microsoft.com/msj/1196/activex1196.aspx">Q & A section</a>
13955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   of the November 1996 edition of the Microsoft Systems Journal.
13965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  @li A posting to a CodeGuru forum,
13975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   <a href="http://www.codeguru.com/forum/showthread.php?t=364511">Windows SDK
13985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   String: What are the rules for BSTR allocation and deallocation?</a>
13995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
14005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) @subsection _arrayConsideration Special Consideration when using Arrays
1401010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)  There are several methods which return arrays.  In the case of IAccessible2::relations
1402010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)  and IAccessibleRelation::targets the client must allocate and free the arrays.
1403010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)
1404010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)  For the remaining methods which return arrays, the server must allocate the array
1405010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)  and the client must free the array when no longer needed.  These methods are
1406010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)  IAccessible2::extendedStates, IAccessible2::localizedExtendedStates,
1407010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)  IAccessible2_2::relationTargetsOfType, IAccessibleAction::keyBinding,
1408010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)  IAccessibleHypertext2::hyperlinks, IAccessibleTable::selectedChildren,
1409010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)  IAccessibleTable::selectedColumns, IAccessibleTable::selectedRows,
1410010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)  IAccessibleTable2::selectedCells, IAccessibleTable2::selectedColumns,
1411010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)  IAccessibleTable2::selectedRows, IAccessibleTableCell::columnHeaderCells,
1412010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)  and IAccessibleTableCell::rowHeaderCells.
1413010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)  For those methods, the server must allocate both the top level array and any storage
1414010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)  associated with it, e.g. for BSTRs.  The server must allocate the arrays with
1415010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)  CoTaskMemAlloc and any BSTRs with SysAllocString.  The client must use CoTaskMemFree
1416010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)  to free the array and any BSTRs must be freed with SysFreeString.
14175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1418010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)  Also, the IDL for IAccessible2::extendedStates, IAccessible2::localizedExtendedStates,
1419010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)  IAccessibleAction::keyBinding, IAccessibleTable::selectedChildren,
1420010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)  IAccessibleTable::selectedColumns, and IAccessibleTable::selectedRows includes an
1421010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)  extraneous [in] parameter for the caller to specify the max size of the array.
1422010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)  This parameter will be ignored by the COM server.
14235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
14245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) @section _indexes Zero and One Based Indexes
14255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  Unless otherwise specified all offsets and indexes are 0 based.
14265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1427010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) @section _enumBase Enum Base
14285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  Note that enums start at 0.
14295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
14305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) @section _specialOffsets Special Offsets for use in the IAccessibleText and IAccessibleEditableText Methods
14315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  IAccessibleText and IAccessibleEditableText can use one or more of the following
14325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  special offset values.  They are defined in the ::IA2TextSpecialOffsets enum.
14335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  @li Using ::IA2_TEXT_OFFSET_LENGTH (-1) as an offset in any of the IAccessibleText or
14345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   IAccessibleEditableText methods is the same as specifying the length of the string.
14355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  @li Using ::IA2_TEXT_OFFSET_CARET (-2) as an offset for IAccessibleText::textBeforeOffset,
14365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   IAccessibleText::textAtOffset, and IAccessibleText::textAfterOffset indicates that the
14375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   text related to the physical location of the caret should be used.  This is needed for
14385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   applications that consider the character offset of the end of one line (as reached by
14395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   pressing the End key) the same as the offset of the first character on the next line.
14405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   Since the same offset is associated with two different lines a special means is needed
14415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   to fetch text from the line where the caret is physically located.
14425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
14435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) @section _dicoveringInterfaces Discovery of Interfaces
14445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  In general AT (Assistive Technology) should try IAccessible2 interfaces, followed by using
14455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  the MSAA (Microsoft&reg; Active Accessibility&reg;) interfaces.  (In cases where the an application
14465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  is known to have custom interfaces which provide information not supplied by IAccessible2
14475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  or MSAA, then those custom interfaces can be used.)  The AT can then, by default, support
14485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  unknown IAccessible2/MSAA applications, without the application developers having to request
14495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  AT vendors for support on an individual application by application basis.
14505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
14515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  When you have a reference to an IAccessible and require a reference to an IAccessible2 use
14525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  QueryService as follows:
14535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  @code
14545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  // pAcc is a reference to the accessible object's IAccessible interface.
14555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  IServiceProvider *pService = NULL;
14565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  hr = pAcc->QueryInterface(IID_IServiceProvider, (void **)&pService);
14575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  if(SUCCEEDED(hr)) {
14585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    IAccessible2 *pIA2 = NULL;
14595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    hr = pService->QueryService(IID_IAccessible, IID_IAccessible2, (void**)&pIA2);
14605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    if (SUCCEEDED(hr) && pIA2) {
14615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      // The control supports IAccessible2.
14625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      // pIA2 is the reference to the accessible object's IAccessible2 interface.
14635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    }
14645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  }
14655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  @endcode
14665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1467010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)  @section _changingInterfaces Changing between Accessible Interfaces
1468010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)  Note that developers must always implement MSAA's IAccessible and, if needed, some
1469010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)  of the interfaces in the set of IAccessible2 interfaces.  Although the IAccessible2
1470010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)  IDL is coded such that IAccessible2 is a subclass of MSAA's IAccessible, none of
1471010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)  MSAA's IAccessible methods are redefined by IAccessible2.
14725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
14735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  QueryService must be used to switch from a reference to an MSAA IAccessible interface
14745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  to another interface.  This has been
1475010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)  <a href="http://www.atia.org/files/public/Introducing_IAccessibleEx.doc">
1476010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)  documented</a> and the pertinent facts have been extracted below:
14775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
14785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  @par
14795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   Why use QueryService instead of just using QueryInterface to get IAccessibleEx
14805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   directly? The reason is that since MSAA 2.0, clients don't talk to a server's
14815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   IAccessible interface directly; instead they talk to an intermediate MSAA-provided
14825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   wrapper that calls through to the original IAccessible. This wrapper provides services
14835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   such as implementing IDispatch, supplying information from MSAA 2.0's Dynamic Annotation
14845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   service, and scaling locations when running on Windows Vista with DPI scaling enabled.
14855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   QueryService is the supported way to expose additional interfaces from an existing
14865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   IAccessible and was originally used by MSHTML to expose IHTMLElement objects corresponding
14875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   to IAccessibles. QueryService is often more convenient for servers to implement than
14885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   QueryInterface because it does not have the same requirements for preserving object
14895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   identity or symmetry/transitivity as QueryInterface, so QueryService allows servers to
14905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   easily implement the interface on the same object or a separate object. The latter is
14915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   often hard to do with QueryInterface unless the original object supports aggregation.
14925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
14935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  Two related references in MSDN&reg; are:
14945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  @li <a href="http://msdn.microsoft.com/en-us/library/ms696078(VS.85).aspx">
14955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  "Using QueryService to expose a native object model interface for an IAccessible object"</a>
14965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  @li <a href="http://msdn.microsoft.com/en-us/library/ms528415.aspx#acc_obj">
14975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  "Accessing the Internet Explorer Object Associated with an Accessible Object"</a>
14985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
14995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  Based on this information from Microsoft, QueryService must be used to switch back and forth
15005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  between a reference to an MSAA IAccessible interface and any of the IAccessible2 interfaces.
15015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
15025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  Regarding switching between any of the IAccessible2 interfaces, applications implementing
15035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  IAccessible2 should implement the IAccessible2 interfaces on a single object since ATs
15045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  will be using QueryInterface to switch between the IAccessilbe2 interfaces.  Implementing
15055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  the IAccessible2 interfaces on separate objects would require the use of QueryService.
15065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  There is one exception, IAccessibleApplication can be implemented on a separate object so
15075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  its common code doesn't have to be included in each accessible object.  ATs should use
15085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  QueryService to access IAccessibleApplication.
15095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
15105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) @section _applicationInfo Access to Information about the Application
15115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  Servers implementing IAccessible2 should provide access to the IAccessibleApplication
15125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  interface via QueryService from any object so that ATs can easily determine specific
15135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  information about the application such as its name or version.
15145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
15155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) @section _childIDs Child IDs
15165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  The IAccessible2 interfaces do not support child IDs, i.e. simple child elements.
15175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  Full accessible objects must be created for each object that supports IAccessible2.
15185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  Therefore MSAA's get_accChild should never return a child ID (other than CHILDID_SELF)
15195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  for an object that implements any of the IAccessible2 interfaces.
15205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
15215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  Microsoft's UI Automation specification has the same limitation and this was resolved
15225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  in the UI Automation Express specification by adding IAccessibleEx::GetObjectForChild
15235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  and IAccessibleEx::GetIAccessiblePair.  These methods allow mapping back and forth
15245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  between an IAccessibleEx and an {IAccessible, Child ID} pair.  A future version of
15255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  IAccessible2 may include similar methods to map back and forth between an IAccessible2
15265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  and an {IAccessible, Child ID} pair.
15275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
15285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) @section _variants VARIANTs
15295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  Some methods return a VARIANT.  Implementers need to make sure that the return type is
15305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  specified, i.e. VT_I4, VT_IDISPATCH, etc.  The methods that return VARIANTs are
15315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  IAccessibleHyperlink::anchor, IAccessibleHyperlink::anchorTarget, IAccessibleValue::currentValue,
15325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  IAccessibleValue::maximumValue, IAccessibleValue::minimumValue.
15335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
15345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) @section _iaaction-iahyperlink IAccessibleHyperlink as subclass of IAccessibleAction
15355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  In this version of the IDL, IAccessibleHyperlink is a subclass of IAccessibleAction.
15365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  However, there is no practical need for that inheritance and in some cases, such as
15375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  an image map of smart tags, it doesn't make sense because such an image map doesn't
15385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  have actionable objects; it's the secondary smart tags that are actionable.  As a
15395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  result, implementations should not rely on the inheritance as it may be removed in
15405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  a later version of the IDL.
15415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
15425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) @section _trademark Trademark Attribution
15435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  The names of actual companies and products mentioned herein may be the trademarks of
15445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  their respective owners.  In particular, Active Accessibility, Microsoft, MSDN, and Win32
15455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  are trademarks of the Microsoft group of companies in the U.S.A. and/or other countries.
15465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
15475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)**/
15485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1549010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)
1550010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)
1551010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)
15525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
15535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
15545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
15555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
15565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/** A structure defining the locale of an accessible object.
15575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
15585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)IAccessible2::locale returns this struct.
15595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)*/
15605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)typedef struct IA2Locale {
15615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  BSTR language; ///< ISO 639-1 Alpha-2 two character language code
15625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  BSTR country;  ///< ISO 3166-1 Alpha-2 two character country code
15635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  BSTR variant;  ///< Application specific variant of the locale
15645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} IA2Locale;
15655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1566010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)/** @brief This interface exposes the primary set of information about an
1567010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) IAccessible2 enabled accessible object.
1568010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)
1569010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) This interface must always be provided for objects that support some
15705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) portion of the collection of the %IAccessible2 interfaces.
15715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
15725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) Please refer to @ref _changingInterfaces "Changing between Accessible Interfaces"
15735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) for special considerations related to use of the MSAA IAccessible interface and
15745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) the set of %IAccessible2 interfaces.
15755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */
15765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)[object, uuid(E89F726E-C4F4-4c19-BB19-B647D7FA8478)]
15775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)interface IAccessible2 : IAccessible
15785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles){
15795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
15805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  /** @brief Returns the number of accessible relations for this object.
15815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @param [out] nRelations
15825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @retval S_OK
15835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  */
15845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  [propget] HRESULT nRelations
15855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    (
15865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)     [out, retval] long *nRelations
15875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    );
15885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
15895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  /** @brief Returns one accessible relation for this object.
15905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @param [in] relationIndex
15915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)     0 based
15925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @param [out] relation
15935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @retval S_OK
1594010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)   @retval E_INVALIDARG if bad [in] passed
15955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  */
15965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  [propget] HRESULT relation
15975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    (
15985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)     [in] long relationIndex,
15995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)     [out, retval] IAccessibleRelation **relation
16005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    );
16015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
16025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  /** @brief Returns multiple accessible relations for this object.
16035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @param [in] maxRelations
16045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)     maximum size of the array allocated by the client
16055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @param [out] relations
16065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    The array of accessible relation objects.  Note that this array is to be
16075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	allocated by the client and freed when no longer needed.  Refer to @ref
16085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	_arrayConsideration "Special Consideration when using Arrays" for more details.
16095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @param [out] nRelations
16105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    actual number of relations in the returned array (not more than maxRelations)
16115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @retval S_OK
16125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @retval S_FALSE if there are no relations, nRelations is set to 0
1613010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)   @note As a performant alternative, client code should consider using IAccessible2_2::relationTargetsOfType.
16145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  */
16155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  [propget] HRESULT relations
16165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    (
16175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)     [in] long maxRelations,
16185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)     [out, size_is(maxRelations), length_is(*nRelations)]
16195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)       IAccessibleRelation **relations,
16205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)     [out, retval] long *nRelations
16215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    );
16225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
16235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  /** @brief Returns the role of an %IAccessible2 object.
16245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @param [out] role
16255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    The role of an %IAccessible2 object.
16265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @retval S_OK
16275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @note
16285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @li For convenience MSAA roles are also passed through this method so the
16295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    AT doesn't have to also fetch roles through MSAA's get_accRole.
16305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @li %IAccessible2 roles should not be passed through MSAA's get_accRole.
16315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @li For compatibility with non IAccessible2 enabled ATs, IAccessible2
16325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    applications should also add support to get_accRole to return the closest
16335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	MSAA role or ROLE_SYSTEM_CLIENT (the MSAA defined default role) if there
16345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	is not a good match.
16355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @li This method is missing a [propget] prefix in the IDL.  The result is the
16365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    method is named role in generated C++ code instead of get_role.
16375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  */
16385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  HRESULT role
16395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    (
16405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)     [out, retval] long *role
16415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    );
16425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
16435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  /** @brief Makes an object visible on the screen.
16445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @param [in] scrollType
16455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    Defines where the object should be placed on the screen.
16465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @retval S_OK
16475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @retval E_INVALIDARG if bad [in] passed
16485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  */
16495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  HRESULT scrollTo
16505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    (
16515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)     [in] enum IA2ScrollType scrollType
16525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    );
16535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
16545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  /** @brief Moves the top left of an object to a specified location.
16555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
16565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @param [in] coordinateType
16575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    Specifies whether the coordinates are relative to the screen or the parent object.
16585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @param [in] x
16595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    Defines the x coordinate.
16605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @param [in] y
16615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    Defines the y coordinate.
16625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @retval S_OK
16635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @retval E_INVALIDARG if bad [in] passed
16645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  */
16655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  HRESULT scrollToPoint
16665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    (
16675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)     [in] enum IA2CoordinateType coordinateType,
16685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	 [in] long x,
16695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	 [in] long y
16705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    );
16715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
16725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  /** @brief Returns grouping information.
16735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
16745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   Used for tree items, list items, tab panel labels, radio buttons, etc.
16755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   Also used for collections of non-text objects.
16765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
16775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @param [out] groupLevel
16785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    1 based, 0 indicates that this value is not applicable
16795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @param [out] similarItemsInGroup
16805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    1 based, 0 indicates that this value is not applicable
16815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @param [out] positionInGroup
16825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    1 based, 0 indicates that this value is not applicable. This is an index
1683010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)    into the objects in the current group, not an index into all the objects
1684010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)    at the same group level.
16855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @retval S_OK if at least one value is valid
1686010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)   @retval S_FALSE if no values are valid, [out] values are 0s
16875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @note This method is meant to describe the nature of an object's containment
1688010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)    structure.  It's exposed by trees, tree grids, nested lists, nested menus,
1689010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)    but not headings, which uses the level object attribute.  It is also exposed
1690010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)    by radio buttons (with groupLevel == 0).
1691010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)   @note This is normally not implemented on a combo box to describe the nature
16925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    of its contents.  Normally an AT will get that information from its child list
1693010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)    object.  However, in some cases when non-edit combo boxes are not able to be structured
1694010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)    such that the list is a child of the combo box, this method is implemented on
1695010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)    the combo box itself. ATs can use this interface if a child list is not found.
16965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	*/
16975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  [propget] HRESULT groupPosition
16985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    (
16995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)     [out] long *groupLevel,
17005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)     [out] long *similarItemsInGroup,
17015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)     [out, retval] long *positionInGroup
17025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    );
17035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
17045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  /** @brief Returns the bit strip containing any IAccessible2 states.
17055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
17065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   The IAccessible2 states are in addition to the MSAA states and are defined in
17075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   the IA2States enum.
17085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
17095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @param [out] states
17105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @retval S_OK
17115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  */
17125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  [propget] HRESULT states
17135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    (
17145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	 [out, retval] AccessibleStates *states
17155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    );
17165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
17175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  /** @brief Returns the extended role.
17185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
17195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   An extended role is a role which is dynamically generated by the application.
17205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   It is not predefined by the %IAccessible2 specification.
17215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
17225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @param [out] extendedRole
17235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @retval S_OK
17245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @retval S_FALSE if there is nothing to return, [out] value is NULL
17255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  */
17265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  [propget] HRESULT extendedRole
17275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    (
17285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	 [out, retval] BSTR *extendedRole
17295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    );
17305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
17315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  /** @brief Returns the localized extended role.
17325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @param [out] localizedExtendedRole
17335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @retval S_OK
17345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @retval S_FALSE if there is nothing to return, [out] value is NULL
17355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  */
17365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  [propget] HRESULT localizedExtendedRole
17375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    (
17385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	 [out, retval] BSTR *localizedExtendedRole
17395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    );
17405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
17415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  /** @brief Returns the number of extended states.
17425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @param [out] nExtendedStates
17435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @retval S_OK
17445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  */
17455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  [propget] HRESULT nExtendedStates
17465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    (
17475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)     [out, retval] long *nExtendedStates
17485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    );
17495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
17505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  /** @brief Returns the extended states (array of strings).
17515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
17525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   An extended state is a state which is dynamically generated by the application.
17535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   It is not predefined by the %IAccessible2 specification.
17545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
17555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @param [in] maxExtendedStates
17565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    This parameter is ignored. Refer to @ref _arrayConsideration
17575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	"Special Consideration when using Arrays" for more details.
17585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @param [out] extendedStates
1759010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)    This array is allocated by the server.  The client must free it with CoTaskMemFree.
17605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @param [out] nExtendedStates
17615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    The number of extended states returned; the size of the returned array.
17625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @retval S_OK
17635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @retval S_FALSE if there are no states, [out] values are NULL and 0 respectively
17645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  */
17655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  [propget] HRESULT extendedStates
17665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    (
17675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)     [in] long maxExtendedStates,
17685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)     [out, size_is(,maxExtendedStates), length_is(,*nExtendedStates)] BSTR **extendedStates,
17695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)     [out, retval] long *nExtendedStates
17705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    );
17715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
17725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  /** @brief Returns the localized extended states (array of strings).
1773010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)
17745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @param [in] maxLocalizedExtendedStates
17755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    This parameter is ignored. Refer to @ref _arrayConsideration
17765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	"Special Consideration when using Arrays" for more details.
17775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @param [out] localizedExtendedStates
1778010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)    This array is allocated by the server.  The client must free it with CoTaskMemFree.
17795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @param [out] nLocalizedExtendedStates
17805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    The number of localized extended states returned; the size of the returned array.
17815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @retval S_OK
17825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @retval S_FALSE if there are no states, [out] values are NULL and 0 respectively
17835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  */
17845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  [propget] HRESULT localizedExtendedStates
17855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    (
17865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)     [in] long maxLocalizedExtendedStates,
17875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)     [out, size_is(,maxLocalizedExtendedStates), length_is(,*nLocalizedExtendedStates)] BSTR **localizedExtendedStates,
17885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)     [out, retval] long *nLocalizedExtendedStates
17895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    );
17905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
17915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  /** @brief Returns the unique ID.
17925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
17935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   The uniqueID is an identifier for this object, is unique within the
17945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   current window, and remains the same for the lifetime of the accessible
17955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   object.
17965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
17975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   The uniqueID is not related to:
17985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   - the MSAA objectID which is used by the server to disambiguate between
17995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   IAccessibles per HWND or
18005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   - the MSAA childID which is used to disambiguate between children being
18015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   managed by an IAccessible.
18025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
18035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   This value is provided so the AT can have access to a unique runtime persistent
18045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   identifier even when not handling an event for the object.
18055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
18065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   An example of when this value is useful is if the AT wants to build a cache.
18075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   The AT could cache the uniqueIDs in addition to other data being cached.
18085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   When an event is fired the AT could map the uniqueID to its internal model.
18095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   Thus, if there's a REORDER/SHOW/HIDE event the AT knows which part of the
18105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   internal structure has been invalidated and can refetch just that part.
18115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
18125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   This value can also be used by an AT to determine when the current control
18135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   has changed. If the role is the same for two controls that are adjacent in
18145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   the tab order, this can be used to detect the new control.
18155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
18165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   Another use of this value by an AT is to identify when a grouping object has
18175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   changed, e.g. when moving from a radio button in one group to a radio button in a
18185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   different group.
18195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
18205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   One means of implementing this would be to create a factory with a 32 bit number
18215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   generator and a reuse pool.  The number generator would emit numbers starting
18225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   at 1.  Each time an object's life cycle ended, its number would be saved into a
1823010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)   reuse pool.  The number generator would be used whenever the reuse pool was empty.
1824010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)
1825010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)   Another way to create a unique ID is to generate it from a pointer value, e.g. an
1826010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)   object's address. That would be unique because no two active objects can use the
1827010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)   same allocated memory space.
18285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
18295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @param [out] uniqueID
18305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @retval S_OK
18315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  */
18325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  [propget] HRESULT uniqueID
18335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    (
18345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)     [out, retval] long *uniqueID
18355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    );
18365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
18375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  /** @brief Returns the window handle for the parent window which contains this object.
18385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
18395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   This is the same window handle which will be passed for any events that occur on the
18405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   object, but is cached in the accessible object for use when it would be helpful to
18415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   access the window handle in cases where an event isn't fired on this object.
18425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
18435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   A use case is when a screen reader is grabbing an entire web page on a page load.
18445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   Without the availability of windowHandle, the AT would have to get the window handle
18455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   by using WindowFromAccessibleObject on each IAccessible, which is slow because it's
18465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   implemented by oleacc.dll as a loop which crawls up the ancestor chain and looks for
18475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   a ROLE_WINDOW object, mapping that back to a window handle.
18485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
18495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @param [out] windowHandle
18505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @retval S_OK
18515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  */
18525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  [propget] HRESULT windowHandle
18535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    (
18545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)     [out, retval] HWND *windowHandle
18555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    );
18565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
18575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  /** @brief Returns the index of this object in its parent object.
18585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @param [out] indexInParent
18595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)     0 based; -1 indicates there is no parent; the upper bound is the value
18605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	 returned by the parent's IAccessible::get_accChildCount.
18615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @retval S_OK
18625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @retval S_FALSE if no parent, [out] value is -1
18635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  */
18645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  [propget] HRESULT indexInParent
18655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    (
18665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)     [out, retval] long *indexInParent
18675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    );
18685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
18695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  /** @brief Returns the IA2Locale of the accessible object.
18705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @param [out] locale
18715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @retval S_OK
18725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  */
18735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  [propget] HRESULT locale
18745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    (
18755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)     [out, retval] IA2Locale *locale
18765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    );
18775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1878010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)  /** @brief Returns the attributes specific to this object, such as a cell's formula.
18795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @param [out] attributes
18805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @retval S_OK
18815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @retval S_FALSE returned if there is nothing to return, [out] value is NULL
18825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  */
18835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  [propget] HRESULT attributes
18845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    (
18855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)     [out, retval] BSTR *attributes
18865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    );
18875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
18885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
18895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
18905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/*************************************************************************
18915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *
1892010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) *  File Name (Accessible2_2.idl)
1893010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) *
1894010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) *  IAccessible2 IDL Specification
1895010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) *
1896010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) *  Copyright (c) 2007, 2013 Linux Foundation
1897010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) *  Copyright (c) 2006 IBM Corporation
1898010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) *  Copyright (c) 2000, 2006 Sun Microsystems, Inc.
1899010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) *  All rights reserved.
1900010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) *
1901010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) *
1902010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) *  Redistribution and use in source and binary forms, with or without
1903010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) *  modification, are permitted provided that the following conditions
1904010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) *  are met:
1905010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) *
1906010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) *   1. Redistributions of source code must retain the above copyright
1907010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) *      notice, this list of conditions and the following disclaimer.
1908010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) *
1909010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) *   2. Redistributions in binary form must reproduce the above
1910010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) *      copyright notice, this list of conditions and the following
1911010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) *      disclaimer in the documentation and/or other materials
1912010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) *      provided with the distribution.
1913010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) *
1914010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) *   3. Neither the name of the Linux Foundation nor the names of its
1915010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) *      contributors may be used to endorse or promote products
1916010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) *      derived from this software without specific prior written
1917010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) *      permission.
1918010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) *
1919010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) *  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
1920010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) *  CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
1921010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) *  INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
1922010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) *  MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
1923010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) *  DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
1924010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) *  CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
1925010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) *  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
1926010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) *  NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
1927010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) *  LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
1928010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) *  HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
1929010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) *  CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
1930010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) *  OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
1931010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) *  EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
1932010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) *
1933010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) *  This BSD License conforms to the Open Source Initiative "Simplified
1934010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) *  BSD License" as published at:
1935010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) *  http://www.opensource.org/licenses/bsd-license.php
1936010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) *
1937010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) *  IAccessible2 is a trademark of the Linux Foundation. The IAccessible2
1938010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) *  mark may be used in accordance with the Linux Foundation Trademark
1939010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) *  Policy to indicate compliance with the IAccessible2 specification.
1940010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) *
1941010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) ************************************************************************/
1942010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)
1943010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)
1944010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)
1945010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)
1946010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)
1947010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)
1948010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)/** @brief This interface exposes the primary set of information about an
1949010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) IAccessible2 enabled accessible object.
1950010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)
1951010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) This interface must always be provided for objects that support some
1952010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) portion of the collection of the %IAccessible2 interfaces.
1953010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)
1954010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) Please refer to @ref _changingInterfaces "Changing between Accessible Interfaces"
1955010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) for special considerations related to use of the MSAA IAccessible interface and
1956010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) the set of %IAccessible2 interfaces.
1957010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) */
1958010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)[object, uuid(6C9430E9-299D-4E6F-BD01-A82A1E88D3FF)]
1959010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)interface IAccessible2_2 : IAccessible2
1960010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles){
1961010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)  /** @brief Returns the attribute value of a specified attribute specific to this object.
1962010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)   @param [in] name
1963010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)   @param [out] attribute
1964010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)   @retval S_OK
1965010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)   @retval S_FALSE returned if there is nothing to return, [out] value is NULL.
1966010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)   @retval E_INVALIDARG if bad [in] passed.
1967010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)   @note The output value is a VARIANT.  Typically it will be a VT_BSTR, but there
1968010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)     are some cases where it will be a VT_I4 or VT_BOOL.  Refer to the <a href=
1969010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)     "http://www.linuxfoundation.org/collaborate/workgroups/accessibility/iaccessible2/objectattributesIAccessible2">
1970010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)     Object Attributes specification</a> for more information.
1971010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)  */
1972010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)  [propget] HRESULT attribute
1973010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)    (
1974010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)     [in] BSTR name,
1975010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)     [out, retval] VARIANT *attribute
1976010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)    );
1977010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)
1978010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)  /** @brief Returns the deepest hypertext accessible in the subtree of this object, and the caret offset within it.
1979010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)   @param [out] accessible
1980010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)   @param [out] caretOffset
1981010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)   @retval S_OK
1982010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)   @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.
1983010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)  */
1984010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)  [propget] HRESULT accessibleWithCaret
1985010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)    (
1986010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)     [out] IUnknown **accessible,
1987010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)     [out, retval] long *caretOffset
1988010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)    );
1989010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)
1990010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)  /** @brief Returns relation targets for a specified target type.
1991010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)   @param [in] type
1992010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)    The requested @ref grpRelations "relation type".
1993010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)   @param [in] maxTargets
1994010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)    The number of targets requested.  0 indicates that all targets should be returned.
1995010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)   @param [out] targets
1996010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)    This array is allocated by the server.  The client must free it with CoTaskMemFree.
1997010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)   @param [out] nTargets
1998010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)    The number of targets returned; the size of the returned array.
1999010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)   @retval S_OK
2000010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)   @retval S_FALSE if there are no targets, [out] values are NULL and 0 respectively.
2001010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)   @retval E_INVALIDARG if bad [in] passed.
2002010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)  */
2003010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)  [propget] HRESULT relationTargetsOfType
2004010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)    (
2005010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)     [in] BSTR type,
2006010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)     [in] long maxTargets,
2007010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)     [out, size_is(,*nTargets)] IUnknown ***targets,
2008010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)     [out, retval] long *nTargets
2009010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)    );
2010010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)
2011010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)}
2012010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)
2013010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)/*************************************************************************
2014010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) *
20155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  File Name (AccessibleComponent.idl)
20165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *
20175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  IAccessible2 IDL Specification
20185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *
20195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  Copyright (c) 2007, 2010 Linux Foundation
20205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  Copyright (c) 2006 IBM Corporation
20215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  Copyright (c) 2000, 2006 Sun Microsystems, Inc.
20225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  All rights reserved.
20235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *
20245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *
20255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  Redistribution and use in source and binary forms, with or without
20265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  modification, are permitted provided that the following conditions
20275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  are met:
20285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *
20295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *   1. Redistributions of source code must retain the above copyright
20305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *      notice, this list of conditions and the following disclaimer.
20315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *
20325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *   2. Redistributions in binary form must reproduce the above
20335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *      copyright notice, this list of conditions and the following
20345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *      disclaimer in the documentation and/or other materials
20355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *      provided with the distribution.
20365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *
20375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *   3. Neither the name of the Linux Foundation nor the names of its
20385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *      contributors may be used to endorse or promote products
20395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *      derived from this software without specific prior written
20405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *      permission.
20415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *
20425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
20435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
20445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
20455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
20465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
20475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
20485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
20495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
20505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
20515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
20525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
20535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
20545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
20555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *
20565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  This BSD License conforms to the Open Source Initiative "Simplified
20575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  BSD License" as published at:
20585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  http://www.opensource.org/licenses/bsd-license.php
20595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *
20605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  IAccessible2 is a trademark of the Linux Foundation. The IAccessible2
20615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  mark may be used in accordance with the Linux Foundation Trademark
20625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  Policy to indicate compliance with the IAccessible2 specification.
20635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *
20645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ************************************************************************/
20655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
2066010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)
2067010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)
2068010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)
20695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
20705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/** A value specifying a color in ARGB format, where each 8 bit color component
20715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)specifies alpha, red, green, and blue respectively.  The alpha value is optional.
20725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)*/
20735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)typedef long IA2Color;
20745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
20755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/** @brief This interface is implemented by any object that can be rendered
20765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) on the screen.
20775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
20785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) This interface provides the standard mechanism for an assistive technology
20795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  to retrieve information concerning the graphical representation of an object.
20805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  Coordinates used by the functions of this interface are specified in
20815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  different coordinate systems.  Their scale is the same and is equal to
20825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  that of the screen coordinate system.  In other words all coordinates
20835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  are measured in pixels.  They differ in their respective origin:
20845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  <ul>
20855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   <li>The screen coordinate system has its origin in the upper left
20865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    corner of the current screen.</li>
20875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   <li>The origin of the parent coordinate system is the upper left corner
20885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    of the parent's bounding box.  With no parent the screen coordinate
20895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    system is used instead.</li>
20905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  </ul>
20915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)*/
20925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)[object, uuid(1546D4B0-4C98-4bda-89AE-9A64748BDDE4)]
20935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)interface IAccessibleComponent : IUnknown
20945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles){
20955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
20965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  /** @brief Returns the location of the upper left corner of the object's
20975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    bounding box relative to the immediate parent object.
20985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
20995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	The coordinates of the bounding box are given relative to the parent's
21005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	coordinate system. The coordinates of the returned position are relative
21015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	to this object's parent or relative to the screen on which this object
21025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    is rendered if it has no parent. If the object is not on any screen
21035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    the returned position is (0,0).
21045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
21055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @param [out] x
21065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @param [out] y
21075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @retval S_OK
21085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  */
21095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  [propget] HRESULT locationInParent
21105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    (
21115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	 [out] long *x,
21125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)     [out, retval] long *y
21135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    );
21145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
21155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  /** @brief Returns the foreground color of this object.
21165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @param [out] foreground
21175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    The returned color is the foreground color of this object or, if
21185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    that is not supported, the default foreground color.
21195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @retval S_OK
21205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  */
21215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  [propget] HRESULT foreground
21225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    (
21235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)     [out, retval] IA2Color *foreground
21245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    );
21255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
21265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   /** @brief Returns the background color of this object.
21275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    @param [out] background
21285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)     The returned color is the background color of this object or, if
21295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)     that is not supported, the default background color.
21305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    @retval S_OK
21315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   */
21325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  [propget] HRESULT background
21335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    (
21345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)     [out, retval] IA2Color *background
21355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    );
21365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
21375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/*************************************************************************
21385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *
21395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  File Name (AccessibleValue.idl)
21405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *
21415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  IAccessible2 IDL Specification
21425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *
21435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  Copyright (c) 2007, 2010 Linux Foundation
21445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  Copyright (c) 2006 IBM Corporation
21455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  Copyright (c) 2000, 2006 Sun Microsystems, Inc.
21465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  All rights reserved.
21475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *
21485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *
21495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  Redistribution and use in source and binary forms, with or without
21505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  modification, are permitted provided that the following conditions
21515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  are met:
21525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *
21535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *   1. Redistributions of source code must retain the above copyright
21545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *      notice, this list of conditions and the following disclaimer.
21555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *
21565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *   2. Redistributions in binary form must reproduce the above
21575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *      copyright notice, this list of conditions and the following
21585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *      disclaimer in the documentation and/or other materials
21595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *      provided with the distribution.
21605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *
21615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *   3. Neither the name of the Linux Foundation nor the names of its
21625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *      contributors may be used to endorse or promote products
21635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *      derived from this software without specific prior written
21645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *      permission.
21655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *
21665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
21675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
21685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
21695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
21705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
21715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
21725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
21735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
21745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
21755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
21765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
21775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
21785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
21795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *
21805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  This BSD License conforms to the Open Source Initiative "Simplified
21815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  BSD License" as published at:
21825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  http://www.opensource.org/licenses/bsd-license.php
21835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *
21845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  IAccessible2 is a trademark of the Linux Foundation. The IAccessible2
21855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  mark may be used in accordance with the Linux Foundation Trademark
21865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  Policy to indicate compliance with the IAccessible2 specification.
21875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *
21885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ************************************************************************/
21895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
2190010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)
2191010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)
2192010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)
21935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
21945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/** @brief This interface gives access to a single numerical value.
21955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
21965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) The %IAccessibleValue interface represents a single numerical value and should
21975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  be implemented by any class that supports numerical value like progress bars
21985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  and spin boxes.  This interface lets you access the value and its upper and
21995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  lower bounds.
22005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)*/
22015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)[object, uuid(35855B5B-C566-4fd0-A7B1-E65465600394)]
22025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)interface IAccessibleValue : IUnknown
22035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles){
22045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
22055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  /** @brief Returns the value of this object as a number.
22065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
22075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   The exact return type is implementation dependent.  Typical types are long and
22085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    double.
22095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @param [out] currentValue
22105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    Returns the current value represented by this object.  See the section about
22115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	@ref _variants "VARIANTs" for additional information.
22125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @retval S_OK
2213010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)   @retval S_FALSE if there is nothing to return, [out] value is a VARIANT with vt = VT_EMPTY
22145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  */
22155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  [propget] HRESULT currentValue
22165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    (
22175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)     [out, retval] VARIANT *currentValue
22185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    );
22195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
22205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  /** @brief Sets the value of this object to the given number.
22215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
22225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   The argument is clipped to the valid interval whose upper and lower
22235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    bounds are returned by the methods IAccessibleValue::maximumValue and
22245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	IAccessibleValue::minimumValue, i.e. if it is 	lower than the minimum
22255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	value the new value will be the minimum and if it is greater than the
22265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	maximum then the new value will be the maximum.
22275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
2228010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)   @param [in] value
22295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    The new value represented by this object.  The set of admissible types for
22305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    this argument is implementation dependent.
22315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @retval S_OK
22325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  */
22335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  HRESULT setCurrentValue
22345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    (
22355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)     [in] VARIANT value
22365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    );
22375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
22385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  /** @brief Returns the maximal value that can be represented by this object.
22395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
22405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   The type of the returned value is implementation dependent.  It does not have
22415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    to be the same type as that returned by method IAccessibleValue::currentValue.
22425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
22435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @param [out] maximumValue
22445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    Returns the maximal value in an implementation dependent type. If this object
22455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    has no upper bound then an empty object is returned.  See the section about
22465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	@ref _variants "VARIANTs" for additional information.
22475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @retval S_OK
2248010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)   @retval S_FALSE if there is nothing to return, [out] value is a VARIANT with vt = VT_EMPTY
22495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  */
22505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  [propget] HRESULT maximumValue
22515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    (
22525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)     [out, retval] VARIANT *maximumValue
22535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    );
22545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
22555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  /** @brief Returns the minimal value that can be represented by this object.
22565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
22575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   The type of the returned value is implementation dependent.  It does not have
22585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    to be the same type as that returned by method IAccessibleValue::currentValue.
22595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
22605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @param [out] minimumValue
22615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    Returns the minimal value in an implementation dependent type. If this object
22625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    has no lower bound then an empty object is returned.  See the section about
22635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	@ref _variants "VARIANTs" for additional information.
22645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @retval S_OK
2265010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)   @retval S_FALSE if there is nothing to return, [out] value is a VARIANT with vt = VT_EMPTY
22665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  */
22675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  [propget] HRESULT minimumValue
22685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    (
22695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)     [out, retval] VARIANT *minimumValue
22705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    );
22715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
22725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)};
22735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/*************************************************************************
22745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *
22755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  File Name (AccessibleText.idl)
22765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *
22775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  IAccessible2 IDL Specification
22785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *
2279010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) *  Copyright (c) 2007, 2013 Linux Foundation
22805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  Copyright (c) 2006 IBM Corporation
22815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  Copyright (c) 2000, 2006 Sun Microsystems, Inc.
22825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  All rights reserved.
22835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *
22845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *
22855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  Redistribution and use in source and binary forms, with or without
22865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  modification, are permitted provided that the following conditions
22875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  are met:
22885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *
22895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *   1. Redistributions of source code must retain the above copyright
22905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *      notice, this list of conditions and the following disclaimer.
22915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *
22925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *   2. Redistributions in binary form must reproduce the above
22935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *      copyright notice, this list of conditions and the following
22945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *      disclaimer in the documentation and/or other materials
22955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *      provided with the distribution.
22965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *
22975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *   3. Neither the name of the Linux Foundation nor the names of its
22985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *      contributors may be used to endorse or promote products
22995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *      derived from this software without specific prior written
23005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *      permission.
23015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *
23025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
23035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
23045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
23055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
23065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
23075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
23085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
23095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
23105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
23115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
23125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
23135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
23145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
23155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *
23165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  This BSD License conforms to the Open Source Initiative "Simplified
23175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  BSD License" as published at:
23185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  http://www.opensource.org/licenses/bsd-license.php
23195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *
23205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  IAccessible2 is a trademark of the Linux Foundation. The IAccessible2
23215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  mark may be used in accordance with the Linux Foundation Trademark
23225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  Policy to indicate compliance with the IAccessible2 specification.
23235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *
23245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ************************************************************************/
23255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
2326010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)
2327010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)
2328010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)
23295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
23305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
23315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/** A structure containing a substring and the start and end offsets in the enclosing string.
23325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
23335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) IAccessibleText::newText and IAccessibleText::oldText return this struct.
23345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)*/
23355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)typedef struct IA2TextSegment {
23365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  BSTR text;	///< A copy of a segment of text taken from an enclosing paragraph.
23375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  long start;	///< Index of the first character of the segment in the enclosing text.
23385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  long end;		///< Index of the character following the last character of the segment in the enclosing text.
23395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} IA2TextSegment;
23405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
23415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/** This enum defines values which specify a text boundary type.
23425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
23435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) IA2_TEXT_BOUNDARY_SENTENCE is optional.  When a method doesn't implement this
23445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) method it must return S_FALSE.  Typically this feature would not be implemented
23455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) by an application.  However, if the application developer was not satisfied with
23465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) how screen readers have handled the reading of sentences this boundary type
23475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) could be implemented and screen readers could use the application's version of a
23485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) sentence rather than the screen reader's.
23495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
23505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) The rest of the boundary types must be supported.
23515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
23525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) This enum is used in IAccessibleText::textBeforeOffset, IAccessibleText::textAtOffset,
23535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) and IAccessibleText::textAfterOffset.
23545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)*/
23555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
23565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)enum IA2TextBoundaryType {
2357010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)  IA2_TEXT_BOUNDARY_CHAR,       /**< Typically, a single character is returned.  In some cases more than
2358010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)                                 one character is returned, for example, when a document contains field
2359010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)                                 data such as a field containing a date, time, or footnote reference.
2360010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)                                 In this case the caret can move over several characters in one movement
2361010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)                                 of the caret.  Note that after the caret moves, the caret offset changes
2362010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)                                 by the number of characters in the field, e.g. by 8 characters in the
2363010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)                                 following date: 03/26/07. */
2364010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)  IA2_TEXT_BOUNDARY_WORD,       /**< The range provided matches the range observed when the application
2365010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)                                 processes the Ctrl + left arrow and Ctrl + right arrow key sequences.
2366010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)                                 Typically this is from the start of one word to the start of the next, but
2367010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)                                 various applications are inconsistent in the handling of the end of a line. */
2368010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)  IA2_TEXT_BOUNDARY_SENTENCE,   ///< Range is from start of one sentence to the start of another sentence.
2369010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)  IA2_TEXT_BOUNDARY_PARAGRAPH,  ///< Range is from start of one paragraph to the start of another paragraph.
2370010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)  IA2_TEXT_BOUNDARY_LINE,       /**< Range is from start of one line to the start of another line. This
23715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)                                 often means that an end-of-line character will appear at the end of the
2372010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)                                 range. However in the case of some applications an end-of-line character
2373010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)                                 indicates the end of a paragraph and the lines composing the paragraph,
2374010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)                                 other than the last line, do not contain an end of line character. */
2375010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)  IA2_TEXT_BOUNDARY_ALL         ///< Using this value will cause all text to be returned.
23765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)};
23775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
23785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/** @brief This interface gives read-only access to text.
23795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
23805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) The %IAccessibleText interface should be implemented by all components
23815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  that present textual information on the display like  buttons,
23825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  text entry fields, or text portions of the document window.  The interface
23835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  provides access to the text's content, attributes, and spatial location.
23845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  However, text can not be modified with this interface.  That is the task
23855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  of the IAccessibleEditableText interface.
23865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
23875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) The text length, i.e. the number of characters in the text, is
23885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  returned by IAccessibleText::nCharacters. All methods that operate
23895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  on particular characters (e.g. IAccessibleText::textAtOffset) use character
23905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  indices from 0 to length-1. All methods that operate on character positions
23915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  (e.g. IAccessibleText::text) use indices from 0 to length.
23925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
23935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) Please note that accessible text does not necessarily support selection.
23945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  In this case it should behave as if there where no selection.  An empty
23955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  selection is used for example to express the current cursor position.
23965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
23975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) Refer to @ref _specialOffsets
23985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  "Special Offsets for use in the IAccessibleText and IAccessibleEditableText Methods"
23995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  for information about special offsets that can be used in %IAccessibleText methods.
24005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
24015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) E_FAIL is returned in the following cases
24025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) @li endOffset < startOffset
24035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) @li endoffset > length
24045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)*/
24055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)[object, uuid(24FD2FFB-3AAD-4a08-8335-A3AD89C0FB4B)]
24065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)interface IAccessibleText : IUnknown
24075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles){
24085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
24095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  /** @brief Adds a text selection
24105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @param [in] startOffset
24115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    Starting offset ( 0 based).
24125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @param [in] endOffset
24135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    Offset of first character after new selection (0 based).
24145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @retval S_OK
24155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @retval E_INVALIDARG if bad [in] passed
2416010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)   @note  Refer to @ref _specialOffsets
2417010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)    "Special Offsets for use in the IAccessibleText and IAccessibleEditableText Methods"
2418010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)    for information about special offsets that can be used in %IAccessibleText methods.
24195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  */
24205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  HRESULT addSelection
24215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    (
24225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)     [in] long startOffset,
24235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)     [in] long endOffset
24245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    );
24255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
24265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  /** @brief Returns text attributes.
24275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @param [in] offset
2428010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)    Text offset (0 based).  Refer to @ref _specialOffsets
2429010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)    "Special Offsets for use in the IAccessibleText and IAccessibleEditableText Methods"
2430010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)    for information about special offsets that can be used in %IAccessibleText methods.
24315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @param [out] startOffset
24325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    The starting offset of the character range over which all text attributes match
2433010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)    those of offset. (0 based)
24345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @param [out] endOffset
24355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    The offset of the first character past the character range over which all text
2436010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)    attributes match those of offset. (0 based)
24375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @param [out] textAttributes
24385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    A string of attributes describing the text.  The attributes are described in the
24395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    <a href="http://www.linuxfoundation.org/en/Accessibility/IAccessible2/TextAttributes">
24405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    text attributes specification</a> on the %IAccessible2 web site.
24415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @retval S_OK
24425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @retval S_FALSE if there is nothing to return, [out] values are 0s and NULL respectively
2443010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)   @retval E_INVALIDARG if bad [in] passed
24445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  */
24455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  [propget] HRESULT attributes
24465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    (
24475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)     [in] long offset,
24485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)     [out] long *startOffset,
24495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)     [out] long *endOffset,
24505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)     [out, retval] BSTR *textAttributes
24515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    );
24525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
24535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  /** @brief Returns the position of the caret.
24545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
24555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   Returns the 0-based offset of the caret within the text.  If the text is
24565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   implemented as a tree of text objects with embed characters in higher levels
24575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   representing substrings of child text objects and the caret is in one of the
24585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   child text objects, then the offset in the higher level text object would be
24595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   at the embed character representing child text object that contains the caret.
24605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
24615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   For example, if the string "one two three" is implemented as a two text objects,
24625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   with a top level text object containing an embed character "one ? three" and a
24635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   child text object containing "two" and if the caret is in the descendant object
24645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   just before the 'o' in "two", then:
24655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   <ul>
24665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   <li>the caretOffset for the "one ? three" object would be 4, matching the embed character</li>
24675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   <li>the caretOffset for "two" would be 2, matching the "o"</li>
24685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   </ul>
24695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   The caret position/offset is that of the character logically following it, e.g.
2470010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)   to the right of it in a left to right language, or to the left of it in a right
2471010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)   to left language.
24725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @param [out] offset
24735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    The returned offset is relative to the text represented by this object.
24745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @retval S_OK
24755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @retval S_FALSE if the caret is not currently active on this object, i.e. the
24765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    caret is located on some other object.  The returned offset value will be -1.
24775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @note S_FALSE (and an offset of -1) will not be returned if the caret is somewhere
24785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   in the text object or one of its descendants.
24795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  */
24805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  [propget] HRESULT caretOffset
24815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    (
24825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)     [out, retval] long *offset
24835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    );
24845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
24855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
24865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  /** @brief Returns the bounding box of the specified position.
24875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
24885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   The virtual character after the last character of the represented
24895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    text, i.e. the one at position length is a special case. It represents the
24905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    current input position and will therefore typically be queried by AT more
24915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    often than other positions.  Because it does not represent an existing character
24925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    its bounding box is defined in relation to preceding characters.  It should be
24935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    roughly equivalent to the bounding box of some character when inserted at the
24945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    end of the text.  Its height typically being the maximal height of all the
24955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    characters in the text or the height of the preceding character, its width being
24965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    at least one pixel so that the bounding box is not degenerate.
24975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
24985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   Note that the index 'length' is not always valid.  Whether it is or not is
24995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    implementation dependent.  It typically is when text is editable or otherwise
25005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    when on the screen the caret can be placed behind the text.  You can be sure
25015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    that the index is valid after you have received a ::IA2_EVENT_TEXT_CARET_MOVED
25025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    event for this index.
25035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @param [in] offset
25045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    Index of the character for which to return its bounding box. The valid range
2505010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)    is 0..length.  Refer to @ref _specialOffsets
2506010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)    "Special Offsets for use in the IAccessibleText and IAccessibleEditableText Methods"
2507010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)    for information about special offsets that can be used in %IAccessibleText methods.
25085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @param [in] coordType
25095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    Specifies if the coordinates are relative to the screen or to the parent window.
25105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @param [out] x
25115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    X coordinate of the top left corner of the bounding box of the referenced character.
25125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @param [out] y
25135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    Y coordinate of the top left corner of the bounding box of the referenced character.
25145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @param [out] width
25155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    Width of the bounding box of the referenced character.
25165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @param [out] height
25175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    Height of the bounding box of the referenced character.
25185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @retval S_OK
2519010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)   @retval E_INVALIDARG if bad [in] passed
25205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  */
25215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  [propget] HRESULT characterExtents
25225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    (
25235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)     [in] long offset,
25245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)     [in] enum IA2CoordinateType coordType,
25255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)     [out] long *x,
25265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)     [out] long *y,
25275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)     [out] long *width,
25285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)     [out, retval] long *height
25295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    );
25305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
25315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
25325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  /** @brief Returns the number of active non-contiguous selections
25335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @param [out] nSelections
25345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @retval S_OK
25355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  */
25365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  [propget] HRESULT nSelections
25375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    (
25385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)     [out, retval] long *nSelections
25395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    );
25405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
25415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  /** @brief Returns the text position for the specified screen position.
25425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
25435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   Given a point return the zero-based index of the character under that
25445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   point.  The same functionality could be achieved by using the bounding
25455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   boxes for each character as returned by IAccessibleText::characterExtents.
25465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   The method IAccessibleText::offsetAtPoint, however, can be implemented
25475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   more efficiently.
25485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
25495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @param [in] x
25505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    The position's x value for which to look up the index of the character that
2551010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)    is rendered on to the display at that point.
25525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @param [in] y
25535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    The position's y value for which to look up the index of the character that
2554010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)    is rendered on to the display at that point.
25555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @param [in] coordType
25565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    Screen coordinates or window coordinates.
25575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @param [out] offset
25585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    Index of the character under the given point or -1 if the point
25595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    is invalid or there is no character under the point.
25605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @retval S_OK
2561010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)   @retval S_FALSE if nothing to return, [out] value is -1
2562010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)
2563010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)   @retval E_INVALIDARG if bad [in] passed
25645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    */
25655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  [propget] HRESULT offsetAtPoint
25665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    (
25675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)     [in] long x,
25685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)     [in] long y,
25695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)     [in] enum IA2CoordinateType coordType,
25705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)     [out, retval] long *offset
25715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    );
25725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
25735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  /** @brief Returns the character offsets of Nth active text selection
2574010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)
2575010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)   Returns the 0-based starting and ending offsets of the Nth selection.  If the
2576010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)   text is implemented as a tree of text objects with embed characters in higher
2577010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)   levels representing substrings of child text objects, consider the following.
2578010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)   If the starting selection offset is in one of the child text objects, then the
2579010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)   starting offset in the higher level text object would be at the embed character
2580010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)   representing the child text object that contains the starting selection offset.
2581010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)   If the ending selection offset is in one of the child text objects, then the
2582010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)   ending offset in the higher level text object would be just after the embed
2583010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)   character representing the child text object that contains the ending selection
2584010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)   offset.
2585010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)
2586010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)   For example, if the string "one two three" is implemented as a two text objects,
2587010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)   with a top level text object containing an embed character "one ? three" and a
2588010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)   child text object containing "two" and if the selection is the string "two" then:
2589010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)   <ul>
2590010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)   <li>the startOffset for the "one ? three" object would be 4, matching the embed character and the endOffset would be 5.</li>
2591010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)   <li>the startOffset for the "two" object would be 0, and the endOffset would be 3</li>
2592010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)   </ul>
2593010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)   Selection offsets are that of the character logically following it, e.g.
2594010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)   to the right of it in a left to right language or to the left of it in a right to left language.
25955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @param [in] selectionIndex
25965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    Index of selection (0 based).
25975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @param [out] startOffset
25985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    0 based offset of first selected character
25995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @param [out] endOffset
26005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    0 based offset of one past the last selected character.
26015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @retval S_OK
2602010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)   @retval E_INVALIDARG if bad [in] passed
26035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  */
26045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  [propget] HRESULT selection
26055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    (
26065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)     [in] long selectionIndex,
26075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)     [out] long *startOffset,
26085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)     [out, retval] long *endOffset
26095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    );
26105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
26115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  /** @brief Returns the substring between the two given indices.
26125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
26135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   The substring starts with the character at startOffset (inclusive) and up to
26145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    the character at endOffset (exclusive), if startOffset is less or equal
2615010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)    endOffset.  If endOffset is lower than startOffset, the result is the same
26165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    as a call with the two arguments being exchanged.
26175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
26185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   The whole text can be requested by passing the indices zero and
26195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    IAccessibleText::nCharacters. If both indices have the same value, an empty
2620010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)    string is returned.
26215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @param [in] startOffset
26225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    Index of the first character to include in the returned string. The valid range
26235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    is 0..length.
26245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @param [in] endOffset
26255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    Index of the last character to exclude in the returned string. The valid range
26265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    is 0..length.
26275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @param [out] text
26285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    Returns the substring starting with the character at startOffset (inclusive)
26295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    and up to the character at endOffset (exclusive), if startOffset is less than
26305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    or equal to endOffset.
26315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @retval S_OK
2632010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)   @retval E_INVALIDARG if bad [in] passed
2633010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)   @note
2634010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)   @li The returned string may be longer than endOffset-startOffset bytes if text
2635010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)    contains multi-byte characters.
2636010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)   @li Refer to @ref _specialOffsets
2637010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)    "Special Offsets for use in the IAccessibleText and IAccessibleEditableText Methods"
2638010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)    for information about special offsets that can be used in %IAccessibleText methods.
26395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  */
26405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  [propget] HRESULT text
26415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    (
26425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)     [in] long startOffset,
26435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)     [in] long endOffset,
26445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)     [out, retval] BSTR *text
26455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    );
26465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
26475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  /** @brief Returns a text portion before the given position.
26485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
26495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   Returns the substring of the specified text type that is located before the
26505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    given character and does not include it. The result of this method should be
26515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    same as a result for IAccessibleText::textAtOffset with a suitably decreased
26525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    index value.
26535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
26545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   For example, if text type is ::IA2_TEXT_BOUNDARY_WORD, then the complete
26555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    word that is closest to and located before offset is returned.
26565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
2657010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)   If the index is valid, but no text is found, S_FALSE is returned along with out
2658010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)    values of 0, 0, and a NULL pointer.  This would happen for boundary types other
2659010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)    than character when the text consists entirely of whitespace.
26605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
26615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @param [in] offset
26625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    Index of the character for which to return the text part before it.  The index
26635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    character will not be part of the returned string. The valid range is 0..length.
2664010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)    Refer to @ref _specialOffsets
2665010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)    "Special Offsets for use in the IAccessibleText and IAccessibleEditableText Methods"
2666010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)    for information about special offsets that can be used in %IAccessibleText methods.
26675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @param [in] boundaryType
26685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    The type of the text portion to return.  See ::IA2TextBoundaryType for the
2669010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)    complete list.
26705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @param [out] startOffset
26715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    0 based offset of first character.
26725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @param [out] endOffset
26735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    0 based offset of one past the last character.
26745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @param [out] text
26755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    Returns the requested text portion.  This portion may be empty or invalid when
26765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    no appropriate text portion is found or text type is invalid.
26775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @retval S_OK
26785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @retval S_FALSE if the requested boundary type is not implemented, such as
26795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    ::IA2_TEXT_BOUNDARY_SENTENCE, or if there is nothing to return;
2680010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)    [out] values are 0s and NULL respectively
2681010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)   @retval E_INVALIDARG if bad [in] passed
26825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  */
26835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  [propget] HRESULT textBeforeOffset
26845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    (
26855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)     [in] long offset,
26865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)     [in] enum IA2TextBoundaryType boundaryType,
26875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)     [out] long *startOffset,
26885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)     [out] long *endOffset,
26895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)     [out, retval] BSTR *text
26905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    );
26915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
26925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  /** @brief Returns a text portion after the given position.
26935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
26945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   Returns the substring of the specified text type that is located after the
26955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    given character and does not include it. The result of this method should be
26965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    same as a result for IAccessibleText::textAtOffset with a suitably increased
26975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    index value.
26985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
26995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   For example, if text type is ::IA2_TEXT_BOUNDARY_WORD, then the complete
27005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    word that is closest to and located after offset is returned.
27015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
2702010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)   If the index is valid, but no text is found, S_FALSE is returned along with out
2703010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)    values of 0, 0, and a NULL pointer.  This would happen for boundary types other
2704010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)    than character when the text consists entirely of whitespace.
27055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
27065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @param [in] offset
2707010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)    Index of the character for which to return the text part after it.  The index
27085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    character will not be part of the returned string. The valid range is 0..length.
2709010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)    Refer to @ref _specialOffsets
2710010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)    "Special Offsets for use in the IAccessibleText and IAccessibleEditableText Methods"
2711010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)    for information about special offsets that can be used in %IAccessibleText methods.
27125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @param [in] boundaryType
27135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    The type of the text portion to return.  See ::IA2TextBoundaryType for the complete
27145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    list.
27155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @param [out] startOffset
27165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    0 based offset of first character.
27175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @param [out] endOffset
27185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    0 based offset of one past the last character.
27195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @param [out] text
27205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    Returns the requested text portion.  This portion may be empty or invalid when
27215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    no appropriate text portion is found or text type is invalid.
27225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @retval S_OK
27235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @retval S_FALSE if the requested boundary type is not implemented, such as
27245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    ::IA2_TEXT_BOUNDARY_SENTENCE, or if there is nothing to return;
2725010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)    [out] values are 0s and NULL respectively
2726010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)   @retval E_INVALIDARG if bad [in] passed
27275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  */
27285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  [propget] HRESULT textAfterOffset
27295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    (
27305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)     [in] long offset,
27315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)     [in] enum IA2TextBoundaryType boundaryType,
27325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)     [out] long *startOffset,
27335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)     [out] long *endOffset,
27345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)     [out, retval] BSTR *text
27355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    );
27365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
27375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  /** @brief Returns a text portion that spans the given position.
27385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
2739010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)   Returns the substring defined by the specified boundary type at the specified
2740010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)    offset.  Refer to IA2TextBoundaryType for more details.
2741010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)
2742010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)   For the word boundary type the returned string will contain the word at the
2743010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)    offset if the offset is inside a word and will contain the word before the
2744010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)    offset if the offset is not inside a word.  All offsets from the first to the
2745010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)    last characters of a word are considered inside the word.  Boundary types of
2746010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)    sentence and paragraph should exhibit similar behavior.
2747010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)
2748010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)   If the index is valid, but no text is found, S_FALSE is returned along with out
2749010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)    values of 0, 0, and a NULL pointer.  This would happen for boundary types other
2750010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)    than character when the text consists entirely of whitespace.
27515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
27525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @param [in] offset
2753010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)    Index of the character for which to return the text part it belongs to.  The valid
2754010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)    range is 0..length.
2755010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)    Refer to @ref _specialOffsets
2756010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)    "Special Offsets for use in the IAccessibleText and IAccessibleEditableText Methods"
2757010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)    for information about special offsets that can be used in %IAccessibleText methods.
27585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @param [in] boundaryType
27595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    The type of the text portion to return.  See ::IA2TextBoundaryType for the complete
27605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    list.
27615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @param [out] startOffset
27625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    0 based offset of first character.
27635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @param [out] endOffset
27645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    0 based offset of one past the last character.
27655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @param [out] text
27665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    Returns the requested text portion.  This portion may be empty or invalid when
27675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    no appropriate text portion is found or text type is invalid.
27685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @retval S_OK
27695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @retval S_FALSE if the requested boundary type is not implemented, such as
27705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    ::IA2_TEXT_BOUNDARY_SENTENCE, or if there is nothing to return;
2771010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)    [out] values are 0s and NULL respectively
2772010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)   @retval E_INVALIDARG if bad [in] passed
27735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  */
27745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  [propget] HRESULT textAtOffset
27755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    (
27765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)     [in] long offset,
27775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)     [in] enum IA2TextBoundaryType boundaryType,
27785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)     [out] long *startOffset,
27795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)     [out] long *endOffset,
27805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)     [out, retval] BSTR *text
27815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    );
27825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
27835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  /** @brief Unselects a range of text.
27845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @param [in] selectionIndex
27855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    Index of selection to remove (0 based).
27865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @retval S_OK
27875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @retval E_INVALIDARG if bad [in] passed
27885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  */
27895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  HRESULT removeSelection
27905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    (
27915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)     [in] long selectionIndex
27925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    );
27935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
27945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  /** @brief Sets the position of the caret.
27955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
27965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   The caret position/offset is that of the character logically following it,
27975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   e.g. to the right of it in a left to right language.
27985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
27995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   Setting the caret position may or may not alter the current selection.  A
28005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    change of the selection is notified to the accessibility event listeners with
28015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    an ::IA2_EVENT_TEXT_SELECTION_CHANGED event.
28025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
28035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   When the new caret position differs from the old one (which, of course, is the
28045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    standard case) this is notified to the accessibility event listeners with an
28055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    ::IA2_EVENT_TEXT_CARET_MOVED event.
28065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @param [in] offset
28075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    The new index of the caret.  This caret is actually placed to the left side of
28085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    the character with that index.  An index of 0 places the caret so that the next
28095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    insertion goes before the first character.  An index of IAccessibleText::nCharacters
2810010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)    leads to insertion after the last character.  Refer to @ref _specialOffsets
2811010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)    "Special Offsets for use in the IAccessibleText and IAccessibleEditableText Methods"
2812010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)    for information about special offsets that can be used in %IAccessibleText methods.
28135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @retval S_OK
28145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @retval E_FAIL if the caret cannot be set
28155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @retval E_INVALIDARG if bad [in] passed
28165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  */
28175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  HRESULT setCaretOffset
28185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    (
28195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)     [in] long offset
28205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    );
28215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
28225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  /** @brief Changes the bounds of an existing selection.
28235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @param [in] selectionIndex
28245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    Index of selection to change (0 based)
28255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @param [in] startOffset
28265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    New starting offset (0 based)
28275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @param [in] endOffset
28285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    New ending offset (0 based) - the offset of the character just past the last character of the selection.
28295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @retval S_OK
28305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @retval E_INVALIDARG if bad [in] passed
2831010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)   @note Refer to @ref _specialOffsets
2832010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)    "Special Offsets for use in the IAccessibleText and IAccessibleEditableText Methods"
2833010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)    for information about special offsets that can be used in %IAccessibleText methods.
28345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  */
28355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  HRESULT setSelection
28365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    (
28375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)     [in] long selectionIndex,
28385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)     [in] long startOffset,
28395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)     [in] long endOffset
28405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    );
28415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
28425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  /** @brief Returns total number of characters.
28435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
28445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   Note that this may be different than the total number of bytes required to store the
28455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    text, if the text contains multi-byte characters.
28465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @param [out] nCharacters
28475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @retval S_OK
28485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  */
28495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  [propget] HRESULT nCharacters
28505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    (
28515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)     [out, retval] long *nCharacters
28525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    );
28535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
28545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  /** @brief Makes a specific part of string visible on screen.
28555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @param [in] startIndex
28565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    0 based character offset.
28575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @param [in] endIndex
28585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    0 based character offset - the offset of the character just past the last character of the string.
28595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @param [in] scrollType
28605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    Defines where the object should be placed on the screen.
28615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @retval S_OK
28625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @retval E_INVALIDARG if bad [in] passed
2863010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)   @note Refer to @ref _specialOffsets
2864010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)    "Special Offsets for use in the IAccessibleText and IAccessibleEditableText Methods"
2865010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)    for information about special offsets that can be used in %IAccessibleText methods.
28665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  */
28675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  HRESULT scrollSubstringTo
28685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    (
28695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)     [in] long startIndex,
28705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)     [in] long endIndex,
2871010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)     [in] enum IA2ScrollType scrollType
28725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    );
28735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
28745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  /** @brief Moves the top left of a substring to a specified location.
28755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
28765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @param [in] startIndex
28775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    0 based character offset.
28785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @param [in] endIndex
28795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    0 based character offset - the offset of the character just past the last character of the string.
28805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @param [in] coordinateType
28815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    Specifies whether the coordinates are relative to the screen or the parent object.
28825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @param [in] x
28835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    Defines the x coordinate.
28845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @param [in] y
28855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    Defines the y coordinate.
28865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @retval S_OK
28875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @retval S_FALSE if the object is already at the specified location.
28885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @retval E_INVALIDARG if bad [in] passed
2889010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)   @note Refer to @ref _specialOffsets
2890010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)    "Special Offsets for use in the IAccessibleText and IAccessibleEditableText Methods"
2891010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)    for information about special offsets that can be used in %IAccessibleText methods.
28925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  */
28935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  HRESULT scrollSubstringToPoint
28945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    (
28955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)     [in] long startIndex,
28965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)     [in] long endIndex,
28975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)     [in] enum IA2CoordinateType coordinateType,
2898010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)     [in] long x,
2899010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)     [in] long y
29005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    );
29015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
29025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  /** @brief Returns any inserted text.
29035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
29045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   Provided for use by the ::IA2_EVENT_TEXT_INSERTED and ::IA2_EVENT_TEXT_UPDATED
29055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    event handlers.
29065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
29075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   This data is only guaranteed to be valid while the thread notifying the event
29085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   continues. Once the handler has returned, the validity of the data depends on
29095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   how the server manages the life cycle of its objects. Also, note that the server
29105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   may have different life cycle management strategies for controls depending on
29115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   whether or not a control manages its children. Lists, trees, and tables can have
29125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   a large number of children and thus it's possible that the child objects for those
29135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   controls would only be created as needed. Servers should document their life cycle
29145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   strategy as this will be of interest to assistive technology or script engines
29155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   accessing data out of process or from other threads. Servers only need to save the
29165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   last inserted block of text and a scope of the entire application is adequate.
29175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
29185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @param [out] newText
29195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    The text that was just inserted.
29205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @retval S_OK
2921010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)   @retval S_FALSE If there is nothing to return, the values of IA2TextSegment
2922010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)    struct are set as follows:  text = NULL, start = 0, end = 0.
2923010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)
29245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  */
29255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  [propget] HRESULT newText
29265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    (
2927010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)     [out, retval] IA2TextSegment *newText
2928010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)    );
29295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
29305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  /** @brief Returns any removed text.
29315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
29325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   Provided for use by the IA2_EVENT_TEXT_REMOVED/UPDATED event handlers.
29335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
29345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   This data is only guaranteed to be valid while the thread notifying the event
29355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   continues. Once the handler has returned, the validity of the data depends on
29365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   how the server manages the life cycle of its objects. Also, note that the server
29375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   may have different life cycle management strategies for controls depending on
29385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   whether or not a control manages its children. Lists, trees, and tables can have
29395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   a large number of children and thus it's possible that the child objects for those
29405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   controls would only be created as needed. Servers should document their life cycle
29415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   strategy as this will be of interest to assistive technology or script engines
29425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   accessing data out of process or from other threads. Servers only need to save the
29435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   last removed block of text and a scope of the entire application is adequate.
29445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
29455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @param [out] oldText
29465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    The text that was just removed.
29475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @retval S_OK
2948010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)   @retval S_FALSE If there is nothing to return, the values of IA2TextSegment
2949010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)    struct are set as follows:  text = NULL, start = 0, end = 0.
29505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  */
29515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  [propget] HRESULT oldText
29525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    (
2953010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)     [out, retval] IA2TextSegment *oldText
2954010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)    );
2955010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)
2956010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)}
2957010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)/*************************************************************************
2958010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) *
2959010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) *  File Name (AccessibleText2.idl)
2960010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) *
2961010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) *  IAccessible2 IDL Specification
2962010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) *
2963010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) *  Copyright (c) 2007, 2013 Linux Foundation
2964010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) *  Copyright (c) 2006 IBM Corporation
2965010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) *  Copyright (c) 2000, 2006 Sun Microsystems, Inc.
2966010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) *  All rights reserved.
2967010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) *
2968010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) *
2969010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) *  Redistribution and use in source and binary forms, with or without
2970010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) *  modification, are permitted provided that the following conditions
2971010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) *  are met:
2972010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) *
2973010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) *   1. Redistributions of source code must retain the above copyright
2974010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) *      notice, this list of conditions and the following disclaimer.
2975010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) *
2976010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) *   2. Redistributions in binary form must reproduce the above
2977010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) *      copyright notice, this list of conditions and the following
2978010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) *      disclaimer in the documentation and/or other materials
2979010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) *      provided with the distribution.
2980010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) *
2981010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) *   3. Neither the name of the Linux Foundation nor the names of its
2982010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) *      contributors may be used to endorse or promote products
2983010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) *      derived from this software without specific prior written
2984010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) *      permission.
2985010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) *
2986010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) *  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
2987010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) *  CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
2988010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) *  INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
2989010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) *  MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
2990010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) *  DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
2991010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) *  CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
2992010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) *  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
2993010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) *  NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
2994010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) *  LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
2995010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) *  HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
2996010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) *  CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
2997010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) *  OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
2998010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) *  EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
2999010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) *
3000010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) *  This BSD License conforms to the Open Source Initiative "Simplified
3001010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) *  BSD License" as published at:
3002010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) *  http://www.opensource.org/licenses/bsd-license.php
3003010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) *
3004010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) *  IAccessible2 is a trademark of the Linux Foundation. The IAccessible2
3005010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) *  mark may be used in accordance with the Linux Foundation Trademark
3006010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) *  Policy to indicate compliance with the IAccessible2 specification.
3007010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) *
3008010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) ************************************************************************/
3009010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)
3010010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)
3011010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)
3012010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)
3013010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)
3014010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)
3015010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)
3016010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)/** @brief This interface gives read-only access to text.
3017010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)
3018010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) The %IAccessibleText2 interface extends the functionality of the
3019010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) %IAccessibleText interface.
3020010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)*/
3021010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)[object, uuid(9690A9CC-5C80-4DF5-852E-2D5AE4189A54)]
3022010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)interface IAccessibleText2 : IAccessibleText
3023010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles){
3024010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)
3025010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)  /** @brief Returns the range and of the specified set of attributes.
3026010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)
3027010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)   Return the range (start and end offsets) and text attributes that correspond
3028010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)    to the given attributes filter at the given offset.
3029010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)
3030010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)   @param [in] offset
3031010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)    The offset at which to search for the attributes specified in the filter.
3032010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)   @param [in] filter
3033010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)    The requested attribute names.  The filter format is "attribute1, attribute2".
3034010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)   @param [out] startOffset
3035010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)    The starting (0-based) offset of the text containing the specified attributes.
3036010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)   @param [out] endOffset
3037010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)    The (0-based) offset one past the last character of the text containing the
3038010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)    specified attributes.
3039010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)   @param [out] attributeValues
3040010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)    The values of the requested attributes.
3041010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)   @retval S_OK
3042010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)   @retval S_FALSE if nothing to return, [out] values are -1, -1, NULL respectively.
3043010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)   @retval E_INVALIDARG if bad [in] passed.
3044010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)   */
3045010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)  [propget] HRESULT attributeRange
3046010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)    (
3047010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)     [in] long offset,
3048010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)     [in] BSTR filter,
3049010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)     [out] long *startOffset,
3050010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)     [out] long *endOffset,
3051010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)     [out, retval] BSTR *attributeValues
3052010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)    );
30535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
30545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
30555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/*************************************************************************
30565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *
30575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  File Name (AccessibleEditableText.idl)
30585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *
30595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  IAccessible2 IDL Specification
30605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *
3061010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) *  Copyright (c) 2007, 2012 Linux Foundation
30625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  Copyright (c) 2006 IBM Corporation
30635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  Copyright (c) 2000, 2006 Sun Microsystems, Inc.
30645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  All rights reserved.
30655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *
30665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *
30675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  Redistribution and use in source and binary forms, with or without
30685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  modification, are permitted provided that the following conditions
30695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  are met:
30705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *
30715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *   1. Redistributions of source code must retain the above copyright
30725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *      notice, this list of conditions and the following disclaimer.
30735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *
30745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *   2. Redistributions in binary form must reproduce the above
30755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *      copyright notice, this list of conditions and the following
30765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *      disclaimer in the documentation and/or other materials
30775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *      provided with the distribution.
30785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *
30795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *   3. Neither the name of the Linux Foundation nor the names of its
30805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *      contributors may be used to endorse or promote products
30815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *      derived from this software without specific prior written
30825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *      permission.
30835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *
30845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
30855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
30865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
30875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
30885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
30895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
30905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
30915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
30925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
30935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
30945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
30955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
30965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
30975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *
30985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  This BSD License conforms to the Open Source Initiative "Simplified
30995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  BSD License" as published at:
31005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  http://www.opensource.org/licenses/bsd-license.php
31015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *
31025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  IAccessible2 is a trademark of the Linux Foundation. The IAccessible2
31035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  mark may be used in accordance with the Linux Foundation Trademark
31045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  Policy to indicate compliance with the IAccessible2 specification.
31055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *
31065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ************************************************************************/
31075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
3108010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)
3109010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)
3110010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)
31115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
31125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
31135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/** @brief This interface provides clipboard capability to text objects.
31145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
31155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) This interface is typically used in conjunction with the IAccessibleText
31165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  interface and complements that interface with the additional capability of
31175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  clipboard operations.  Note that even a read only text object can support
31185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  the copy capability so this interface is not limited to editable objects.
31195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
31205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) The substrings used with this interface are specified as follows:
31215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  If startOffset is less than endOffset, the substring starts with the
31225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  character at startOffset and ends with the character just before endOffset.
31235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  If endOffset is lower than startOffset,  the result is the same as a call
31245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  with the two arguments exchanged. The whole text can be defined by passing
31255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  the indices zero and IAccessibleText::nCharacters. If both indices have the
31265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  same value, an empty string is defined.
31275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
31285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) Refer to the @ref _specialOffsets
31295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  "Special Offsets for use in the IAccessibleText and IAccessibleEditableText Methods"
31305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  for information about a special offset constant that can be used in %IAccessibleEditableText methods.
31315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)*/
31325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)[object, uuid(A59AA09A-7011-4b65-939D-32B1FB5547E3)]
31335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)interface IAccessibleEditableText : IUnknown
31345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles){
31355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
31365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  /** @brief Copies the text range into the clipboard.
31375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
3138010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)   The selection is set to the specified offsets and then selection is copied into
3139010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)   the system clipboard.
31405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
31415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @param [in] startOffset
31425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    Start index of the text to moved into the clipboard.
31435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    The valid range is 0..length.
31445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @param [in] endOffset
31455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    End index of the text to moved into the clipboard.
31465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    The valid range is 0..length.
31475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @retval S_OK
31485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @retval E_INVALIDARG if bad [in] passed
3149010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)   @note Refer to @ref _specialOffsets
3150010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)    "Special Offsets for use in the IAccessibleText and IAccessibleEditableText Methods"
3151010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)    for information about special offsets that can be used in %IAccessibleEditableText
3152010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)    methods.
3153010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)   @deprecated This function is available via the application's GUI.
31545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  */
31555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  HRESULT copyText
31565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    (
31575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)     [in] long startOffset,
31585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)     [in] long endOffset
31595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    );
31605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
31615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  /** @brief Deletes a range of text.
31625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
31635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   The text between and including the two given indices is deleted
31645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    from the text represented by this object.
31655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
31665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @param [in] startOffset
31675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    Start index of the text to be deleted.
31685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    The valid range is 0..length.
31695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @param [in] endOffset
31705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    End index of the text to be deleted.
31715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    The valid range is 0..length.
31725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @retval S_OK
31735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @retval E_INVALIDARG if bad [in] passed
3174010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)   @note Refer to @ref _specialOffsets
3175010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)    "Special Offsets for use in the IAccessibleText and IAccessibleEditableText Methods"
3176010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)    for information about special offsets that can be used in %IAccessibleEditableText
3177010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)    methods.
31785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  */
31795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  HRESULT deleteText
31805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    (
31815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)     [in] long startOffset,
31825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)     [in] long endOffset
31835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    );
31845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
31855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  /** @brief Inserts text at the specified position.
31865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
31875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   The specified string is inserted at the given index into the text
31885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    represented by this object.
31895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
31905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @param [in] offset
31915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    Index at which to insert the text.
31925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    The valid range is 0..length.
3193010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)	Refer to @ref _specialOffsets
3194010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)    "Special Offsets for use in the IAccessibleText and IAccessibleEditableText Methods"
3195010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)    for information about special offsets that can be used in %IAccessibleEditableText
3196010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)    methods.
31975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @param [in] text
31985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    Text that is inserted.
31995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @retval S_OK
32005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @retval E_INVALIDARG if bad [in] passed
32015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  */
32025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  HRESULT insertText
32035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    (
32045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)     [in] long offset,
32055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)     [in] BSTR *text
32065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    );
32075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
32085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  /** @brief Deletes a range of text and copies it to the clipboard.
32095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
3210010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)   The selection is set to the specified offsets, the selection is then copied into
3211010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)    the system clipboard, and then the selection is deleted.
32125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
32135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @param [in] startOffset
32145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    Start index of the text to be deleted.
32155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    The valid range is 0..length.
32165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @param [in] endOffset
32175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    End index of the text to be deleted.
32185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    The valid range is 0..length.
32195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @retval S_OK
32205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @retval E_INVALIDARG if bad [in] passed
3221010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)   @note Refer to @ref _specialOffsets
3222010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)    "Special Offsets for use in the IAccessibleText and IAccessibleEditableText Methods"
3223010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)    for information about special offsets that can be used in %IAccessibleEditableText
3224010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)    methods.
3225010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)   @deprecated This function is available via the application's GUI.
32265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  */
32275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  HRESULT cutText
32285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    (
32295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)     [in] long startOffset,
32305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)     [in] long endOffset
32315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    );
32325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
3233010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)  /** @brief Pastes content from the clipboard.
32345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
3235010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)   Any existing selection is removed, the clipboard content is then pasted into
3236010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)    this object's text at the given offset.  This method is similar to the insertText
3237010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)    method.  If the index is not valid the system clipboard content is not inserted. The
3238010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)    behavior is the same as	when Ctrl+V is used, i.e. the pasted contents are not
3239010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)    necessarily plain text.
3240010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)
32415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @param [in] offset
3242010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)    Index at which to insert the content from the system clipboard into
32435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    the text represented by this object.
32445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    The valid range is 0..length.
3245010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)	Refer to @ref _specialOffsets
3246010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)    "Special Offsets for use in the IAccessibleText and IAccessibleEditableText Methods"
3247010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)    for information about special offsets that can be used in %IAccessibleEditableText
3248010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)    methods.
32495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @retval S_OK
32505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @retval E_INVALIDARG if bad [in] passed
3251010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)   @deprecated This function is available via the application's GUI.
32525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  */
32535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  HRESULT pasteText
32545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    (
32555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)     [in] long offset
32565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    );
32575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
32585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  /** @brief Replaces text.
32595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
32605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   The text between the two given indices is replaced by the specified
32615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    replacement string. This method is equivalent to calling first
32625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    IAccessibleEditableText::deleteText with the two indices and then
32635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    calling IAccessibleEditableText::insertText with the replacement text
32645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	at the start index.
32655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
32665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @param [in] startOffset
32675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    Start index of the text to be replaced.
32685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    The valid range is 0..length.
32695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @param [in] endOffset
3270010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)    End index of the text to be replaced.
32715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    The valid range is 0..length.
32725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @param [in] text
32735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    The Text that replaces the text between the given indices.
32745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @retval S_OK
32755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @retval E_INVALIDARG if bad [in] passed
3276010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)   @note Refer to @ref _specialOffsets
3277010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)    "Special Offsets for use in the IAccessibleText and IAccessibleEditableText Methods"
3278010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)    for information about special offsets that can be used in %IAccessibleEditableText
3279010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)    methods.
32805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  */
32815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  HRESULT replaceText
32825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    (
32835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)     [in] long startOffset,
32845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)     [in] long endOffset,
32855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)     [in] BSTR *text
32865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    );
32875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
32885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  /** @brief Replaces the attributes of a text range by the given set of attributes.
32895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
32905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   Sets the attributes for the text between the two given indices. The old
32915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    attributes are replaced by the new list of attributes.
32925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
32935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @param [in] startOffset
32945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    Start index of the text whose attributes are modified.
32955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    The valid range is 0..length.
32965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @param [in] endOffset
3297010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)    End index of the text whose attributes are modified.
32985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    The valid range is 0..length.
32995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @param [in] attributes
33005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    Set of attributes that replaces the old list of attributes of
33015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    the specified text portion.
33025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @retval S_OK
33035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @retval E_INVALIDARG if bad [in] passed
3304010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)   @note Refer to @ref _specialOffsets
3305010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)    "Special Offsets for use in the IAccessibleText and IAccessibleEditableText Methods"
3306010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)    for information about special offsets that can be used in %IAccessibleEditableText
3307010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)    methods.
33085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  */
33095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  HRESULT setAttributes
33105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    (
33115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)     [in] long startOffset,
33125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)     [in] long endOffset,
33135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)     [in] BSTR *attributes
33145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    );
33155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
33165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
33175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/*************************************************************************
33185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *
33195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  File Name (AccessibleHyperlink.idl)
33205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *
33215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  IAccessible2 IDL Specification
33225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *
33235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  Copyright (c) 2007, 2010 Linux Foundation
33245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  Copyright (c) 2006 IBM Corporation
33255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  Copyright (c) 2000, 2006 Sun Microsystems, Inc.
33265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  All rights reserved.
33275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *
33285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *
33295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  Redistribution and use in source and binary forms, with or without
33305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  modification, are permitted provided that the following conditions
33315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  are met:
33325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *
33335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *   1. Redistributions of source code must retain the above copyright
33345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *      notice, this list of conditions and the following disclaimer.
33355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *
33365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *   2. Redistributions in binary form must reproduce the above
33375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *      copyright notice, this list of conditions and the following
33385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *      disclaimer in the documentation and/or other materials
33395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *      provided with the distribution.
33405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *
33415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *   3. Neither the name of the Linux Foundation nor the names of its
33425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *      contributors may be used to endorse or promote products
33435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *      derived from this software without specific prior written
33445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *      permission.
33455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *
33465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
33475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
33485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
33495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
33505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
33515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
33525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
33535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
33545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
33555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
33565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
33575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
33585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
33595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *
33605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  This BSD License conforms to the Open Source Initiative "Simplified
33615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  BSD License" as published at:
33625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  http://www.opensource.org/licenses/bsd-license.php
33635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *
33645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  IAccessible2 is a trademark of the Linux Foundation. The IAccessible2
33655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  mark may be used in accordance with the Linux Foundation Trademark
33665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  Policy to indicate compliance with the IAccessible2 specification.
33675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *
33685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ************************************************************************/
33695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
3370010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)
3371010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)
3372010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)
33735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
33745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
33755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/** @brief This interface represents hyperlinks.
33765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
33775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) This interface represents a hyperlink associated with a single substring
33785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  of text or single non-text object.  Non-text objects can have either a
33795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  single link or a collection of links such as when the non-text object is
33805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  an image map.
33815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
33825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) Linked objects and anchors are implementation dependent. This interface is derived
33835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  from IAccessibleAction.  IAccessibleAction::nActions is one greater than the
33845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  maximum value for the indices used with the methods of this interface.
33855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
33865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) Furthermore, the object that implements this interface has to be connected
33875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  implicitly or explicitly with an object that implements IAccessibleText.
33885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  IAccessibleHyperlink::startIndex and IAccessibleHyperlink::endIndex are
33895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  indices with respect to the text exposed by IAccessibleText.
33905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
33915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) This interface provides access to a single object which can have multiple actions.
33925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  An example is an image map which is an image with multiple links each of which is
33935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  associated with a separate non-overlapping area of the image.  This interface could
33945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  also be applied to other kinds of objects with multiple actions such as "smart tags"
33955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  which are objects, typically strings, which have multiple actions such as
33965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  "Activate URI", "Bookmark URI", etc.
33975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
33985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) An interesting use case is an image map where each area is associated with multiple
33995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  actions, e.g. an image map of smart tags.  In this case you would have to implement
34005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  two levels of accessible hyperlinks.  The first level hyperlinks would only implement
34015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  anchor and anchorTarget.  The anchors would all reference the image object.  The
34025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  anchorTargets would reference the second level accessible hyperlink objects.  None
34035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  of the IAccessibleAction methods would be implemented on the first level hyperlink
34045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  objects.  The second level hyperlink objects would implement the IAccessibleAction
34055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  methods.  Their anchors would also reference the image object and their anchorTargets
34065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  would reference URLs or the objects that would be activated.
34075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
34085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) This use case demonstrates that in some cases there is no need for IAccessibleHyperlink
34095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  to derive from IAccessibleAction.  As a result it may be removed in a later version of
34105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  the IDL and it is suggested that implementations should not rely on the inheritance.
34115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
34125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)*/
34135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)[object, uuid(01C20F2B-3DD2-400f-949F-AD00BDAB1D41)]
34145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)interface IAccessibleHyperlink : IAccessibleAction
34155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles){
34165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
34175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  /** @brief Returns an object that represents the link anchor, as appropriate
34185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   for the link at the specified index.
34195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @param [in] index
34205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    A 0 based index identifies the anchor when, as in the case of an image map,
34215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    there is more than one link represented by this object.  The valid maximal
34225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    index is indicated by IAccessibleAction::nActions.
34235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @param [out] anchor
34245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    This is an implementation dependent value.  For example, for a text link this
34255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	method could return the substring of the containing string where the substring
34265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	is overridden with link behavior, and for an image link this method could return
34275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	an IUnknown VARIANT for IAccessibleImage.  See the section about
34285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	@ref _variants "VARIANTs" for additional information.
34295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @retval S_OK
3430010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)   @retval E_INVALIDARG if bad [in] passed
34315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  */
34325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  [propget] HRESULT anchor
34335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    (
34345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)     [in] long index,
34355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)     [out, retval] VARIANT *anchor
34365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    );
34375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
34385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  /** @brief Returns an object representing the target of the link, as appropriate
34395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   for the link at the specified index.
34405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @param [in] index
34415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    A 0 based index identifies the anchor when, as in the case of an image map,
34425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    there is more than one link represented by this object.  The valid maximal
34435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    index is indicated by IAccessibleAction::nActions.
34445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @param [out] anchorTarget
34455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    This is an implementation dependent value.  For example this method could
34465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	return a BSTR VARIANT of the URI.  Alternatively this method could return an
34475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	IUnknown VARIANT of a COM interface representing a target object to be
34485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	activated when the link is activated.  See the section about
34495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	@ref _variants "VARIANTs" for additional information.
34505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @retval S_OK
3451010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)   @retval E_INVALIDARG if bad [in] passed
34525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  */
34535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  [propget] HRESULT anchorTarget
34545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    (
34555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)     [in] long index,
34565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)     [out, retval] VARIANT *anchorTarget
34575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    );
34585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
34595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  /** @brief Returns the 0 based character offset at which the textual representation of the hyperlink starts.
34605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
34615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   The returned value is related to the IAccessibleText interface of the object that
34625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   owns this hyperlink.
34635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @param [out] index
34645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @retval S_OK
34655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  */
34665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  [propget] HRESULT startIndex
34675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    (
34685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)     [out, retval] long *index
34695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    );
34705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
34715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  /** @brief Returns the 0 based character offset at which the textual representation of the hyperlink ends.
34725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
34735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   The returned value is related to the IAccessibleText interface of the object that
34745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   owns this hyperlink. The character at the index is not part of the hypertext.
34755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @param [out] index
34765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @retval S_OK
34775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  */
34785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  [propget] HRESULT endIndex
34795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    (
34805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)     [out, retval] long *index
34815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    );
34825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
34835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  /** @brief Returns whether the target object referenced by this link is still valid.
34845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
34855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   This is a volatile state that may change without sending an appropriate event.
34865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   Returns TRUE if the referenced target is still valid and FALSE otherwise.
34875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
34885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   This has also been used to indicate whether or not the URI of the anchorTarget
34895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   is malformed.
34905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
34915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @param [out] valid
3492010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)    If false, one or more of the object's links are invalid.
3493010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)	If true, all of the object's links are valid.
34945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @retval S_OK
3495010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)   @retval S_FALSE if there is nothing to return, [out] value is FALSE
3496010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)   @note This method is not being used, is deprecated, and should not be implemented or
3497010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)    used.  It is likely that this method will be removed in a later version of the IDL.
34985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  */
34995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  [propget] HRESULT valid
35005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    (
35015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)     [out, retval] boolean *valid
35025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    );
35035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
35045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/*************************************************************************
35055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *
35065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  File Name (AccessibleHypertext.idl)
35075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *
35085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  IAccessible2 IDL Specification
35095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *
35105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  Copyright (c) 2007, 2010 Linux Foundation
35115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  Copyright (c) 2006 IBM Corporation
35125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  Copyright (c) 2000, 2006 Sun Microsystems, Inc.
35135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  All rights reserved.
35145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *
35155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *
35165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  Redistribution and use in source and binary forms, with or without
35175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  modification, are permitted provided that the following conditions
35185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  are met:
35195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *
35205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *   1. Redistributions of source code must retain the above copyright
35215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *      notice, this list of conditions and the following disclaimer.
35225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *
35235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *   2. Redistributions in binary form must reproduce the above
35245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *      copyright notice, this list of conditions and the following
35255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *      disclaimer in the documentation and/or other materials
35265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *      provided with the distribution.
35275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *
35285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *   3. Neither the name of the Linux Foundation nor the names of its
35295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *      contributors may be used to endorse or promote products
35305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *      derived from this software without specific prior written
35315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *      permission.
35325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *
35335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
35345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
35355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
35365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
35375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
35385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
35395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
35405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
35415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
35425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
35435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
35445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
35455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
35465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *
35475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  This BSD License conforms to the Open Source Initiative "Simplified
35485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  BSD License" as published at:
35495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  http://www.opensource.org/licenses/bsd-license.php
35505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *
35515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  IAccessible2 is a trademark of the Linux Foundation. The IAccessible2
35525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  mark may be used in accordance with the Linux Foundation Trademark
35535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  Policy to indicate compliance with the IAccessible2 specification.
35545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *
35555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ************************************************************************/
35565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
3557010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)
3558010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)
3559010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)
35605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
35615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
35625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
35635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/** @brief This interface exposes information about hypertext in a document.
35645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
35655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) The %IAccessibleHypertext interface is the main interface to expose
35665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  hyperlinks in a document, typically a text document, that are used
35675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  to reference other documents.  A typical implementation is to implement
35685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  this interface on the smallest text object such as a paragraph of text.
35695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)*/
35705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)[object, uuid(6B4F8BBF-F1F2-418a-B35E-A195BC4103B9)]
35715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)interface IAccessibleHypertext : IAccessibleText
35725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles){
35735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
35745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  /** @brief Returns the number of links and link groups contained within this hypertext
35755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    paragraph.
35765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @param [out] hyperlinkCount
35775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    The number of links and link groups within this hypertext paragraph.
35785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    Returns 0 if there is no link.
35795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @retval S_OK
35805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  */
35815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  [propget] HRESULT nHyperlinks
35825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    (
35835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)     [out, retval] long *hyperlinkCount
35845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    );
35855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
35865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  /** @brief Returns the specified link.
35875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
35885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   The returned IAccessibleHyperlink object encapsulates the hyperlink and
35895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    provides several kinds of information describing it.
35905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @param [in] index
35915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    This 0 based index specifies the hyperlink to return.
35925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @param [out] hyperlink
35935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    If the given index is valid, i.e. lies in the interval from 0 to the number
35945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    of links minus one, a reference to the specified hyperlink object is returned.
35955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    If the index is invalid then a NULL pointer is returned.
35965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @retval S_OK
3597010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)   @retval E_INVALIDARG if bad [in] passed
35985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  */
35995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  [propget] HRESULT hyperlink
36005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    (
36015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)     [in] long index,
36025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)     [out, retval] IAccessibleHyperlink **hyperlink
36035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    );
36045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
36055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  /** @brief Returns the index of the hyperlink that is associated with this character index.
36065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
36075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   This is the case when a link spans the given character index.
36085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @param [in] charIndex
36095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    A 0 based index of the character for which to return the link index.  If
36105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	IAccessibleText is used to represent the text containing the link, then the
36115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	character index is only  valid if it is greater than or equal to zero and
36125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	lower than the number of characters in the text.
36135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @param [out] hyperlinkIndex
36145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    Returns the 0 based index of the hyperlink that is associated with this
36155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	character index, or -1 if charIndex is not on a link.
36165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @retval S_OK
36175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @retval S_FALSE if there is nothing to return, [out] value is -1
3618010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)   @retval E_INVALIDARG if bad [in] passed
36195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  */
36205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  [propget] HRESULT hyperlinkIndex
36215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    (
36225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)     [in] long charIndex,
36235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)     [out, retval] long *hyperlinkIndex
36245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    );
36255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
36265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
36275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/*************************************************************************
36285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *
3629010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) *  File Name (AccessibleHypertext2.idl)
3630010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) *
3631010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) *  IAccessible2 IDL Specification
3632010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) *
3633010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) *  Copyright (c) 2007, 2013 Linux Foundation
3634010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) *  Copyright (c) 2006 IBM Corporation
3635010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) *  Copyright (c) 2000, 2006 Sun Microsystems, Inc.
3636010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) *  All rights reserved.
3637010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) *
3638010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) *
3639010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) *  Redistribution and use in source and binary forms, with or without
3640010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) *  modification, are permitted provided that the following conditions
3641010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) *  are met:
3642010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) *
3643010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) *   1. Redistributions of source code must retain the above copyright
3644010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) *      notice, this list of conditions and the following disclaimer.
3645010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) *
3646010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) *   2. Redistributions in binary form must reproduce the above
3647010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) *      copyright notice, this list of conditions and the following
3648010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) *      disclaimer in the documentation and/or other materials
3649010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) *      provided with the distribution.
3650010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) *
3651010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) *   3. Neither the name of the Linux Foundation nor the names of its
3652010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) *      contributors may be used to endorse or promote products
3653010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) *      derived from this software without specific prior written
3654010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) *      permission.
3655010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) *
3656010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) *  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
3657010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) *  CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
3658010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) *  INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
3659010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) *  MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
3660010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) *  DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
3661010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) *  CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
3662010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) *  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
3663010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) *  NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
3664010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) *  LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
3665010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) *  HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
3666010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) *  CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
3667010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) *  OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
3668010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) *  EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
3669010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) *
3670010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) *  This BSD License conforms to the Open Source Initiative "Simplified
3671010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) *  BSD License" as published at:
3672010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) *  http://www.opensource.org/licenses/bsd-license.php
3673010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) *
3674010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) *  IAccessible2 is a trademark of the Linux Foundation. The IAccessible2
3675010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) *  mark may be used in accordance with the Linux Foundation Trademark
3676010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) *  Policy to indicate compliance with the IAccessible2 specification.
3677010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) *
3678010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) ************************************************************************/
3679010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)
3680010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)
3681010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)
3682010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)
3683010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)
3684010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)
3685010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)
3686010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)/** @brief This interface exposes information about hypertext in a document.
3687010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)
3688010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) The %IAccessibleHypertext2 interface extends the functinality of the
3689010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) %IAccessibleHypertext inteface.
3690010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)*/
3691010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)[object, uuid(CF64D89F-8287-4B44-8501-A827453A6077)]
3692010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)interface IAccessibleHypertext2 : IAccessibleHypertext
3693010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles){
3694010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)
3695010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) /** @brief Returns the links for this object.
3696010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)
3697010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)   The returned IAccessibleHyperlink objects encapsulate the hyperlink and
3698010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)    provides several kinds of information describing it.
3699010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)
3700010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)   @param [out] hyperlinks
3701010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)    This array is allocated by the server.  The client must free it with CoTaskMemFree.
3702010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)   @param [out] nHyperlinks
3703010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)    The number of links returned; the size of the returned array.
3704010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)   @retval S_OK
3705010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)   @retval S_FALSE if there are no links, [out] values are NULL and 0 respectively
3706010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)  */
3707010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)  [propget] HRESULT hyperlinks
3708010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)    (
3709010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)     [out, size_is(,*nHyperlinks)] IAccessibleHyperlink ***hyperlinks,
3710010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)     [out, retval] long *nHyperlinks
3711010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)    );
3712010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)
3713010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)}
3714010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)/*************************************************************************
3715010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) *
37165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  File Name (AccessibleTable.idl)
37175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *
37185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  IAccessible2 IDL Specification
37195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *
3720010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) *  Copyright (c) 2007, 2013 Linux Foundation
37215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  Copyright (c) 2006 IBM Corporation
37225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  Copyright (c) 2000, 2006 Sun Microsystems, Inc.
37235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  All rights reserved.
37245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *
37255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *
37265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  Redistribution and use in source and binary forms, with or without
37275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  modification, are permitted provided that the following conditions
37285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  are met:
37295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *
37305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *   1. Redistributions of source code must retain the above copyright
37315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *      notice, this list of conditions and the following disclaimer.
37325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *
37335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *   2. Redistributions in binary form must reproduce the above
37345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *      copyright notice, this list of conditions and the following
37355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *      disclaimer in the documentation and/or other materials
37365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *      provided with the distribution.
37375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *
37385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *   3. Neither the name of the Linux Foundation nor the names of its
37395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *      contributors may be used to endorse or promote products
37405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *      derived from this software without specific prior written
37415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *      permission.
37425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *
37435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
37445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
37455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
37465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
37475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
37485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
37495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
37505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
37515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
37525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
37535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
37545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
37555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
37565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *
37575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  This BSD License conforms to the Open Source Initiative "Simplified
37585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  BSD License" as published at:
37595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  http://www.opensource.org/licenses/bsd-license.php
37605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *
37615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  IAccessible2 is a trademark of the Linux Foundation. The IAccessible2
37625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  mark may be used in accordance with the Linux Foundation Trademark
37635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  Policy to indicate compliance with the IAccessible2 specification.
37645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *
37655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ************************************************************************/
37665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
3767010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)
3768010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)
3769010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)
37705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
37715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
37725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
37735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/** @brief This interface gives access to a two-dimensional table.
37745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
37755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) Typically all accessible objects that represent cells or cell-clusters of a table
37765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  will be at the same time children of the table.  In this case IAccessible2::indexInParent
37775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  will return the child index which then can be used when calling IAccessibleTable::rowIndex
37785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  and IAccessibleTable::columnIndex.
37795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
37805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) However, in some cases that kind of implementation will not be possible.  When
37815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  the table cells are not direct children of a table, the object representing
37825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  the cell can define a "table-cell-index" object attribute identifying the 0
37835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  based table cell index.  This object attribute is obtained by parsing the
37845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  attribute string returned by IAccessible2::attributes.  The "table-cell-index"
37855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  attribute can be used just like a child index of the typical case.  ATs should
37865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  first test for the presence of the "table-cell-index" attribute and if it is not
37875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  present then IAccessible2::indexInParent can be used as in the typical case
37885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  where cells are direct children of the table.
37895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
37905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) The range of valid coordinates for this interface are implementation dependent.
37915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  However, that range includes at least the intervals from the from the first row
37925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  or column with the index 0 up to the last (but not including) used row or column
37935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  as returned by IAccessibleTable::nRows and IAccessibleTable::nColumns.
37945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
37955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) Note that newer implementations are now using IAccessibleTable2 and IAccessibleTableCell
37965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  rather than this interface.
37975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)*/
37985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)[object, uuid(35AD8070-C20C-4fb4-B094-F4F7275DD469)]
37995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)interface IAccessibleTable : IUnknown
38005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles){
38015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
38025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  /** @brief Returns the accessible object at the specified row and column in
38035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    the table.  This object could be an IAccessible or an IAccessible2.
38045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @param [in] row
38055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    The 0 based row index for which to retrieve the cell.
38065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @param [in] column
38075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    The 0 based column index for which to retrieve the cell.
38085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @param [out] accessible
38095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    If both row and column index are valid then the corresponding accessible
38105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    object is returned that represents the requested cell regardless of whether
38115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    the cell is currently visible (on the screen).
38125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @retval S_OK
38135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @retval E_INVALIDARG if bad [in] passed, [out] value is NULL
38145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  */
38155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  [propget] HRESULT accessibleAt
38165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    (
38175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)     [in] long row,
38185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)     [in] long column,
38195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)     [out, retval] IUnknown **accessible
38205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    );
38215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
38225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  /** @brief Returns the caption for the table.  The returned object could be
38235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    an IAccessible or an IAccessible2.
38245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @param [out] accessible
38255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    If the table has a caption then a reference to it is returned, else a NULL
38265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    pointer is returned.
38275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @retval S_OK
38285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @retval S_FALSE if there is nothing to return, [out] value is NULL
38295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  */
38305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  [propget] HRESULT caption
38315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    (
38325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)     [out, retval] IUnknown **accessible
38335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    );
38345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
38355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  /** @brief Translates the given row and column indexes into the corresponding cell index.
38365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @param [in] rowIndex
38375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    0 based row index for the cell.
38385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @param [in] columnIndex
38395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    0 based column index for the cell.
38405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @param [out] cellIndex
38415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    Returns the 0 based index of the cell at the specified row and column indexes.
38425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @retval S_OK
38435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @retval E_INVALIDARG if bad [in] passed, [out] value is 0
38445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @note The returned value is not necessarily a child index of the immediate parent.
38455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    In cases where the table cells are not direct children of the table the index
38465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    is actually the cell index, i.e. conceptually it's an index into a one dimensional
38475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	array of cells laid out in row order.
38485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  */
38495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  [propget] HRESULT childIndex
38505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	(
38515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	 [in] long rowIndex,
38525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	 [in] long columnIndex,
38535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	 [out, retval] long *cellIndex
38545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	);
38555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
38565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  /** @brief Returns the description text of the specified column in the table.
38575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @param [in] column
38585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    The 0 based index of the column for which to retrieve the description.
38595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @param [out] description
38605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    Returns the description text of the specified column in the table if such a
38615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    description exists.  Otherwise a NULL pointer is returned.
38625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @retval S_OK
38635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @retval S_FALSE if there is nothing to return, [out] value is NULL
38645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @retval E_INVALIDARG if bad [in] passed, [out] value is NULL
38655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  */
38665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  [propget] HRESULT columnDescription
38675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    (
38685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)     [in] long column,
38695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)     [out, retval] BSTR *description
38705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    );
38715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
38725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  /** @brief Returns the number of columns occupied by the accessible object
38735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    at the specified row and column in the table.
38745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
38755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   The result is greater than 1 if the specified cell spans multiple columns.
38765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @param [in] row
38775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    0 based row index of the accessible for which to return the column extent.
38785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @param [in] column
38795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    0 based column index of the accessible for which to return the column extent.
38805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @param [out] nColumnsSpanned
38815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    Returns the 1 based column extent of the specified cell.
38825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @retval S_OK
38835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @retval E_INVALIDARG if bad [in] passed, [out] value is 0
38845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  */
38855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  [propget] HRESULT columnExtentAt
38865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    (
38875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)     [in] long row,
38885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)     [in] long column,
38895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)     [out, retval] long *nColumnsSpanned
38905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    );
38915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
38925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  /** @brief Returns the column headers as an %IAccessibleTable object.
38935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
38945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   Content and size of the returned table are implementation dependent.
38955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @param [out] accessibleTable
38965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    The column header
38975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @param [out] startingRowIndex
38985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    The 0 based row index where the header starts, usually 0.
38995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @retval S_OK
39005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @retval S_FALSE if there is no header, [out] values are NULL and 0 respectively
39015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  */
39025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  [propget] HRESULT columnHeader
39035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    (
39045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)     [out] IAccessibleTable **accessibleTable,
39055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	 [out, retval] long *startingRowIndex
39065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    );
39075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
39085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  /** @brief Translates the given cell index into the corresponding column index.
39095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @param [in] cellIndex
39105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    0 based index of the cell in the parent or closest ancestor table.  Typically this
39115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	is the value returned from IAccessible2::indexInParent, but in the case where the
39125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	table cells are not direct children of the table this is the cell index specified
39135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	by the "table-cell-index" object attribute obtained from parsing the attributes
39145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	string returned by calling IAccessible2::attributes on the cell object.
39155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @param [out] columnIndex
39165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    Returns the 0 based column index of the cell of the specified child or the index of
39175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    the first column if the child spans multiple columns.
39185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @retval S_OK
39195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @retval E_INVALIDARG if bad [in] passed, [out] value is 0
39205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  */
39215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  [propget] HRESULT columnIndex
39225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    (
39235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	 [in] long cellIndex,
39245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	 [out, retval] long *columnIndex
39255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	);
39265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
39275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  /** @brief Returns the total number of columns in table
39285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @param [out] columnCount
39295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    Number of columns in table (including columns outside the current viewport)
39305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @retval S_OK
39315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  */
39325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  [propget] HRESULT nColumns
39335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    (
39345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)     [out, retval] long *columnCount
39355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    );
39365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
39375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  /** @brief Returns the total number of rows in table
39385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @param [out] rowCount
39395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    Number of rows in table (including rows outside the current viewport)
39405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @retval S_OK
39415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  */
39425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  [propget] HRESULT nRows
39435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    (
39445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)     [out, retval] long *rowCount
39455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    );
39465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
39475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  /** @brief Returns the total number of selected cells
39485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @param [out] cellCount
39495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    Number of cells currently selected
39505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @retval S_OK
39515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  */
39525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  [propget] HRESULT nSelectedChildren
39535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    (
39545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	 [out, retval] long *cellCount
39555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	);
39565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
39575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  /** @brief Returns the total number of selected columns
39585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @param [out] columnCount
39595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    Number of columns currently selected
39605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @retval S_OK
39615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  */
39625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  [propget] HRESULT nSelectedColumns
39635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    (
39645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)     [out, retval] long *columnCount
39655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    );
39665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
39675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  /** @brief Returns the total number of selected rows
39685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @param [out] rowCount
39695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    Number of rows currently selected
39705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @retval S_OK
39715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  */
39725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  [propget] HRESULT nSelectedRows
39735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    (
39745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)     [out, retval] long *rowCount
39755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    );
39765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
39775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  /** @brief Returns the description text of the specified row in the table.
39785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @param [in] row
39795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    The 0 based index of the row for which to retrieve the description.
39805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @param [out] description
39815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    Returns the description text of the specified row in the table if such a
39825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    description exists.  Otherwise a NULL pointer is returned.
39835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @retval S_OK
39845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @retval S_FALSE if there is nothing to return, [out] value is NULL
39855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @retval E_INVALIDARG if bad [in] passed, [out] value is NULL
39865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  */
39875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  [propget] HRESULT rowDescription
39885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    (
39895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)     [in] long row,
39905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)     [out, retval] BSTR *description
39915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    );
39925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
39935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  /** @brief Returns the number of rows occupied by the accessible object
39945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    at the specified row and column in the table.
39955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
39965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   The result is greater than 1 if the specified cell spans multiple rows.
39975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @param [in] row
39985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    0 based row index of the accessible for which to return the row extent.
39995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @param [in] column
40005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    0 based column index of the accessible for which to return the row extent.
40015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @param [out] nRowsSpanned
40025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    Returns the row extent of the specified cell.
40035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @retval S_OK
40045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @retval E_INVALIDARG if bad [in] passed, [out] value is 0
40055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  */
40065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  [propget] HRESULT rowExtentAt
40075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    (
40085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)     [in] long row,
40095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)     [in] long column,
40105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)     [out, retval] long *nRowsSpanned
40115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    );
40125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
40135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  /** @brief Returns the row headers as an %IAccessibleTable object.
40145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
40155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   Content and size of the returned table are implementation dependent.
40165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @param [out] accessibleTable
40175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    The row header.
40185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @param [out] startingColumnIndex
40195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    The 0 based column index where the header starts, usually 0.
40205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @retval S_OK
40215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @retval S_FALSE if there is no header, [out] values are NULL and 0 respectively
40225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  */
40235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  [propget] HRESULT rowHeader
40245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    (
40255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)     [out] IAccessibleTable **accessibleTable,
40265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	 [out, retval] long *startingColumnIndex
40275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    );
40285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
40295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  /** @brief Translates the given cell index into a row index.
40305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @param [in] cellIndex
40315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    0 based index of the cell in the parent or closest ancestor table.  Typically this
40325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	is the value returned from IAccessible2::indexInParent, but in the case where the
40335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	table cells are not direct children of the table this is the cell index specified
40345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	by the "table-cell-index" object attribute obtained from parsing the attributes
40355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	string returned by calling IAccessible2::attributes on the cell object.
40365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @param [out] rowIndex
40375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    0 based row index
40385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @retval S_OK
40395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @retval E_INVALIDARG if bad [in] passed, [out] value is 0
40405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  */
40415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  [propget] HRESULT rowIndex
40425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    (
40435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	 [in] long cellIndex,
40445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	 [out, retval] long *rowIndex
40455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	);
40465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
40475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  /** @brief Returns a list of cell indexes currently selected (0 based).
40485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @param [in] maxChildren
40495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    This parameter is ignored. Refer to @ref _arrayConsideration
40505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	"Special Consideration when using Arrays" for more details.
40515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @param [out] children
40525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    An array of cell indexes of selected cells (each index is 0 based),
4053010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)	allocated by the server. The client must free it with CoTaskMemFree.
40545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @param [out] nChildren
40555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    The number of cell indexes returned; the size of the returned array.
40565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @retval S_OK
40575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @retval S_FALSE if there are none, [out] values are NULL and 0 respectively
40585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  */
40595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  [propget] HRESULT selectedChildren
40605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    (
40615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)     [in] long maxChildren,
40625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)     [out, size_is(,maxChildren), length_is(,*nChildren)] long **children,
40635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)     [out, retval] long *nChildren
40645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    );
40655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
40665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  /** @brief Returns a list of column indexes currently selected (0 based).
40675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @param [in] maxColumns
40685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    This parameter is ignored. Refer to @ref _arrayConsideration
40695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	"Special Consideration when using Arrays" for more details.
40705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @param [out] columns
40715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	An array of column indexes of selected columns (each index is 0 based), allocated
4072010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)	by the server. The client must free it with CoTaskMemFree.
40735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @param [out] nColumns
40745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    The number of column indexes returned; the size of the returned array.
40755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @retval S_OK
40765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @retval S_FALSE if there are none, [out] values are NULL and 0 respectively
40775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  */
40785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  [propget] HRESULT selectedColumns
40795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    (
40805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)     [in] long maxColumns,
40815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)     [out, size_is(,maxColumns), length_is(,*nColumns)] long **columns,
40825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)     [out, retval] long *nColumns
40835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    );
40845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
40855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  /** @brief Returns a list of row indexes currently selected (0 based).
40865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @param [in] maxRows
40875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    This parameter is ignored. Refer to @ref _arrayConsideration
40885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	"Special Consideration when using Arrays" for more details.
40895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @param [out] rows
40905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    An array of row indexes of selected rows (each index is 0 based), allocated
4091010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)	by the server. The client must free it with CoTaskMemFree.
40925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @param [out] nRows
40935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    The number of row indexes returned; the size of the returned array.
40945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @retval S_OK
40955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @retval S_FALSE if there are none, [out] values are NULL and 0 respectively
40965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  */
40975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  [propget] HRESULT selectedRows
40985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    (
40995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)     [in] long maxRows,
41005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)     [out, size_is(,maxRows), length_is(,*nRows)] long **rows,
41015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)     [out, retval] long *nRows
41025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    );
41035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
41045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  /** @brief Returns the summary description of the table.  The returned object could be
41055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    an IAccessible or an IAccessible2.
41065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @param [out] accessible
41075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    Returns a reference to an implementation dependent accessible object
41085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    representing the table's summary or a NULL pointer if the table
41095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    does not support a summary.
41105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @retval S_OK
41115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @retval S_FALSE if there is nothing to return, [out] value is NULL
41125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  */
41135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  [propget] HRESULT summary
41145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    (
41155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)     [out, retval] IUnknown **accessible
41165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    );
41175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
41185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  /** @brief Returns a boolean value indicating whether the specified column is
41195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    completely selected.
41205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @param [in] column
41215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    0 based index of the column for which to determine whether it is selected.
41225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @param [out] isSelected
41235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    Returns TRUE if the specified column is selected completely and FALSE otherwise.
41245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @retval S_OK
41255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @retval E_INVALIDARG if bad [in] passed, [out] value is FALSE
41265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  */
41275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  [propget] HRESULT isColumnSelected
41285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    (
41295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)     [in] long column,
41305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)     [out, retval] boolean *isSelected
41315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    );
41325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
41335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  /** @brief Returns a boolean value indicating whether the specified row is completely
41345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    selected.
41355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @param [in] row
41365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    0 based index of the row for which to determine whether it is selected.
41375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @param [out] isSelected
41385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    Returns TRUE if the specified row is selected completely and FALSE otherwise.
41395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @retval S_OK
41405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @retval E_INVALIDARG if bad [in] passed, [out] value is FALSE
41415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  */
41425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  [propget] HRESULT isRowSelected
41435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    (
41445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)     [in] long row,
41455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)     [out, retval] boolean *isSelected
41465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    );
41475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
41485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  /** @brief Returns a boolean value indicating whether the specified cell is selected.
41495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @param [in] row
41505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    0 based index of the row for the cell to determine whether it is selected.
41515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @param [in] column
41525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    0 based index of the column for the cell to determine whether it is selected.
41535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @param [out] isSelected
41545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    Returns TRUE if the specified cell is selected and FALSE otherwise.
41555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @retval S_OK
41565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @retval E_INVALIDARG if bad [in] passed, [out] value is FALSE
41575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  */
41585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  [propget] HRESULT isSelected
41595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    (
41605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)     [in] long row,
41615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)     [in] long column,
41625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)     [out, retval] boolean *isSelected
41635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    );
41645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
41655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  /** @brief Selects a row and unselects all previously selected rows.
41665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @param [in] row
41675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    0 based index of the row to be selected.
41685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @retval S_OK
41695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @retval E_INVALIDARG if bad [in] passed
41705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  */
41715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  HRESULT selectRow
41725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    (
41735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)     [in] long row
41745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    );
41755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
41765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  /** @brief Selects a column and unselects all previously selected columns.
41775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @param [in] column
41785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    0 based index of the column to be selected.
41795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @retval S_OK
41805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @retval E_INVALIDARG if bad [in] passed
41815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  */
41825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  HRESULT selectColumn
41835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    (
41845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)     [in] long column
41855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    );
41865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
41875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  /** @brief Unselects one row, leaving other selected rows selected (if any).
41885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @param [in] row
41895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    0 based index of the row to be unselected.
41905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @retval S_OK
41915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @retval E_INVALIDARG if bad [in] passed
41925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  */
41935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  HRESULT unselectRow
41945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    (
41955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)     [in] long row
41965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    );
41975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
41985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  /** @brief Unselects one column, leaving other selected columns selected (if any).
41995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @param [in] column
42005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    0 based index of the column to be unselected.
42015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @retval S_OK
42025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @retval E_INVALIDARG if bad [in] passed
42035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  */
42045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  HRESULT unselectColumn
42055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    (
42065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)     [in] long column
42075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    );
42085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
42095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  /** @brief Given a cell index, gets the row and column indexes and extents of a cell
42105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    and whether or not it is selected.
42115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
42125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   This is a convenience function.  It is not mandatory to implement it.
42135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @param [in] index
42145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    0 based index of this cell in the table.
42155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @param [out] row
42165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    0 based row index.
42175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @param [out] column
42185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    0 based column index.
42195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @param [out] rowExtents
42205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    Number of cells spanned by this cell in this row.
42215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @param [out] columnExtents
42225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    Number of cells spanned by this cell in this column.
42235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @param [out] isSelected
42245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    Indicates if the specified cell is selected.
42255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @retval S_OK
42265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @retval E_INVALIDARG if bad [in] passed, [out] values are 0s and FALSE respectively
42275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  */
42285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  [propget] HRESULT rowColumnExtentsAtIndex
42295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    (
42305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	 [in] long index,
42315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	 [out] long *row,
42325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	 [out] long *column,
42335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	 [out] long *rowExtents,
42345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	 [out] long *columnExtents,
42355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	 [out, retval] boolean *isSelected
42365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	);
42375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
42385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  /** @brief Returns the type and extents describing how a table changed.
42395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
42405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   Provided for use by the IA2_EVENT_TABLE_MODEL_CHANGED event handler.
42415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
42425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   This data is only guaranteed to be valid while the thread notifying the event
42435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   continues. Once the handler has returned, the validity of the data depends on
42445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   how the server manages the life cycle of its objects. Also, note that the server
42455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   may have different life cycle management strategies for controls depending on
42465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   whether or not a control manages its children. Lists, trees, and tables can have
42475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   a large number of children and thus it's possible that the child objects for those
42485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   controls would only be created as needed. Servers should document their life cycle
42495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   strategy as this will be of interest to assistive technology or script engines
42505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   accessing data out of process or from other threads. Servers only need to save the
42515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   most recent row and column values associated with the change and a scope of the
42525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   entire application is adequate.
42535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
42545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @param [out] modelChange
42555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    A struct of (type(insert, delete, update), firstRow, lastRow, firstColumn, lastColumn).
42565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @retval S_OK
42575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @retval S_FALSE if there is nothing to return, [out] value is NULL
42585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  */
42595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  [propget] HRESULT modelChange
42605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    (
42615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	 [out, retval] IA2TableModelChange *modelChange
42625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    );
42635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
42645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
42655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/*************************************************************************
42665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *
42675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  File Name (AccessibleTable2.idl)
42685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *
42695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  IAccessible2 IDL Specification
42705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *
4271010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) *  Copyright (c) 2007, 2012 Linux Foundation
42725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  Copyright (c) 2006 IBM Corporation
42735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  Copyright (c) 2000, 2006 Sun Microsystems, Inc.
42745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  All rights reserved.
42755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *
42765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *
42775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  Redistribution and use in source and binary forms, with or without
42785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  modification, are permitted provided that the following conditions
42795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  are met:
42805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *
42815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *   1. Redistributions of source code must retain the above copyright
42825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *      notice, this list of conditions and the following disclaimer.
42835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *
42845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *   2. Redistributions in binary form must reproduce the above
42855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *      copyright notice, this list of conditions and the following
42865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *      disclaimer in the documentation and/or other materials
42875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *      provided with the distribution.
42885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *
42895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *   3. Neither the name of the Linux Foundation nor the names of its
42905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *      contributors may be used to endorse or promote products
42915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *      derived from this software without specific prior written
42925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *      permission.
42935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *
42945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
42955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
42965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
42975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
42985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
42995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
43005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
43015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
43025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
43035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
43045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
43055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
43065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
43075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *
43085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  This BSD License conforms to the Open Source Initiative "Simplified
43095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  BSD License" as published at:
43105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  http://www.opensource.org/licenses/bsd-license.php
43115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *
43125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  IAccessible2 is a trademark of the Linux Foundation. The IAccessible2
43135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  mark may be used in accordance with the Linux Foundation Trademark
43145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  Policy to indicate compliance with the IAccessible2 specification.
43155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *
43165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ************************************************************************/
43175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
4318010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)
4319010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)
4320010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)
43215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
43225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
43235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
43245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/** @brief This interface gives access to a two-dimensional table.
43255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
43265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) Please also refer to the IAccessibleTableCell interface.
43275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
43285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) If you want to support older applications you should also support the
43295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  IAccessibleTable inteface.
43305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)*/
43315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)[object, uuid(6167f295-06f0-4cdd-a1fa-02e25153d869)]
43325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)interface IAccessibleTable2 : IUnknown
43335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles){
43345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
43355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  /** @brief Returns the accessible object at the specified row and column in
43365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    the table.  This object could be an IAccessible or an IAccessible2.
43375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @param [in] row
43385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    The 0 based row index for which to retrieve the cell.
43395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @param [in] column
43405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    The 0 based column index for which to retrieve the cell.
43415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @param [out] cell
43425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    If both row and column index are valid then the corresponding accessible
43435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    object is returned that represents the requested cell regardless of whether
43445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    the cell is currently visible (on the screen).
43455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @retval S_OK
4346010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)   @retval E_INVALIDARG if bad [in] passed
43475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  */
43485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  [propget] HRESULT cellAt
43495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    (
43505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)     [in] long row,
43515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)     [in] long column,
43525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)     [out, retval] IUnknown **cell
43535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    );
43545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
43555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  /** @brief Returns the caption for the table.  The returned object could be
43565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    an IAccessible or an IAccessible2.
43575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @param [out] accessible
43585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    If the table has a caption then a reference to it is returned, else a NULL
43595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    pointer is returned.
43605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @retval S_OK
4361010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)   @retval S_FALSE if there is nothing to return, [out] value is NULL
4362010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)   @deprecated use a describedBy relation
43635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  */
43645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  [propget] HRESULT caption
43655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    (
43665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)     [out, retval] IUnknown **accessible
43675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    );
43685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
43695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  /** @brief Returns the description text of the specified column in the table.
43705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @param [in] column
43715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    The 0 based index of the column for which to retrieve the description.
43725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @param [out] description
43735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    Returns the description text of the specified column in the table if such a
43745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    description exists.  Otherwise a NULL pointer is returned.
43755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @retval S_OK
43765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @retval S_FALSE if there is nothing to return, [out] value is NULL
4377010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)   @retval E_INVALIDARG if bad [in] passed
43785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  */
43795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  [propget] HRESULT columnDescription
43805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    (
43815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)     [in] long column,
43825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)     [out, retval] BSTR *description
43835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    );
43845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
43855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
43865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  /** @brief Returns the total number of columns in table
43875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @param [out] columnCount
43885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    Number of columns in table (including columns outside the current viewport)
43895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @retval S_OK
43905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  */
43915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  [propget] HRESULT nColumns
43925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    (
43935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)     [out, retval] long *columnCount
43945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    );
43955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
43965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  /** @brief Returns the total number of rows in table
43975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @param [out] rowCount
43985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    Number of rows in table (including rows outside the current viewport)
43995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @retval S_OK
44005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  */
44015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  [propget] HRESULT nRows
44025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    (
44035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)     [out, retval] long *rowCount
44045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    );
44055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
44065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  /** @brief Returns the total number of selected cells
44075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @param [out] cellCount
44085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    Number of cells currently selected
44095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @retval S_OK
44105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  */
44115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  [propget] HRESULT nSelectedCells
44125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    (
44135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)     [out, retval] long *cellCount
44145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    );
44155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
44165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  /** @brief Returns the total number of selected columns
44175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @param [out] columnCount
44185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    Number of columns currently selected
44195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @retval S_OK
44205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  */
44215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  [propget] HRESULT nSelectedColumns
44225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    (
44235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)     [out, retval] long *columnCount
44245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    );
44255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
44265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  /** @brief Returns the total number of selected rows
44275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @param [out] rowCount
44285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    Number of rows currently selected
44295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @retval S_OK
44305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  */
44315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  [propget] HRESULT nSelectedRows
44325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    (
44335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)     [out, retval] long *rowCount
44345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    );
44355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
44365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  /** @brief Returns the description text of the specified row in the table.
44375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @param [in] row
44385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    The 0 based index of the row for which to retrieve the description.
44395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @param [out] description
44405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    Returns the description text of the specified row in the table if such a
44415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    description exists.  Otherwise a NULL pointer is returned.
44425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @retval S_OK
44435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @retval S_FALSE if there is nothing to return, [out] value is NULL
4444010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)   @retval E_INVALIDARG if bad [in] passed
44455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  */
44465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  [propget] HRESULT rowDescription
44475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    (
44485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)     [in] long row,
44495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)     [out, retval] BSTR *description
44505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    );
44515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
44525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  /** @brief Returns a list of accessibles currently selected.
44535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @param [out] cells
44545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    Pointer to an array of references to selected accessibles.  The array is
4455010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)    allocated by the server with CoTaskMemAlloc and freed by the client with
4456010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)    CoTaskMemFree.
44575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @param [out] nSelectedCells
44585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    The number of accessibles returned; the size of the returned array.
44595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @retval S_OK
44605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @retval S_FALSE if there are none, [out] values are NULL and 0 respectively
44615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  */
44625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  [propget] HRESULT selectedCells
44635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    (
4464010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)     [out, size_is(,*nSelectedCells)] IUnknown ***cells,
44655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)     [out, retval] long *nSelectedCells
44665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    );
44675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
44685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  /** @brief Returns a list of column indexes currently selected (0 based).
44695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @param [out] selectedColumns
44705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    A pointer to an array of column indexes of selected columns (each index is
4471010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)    0 based).  The array is allocated by the server with CoTaskMemAlloc and
4472010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)    freed by the client with CoTaskMemFree.
44735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @param [out] nColumns
44745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    The number of column indexes returned; the size of the returned array.
44755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @retval S_OK
44765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @retval S_FALSE if there are none, [out] values are NULL and 0 respectively
44775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  */
44785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  [propget] HRESULT selectedColumns
44795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    (
44805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)     [out, size_is(,*nColumns)] long **selectedColumns,
44815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)     [out, retval] long *nColumns
44825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    );
44835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
44845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  /** @brief Returns a list of row indexes currently selected (0 based).
44855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @param [out] selectedRows
4486010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)    An array of row indexes of selected rows (each index is 0 based).  The array
4487010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)    is allocated by the server with CoTaskMemAlloc and freed by the client with
4488010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)    CoTaskMemFree.
44895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @param [out] nRows
44905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    The number of row indexes returned; the size of the returned array.
44915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @retval S_OK
44925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @retval S_FALSE if there are none, [out] values are NULL and 0 respectively
44935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  */
44945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  [propget] HRESULT selectedRows
44955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    (
44965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)     [out, size_is(,*nRows)] long **selectedRows,
44975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)     [out, retval] long *nRows
44985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    );
44995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
45005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  /** @brief Returns the summary description of the table.  The returned object could be
45015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    an IAccessible or an IAccessible2.
45025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @param [out] accessible
45035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    Returns a reference to an implementation dependent accessible object
45045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    representing the table's summary or a NULL pointer if the table
45055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    does not support a summary.
45065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @retval S_OK
4507010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)   @retval S_FALSE if there is nothing to return, [out] value is NULL
4508010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)   @deprecated Use the labeledBy relation
45095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  */
45105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  [propget] HRESULT summary
45115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    (
45125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)     [out, retval] IUnknown **accessible
45135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    );
45145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
45155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  /** @brief Returns a boolean value indicating whether the specified column is
45165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    completely selected.
45175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @param [in] column
45185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    0 based index of the column for which to determine whether it is selected.
45195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @param [out] isSelected
45205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    Returns TRUE if the specified column is selected completely and FALSE otherwise.
45215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @retval S_OK
4522010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)   @retval E_INVALIDARG if bad [in] passed
45235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  */
45245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  [propget] HRESULT isColumnSelected
45255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    (
45265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)     [in] long column,
45275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)     [out, retval] boolean *isSelected
45285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    );
45295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
45305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  /** @brief Returns a boolean value indicating whether the specified row is completely
45315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    selected.
45325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @param [in] row
45335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    0 based index of the row for which to determine whether it is selected.
45345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @param [out] isSelected
45355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    Returns TRUE if the specified row is selected completely and FALSE otherwise.
45365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @retval S_OK
4537010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)   @retval E_INVALIDARG if bad [in] passed
45385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  */
45395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  [propget] HRESULT isRowSelected
45405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    (
45415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)     [in] long row,
45425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)     [out, retval] boolean *isSelected
45435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    );
45445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
45455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  /** @brief Selects a row and unselects all previously selected rows.
45465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
45475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   The behavior should mimic that of the application, but for those applications
45485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    which do not have a means in the GUI to select a full row of cells the behavior
45495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    should be as follows:  First any selected rows in the table are unselected.  Then
45505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    the entire row of cells for the specified row is selected.  If any of the
45515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    cells in the selected row span additional rows, the cells in those rows
45525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    are also selected.
45535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @param [in] row
45545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    0 based index of the row to be selected.
45555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @retval S_OK
45565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @retval E_INVALIDARG if bad [in] passed
45575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  */
45585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  HRESULT selectRow
45595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    (
45605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)     [in] long row
45615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    );
45625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
45635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  /** @brief Selects a column and unselects all previously selected columns.
45645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
45655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   The behavior should mimic that of the application, but for those applications
45665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    which do not have a means in the GUI to select a full column of cells the behavior
45675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    should be as follows:  First any selected columns in the table are unselected.  Then
45685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    the entire column of cells for the specified column is selected.  If any of the
45695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    cells in the selected column span additional columns, the cells in those columns
45705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    are also selected.
45715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @param [in] column
45725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    0 based index of the column to be selected.
45735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @retval S_OK
45745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @retval E_INVALIDARG if bad [in] passed
45755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  */
45765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  HRESULT selectColumn
45775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    (
45785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)     [in] long column
45795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    );
45805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
45815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  /** @brief Unselects one row, leaving other selected rows selected (if any).
45825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
45835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   The behavior should mimic that of the application, but for those applications
45845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    which do not have a means in the GUI to unselect a full row of cells the
45855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    behavior should be as follows:  The entire row of cells for the specified
45865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    row is unselected.  If any of the cells in the selected row span additional
45875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    rows, the cells in those rows are also unselected.
45885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @param [in] row
45895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    0 based index of the row to be unselected.
45905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @retval S_OK
45915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @retval E_INVALIDARG if bad [in] passed
45925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  */
45935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  HRESULT unselectRow
45945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    (
45955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)     [in] long row
45965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    );
45975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
45985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  /** @brief Unselects one column, leaving other selected columns selected (if any).
45995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
46005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   The behavior should mimic that of the application, but for those applications
46015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    which do not have a means in the GUI to unselect a full column of cells the
46025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    behavior should be as follows:  The entire column of cells for the specified
46035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    column is unselected.  If any of the cells in the selected column span additional
46045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    columns, the cells in those columns are also unselected.
46055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @param [in] column
46065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    0 based index of the column to be unselected.
46075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @retval S_OK
46085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @retval E_INVALIDARG if bad [in] passed
46095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  */
46105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  HRESULT unselectColumn
46115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    (
46125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)     [in] long column
46135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    );
46145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
46155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  /** @brief Returns the type and extents describing how a table changed.
46165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
46175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   Provided for use by the IA2_EVENT_TABLE_MODEL_CHANGED event handler.
46185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
46195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   This data is only guaranteed to be valid while the thread notifying the event
46205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   continues. Once the handler has returned, the validity of the data depends on
46215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   how the server manages the life cycle of its objects. Also, note that the server
46225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   may have different life cycle management strategies for controls depending on
46235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   whether or not a control manages its children. Lists, trees, and tables can have
46245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   a large number of children and thus it's possible that the child objects for those
46255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   controls would only be created as needed. Servers should document their life cycle
46265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   strategy as this will be of interest to assistive technology or script engines
46275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   accessing data out of process or from other threads. Servers only need to save the
46285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   most recent row and column values associated with the change and a scope of the
46295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   entire application is adequate.
46305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
46315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @param [out] modelChange
46325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    A struct of (type(insert, delete, update), firstRow, lastRow, firstColumn, lastColumn).
46335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @retval S_OK
46345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @retval S_FALSE if there is nothing to return, [out] value is NULL
46355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  */
46365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  [propget] HRESULT modelChange
46375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    (
46385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)     [out, retval] IA2TableModelChange *modelChange
46395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    );
46405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
46415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
46425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/*************************************************************************
46435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *
46445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  File Name (AccessibleTableCell.idl)
46455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *
46465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  IAccessible2 IDL Specification
46475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *
4648010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) *  Copyright (c) 2007, 2013 Linux Foundation
46495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  Copyright (c) 2006 IBM Corporation
46505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  Copyright (c) 2000, 2006 Sun Microsystems, Inc.
46515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  All rights reserved.
46525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *
46535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *
46545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  Redistribution and use in source and binary forms, with or without
46555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  modification, are permitted provided that the following conditions
46565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  are met:
46575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *
46585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *   1. Redistributions of source code must retain the above copyright
46595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *      notice, this list of conditions and the following disclaimer.
46605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *
46615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *   2. Redistributions in binary form must reproduce the above
46625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *      copyright notice, this list of conditions and the following
46635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *      disclaimer in the documentation and/or other materials
46645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *      provided with the distribution.
46655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *
46665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *   3. Neither the name of the Linux Foundation nor the names of its
46675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *      contributors may be used to endorse or promote products
46685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *      derived from this software without specific prior written
46695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *      permission.
46705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *
46715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
46725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
46735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
46745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
46755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
46765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
46775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
46785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
46795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
46805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
46815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
46825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
46835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
46845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *
46855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  This BSD License conforms to the Open Source Initiative "Simplified
46865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  BSD License" as published at:
46875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  http://www.opensource.org/licenses/bsd-license.php
46885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *
46895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  IAccessible2 is a trademark of the Linux Foundation. The IAccessible2
46905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  mark may be used in accordance with the Linux Foundation Trademark
46915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  Policy to indicate compliance with the IAccessible2 specification.
46925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *
46935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ************************************************************************/
46945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
4695010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)
4696010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)
4697010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)
46985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
46995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
47005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/** @brief This interface gives access to the cells of a two-dimensional table.
47015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
47025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) Please also refer to the IAccessibleTable2 interface.
47035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
47045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)*/
47055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)[object, uuid(594116B1-C99F-4847-AD06-0A7A86ECE645)]
47065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)interface IAccessibleTableCell : IUnknown
47075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles){
47085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
47095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  /** @brief Returns the number of columns occupied by this cell accessible.
47105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
47115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   The result is greater than 1 if the specified cell spans multiple columns.
47125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @param [out] nColumnsSpanned
47135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    Returns the 1 based column extent of the specified cell.
47145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @retval S_OK
47155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  */
47165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  [propget] HRESULT columnExtent
47175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    (
47185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)     [out, retval] long *nColumnsSpanned
47195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    );
47205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
47215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  /** @brief Returns the column headers as an array of cell accessibles.
47225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
47235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @param [out] cellAccessibles
47245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    Pointer to an array of references to cell accessibles.  The array is allocated
4725010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)	by the server.  The client must free it with CoTaskMemFree.
47265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @param [out] nColumnHeaderCells
47275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    The number of accessibles returned; the size of the returned array.
47285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @retval S_OK
47295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @retval S_FALSE if there is no header, [out] values are NULL and 0 respectively
47305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  */
47315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  [propget] HRESULT columnHeaderCells
47325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    (
4733010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)     [out, size_is(,*nColumnHeaderCells)] IUnknown ***cellAccessibles,
47345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)     [out, retval] long *nColumnHeaderCells
47355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    );
47365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
47375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  /** @brief Translates this cell accessible into the corresponding column index.
47385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
47395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @param [out] columnIndex
47405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    Returns the 0 based column index of the cell of the specified cell or the index of
47415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    the first column if the cell spans multiple columns.
47425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @retval S_OK
47435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  */
47445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  [propget] HRESULT columnIndex
47455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    (
47465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)     [out, retval] long *columnIndex
47475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    );
47485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
47495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  /** @brief Returns the number of rows occupied by this cell accessible.
47505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
47515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @param [out] nRowsSpanned
47525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    Returns the row extent of the specified cell.
47535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @retval S_OK
47545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  */
47555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  [propget] HRESULT rowExtent
47565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    (
47575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)     [out, retval] long *nRowsSpanned
47585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    );
47595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
47605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  /** @brief Returns the row headers as an array of cell accessibles.
47615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
47625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @param [out] cellAccessibles
47635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    Pointer to an array of references to cell accessibles.  The array is allocated
4764010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)	by the server.  The client must free it with CoTaskMemFree.
47655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @param [out] nRowHeaderCells
47665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    The number of accessibles returned; the size of the returned array.
47675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @retval S_OK
47685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @retval S_FALSE if there is no header, [out] values are NULL and 0 respectively
47695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  */
47705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  [propget] HRESULT rowHeaderCells
47715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    (
4772010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)     [out, size_is(,*nRowHeaderCells)] IUnknown ***cellAccessibles,
47735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)     [out, retval] long *nRowHeaderCells
47745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    );
47755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
47765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  /** @brief Translates this cell accessible into the corresponding row index.
47775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
47785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @param [out] rowIndex
47795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    Returns the 0 based row index of the specified cell or the index of
47805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    the first row if the cell spans multiple rows.
47815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @retval S_OK
47825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  */
47835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  [propget] HRESULT rowIndex
47845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    (
47855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)     [out, retval] long *rowIndex
47865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    );
47875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
47885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  /** @brief Returns a boolean value indicating whether this cell is selected.
47895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
47905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @param [out] isSelected
47915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    Returns TRUE if the specified cell is selected and FALSE otherwise.
47925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @retval S_OK
47935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  */
47945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  [propget] HRESULT isSelected
47955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    (
47965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)     [out, retval] boolean *isSelected
47975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    );
47985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
47995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  /** @brief Gets the row and column indexes and extents of this cell accessible
48005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    and whether or not it is selected.
48015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
48025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   This is a convenience function.  It is not mandatory to implement it.
48035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @param [out] row
48045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    0 based row index.
48055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @param [out] column
48065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    0 based column index.
48075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @param [out] rowExtents
48085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    Number of cells spanned by this cell in this row.
48095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @param [out] columnExtents
48105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    Number of cells spanned by this cell in this column.
48115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @param [out] isSelected
48125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    Indicates if the specified cell is selected.
48135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @retval S_OK
48145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  */
48155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  [propget] HRESULT rowColumnExtents
48165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    (
48175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)     [out] long *row,
48185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)     [out] long *column,
48195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)     [out] long *rowExtents,
48205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)     [out] long *columnExtents,
48215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)     [out, retval] boolean *isSelected
48225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    );
48235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
48245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  /** @brief Returns a reference to the accessbile of the containing table.
48255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
48265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @param [out] table
48275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    Returns a reference to the IUnknown of the containing table.
48285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @retval S_OK
48295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  */
48305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  [propget] HRESULT table
48315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    (
48325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)     [out, retval] IUnknown **table
48335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    );
48345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
48355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
48365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/*************************************************************************
48375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *
48385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  File Name (AccessibleImage.idl)
48395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *
48405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  IAccessible2 IDL Specification
48415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *
48425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  Copyright (c) 2007, 2010 Linux Foundation
48435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  Copyright (c) 2006 IBM Corporation
48445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  Copyright (c) 2000, 2006 Sun Microsystems, Inc.
48455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  All rights reserved.
48465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *
48475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *
48485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  Redistribution and use in source and binary forms, with or without
48495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  modification, are permitted provided that the following conditions
48505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  are met:
48515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *
48525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *   1. Redistributions of source code must retain the above copyright
48535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *      notice, this list of conditions and the following disclaimer.
48545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *
48555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *   2. Redistributions in binary form must reproduce the above
48565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *      copyright notice, this list of conditions and the following
48575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *      disclaimer in the documentation and/or other materials
48585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *      provided with the distribution.
48595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *
48605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *   3. Neither the name of the Linux Foundation nor the names of its
48615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *      contributors may be used to endorse or promote products
48625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *      derived from this software without specific prior written
48635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *      permission.
48645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *
48655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
48665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
48675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
48685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
48695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
48705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
48715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
48725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
48735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
48745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
48755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
48765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
48775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
48785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *
48795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  This BSD License conforms to the Open Source Initiative "Simplified
48805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  BSD License" as published at:
48815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  http://www.opensource.org/licenses/bsd-license.php
48825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *
48835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  IAccessible2 is a trademark of the Linux Foundation. The IAccessible2
48845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  mark may be used in accordance with the Linux Foundation Trademark
48855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  Policy to indicate compliance with the IAccessible2 specification.
48865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *
48875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ************************************************************************/
48885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
4889010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)
4890010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)
4891010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)
48925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
48935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
48945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/** @brief This interface represents images and icons.
48955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
48965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) This interface is used for a representation of images like icons on buttons.
48975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  %IAccessibleImage only needs to be implemented in certain situations.  Some
48985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  examples are:
48995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  <ol>
49005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   <li>The accessible name and description are not enough to fully
49015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    describe the image, e.g. when the accessible description is used to define the
49025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    behavior of an actionable image and the image itself conveys semantically
49035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    significant information.
49045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   <li>The user can edit the content that includes an
49055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    image and therefore the user needs to be able to review the image's position.
49065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  </ol>
49075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)*/
49085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)[object, uuid(FE5ABB3D-615E-4f7b-909F-5F0EDA9E8DDE)]
49095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)interface IAccessibleImage : IUnknown
49105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles){
49115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  /** @brief Returns the localized description of the image.
49125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @param [out] description
49135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @retval S_OK
49145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @retval S_FALSE if there is nothing to return, [out] value is NULL
49155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  */
49165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  [propget] HRESULT description
49175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    (
49185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)     [out, retval] BSTR *description
49195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    );
49205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
49215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  /** @brief Returns the coordinates of the image.
49225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @param [in] coordinateType
49235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    Specifies whether the returned coordinates should be relative to the screen or the parent object.
49245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @param [out] x
49255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @param [out] y
49265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @retval S_OK
49275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  */
49285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  [propget] HRESULT imagePosition
49295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    (
49305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	 [in] enum IA2CoordinateType coordinateType,
49315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	 [out] long *x,
49325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)     [out, retval] long *y
49335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    );
49345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
49355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  /** @brief Returns the size of the image in units specified by parent's coordinate system.
49365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @param [out] height
49375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @param [out] width
49385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @retval S_OK
49395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  */
49405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
49415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  [propget] HRESULT imageSize
49425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    (
49435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)     [out] long *height,
49445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	 [out, retval] long *width
49455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    );
49465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
49475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/*************************************************************************
49485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *
49495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  File Name (AccessibleEventID.idl)
49505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *
49515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  IAccessible2 IDL Specification
49525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *
49535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  Copyright (c) 2007, 2010 Linux Foundation
49545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  Copyright (c) 2006 IBM Corporation
49555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  Copyright (c) 2000, 2006 Sun Microsystems, Inc.
49565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  All rights reserved.
49575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *
49585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *
49595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  Redistribution and use in source and binary forms, with or without
49605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  modification, are permitted provided that the following conditions
49615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  are met:
49625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *
49635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *   1. Redistributions of source code must retain the above copyright
49645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *      notice, this list of conditions and the following disclaimer.
49655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *
49665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *   2. Redistributions in binary form must reproduce the above
49675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *      copyright notice, this list of conditions and the following
49685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *      disclaimer in the documentation and/or other materials
49695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *      provided with the distribution.
49705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *
49715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *   3. Neither the name of the Linux Foundation nor the names of its
49725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *      contributors may be used to endorse or promote products
49735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *      derived from this software without specific prior written
49745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *      permission.
49755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *
49765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
49775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
49785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
49795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
49805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
49815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
49825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
49835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
49845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
49855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
49865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
49875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
49885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
49895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *
49905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  This BSD License conforms to the Open Source Initiative "Simplified
49915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  BSD License" as published at:
49925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  http://www.opensource.org/licenses/bsd-license.php
49935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *
49945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  IAccessible2 is a trademark of the Linux Foundation. The IAccessible2
49955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  mark may be used in accordance with the Linux Foundation Trademark
49965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  Policy to indicate compliance with the IAccessible2 specification.
49975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *
49985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ************************************************************************/
49995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
50005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/** %IAccessible2 specific event constants
50015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
50025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) This enum defines the event IDs fired by %IAccessible2 objects.  The event IDs
50035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) are in addition to those used by MSAA.
50045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)*/
50055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)enum IA2EventID {
50065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
50075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  /** The change of the number or attributes of actions of an accessible
50085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    object is signaled by events of this type.
50095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  */
50105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  IA2_EVENT_ACTION_CHANGED = 0x101,
50115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
5012010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)  /** <b>Deprecated.</b> The active descendant of a component has changed.
50135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
50145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	Note: This event constant is misspelled and thus is deprecated and will be
50155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	removed in a later version. Please use the correctly spelled version which
50165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	follows.
50175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  */
50185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  IA2_EVENT_ACTIVE_DECENDENT_CHANGED,
50195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
50205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  /** The active descendant of a component has changed.  The active descendant
50215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    is used in objects with transient children.
50225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
50235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    Note: Due to the fact that MSAA's WinEvents don't allow the active child index
50245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	to be passed on the IA2_EVENT_ACTIVE_DESCENDANT_CHANGED event the manages
50255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	descendants	scheme can't be used.  Instead the active child object has to fire
50265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	MSAA's EVENT_OBJECT_FOCUS.  In a future release a new event mechanism may be
50275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	added to provide for event specific data to be passed with the event.  At that
50285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	time the IA2_EVENT_ACTIVE_DECENDENT_CHANGED event and
50295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	IA2_STATE_MANAGES_DESCENDANTS state would be useful.
50305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  */
50315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  IA2_EVENT_ACTIVE_DESCENDANT_CHANGED = IA2_EVENT_ACTIVE_DECENDENT_CHANGED,
50325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
50335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  /** The document wide attributes of the document object have changed.
50345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  */
50355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  IA2_EVENT_DOCUMENT_ATTRIBUTE_CHANGED,
50365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
50375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  /** The contents of the document have changed.
50385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  */
50395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  IA2_EVENT_DOCUMENT_CONTENT_CHANGED,
50405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
50415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  /** The loading of the document has completed.
50425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  */
50435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  IA2_EVENT_DOCUMENT_LOAD_COMPLETE,
50445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
50455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  /** The loading of the document was interrupted.
50465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  */
50475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  IA2_EVENT_DOCUMENT_LOAD_STOPPED,
50485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
50495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  /** The document contents are being reloaded.
50505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  */
50515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  IA2_EVENT_DOCUMENT_RELOAD,
50525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
50535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  /** The ending index of this link within the containing string has changed.
50545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  */
50555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  IA2_EVENT_HYPERLINK_END_INDEX_CHANGED,
50565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
50575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  /** The number of anchors associated with this hyperlink object has changed.
50585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  */
50595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  IA2_EVENT_HYPERLINK_NUMBER_OF_ANCHORS_CHANGED,
50605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
50615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  /** The hyperlink selected state changed from selected to unselected or
50625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    from unselected to selected.
50635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  */
50645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  IA2_EVENT_HYPERLINK_SELECTED_LINK_CHANGED,
50655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
50665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  /** One of the links associated with the hypertext object has been activated.
50675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  */
50685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  IA2_EVENT_HYPERTEXT_LINK_ACTIVATED,
50695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
50705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  /** One of the links associated with the hypertext object has been selected.
50715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  */
50725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  IA2_EVENT_HYPERTEXT_LINK_SELECTED,
50735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
50745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  /** The starting index of this link within the containing string has changed.
50755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  */
50765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  IA2_EVENT_HYPERLINK_START_INDEX_CHANGED,
50775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
50785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  /** Focus has changed from one hypertext object to another, or focus moved
50795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   from a non-hypertext object to a hypertext object, or focus moved from a
50805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   hypertext object to a non-hypertext object.
50815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  */
50825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  IA2_EVENT_HYPERTEXT_CHANGED,
50835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
50845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  /** The number of hyperlinks associated with a hypertext object changed
50855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  */
50865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  IA2_EVENT_HYPERTEXT_NLINKS_CHANGED,
50875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
50885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  /** An object's attributes changed.
50895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  Also see ::IA2_EVENT_TEXT_ATTRIBUTE_CHANGED.
50905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  */
50915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  IA2_EVENT_OBJECT_ATTRIBUTE_CHANGED,
50925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
50935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  /** A slide changed in a presentation document or a page boundary was
50945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   crossed in a word processing document.
50955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  */
50965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  IA2_EVENT_PAGE_CHANGED,
50975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
50985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  /** The caret moved from one section to the next.
50995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  */
51005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  IA2_EVENT_SECTION_CHANGED,
51015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
51025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  /** A table caption changed.
51035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  */
51045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  IA2_EVENT_TABLE_CAPTION_CHANGED,
51055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
51065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  /** A table's column description changed.
51075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  */
51085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  IA2_EVENT_TABLE_COLUMN_DESCRIPTION_CHANGED,
51095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
51105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  /** A table's column header changed.
51115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  */
51125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  IA2_EVENT_TABLE_COLUMN_HEADER_CHANGED,
51135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
51145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  /** A table's data changed.
51155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  */
51165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  IA2_EVENT_TABLE_MODEL_CHANGED,
51175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
51185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  /** A table's row description changed.
51195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  */
51205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  IA2_EVENT_TABLE_ROW_DESCRIPTION_CHANGED,
51215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
51225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  /** A table's row header changed.
51235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  */
51245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  IA2_EVENT_TABLE_ROW_HEADER_CHANGED,
51255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
51265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  /** A table's summary changed.
51275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  */
51285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  IA2_EVENT_TABLE_SUMMARY_CHANGED,
51295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
51305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  /** A text object's attributes changed.
51315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  Also see ::IA2_EVENT_OBJECT_ATTRIBUTE_CHANGED.
51325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  */
51335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  IA2_EVENT_TEXT_ATTRIBUTE_CHANGED,
51345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
51355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  /** The caret has moved to a new position.
51365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  */
51375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  IA2_EVENT_TEXT_CARET_MOVED,
51385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
51395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  /** <b>Deprecated.</b>  This event is equivalent to ::IA2_EVENT_TEXT_UPDATED.
51405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  */
51415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  IA2_EVENT_TEXT_CHANGED,
51425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
51435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  /** The caret moved from one column to the next.
51445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  */
51455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  IA2_EVENT_TEXT_COLUMN_CHANGED,
51465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
51475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  /** Text was inserted.
51485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  */
51495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  IA2_EVENT_TEXT_INSERTED,
51505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
51515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  /** Text was removed.
51525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  */
51535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  IA2_EVENT_TEXT_REMOVED,
51545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
51555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  /** This event indicates general text changes, i.e. changes to text that are
51565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    exposed through the IAccessibleText interface.  For compatibility with ATK/AT-SPI
51575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	which does not have an equivalent event, servers can alternatively fire
51585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	::IA2_EVENT_TEXT_REMOVED and ::IA2_EVENT_TEXT_INSERTED.
51595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  */
51605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  IA2_EVENT_TEXT_UPDATED,
51615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
51625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  /** The text selection changed.  Later versions of Microsoft development environments
51635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   have an equivalent event identified, EVENT_OBJECT_TEXTSELECTIONCHANGED.  Servers
51645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   should use that if it is available and use IA2_EVENT_TEXT_SELECTION_CHANGED otherwise.
51655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   Clients should be prepared to respond to either event.
51665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
51675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  */
51685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  IA2_EVENT_TEXT_SELECTION_CHANGED,
51695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
51705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  /** A visible data event indicates the change of the visual appearance
51715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    of an accessible object.  This includes for example most of the
51725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    attributes available via the IAccessibleComponent interface.
51735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  */
51745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  IA2_EVENT_VISIBLE_DATA_CHANGED
51755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
51765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)};
51775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/*************************************************************************
51785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *
51795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  File Name (AccessibleApplication.idl)
51805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *
51815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  IAccessible2 IDL Specification
51825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *
51835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  Copyright (c) 2007, 2010 Linux Foundation
51845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  Copyright (c) 2006 IBM Corporation
51855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  Copyright (c) 2000, 2006 Sun Microsystems, Inc.
51865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  All rights reserved.
51875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *
51885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *
51895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  Redistribution and use in source and binary forms, with or without
51905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  modification, are permitted provided that the following conditions
51915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  are met:
51925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *
51935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *   1. Redistributions of source code must retain the above copyright
51945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *      notice, this list of conditions and the following disclaimer.
51955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *
51965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *   2. Redistributions in binary form must reproduce the above
51975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *      copyright notice, this list of conditions and the following
51985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *      disclaimer in the documentation and/or other materials
51995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *      provided with the distribution.
52005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *
52015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *   3. Neither the name of the Linux Foundation nor the names of its
52025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *      contributors may be used to endorse or promote products
52035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *      derived from this software without specific prior written
52045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *      permission.
52055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *
52065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
52075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
52085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
52095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
52105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
52115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
52125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
52135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
52145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
52155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
52165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
52175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
52185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
52195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *
52205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  This BSD License conforms to the Open Source Initiative "Simplified
52215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  BSD License" as published at:
52225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  http://www.opensource.org/licenses/bsd-license.php
52235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *
52245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  IAccessible2 is a trademark of the Linux Foundation. The IAccessible2
52255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  mark may be used in accordance with the Linux Foundation Trademark
52265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  Policy to indicate compliance with the IAccessible2 specification.
52275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *
52285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ************************************************************************/
52295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
52305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
5231010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)
5232010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)
5233010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)
52345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
52355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/** @brief This interface gives access to the application's name and version information.
52365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
52375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) This interface provides the AT with the information it needs to differentiate
52385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) this application from other applications, from other versions of this
52395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) application, or from other versions of this application running on different
52405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) versions of an accessibility bridge or accessibility toolkit.
52415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
52425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) Servers implementing IAccessible2 should provide access to the %IAccessibleApplication
52435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) interface via QueryService from any object so that ATs can easily determine specific
52445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) information about the application such as its name or version.
52455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)*/
52465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)[object, uuid(D49DED83-5B25-43F4-9B95-93B44595979E)]
52475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)interface IAccessibleApplication : IUnknown
52485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles){
52495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
52505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  /** @brief Returns the application name.
52515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @param [out] name
52525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @retval S_OK
52535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @retval S_FALSE if there is nothing to return, [out] value is NULL
52545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  */
52555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  [propget] HRESULT appName
52565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    (
52575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)     [out, retval] BSTR *name
52585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    );
52595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
52605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  /** @brief Returns the application version.
52615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @param [out] version
5262010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)    The version string must not contain levels when it is know beforehand that
5263010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)    this information will never require a change in a client's behavior.
5264010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)    For example, use "3.6.0" rather than "3.6.0.v201005131500".
52655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @retval S_OK
52665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @retval S_FALSE if there is nothing to return, [out] value is NULL
52675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  */
52685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  [propget] HRESULT appVersion
52695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    (
52705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)     [out, retval] BSTR *version
52715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    );
52725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
52735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  /** @brief Returns the toolkit/bridge name.
52745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @param [out] name
52755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @retval S_OK
52765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @retval S_FALSE if there is nothing to return, [out] value is NULL
52775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  */
52785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  [propget] HRESULT toolkitName
52795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    (
52805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)     [out, retval] BSTR *name
52815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    );
52825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
52835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  /** @brief Returns the toolkit/bridge version.
52845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @param [out] version
5285010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)    The version string must not contain levels when it is know beforehand that
5286010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)    this information will never require a change in a client's behavior.
5287010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)    For example, use "3.6.0" rather than "3.6.0.v201005131500".
52885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @retval S_OK
52895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   @retval S_FALSE if there is nothing to return, [out] value is NULL
52905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  */
52915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  [propget] HRESULT toolkitVersion
52925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    (
52935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)     [out, retval] BSTR *version
52945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    );
52955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
52965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
52975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
52985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/*************************************************************************
52995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *
5300010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) *  File Name (AccessibleDocument.idl)
5301010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) *
5302010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) *  IAccessible2 IDL Specification
5303010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) *
5304010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) *  Copyright (c) 2013 Linux Foundation
5305010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) *  All rights reserved.
5306010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) *
5307010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) *
5308010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) *  Redistribution and use in source and binary forms, with or without
5309010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) *  modification, are permitted provided that the following conditions
5310010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) *  are met:
5311010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) *
5312010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) *   1. Redistributions of source code must retain the above copyright
5313010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) *      notice, this list of conditions and the following disclaimer.
5314010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) *
5315010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) *   2. Redistributions in binary form must reproduce the above
5316010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) *      copyright notice, this list of conditions and the following
5317010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) *      disclaimer in the documentation and/or other materials
5318010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) *      provided with the distribution.
5319010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) *
5320010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) *   3. Neither the name of the Linux Foundation nor the names of its
5321010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) *      contributors may be used to endorse or promote products
5322010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) *      derived from this software without specific prior written
5323010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) *      permission.
5324010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) *
5325010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) *  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
5326010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) *  CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
5327010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) *  INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
5328010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) *  MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
5329010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) *  DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
5330010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) *  CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
5331010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) *  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
5332010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) *  NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
5333010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) *  LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
5334010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) *  HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
5335010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) *  CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
5336010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) *  OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
5337010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) *  EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
5338010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) *
5339010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) *  This BSD License conforms to the Open Source Initiative "Simplified
5340010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) *  BSD License" as published at:
5341010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) *  http://www.opensource.org/licenses/bsd-license.php
5342010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) *
5343010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) *  IAccessible2 is a trademark of the Linux Foundation. The IAccessible2
5344010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) *  mark may be used in accordance with the Linux Foundation Trademark
5345010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) *  Policy to indicate compliance with the IAccessible2 specification.
5346010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) *
5347010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) ************************************************************************/
5348010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)
5349010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)
5350010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)
5351010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)
5352010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)
5353010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)/** @brief This interface represents documents.
5354010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)
5355010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) This interface is used for a representation of documents.
5356010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)*/
5357010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)[object, uuid(C48C7FCF-4AB5-4056-AFA6-902D6E1D1149)]
5358010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)interface IAccessibleDocument : IUnknown
5359010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles){
5360010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)  /** @brief Returns the most recently used anchor target within a document.
5361010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)
5362010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)   A document's most recently targeted in-page anchor is returned.  A typical use
5363010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)    of this method is to fetch the anchor target within an HTML document.  In this
5364010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)    case anchor targets are those which have been defined with the &lt;a&gt; tag.
5365010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)
5366010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)   @param [out] accessible
5367010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)   @retval S_OK
5368010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)   @retval S_FALSE if there are no existing valid anchor targets, [out] value is NULL.
5369010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)  */
5370010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)  [propget] HRESULT anchorTarget
5371010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)    (
5372010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)     [out, retval] IUnknown **accessible
5373010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)    );
5374010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)
5375010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)}
5376010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)/*************************************************************************
5377010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) *
53785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  File Name (IA2TypeLibrary.idl)
53795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *
53805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  IAccessible2 IDL Specification
53815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *
5382010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) *  Copyright (c) 2007, 2012 Linux Foundation
53835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  Copyright (c) 2006 IBM Corporation
53845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  Copyright (c) 2000, 2006 Sun Microsystems, Inc.
53855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  All rights reserved.
53865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *
53875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *
53885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  Redistribution and use in source and binary forms, with or without
53895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  modification, are permitted provided that the following conditions
53905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  are met:
53915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *
53925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *   1. Redistributions of source code must retain the above copyright
53935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *      notice, this list of conditions and the following disclaimer.
53945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *
53955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *   2. Redistributions in binary form must reproduce the above
53965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *      copyright notice, this list of conditions and the following
53975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *      disclaimer in the documentation and/or other materials
53985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *      provided with the distribution.
53995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *
54005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *   3. Neither the name of the Linux Foundation nor the names of its
54015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *      contributors may be used to endorse or promote products
54025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *      derived from this software without specific prior written
54035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *      permission.
54045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *
54055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
54065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
54075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
54085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
54095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
54105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
54115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
54125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
54135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
54145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
54155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
54165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
54175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
54185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *
54195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  This BSD License conforms to the Open Source Initiative "Simplified
54205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  BSD License" as published at:
54215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  http://www.opensource.org/licenses/bsd-license.php
54225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *
54235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  IAccessible2 is a trademark of the Linux Foundation. The IAccessible2
54245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  mark may be used in accordance with the Linux Foundation Trademark
54255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  Policy to indicate compliance with the IAccessible2 specification.
54265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *
54275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ************************************************************************/
54285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
54295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// This is not a standalone file.  It is to be appended to the end of the
54305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// merged IDL file.
54315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
54325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)cpp_quote("")
54335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)cpp_quote("// Type Library Definitions")
54345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)cpp_quote("")
54355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
54365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)[
5437010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)    uuid(CE3F726E-D1D3-44FE-B995-FF1DB3B48B2B),
54385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    helpstring("IAccessible2 Type Library"),
5439010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)    version(1.3),
54405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    hidden
54415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)]
54425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
54435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)library IAccessible2Lib
54445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles){
54455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    importlib ("stdole2.tlb");
5446010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)    importlib ("oleacc.dll");
54475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    interface IAccessible2;
5448010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)    interface IAccessible2_2;
54495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    interface IAccessibleAction;
54505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    interface IAccessibleApplication;
54515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    interface IAccessibleComponent;
5452010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)    interface IAccessibleDocument;
54535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    interface IAccessibleEditableText;
54545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    interface IAccessibleHyperlink;
54555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    interface IAccessibleHypertext;
5456010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)    interface IAccessibleHypertext2;
54575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    interface IAccessibleImage;
54585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    interface IAccessibleRelation;
54595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    interface IAccessibleTable;
54605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    interface IAccessibleTable2;
54615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    interface IAccessibleTableCell;
54625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    interface IAccessibleText;
5463010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)    interface IAccessibleText2;
54645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    interface IAccessibleValue;
54655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    enum IA2CoordinateType;
54665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    enum IA2EventID;
54675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    enum IA2Role;
54685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    enum IA2ScrollType;
54695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    enum IA2States;
54705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    enum IA2TableModelChangeType;
54715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    enum IA2TextBoundaryType;
54725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    enum IA2TextSpecialOffsets;
54735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
5474