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 +}