other-licenses/ia2/AccessibleTable2.idl

changeset 0
6474c204b198
     1.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     1.2 +++ b/other-licenses/ia2/AccessibleTable2.idl	Wed Dec 31 06:09:35 2014 +0100
     1.3 @@ -0,0 +1,377 @@
     1.4 +/*************************************************************************
     1.5 + *
     1.6 + *  File Name (AccessibleTable2.idl)
     1.7 + * 
     1.8 + *  IAccessible2 IDL Specification 
     1.9 + * 
    1.10 + *  Copyright (c) 2007, 2012 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 +import "Accessible2.idl";
    1.61 +import "IA2CommonTypes.idl";
    1.62 +
    1.63 +/** @brief This interface gives access to a two-dimensional table.
    1.64 +
    1.65 + Please also refer to the IAccessibleTableCell interface.
    1.66 +
    1.67 + If you want to support older applications you should also support the
    1.68 +  IAccessibleTable inteface.
    1.69 +*/
    1.70 +[object, uuid(6167f295-06f0-4cdd-a1fa-02e25153d869)]
    1.71 +interface IAccessibleTable2 : IUnknown
    1.72 +{
    1.73 +
    1.74 +  /** @brief Returns the accessible object at the specified row and column in 
    1.75 +    the table.  This object could be an IAccessible or an IAccessible2.
    1.76 +   @param [in] row
    1.77 +    The 0 based row index for which to retrieve the cell.
    1.78 +   @param [in] column
    1.79 +    The 0 based column index for which to retrieve the cell.
    1.80 +   @param [out] cell
    1.81 +    If both row and column index are valid then the corresponding accessible 
    1.82 +    object is returned that represents the requested cell regardless of whether 
    1.83 +    the cell is currently visible (on the screen).
    1.84 +   @retval S_OK
    1.85 +   @retval E_INVALIDARG if bad [in] passed
    1.86 +  */
    1.87 +  [propget] HRESULT cellAt
    1.88 +    (
    1.89 +     [in] long row, 
    1.90 +     [in] long column,
    1.91 +     [out, retval] IUnknown **cell
    1.92 +    );
    1.93 +
    1.94 +  /** @brief Returns the caption for the table.  The returned object could be 
    1.95 +    an IAccessible or an IAccessible2.
    1.96 +   @param [out] accessible
    1.97 +    If the table has a caption then a reference to it is returned, else a NULL 
    1.98 +    pointer is returned.
    1.99 +   @retval S_OK
   1.100 +   @retval S_FALSE if there is nothing to return, [out] value is NULL
   1.101 +   @deprecated use a describedBy relation
   1.102 +  */
   1.103 +  [propget] HRESULT caption
   1.104 +    (
   1.105 +     [out, retval] IUnknown **accessible
   1.106 +    );
   1.107 +	  
   1.108 +  /** @brief Returns the description text of the specified column in the table.
   1.109 +   @param [in] column
   1.110 +    The 0 based index of the column for which to retrieve the description.
   1.111 +   @param [out] description
   1.112 +    Returns the description text of the specified column in the table if such a 
   1.113 +    description exists.  Otherwise a NULL pointer is returned.
   1.114 +   @retval S_OK
   1.115 +   @retval S_FALSE if there is nothing to return, [out] value is NULL 
   1.116 +   @retval E_INVALIDARG if bad [in] passed
   1.117 +  */
   1.118 +  [propget] HRESULT columnDescription
   1.119 +    (
   1.120 +     [in] long column,
   1.121 +     [out, retval] BSTR *description
   1.122 +    );
   1.123 +
   1.124 +
   1.125 +  /** @brief Returns the total number of columns in table
   1.126 +   @param [out] columnCount
   1.127 +    Number of columns in table (including columns outside the current viewport)
   1.128 +   @retval S_OK
   1.129 +  */
   1.130 +  [propget] HRESULT nColumns
   1.131 +    (
   1.132 +     [out, retval] long *columnCount 
   1.133 +    );
   1.134 +
   1.135 +  /** @brief Returns the total number of rows in table
   1.136 +   @param [out] rowCount
   1.137 +    Number of rows in table (including rows outside the current viewport)
   1.138 +   @retval S_OK
   1.139 +  */
   1.140 +  [propget] HRESULT nRows
   1.141 +    (
   1.142 +     [out, retval] long *rowCount 
   1.143 +    );
   1.144 +
   1.145 +  /** @brief Returns the total number of selected cells
   1.146 +   @param [out] cellCount
   1.147 +    Number of cells currently selected
   1.148 +   @retval S_OK
   1.149 +  */
   1.150 +  [propget] HRESULT nSelectedCells
   1.151 +    (
   1.152 +     [out, retval] long *cellCount
   1.153 +    );
   1.154 +
   1.155 +  /** @brief Returns the total number of selected columns
   1.156 +   @param [out] columnCount
   1.157 +    Number of columns currently selected
   1.158 +   @retval S_OK
   1.159 +  */
   1.160 +  [propget] HRESULT nSelectedColumns
   1.161 +    (
   1.162 +     [out, retval] long *columnCount 
   1.163 +    );
   1.164 +
   1.165 +  /** @brief Returns the total number of selected rows
   1.166 +   @param [out] rowCount
   1.167 +    Number of rows currently selected
   1.168 +   @retval S_OK
   1.169 +  */
   1.170 +  [propget] HRESULT nSelectedRows
   1.171 +    (
   1.172 +     [out, retval] long *rowCount 
   1.173 +    );
   1.174 +
   1.175 +  /** @brief Returns the description text of the specified row in the table.
   1.176 +   @param [in] row
   1.177 +    The 0 based index of the row for which to retrieve the description.
   1.178 +   @param [out] description
   1.179 +    Returns the description text of the specified row in the table if such a 
   1.180 +    description exists.  Otherwise a NULL pointer is returned.
   1.181 +   @retval S_OK
   1.182 +   @retval S_FALSE if there is nothing to return, [out] value is NULL 
   1.183 +   @retval E_INVALIDARG if bad [in] passed
   1.184 +  */
   1.185 +  [propget] HRESULT rowDescription
   1.186 +    (
   1.187 +     [in] long row, 
   1.188 +     [out, retval] BSTR *description
   1.189 +    );
   1.190 +
   1.191 +  /** @brief Returns a list of accessibles currently selected.
   1.192 +   @param [out] cells
   1.193 +    Pointer to an array of references to selected accessibles.  The array is
   1.194 +    allocated by the server with CoTaskMemAlloc and freed by the client with
   1.195 +    CoTaskMemFree.
   1.196 +   @param [out] nSelectedCells
   1.197 +    The number of accessibles returned; the size of the returned array.
   1.198 +   @retval S_OK
   1.199 +   @retval S_FALSE if there are none, [out] values are NULL and 0 respectively 
   1.200 +  */
   1.201 +  [propget] HRESULT selectedCells
   1.202 +    (
   1.203 +     [out, size_is(,*nSelectedCells)] IUnknown ***cells,
   1.204 +     [out, retval] long *nSelectedCells
   1.205 +    );
   1.206 +
   1.207 +  /** @brief Returns a list of column indexes currently selected (0 based).
   1.208 +   @param [out] selectedColumns
   1.209 +    A pointer to an array of column indexes of selected columns (each index is
   1.210 +    0 based).  The array is allocated by the server with CoTaskMemAlloc and
   1.211 +    freed by the client with CoTaskMemFree.
   1.212 +   @param [out] nColumns
   1.213 +    The number of column indexes returned; the size of the returned array.
   1.214 +   @retval S_OK
   1.215 +   @retval S_FALSE if there are none, [out] values are NULL and 0 respectively 
   1.216 +  */
   1.217 +  [propget] HRESULT selectedColumns
   1.218 +    (
   1.219 +     [out, size_is(,*nColumns)] long **selectedColumns,
   1.220 +     [out, retval] long *nColumns
   1.221 +    );
   1.222 +
   1.223 +  /** @brief Returns a list of row indexes currently selected (0 based).
   1.224 +   @param [out] selectedRows
   1.225 +    An array of row indexes of selected rows (each index is 0 based).  The array
   1.226 +    is allocated by the server with CoTaskMemAlloc and freed by the client with
   1.227 +    CoTaskMemFree.
   1.228 +   @param [out] nRows
   1.229 +    The number of row indexes returned; the size of the returned array.
   1.230 +   @retval S_OK
   1.231 +   @retval S_FALSE if there are none, [out] values are NULL and 0 respectively 
   1.232 +  */
   1.233 +  [propget] HRESULT selectedRows
   1.234 +    (
   1.235 +     [out, size_is(,*nRows)] long **selectedRows, 
   1.236 +     [out, retval] long *nRows 
   1.237 +    );
   1.238 +
   1.239 +  /** @brief Returns the summary description of the table.  The returned object could be 
   1.240 +    an IAccessible or an IAccessible2.
   1.241 +   @param [out] accessible
   1.242 +    Returns a reference to an implementation dependent accessible object 
   1.243 +    representing the table's summary or a NULL pointer if the table 
   1.244 +    does not support a summary.
   1.245 +   @retval S_OK
   1.246 +   @retval S_FALSE if there is nothing to return, [out] value is NULL
   1.247 +   @deprecated Use the labeledBy relation
   1.248 +  */
   1.249 +  [propget] HRESULT summary
   1.250 +    (
   1.251 +     [out, retval] IUnknown **accessible 
   1.252 +    );
   1.253 +
   1.254 +  /** @brief Returns a boolean value indicating whether the specified column is 
   1.255 +    completely selected.
   1.256 +   @param [in] column
   1.257 +    0 based index of the column for which to determine whether it is selected.
   1.258 +   @param [out] isSelected
   1.259 +    Returns TRUE if the specified column is selected completely and FALSE otherwise.
   1.260 +   @retval S_OK
   1.261 +   @retval E_INVALIDARG if bad [in] passed
   1.262 +  */
   1.263 +  [propget] HRESULT isColumnSelected
   1.264 +    (
   1.265 +     [in] long column,
   1.266 +     [out, retval] boolean *isSelected
   1.267 +    );
   1.268 +
   1.269 +  /** @brief Returns a boolean value indicating whether the specified row is completely 
   1.270 +    selected.
   1.271 +   @param [in] row
   1.272 +    0 based index of the row for which to determine whether it is selected.
   1.273 +   @param [out] isSelected
   1.274 +    Returns TRUE if the specified row is selected completely and FALSE otherwise.
   1.275 +   @retval S_OK
   1.276 +   @retval E_INVALIDARG if bad [in] passed
   1.277 +  */
   1.278 +  [propget] HRESULT isRowSelected
   1.279 +    (
   1.280 +     [in] long row,
   1.281 +     [out, retval] boolean *isSelected
   1.282 +    );
   1.283 +
   1.284 +  /** @brief Selects a row and unselects all previously selected rows.
   1.285 +
   1.286 +   The behavior should mimic that of the application, but for those applications
   1.287 +    which do not have a means in the GUI to select a full row of cells the behavior 
   1.288 +    should be as follows:  First any selected rows in the table are unselected.  Then
   1.289 +    the entire row of cells for the specified row is selected.  If any of the
   1.290 +    cells in the selected row span additional rows, the cells in those rows
   1.291 +    are also selected. 
   1.292 +   @param [in] row
   1.293 +    0 based index of the row to be selected.
   1.294 +   @retval S_OK
   1.295 +   @retval E_INVALIDARG if bad [in] passed
   1.296 +  */
   1.297 +  HRESULT selectRow
   1.298 +    (
   1.299 +     [in] long row 
   1.300 +    );
   1.301 +
   1.302 +  /** @brief Selects a column and unselects all previously selected columns.
   1.303 +
   1.304 +   The behavior should mimic that of the application, but for those applications
   1.305 +    which do not have a means in the GUI to select a full column of cells the behavior 
   1.306 +    should be as follows:  First any selected columns in the table are unselected.  Then
   1.307 +    the entire column of cells for the specified column is selected.  If any of the
   1.308 +    cells in the selected column span additional columns, the cells in those columns
   1.309 +    are also selected. 
   1.310 +   @param [in] column
   1.311 +    0 based index of the column to be selected.
   1.312 +   @retval S_OK
   1.313 +   @retval E_INVALIDARG if bad [in] passed
   1.314 +  */
   1.315 +  HRESULT selectColumn
   1.316 +    (
   1.317 +     [in] long column
   1.318 +    );
   1.319 +
   1.320 +  /** @brief Unselects one row, leaving other selected rows selected (if any).
   1.321 +
   1.322 +   The behavior should mimic that of the application, but for those applications
   1.323 +    which do not have a means in the GUI to unselect a full row of cells the
   1.324 +    behavior should be as follows:  The entire row of cells for the specified
   1.325 +    row is unselected.  If any of the cells in the selected row span additional
   1.326 +    rows, the cells in those rows are also unselected. 
   1.327 +   @param [in] row
   1.328 +    0 based index of the row to be unselected.
   1.329 +   @retval S_OK
   1.330 +   @retval E_INVALIDARG if bad [in] passed
   1.331 +  */
   1.332 +  HRESULT unselectRow
   1.333 +    (
   1.334 +     [in] long row
   1.335 +    );
   1.336 +
   1.337 +  /** @brief Unselects one column, leaving other selected columns selected (if any).
   1.338 +
   1.339 +   The behavior should mimic that of the application, but for those applications
   1.340 +    which do not have a means in the GUI to unselect a full column of cells the
   1.341 +    behavior should be as follows:  The entire column of cells for the specified
   1.342 +    column is unselected.  If any of the cells in the selected column span additional
   1.343 +    columns, the cells in those columns are also unselected. 
   1.344 +   @param [in] column
   1.345 +    0 based index of the column to be unselected.
   1.346 +   @retval S_OK
   1.347 +   @retval E_INVALIDARG if bad [in] passed
   1.348 +  */
   1.349 +  HRESULT unselectColumn
   1.350 +    (
   1.351 +     [in] long column
   1.352 +    );
   1.353 +
   1.354 +  /** @brief Returns the type and extents describing how a table changed.
   1.355 +  
   1.356 +   Provided for use by the IA2_EVENT_TABLE_MODEL_CHANGED event handler.
   1.357 +
   1.358 +   This data is only guaranteed to be valid while the thread notifying the event 
   1.359 +   continues. Once the handler has returned, the validity of the data depends on 
   1.360 +   how the server manages the life cycle of its objects. Also, note that the server 
   1.361 +   may have different life cycle management strategies for controls depending on 
   1.362 +   whether or not a control manages its children. Lists, trees, and tables can have 
   1.363 +   a large number of children and thus it's possible that the child objects for those 
   1.364 +   controls would only be created as needed. Servers should document their life cycle 
   1.365 +   strategy as this will be of interest to assistive technology or script engines 
   1.366 +   accessing data out of process or from other threads. Servers only need to save the 
   1.367 +   most recent row and column values associated with the change and a scope of the 
   1.368 +   entire application is adequate.
   1.369 +
   1.370 +   @param [out] modelChange
   1.371 +    A struct of (type(insert, delete, update), firstRow, lastRow, firstColumn, lastColumn).
   1.372 +   @retval S_OK
   1.373 +   @retval S_FALSE if there is nothing to return, [out] value is NULL 
   1.374 +  */
   1.375 +  [propget] HRESULT modelChange
   1.376 +    (
   1.377 +     [out, retval] IA2TableModelChange *modelChange
   1.378 +    );
   1.379 +
   1.380 +}

mercurial