1.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 1.2 +++ b/other-licenses/ia2/AccessibleRelation.idl Wed Dec 31 06:09:35 2014 +0100 1.3 @@ -0,0 +1,227 @@ 1.4 +/************************************************************************* 1.5 + * 1.6 + * File Name (AccessibleRelation.idl) 1.7 + * 1.8 + * IAccessible2 IDL Specification 1.9 + * 1.10 + * Copyright (c) 2007, 2013 Linux Foundation 1.11 + * Copyright (c) 2006 IBM Corporation 1.12 + * Copyright (c) 2000, 2006 Sun Microsystems, Inc. 1.13 + * All rights reserved. 1.14 + * 1.15 + * 1.16 + * Redistribution and use in source and binary forms, with or without 1.17 + * modification, are permitted provided that the following conditions 1.18 + * are met: 1.19 + * 1.20 + * 1. Redistributions of source code must retain the above copyright 1.21 + * notice, this list of conditions and the following disclaimer. 1.22 + * 1.23 + * 2. Redistributions in binary form must reproduce the above 1.24 + * copyright notice, this list of conditions and the following 1.25 + * disclaimer in the documentation and/or other materials 1.26 + * provided with the distribution. 1.27 + * 1.28 + * 3. Neither the name of the Linux Foundation nor the names of its 1.29 + * contributors may be used to endorse or promote products 1.30 + * derived from this software without specific prior written 1.31 + * permission. 1.32 + * 1.33 + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND 1.34 + * CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, 1.35 + * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF 1.36 + * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 1.37 + * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR 1.38 + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 1.39 + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 1.40 + * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 1.41 + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 1.42 + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 1.43 + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR 1.44 + * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, 1.45 + * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 1.46 + * 1.47 + * This BSD License conforms to the Open Source Initiative "Simplified 1.48 + * BSD License" as published at: 1.49 + * http://www.opensource.org/licenses/bsd-license.php 1.50 + * 1.51 + * IAccessible2 is a trademark of the Linux Foundation. The IAccessible2 1.52 + * mark may be used in accordance with the Linux Foundation Trademark 1.53 + * Policy to indicate compliance with the IAccessible2 specification. 1.54 + * 1.55 + ************************************************************************/ 1.56 + 1.57 +import "objidl.idl"; 1.58 +import "oaidl.idl"; 1.59 +import "oleacc.idl"; 1.60 + 1.61 +/** @defgroup grpRelations Relations 1.62 + Use the following constants to compare against the BSTRs returned by 1.63 + IAccessibleRelation::relationType. 1.64 +*/ 1.65 +///@{ 1.66 + 1.67 +/** The target object is the containing application object. */ 1.68 +const WCHAR *const IA2_RELATION_CONTAINING_APPLICATION = L"containingApplication"; 1.69 + 1.70 +/** The target object is the containing document object. The target object implements 1.71 + the IAccessibleDocument interface. 1.72 +*/ 1.73 +const WCHAR *const IA2_RELATION_CONTAINING_DOCUMENT = L"containingDocument"; 1.74 + 1.75 +/** The target object is the containing tab pane object. */ 1.76 +const WCHAR *const IA2_RELATION_CONTAINING_TAB_PANE = L"containingTabPane"; 1.77 + 1.78 +/** The target object is the containing window object. */ 1.79 +const WCHAR *const IA2_RELATION_CONTAINING_WINDOW = L"containingWindow"; 1.80 + 1.81 +/** Some attribute of this object is affected by a target object. */ 1.82 +const WCHAR *const IA2_RELATION_CONTROLLED_BY = L"controlledBy"; 1.83 + 1.84 +/** This object is interactive and controls some attribute of a target object. */ 1.85 +const WCHAR *const IA2_RELATION_CONTROLLER_FOR = L"controllerFor"; 1.86 + 1.87 +/** This object is described by the target object. */ 1.88 +const WCHAR *const IA2_RELATION_DESCRIBED_BY = L"describedBy"; 1.89 + 1.90 +/** This object is describes the target object. */ 1.91 +const WCHAR *const IA2_RELATION_DESCRIPTION_FOR = L"descriptionFor"; 1.92 + 1.93 +/** This object is embedded by a target object. */ 1.94 +const WCHAR *const IA2_RELATION_EMBEDDED_BY = L"embeddedBy"; 1.95 + 1.96 +/** This object embeds a target object. This relation can be used on the 1.97 + OBJID_CLIENT accessible for a top level window to show where the content 1.98 + areas are. 1.99 +*/ 1.100 +const WCHAR *const IA2_RELATION_EMBEDS = L"embeds"; 1.101 + 1.102 +/** Content flows to this object from a target object. 1.103 + This relation and IA2_RELATION_FLOWS_TO are useful to tie text and non-text 1.104 + objects together in order to allow assistive technology to follow the 1.105 + intended reading order. 1.106 +*/ 1.107 +const WCHAR *const IA2_RELATION_FLOWS_FROM = L"flowsFrom"; 1.108 + 1.109 +/** Content flows from this object to a target object. */ 1.110 +const WCHAR *const IA2_RELATION_FLOWS_TO = L"flowsTo"; 1.111 + 1.112 +/** This object is label for a target object. */ 1.113 +const WCHAR *const IA2_RELATION_LABEL_FOR = L"labelFor"; 1.114 + 1.115 +/** This object is labelled by a target object. Note that the double L spelling 1.116 + which follows is preferred. Please use it instead. This single L version may 1.117 + be removed in a later version. 1.118 +*/ 1.119 +const WCHAR *const IA2_RELATION_LABELED_BY = L"labelledBy"; 1.120 + 1.121 +/** This object is labelled by a target object. */ 1.122 +const WCHAR *const IA2_RELATION_LABELLED_BY = L"labelledBy"; 1.123 + 1.124 +/** This object is a member of a group of one or more objects. When 1.125 + there is more than one object in the group each member may have one and the 1.126 + same target, e.g. a grouping object. It is also possible that each member has 1.127 + multiple additional targets, e.g. one for every other member in the group. 1.128 +*/ 1.129 +const WCHAR *const IA2_RELATION_MEMBER_OF = L"memberOf"; 1.130 + 1.131 +/** The target object is the next object in the tab order. */ 1.132 +const WCHAR *const IA2_RELATION_NEXT_TABBABLE = L"nextTabbable"; 1.133 + 1.134 +/** This object is a logical child of a target object. This relation is the reciprocal 1.135 + of the IA2_RELATION_NODE_PARENT_OF relation. In some cases an application's accessible 1.136 + tree is such that objects can be in a logical parent-child relationship which is 1.137 + different from the hierarchy of the accessible tree. */ 1.138 +const WCHAR *const IA2_RELATION_NODE_CHILD_OF = L"nodeChildOf"; 1.139 + 1.140 +/** This object is a logical parent of a target object. This relation is the reciprocal 1.141 + of the IA2_RELATION_NODE_CHILD_OF relation. In some cases an application's accessible 1.142 + tree is such that objects can be in a logical parent-child relationship which is 1.143 + different from the hierarchy of the accessible tree. */ 1.144 +const WCHAR *const IA2_RELATION_NODE_PARENT_OF = L"nodeParentOf"; 1.145 + 1.146 +/** This object is a parent window of the target object. */ 1.147 +const WCHAR *const IA2_RELATION_PARENT_WINDOW_OF = L"parentWindowOf"; 1.148 + 1.149 +/** This object is a transient component related to the target object. 1.150 + When this object is activated the target object doesn't lose focus. 1.151 +*/ 1.152 +const WCHAR *const IA2_RELATION_POPUP_FOR = L"popupFor"; 1.153 + 1.154 +/** The target object is the previous object in the tab order. */ 1.155 +const WCHAR *const IA2_RELATION_PREVIOUS_TABBABLE = L"previousTabbable"; 1.156 + 1.157 +/** This object is a sub window of a target object. */ 1.158 +const WCHAR *const IA2_RELATION_SUBWINDOW_OF = L"subwindowOf"; 1.159 + 1.160 +///@} 1.161 + 1.162 +/** This interface gives access to an object's set of relations. 1.163 +*/ 1.164 +[object, uuid(7CDF86EE-C3DA-496a-BDA4-281B336E1FDC)] 1.165 +interface IAccessibleRelation : IUnknown 1.166 +{ 1.167 + /** @brief Returns the type of the relation. 1.168 + @param [out] relationType 1.169 + The strings returned are defined @ref grpRelations "in this section of the documentation". 1.170 + @retval S_OK 1.171 + */ 1.172 + [propget] HRESULT relationType 1.173 + ( 1.174 + [out, retval] BSTR *relationType 1.175 + ); 1.176 + 1.177 + /** @brief Returns a localized version of the relation type. 1.178 + @param [out] localizedRelationType 1.179 + @retval S_OK 1.180 + */ 1.181 + [propget] HRESULT localizedRelationType 1.182 + ( 1.183 + [out, retval] BSTR *localizedRelationType 1.184 + ); 1.185 + 1.186 + /** @brief Returns the number of targets for this relation. 1.187 + @param [out] nTargets 1.188 + @retval S_OK 1.189 + */ 1.190 + [propget] HRESULT nTargets 1.191 + ( 1.192 + [out, retval] long *nTargets 1.193 + ); 1.194 + 1.195 + /** @brief Returns one accessible relation target. 1.196 + @param [in] targetIndex 1.197 + 0 based index 1.198 + @param [out] target 1.199 + @retval S_OK 1.200 + @retval E_INVALIDARG if bad [in] passed 1.201 + @note Use QueryInterface to get IAccessible2. 1.202 + */ 1.203 + [propget] HRESULT target 1.204 + ( 1.205 + [in] long targetIndex, 1.206 + [out, retval] IUnknown **target 1.207 + ); 1.208 + 1.209 + /** @brief Returns multiple accessible relation targets 1.210 + @param [in] maxTargets 1.211 + maximum size of the array allocated by the client 1.212 + @param [out] targets 1.213 + The array of target objects. Note that this array is to be allocated by the 1.214 + client and freed when no longer needed. Refer to @ref _arrayConsideration 1.215 + "Special Consideration when using Arrays" for more details. You will need to use 1.216 + QueryInterface on the IUnknown to get the IAccessible2. 1.217 + @param [out] nTargets 1.218 + actual number of targets in the returned array (not more than maxTargets) 1.219 + @retval S_OK 1.220 + @retval E_INVALIDARG if bad [in] passed, e.g. a negative value 1.221 + */ 1.222 + [propget] HRESULT targets 1.223 + ( 1.224 + [in] long maxTargets, 1.225 + [out, size_is(maxTargets), length_is(*nTargets)] 1.226 + IUnknown **targets, 1.227 + [out, retval] long *nTargets 1.228 + ); 1.229 + 1.230 +}