tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

AccessibleRelation.idl (9769B)


      1 /*************************************************************************
      2 *
      3 *  File Name (AccessibleRelation.idl)
      4 * 
      5 *  IAccessible2 IDL Specification 
      6 * 
      7 *  Copyright (c) 2007, 2013 Linux Foundation 
      8 *  Copyright (c) 2006 IBM Corporation 
      9 *  Copyright (c) 2000, 2006 Sun Microsystems, Inc. 
     10 *  All rights reserved. 
     11 *   
     12 *   
     13 *  Redistribution and use in source and binary forms, with or without 
     14 *  modification, are permitted provided that the following conditions 
     15 *  are met: 
     16 *   
     17 *   1. Redistributions of source code must retain the above copyright 
     18 *      notice, this list of conditions and the following disclaimer. 
     19 *   
     20 *   2. Redistributions in binary form must reproduce the above 
     21 *      copyright notice, this list of conditions and the following 
     22 *      disclaimer in the documentation and/or other materials 
     23 *      provided with the distribution. 
     24 *
     25 *   3. Neither the name of the Linux Foundation nor the names of its 
     26 *      contributors may be used to endorse or promote products 
     27 *      derived from this software without specific prior written 
     28 *      permission. 
     29 *   
     30 *  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND 
     31 *  CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, 
     32 *  INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF 
     33 *  MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 
     34 *  DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR 
     35 *  CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 
     36 *  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 
     37 *  NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 
     38 *  LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 
     39 *  HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 
     40 *  CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR 
     41 *  OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, 
     42 *  EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 
     43 *   
     44 *  This BSD License conforms to the Open Source Initiative "Simplified 
     45 *  BSD License" as published at: 
     46 *  http://www.opensource.org/licenses/bsd-license.php 
     47 *   
     48 *  IAccessible2 is a trademark of the Linux Foundation. The IAccessible2 
     49 *  mark may be used in accordance with the Linux Foundation Trademark 
     50 *  Policy to indicate compliance with the IAccessible2 specification. 
     51 * 
     52 ************************************************************************/ 
     53 
     54 import "objidl.idl";
     55 import "oaidl.idl";
     56 import "oleacc.idl";
     57 
     58 /** @defgroup grpRelations Relations 
     59  Use the following constants to compare against the BSTRs returned by 
     60  IAccessibleRelation::relationType.
     61 */ 
     62 ///@{
     63 
     64 /** The target object is the containing application object. */
     65 const WCHAR *const IA2_RELATION_CONTAINING_APPLICATION = L"containingApplication";
     66 
     67 /** The target object is the containing document object. The target object implements
     68 the IAccessibleDocument interface.
     69 */
     70 const WCHAR *const IA2_RELATION_CONTAINING_DOCUMENT = L"containingDocument";
     71 
     72 /** The target object is the containing tab pane object. */
     73 const WCHAR *const IA2_RELATION_CONTAINING_TAB_PANE = L"containingTabPane";
     74 
     75 /** The target object is the containing window object. */
     76 const WCHAR *const IA2_RELATION_CONTAINING_WINDOW = L"containingWindow";
     77 
     78 /** Some attribute of this object is affected by a target object. */
     79 const WCHAR *const IA2_RELATION_CONTROLLED_BY = L"controlledBy";
     80 
     81 /** This object is interactive and controls some attribute of a target object. */
     82 const WCHAR *const IA2_RELATION_CONTROLLER_FOR = L"controllerFor";
     83 
     84 /** This object is described by the target object. */
     85 const WCHAR *const IA2_RELATION_DESCRIBED_BY = L"describedBy";
     86 
     87 /** This object is describes the target object. */
     88 const WCHAR *const IA2_RELATION_DESCRIPTION_FOR = L"descriptionFor";
     89 
     90 /** This object is embedded by a target object. */
     91 const WCHAR *const IA2_RELATION_EMBEDDED_BY = L"embeddedBy";
     92 
     93 /** This object embeds a target object. This relation can be used on the
     94 OBJID_CLIENT accessible for a top level window to show where the content 
     95 areas are.
     96 */
     97 const WCHAR *const IA2_RELATION_EMBEDS = L"embeds";
     98 
     99 /** Content flows to this object from a target object. 
    100 This relation and IA2_RELATION_FLOWS_TO are useful to tie text and non-text
    101 objects together in order to allow assistive technology to follow the
    102 intended reading order.
    103 */
    104 const WCHAR *const IA2_RELATION_FLOWS_FROM = L"flowsFrom";
    105 
    106 /** Content flows from this object to a target object. */
    107 const WCHAR *const IA2_RELATION_FLOWS_TO = L"flowsTo";
    108 
    109 /** This object is label for a target object. */
    110 const WCHAR *const IA2_RELATION_LABEL_FOR = L"labelFor";
    111 
    112 /** This object is labelled by a target object. Note that the double L spelling
    113 which follows is preferred.  Please use it instead.  This single L version may
    114 be removed in a later version.
    115 */
    116 const WCHAR *const IA2_RELATION_LABELED_BY = L"labelledBy";
    117 
    118 /** This object is labelled by a target object. */
    119 const WCHAR *const IA2_RELATION_LABELLED_BY = L"labelledBy";
    120 
    121 /** This object is a member of a group of one or more objects. When 
    122 there is more than one object in the group each member may have one and the 
    123 same target, e.g. a grouping object.  It is also possible that each member has 
    124 multiple additional targets, e.g. one for every other member in the group.
    125 */
    126 const WCHAR *const IA2_RELATION_MEMBER_OF = L"memberOf";
    127 
    128 /** The target object is the next object in the tab order. */
    129 const WCHAR *const IA2_RELATION_NEXT_TABBABLE = L"nextTabbable";
    130 
    131 /** This object is a logical child of a target object.  This relation is the reciprocal
    132 of the IA2_RELATION_NODE_PARENT_OF relation. In some cases an application's accessible
    133 tree is such that objects can be in a logical parent-child relationship which is
    134 different from the hierarchy of the accessible tree. */
    135 const WCHAR *const IA2_RELATION_NODE_CHILD_OF = L"nodeChildOf";
    136 
    137 /** This object is a logical parent of a target object. This relation is the reciprocal
    138 of the IA2_RELATION_NODE_CHILD_OF relation. In some cases an application's accessible
    139 tree is such that objects can be in a logical parent-child relationship which is
    140 different from the hierarchy of the accessible tree. */
    141 const WCHAR *const IA2_RELATION_NODE_PARENT_OF = L"nodeParentOf";
    142 
    143 /** This object is a parent window of the target object. */
    144 const WCHAR *const IA2_RELATION_PARENT_WINDOW_OF = L"parentWindowOf";
    145 
    146 /** This object is a transient component related to the target object. 
    147 When this object is activated the target object doesn't lose focus.
    148 */
    149 const WCHAR *const IA2_RELATION_POPUP_FOR = L"popupFor";
    150 
    151 /** The target object is the previous object in the tab order. */
    152 const WCHAR *const IA2_RELATION_PREVIOUS_TABBABLE = L"previousTabbable";
    153 
    154 /** This object is a sub window of a target object. */
    155 const WCHAR *const IA2_RELATION_SUBWINDOW_OF = L"subwindowOf";
    156 
    157 /** The target object provides the detailed, extended description for this
    158 object. It provides more detailed information than would normally be provided
    159 using the IA2_RELATION_DESCRIBED_BY relation. A common use for this relation is
    160 in digital publishing where an extended description needs to be conveyed in
    161 a book that requires structural markup or the embedding of other technology to
    162 provide illustrative content. */
    163 const WCHAR *const IA2_RELATION_DETAILS = L"details";
    164 
    165 /** This object provides the detailed, extended description for the target
    166 object. See IA2_RELATION_DETAILS. */
    167 const WCHAR *const IA2_RELATION_DETAILS_FOR = L"detailsFor";
    168 
    169 /** The target object is the error message for this object. */
    170 const WCHAR *const IA2_RELATION_ERROR = L"error";
    171 
    172 /** This object is the error message for the target object. */
    173 const WCHAR *const IA2_RELATION_ERROR_FOR = L"errorFor";
    174 
    175 ///@}
    176 
    177 /** This interface gives access to an object's set of relations.
    178 */
    179 [object, uuid(7CDF86EE-C3DA-496a-BDA4-281B336E1FDC)]
    180 interface IAccessibleRelation : IUnknown
    181 {
    182  /** @brief Returns the type of the relation.
    183   @param [out] relationType
    184    The strings returned are defined @ref grpRelations "in this section of the documentation".
    185   @retval S_OK
    186  */
    187  [propget] HRESULT relationType
    188    (
    189     [out, retval] BSTR *relationType
    190    );
    191 
    192  /** @brief Returns a localized version of the relation type.
    193   @param [out] localizedRelationType
    194   @retval S_OK
    195  */
    196  [propget] HRESULT localizedRelationType
    197    (
    198     [out, retval] BSTR *localizedRelationType
    199    );
    200 
    201  /** @brief Returns the number of targets for this relation.
    202   @param [out] nTargets
    203   @retval S_OK
    204  */
    205  [propget] HRESULT nTargets
    206    (
    207     [out, retval] long *nTargets
    208    );
    209 
    210  /** @brief Returns one accessible relation target.
    211   @param [in] targetIndex
    212    0 based index
    213   @param [out] target
    214   @retval S_OK
    215   @retval E_INVALIDARG if bad [in] passed
    216   @note Use QueryInterface to get IAccessible2.
    217  */
    218  [propget] HRESULT target
    219    (
    220     [in] long targetIndex,
    221     [out, retval] IUnknown **target 
    222    );
    223 
    224  /** @brief Returns multiple accessible relation targets
    225   @param [in] maxTargets
    226    maximum size of the array allocated by the client
    227   @param [out] targets
    228    The array of target objects.  Note that this array is to be allocated by the
    229 client and freed when no longer needed.  Refer to @ref _arrayConsideration 
    230 "Special Consideration when using Arrays" for more details.  You will need to use 
    231 QueryInterface on the IUnknown to get the IAccessible2.
    232   @param [out] nTargets
    233 actual number of targets in the returned array (not more than maxTargets)
    234   @retval S_OK
    235   @retval E_INVALIDARG if bad [in] passed, e.g. a negative value
    236  */
    237  [propget] HRESULT targets
    238    (
    239     [in] long maxTargets, 
    240     [out, size_is(maxTargets), length_is(*nTargets)]
    241       IUnknown **targets, 
    242     [out, retval] long *nTargets 
    243    );
    244 
    245 }