other-licenses/ia2/AccessibleRelation.idl

changeset 0
6474c204b198
     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 +}

mercurial