other-licenses/ia2/AccessibleTable.idl

Tue, 06 Jan 2015 21:39:09 +0100

author
Michael Schloh von Bennewitz <michael@schloh.com>
date
Tue, 06 Jan 2015 21:39:09 +0100
branch
TOR_BUG_9701
changeset 8
97036ab72558
permissions
-rw-r--r--

Conditionally force memory storage according to privacy.thirdparty.isolate;
This solves Tor bug #9701, complying with disk avoidance documented in
https://www.torproject.org/projects/torbrowser/design/#disk-avoidance.

michael@0 1 /*************************************************************************
michael@0 2 *
michael@0 3 * File Name (AccessibleTable.idl)
michael@0 4 *
michael@0 5 * IAccessible2 IDL Specification
michael@0 6 *
michael@0 7 * Copyright (c) 2007, 2013 Linux Foundation
michael@0 8 * Copyright (c) 2006 IBM Corporation
michael@0 9 * Copyright (c) 2000, 2006 Sun Microsystems, Inc.
michael@0 10 * All rights reserved.
michael@0 11 *
michael@0 12 *
michael@0 13 * Redistribution and use in source and binary forms, with or without
michael@0 14 * modification, are permitted provided that the following conditions
michael@0 15 * are met:
michael@0 16 *
michael@0 17 * 1. Redistributions of source code must retain the above copyright
michael@0 18 * notice, this list of conditions and the following disclaimer.
michael@0 19 *
michael@0 20 * 2. Redistributions in binary form must reproduce the above
michael@0 21 * copyright notice, this list of conditions and the following
michael@0 22 * disclaimer in the documentation and/or other materials
michael@0 23 * provided with the distribution.
michael@0 24 *
michael@0 25 * 3. Neither the name of the Linux Foundation nor the names of its
michael@0 26 * contributors may be used to endorse or promote products
michael@0 27 * derived from this software without specific prior written
michael@0 28 * permission.
michael@0 29 *
michael@0 30 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
michael@0 31 * CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
michael@0 32 * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
michael@0 33 * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
michael@0 34 * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
michael@0 35 * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
michael@0 36 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
michael@0 37 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
michael@0 38 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
michael@0 39 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
michael@0 40 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
michael@0 41 * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
michael@0 42 * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
michael@0 43 *
michael@0 44 * This BSD License conforms to the Open Source Initiative "Simplified
michael@0 45 * BSD License" as published at:
michael@0 46 * http://www.opensource.org/licenses/bsd-license.php
michael@0 47 *
michael@0 48 * IAccessible2 is a trademark of the Linux Foundation. The IAccessible2
michael@0 49 * mark may be used in accordance with the Linux Foundation Trademark
michael@0 50 * Policy to indicate compliance with the IAccessible2 specification.
michael@0 51 *
michael@0 52 ************************************************************************/
michael@0 53
michael@0 54 import "objidl.idl";
michael@0 55 import "oaidl.idl";
michael@0 56 import "oleacc.idl";
michael@0 57 import "Accessible2.idl";
michael@0 58 import "IA2CommonTypes.idl";
michael@0 59
michael@0 60 /** @brief This interface gives access to a two-dimensional table.
michael@0 61
michael@0 62 Typically all accessible objects that represent cells or cell-clusters of a table
michael@0 63 will be at the same time children of the table. In this case IAccessible2::indexInParent
michael@0 64 will return the child index which then can be used when calling IAccessibleTable::rowIndex
michael@0 65 and IAccessibleTable::columnIndex.
michael@0 66
michael@0 67 However, in some cases that kind of implementation will not be possible. When
michael@0 68 the table cells are not direct children of a table, the object representing
michael@0 69 the cell can define a "table-cell-index" object attribute identifying the 0
michael@0 70 based table cell index. This object attribute is obtained by parsing the
michael@0 71 attribute string returned by IAccessible2::attributes. The "table-cell-index"
michael@0 72 attribute can be used just like a child index of the typical case. ATs should
michael@0 73 first test for the presence of the "table-cell-index" attribute and if it is not
michael@0 74 present then IAccessible2::indexInParent can be used as in the typical case
michael@0 75 where cells are direct children of the table.
michael@0 76
michael@0 77 The range of valid coordinates for this interface are implementation dependent.
michael@0 78 However, that range includes at least the intervals from the from the first row
michael@0 79 or column with the index 0 up to the last (but not including) used row or column
michael@0 80 as returned by IAccessibleTable::nRows and IAccessibleTable::nColumns.
michael@0 81
michael@0 82 Note that newer implementations are now using IAccessibleTable2 and IAccessibleTableCell
michael@0 83 rather than this interface.
michael@0 84 */
michael@0 85 [object, uuid(35AD8070-C20C-4fb4-B094-F4F7275DD469)]
michael@0 86 interface IAccessibleTable : IUnknown
michael@0 87 {
michael@0 88
michael@0 89 /** @brief Returns the accessible object at the specified row and column in
michael@0 90 the table. This object could be an IAccessible or an IAccessible2.
michael@0 91 @param [in] row
michael@0 92 The 0 based row index for which to retrieve the cell.
michael@0 93 @param [in] column
michael@0 94 The 0 based column index for which to retrieve the cell.
michael@0 95 @param [out] accessible
michael@0 96 If both row and column index are valid then the corresponding accessible
michael@0 97 object is returned that represents the requested cell regardless of whether
michael@0 98 the cell is currently visible (on the screen).
michael@0 99 @retval S_OK
michael@0 100 @retval E_INVALIDARG if bad [in] passed, [out] value is NULL
michael@0 101 */
michael@0 102 [propget] HRESULT accessibleAt
michael@0 103 (
michael@0 104 [in] long row,
michael@0 105 [in] long column,
michael@0 106 [out, retval] IUnknown **accessible
michael@0 107 );
michael@0 108
michael@0 109 /** @brief Returns the caption for the table. The returned object could be
michael@0 110 an IAccessible or an IAccessible2.
michael@0 111 @param [out] accessible
michael@0 112 If the table has a caption then a reference to it is returned, else a NULL
michael@0 113 pointer is returned.
michael@0 114 @retval S_OK
michael@0 115 @retval S_FALSE if there is nothing to return, [out] value is NULL
michael@0 116 */
michael@0 117 [propget] HRESULT caption
michael@0 118 (
michael@0 119 [out, retval] IUnknown **accessible
michael@0 120 );
michael@0 121
michael@0 122 /** @brief Translates the given row and column indexes into the corresponding cell index.
michael@0 123 @param [in] rowIndex
michael@0 124 0 based row index for the cell.
michael@0 125 @param [in] columnIndex
michael@0 126 0 based column index for the cell.
michael@0 127 @param [out] cellIndex
michael@0 128 Returns the 0 based index of the cell at the specified row and column indexes.
michael@0 129 @retval S_OK
michael@0 130 @retval E_INVALIDARG if bad [in] passed, [out] value is 0
michael@0 131 @note The returned value is not necessarily a child index of the immediate parent.
michael@0 132 In cases where the table cells are not direct children of the table the index
michael@0 133 is actually the cell index, i.e. conceptually it's an index into a one dimensional
michael@0 134 array of cells laid out in row order.
michael@0 135 */
michael@0 136 [propget] HRESULT childIndex
michael@0 137 (
michael@0 138 [in] long rowIndex,
michael@0 139 [in] long columnIndex,
michael@0 140 [out, retval] long *cellIndex
michael@0 141 );
michael@0 142
michael@0 143 /** @brief Returns the description text of the specified column in the table.
michael@0 144 @param [in] column
michael@0 145 The 0 based index of the column for which to retrieve the description.
michael@0 146 @param [out] description
michael@0 147 Returns the description text of the specified column in the table if such a
michael@0 148 description exists. Otherwise a NULL pointer is returned.
michael@0 149 @retval S_OK
michael@0 150 @retval S_FALSE if there is nothing to return, [out] value is NULL
michael@0 151 @retval E_INVALIDARG if bad [in] passed, [out] value is NULL
michael@0 152 */
michael@0 153 [propget] HRESULT columnDescription
michael@0 154 (
michael@0 155 [in] long column,
michael@0 156 [out, retval] BSTR *description
michael@0 157 );
michael@0 158
michael@0 159 /** @brief Returns the number of columns occupied by the accessible object
michael@0 160 at the specified row and column in the table.
michael@0 161
michael@0 162 The result is greater than 1 if the specified cell spans multiple columns.
michael@0 163 @param [in] row
michael@0 164 0 based row index of the accessible for which to return the column extent.
michael@0 165 @param [in] column
michael@0 166 0 based column index of the accessible for which to return the column extent.
michael@0 167 @param [out] nColumnsSpanned
michael@0 168 Returns the 1 based column extent of the specified cell.
michael@0 169 @retval S_OK
michael@0 170 @retval E_INVALIDARG if bad [in] passed, [out] value is 0
michael@0 171 */
michael@0 172 [propget] HRESULT columnExtentAt
michael@0 173 (
michael@0 174 [in] long row,
michael@0 175 [in] long column,
michael@0 176 [out, retval] long *nColumnsSpanned
michael@0 177 );
michael@0 178
michael@0 179 /** @brief Returns the column headers as an %IAccessibleTable object.
michael@0 180
michael@0 181 Content and size of the returned table are implementation dependent.
michael@0 182 @param [out] accessibleTable
michael@0 183 The column header
michael@0 184 @param [out] startingRowIndex
michael@0 185 The 0 based row index where the header starts, usually 0.
michael@0 186 @retval S_OK
michael@0 187 @retval S_FALSE if there is no header, [out] values are NULL and 0 respectively
michael@0 188 */
michael@0 189 [propget] HRESULT columnHeader
michael@0 190 (
michael@0 191 [out] IAccessibleTable **accessibleTable,
michael@0 192 [out, retval] long *startingRowIndex
michael@0 193 );
michael@0 194
michael@0 195 /** @brief Translates the given cell index into the corresponding column index.
michael@0 196 @param [in] cellIndex
michael@0 197 0 based index of the cell in the parent or closest ancestor table. Typically this
michael@0 198 is the value returned from IAccessible2::indexInParent, but in the case where the
michael@0 199 table cells are not direct children of the table this is the cell index specified
michael@0 200 by the "table-cell-index" object attribute obtained from parsing the attributes
michael@0 201 string returned by calling IAccessible2::attributes on the cell object.
michael@0 202 @param [out] columnIndex
michael@0 203 Returns the 0 based column index of the cell of the specified child or the index of
michael@0 204 the first column if the child spans multiple columns.
michael@0 205 @retval S_OK
michael@0 206 @retval E_INVALIDARG if bad [in] passed, [out] value is 0
michael@0 207 */
michael@0 208 [propget] HRESULT columnIndex
michael@0 209 (
michael@0 210 [in] long cellIndex,
michael@0 211 [out, retval] long *columnIndex
michael@0 212 );
michael@0 213
michael@0 214 /** @brief Returns the total number of columns in table
michael@0 215 @param [out] columnCount
michael@0 216 Number of columns in table (including columns outside the current viewport)
michael@0 217 @retval S_OK
michael@0 218 */
michael@0 219 [propget] HRESULT nColumns
michael@0 220 (
michael@0 221 [out, retval] long *columnCount
michael@0 222 );
michael@0 223
michael@0 224 /** @brief Returns the total number of rows in table
michael@0 225 @param [out] rowCount
michael@0 226 Number of rows in table (including rows outside the current viewport)
michael@0 227 @retval S_OK
michael@0 228 */
michael@0 229 [propget] HRESULT nRows
michael@0 230 (
michael@0 231 [out, retval] long *rowCount
michael@0 232 );
michael@0 233
michael@0 234 /** @brief Returns the total number of selected cells
michael@0 235 @param [out] cellCount
michael@0 236 Number of cells currently selected
michael@0 237 @retval S_OK
michael@0 238 */
michael@0 239 [propget] HRESULT nSelectedChildren
michael@0 240 (
michael@0 241 [out, retval] long *cellCount
michael@0 242 );
michael@0 243
michael@0 244 /** @brief Returns the total number of selected columns
michael@0 245 @param [out] columnCount
michael@0 246 Number of columns currently selected
michael@0 247 @retval S_OK
michael@0 248 */
michael@0 249 [propget] HRESULT nSelectedColumns
michael@0 250 (
michael@0 251 [out, retval] long *columnCount
michael@0 252 );
michael@0 253
michael@0 254 /** @brief Returns the total number of selected rows
michael@0 255 @param [out] rowCount
michael@0 256 Number of rows currently selected
michael@0 257 @retval S_OK
michael@0 258 */
michael@0 259 [propget] HRESULT nSelectedRows
michael@0 260 (
michael@0 261 [out, retval] long *rowCount
michael@0 262 );
michael@0 263
michael@0 264 /** @brief Returns the description text of the specified row in the table.
michael@0 265 @param [in] row
michael@0 266 The 0 based index of the row for which to retrieve the description.
michael@0 267 @param [out] description
michael@0 268 Returns the description text of the specified row in the table if such a
michael@0 269 description exists. Otherwise a NULL pointer is returned.
michael@0 270 @retval S_OK
michael@0 271 @retval S_FALSE if there is nothing to return, [out] value is NULL
michael@0 272 @retval E_INVALIDARG if bad [in] passed, [out] value is NULL
michael@0 273 */
michael@0 274 [propget] HRESULT rowDescription
michael@0 275 (
michael@0 276 [in] long row,
michael@0 277 [out, retval] BSTR *description
michael@0 278 );
michael@0 279
michael@0 280 /** @brief Returns the number of rows occupied by the accessible object
michael@0 281 at the specified row and column in the table.
michael@0 282
michael@0 283 The result is greater than 1 if the specified cell spans multiple rows.
michael@0 284 @param [in] row
michael@0 285 0 based row index of the accessible for which to return the row extent.
michael@0 286 @param [in] column
michael@0 287 0 based column index of the accessible for which to return the row extent.
michael@0 288 @param [out] nRowsSpanned
michael@0 289 Returns the row extent of the specified cell.
michael@0 290 @retval S_OK
michael@0 291 @retval E_INVALIDARG if bad [in] passed, [out] value is 0
michael@0 292 */
michael@0 293 [propget] HRESULT rowExtentAt
michael@0 294 (
michael@0 295 [in] long row,
michael@0 296 [in] long column,
michael@0 297 [out, retval] long *nRowsSpanned
michael@0 298 );
michael@0 299
michael@0 300 /** @brief Returns the row headers as an %IAccessibleTable object.
michael@0 301
michael@0 302 Content and size of the returned table are implementation dependent.
michael@0 303 @param [out] accessibleTable
michael@0 304 The row header.
michael@0 305 @param [out] startingColumnIndex
michael@0 306 The 0 based column index where the header starts, usually 0.
michael@0 307 @retval S_OK
michael@0 308 @retval S_FALSE if there is no header, [out] values are NULL and 0 respectively
michael@0 309 */
michael@0 310 [propget] HRESULT rowHeader
michael@0 311 (
michael@0 312 [out] IAccessibleTable **accessibleTable,
michael@0 313 [out, retval] long *startingColumnIndex
michael@0 314 );
michael@0 315
michael@0 316 /** @brief Translates the given cell index into a row index.
michael@0 317 @param [in] cellIndex
michael@0 318 0 based index of the cell in the parent or closest ancestor table. Typically this
michael@0 319 is the value returned from IAccessible2::indexInParent, but in the case where the
michael@0 320 table cells are not direct children of the table this is the cell index specified
michael@0 321 by the "table-cell-index" object attribute obtained from parsing the attributes
michael@0 322 string returned by calling IAccessible2::attributes on the cell object.
michael@0 323 @param [out] rowIndex
michael@0 324 0 based row index
michael@0 325 @retval S_OK
michael@0 326 @retval E_INVALIDARG if bad [in] passed, [out] value is 0
michael@0 327 */
michael@0 328 [propget] HRESULT rowIndex
michael@0 329 (
michael@0 330 [in] long cellIndex,
michael@0 331 [out, retval] long *rowIndex
michael@0 332 );
michael@0 333
michael@0 334 /** @brief Returns a list of cell indexes currently selected (0 based).
michael@0 335 @param [in] maxChildren
michael@0 336 This parameter is ignored. Refer to @ref _arrayConsideration
michael@0 337 "Special Consideration when using Arrays" for more details.
michael@0 338 @param [out] children
michael@0 339 An array of cell indexes of selected cells (each index is 0 based),
michael@0 340 allocated by the server. The client must free it with CoTaskMemFree.
michael@0 341 @param [out] nChildren
michael@0 342 The number of cell indexes returned; the size of the returned array.
michael@0 343 @retval S_OK
michael@0 344 @retval S_FALSE if there are none, [out] values are NULL and 0 respectively
michael@0 345 */
michael@0 346 [propget] HRESULT selectedChildren
michael@0 347 (
michael@0 348 [in] long maxChildren,
michael@0 349 [out, size_is(,maxChildren), length_is(,*nChildren)] long **children,
michael@0 350 [out, retval] long *nChildren
michael@0 351 );
michael@0 352
michael@0 353 /** @brief Returns a list of column indexes currently selected (0 based).
michael@0 354 @param [in] maxColumns
michael@0 355 This parameter is ignored. Refer to @ref _arrayConsideration
michael@0 356 "Special Consideration when using Arrays" for more details.
michael@0 357 @param [out] columns
michael@0 358 An array of column indexes of selected columns (each index is 0 based), allocated
michael@0 359 by the server. The client must free it with CoTaskMemFree.
michael@0 360 @param [out] nColumns
michael@0 361 The number of column indexes returned; the size of the returned array.
michael@0 362 @retval S_OK
michael@0 363 @retval S_FALSE if there are none, [out] values are NULL and 0 respectively
michael@0 364 */
michael@0 365 [propget] HRESULT selectedColumns
michael@0 366 (
michael@0 367 [in] long maxColumns,
michael@0 368 [out, size_is(,maxColumns), length_is(,*nColumns)] long **columns,
michael@0 369 [out, retval] long *nColumns
michael@0 370 );
michael@0 371
michael@0 372 /** @brief Returns a list of row indexes currently selected (0 based).
michael@0 373 @param [in] maxRows
michael@0 374 This parameter is ignored. Refer to @ref _arrayConsideration
michael@0 375 "Special Consideration when using Arrays" for more details.
michael@0 376 @param [out] rows
michael@0 377 An array of row indexes of selected rows (each index is 0 based), allocated
michael@0 378 by the server. The client must free it with CoTaskMemFree.
michael@0 379 @param [out] nRows
michael@0 380 The number of row indexes returned; the size of the returned array.
michael@0 381 @retval S_OK
michael@0 382 @retval S_FALSE if there are none, [out] values are NULL and 0 respectively
michael@0 383 */
michael@0 384 [propget] HRESULT selectedRows
michael@0 385 (
michael@0 386 [in] long maxRows,
michael@0 387 [out, size_is(,maxRows), length_is(,*nRows)] long **rows,
michael@0 388 [out, retval] long *nRows
michael@0 389 );
michael@0 390
michael@0 391 /** @brief Returns the summary description of the table. The returned object could be
michael@0 392 an IAccessible or an IAccessible2.
michael@0 393 @param [out] accessible
michael@0 394 Returns a reference to an implementation dependent accessible object
michael@0 395 representing the table's summary or a NULL pointer if the table
michael@0 396 does not support a summary.
michael@0 397 @retval S_OK
michael@0 398 @retval S_FALSE if there is nothing to return, [out] value is NULL
michael@0 399 */
michael@0 400 [propget] HRESULT summary
michael@0 401 (
michael@0 402 [out, retval] IUnknown **accessible
michael@0 403 );
michael@0 404
michael@0 405 /** @brief Returns a boolean value indicating whether the specified column is
michael@0 406 completely selected.
michael@0 407 @param [in] column
michael@0 408 0 based index of the column for which to determine whether it is selected.
michael@0 409 @param [out] isSelected
michael@0 410 Returns TRUE if the specified column is selected completely and FALSE otherwise.
michael@0 411 @retval S_OK
michael@0 412 @retval E_INVALIDARG if bad [in] passed, [out] value is FALSE
michael@0 413 */
michael@0 414 [propget] HRESULT isColumnSelected
michael@0 415 (
michael@0 416 [in] long column,
michael@0 417 [out, retval] boolean *isSelected
michael@0 418 );
michael@0 419
michael@0 420 /** @brief Returns a boolean value indicating whether the specified row is completely
michael@0 421 selected.
michael@0 422 @param [in] row
michael@0 423 0 based index of the row for which to determine whether it is selected.
michael@0 424 @param [out] isSelected
michael@0 425 Returns TRUE if the specified row is selected completely and FALSE otherwise.
michael@0 426 @retval S_OK
michael@0 427 @retval E_INVALIDARG if bad [in] passed, [out] value is FALSE
michael@0 428 */
michael@0 429 [propget] HRESULT isRowSelected
michael@0 430 (
michael@0 431 [in] long row,
michael@0 432 [out, retval] boolean *isSelected
michael@0 433 );
michael@0 434
michael@0 435 /** @brief Returns a boolean value indicating whether the specified cell is selected.
michael@0 436 @param [in] row
michael@0 437 0 based index of the row for the cell to determine whether it is selected.
michael@0 438 @param [in] column
michael@0 439 0 based index of the column for the cell to determine whether it is selected.
michael@0 440 @param [out] isSelected
michael@0 441 Returns TRUE if the specified cell is selected and FALSE otherwise.
michael@0 442 @retval S_OK
michael@0 443 @retval E_INVALIDARG if bad [in] passed, [out] value is FALSE
michael@0 444 */
michael@0 445 [propget] HRESULT isSelected
michael@0 446 (
michael@0 447 [in] long row,
michael@0 448 [in] long column,
michael@0 449 [out, retval] boolean *isSelected
michael@0 450 );
michael@0 451
michael@0 452 /** @brief Selects a row and unselects all previously selected rows.
michael@0 453 @param [in] row
michael@0 454 0 based index of the row to be selected.
michael@0 455 @retval S_OK
michael@0 456 @retval E_INVALIDARG if bad [in] passed
michael@0 457 */
michael@0 458 HRESULT selectRow
michael@0 459 (
michael@0 460 [in] long row
michael@0 461 );
michael@0 462
michael@0 463 /** @brief Selects a column and unselects all previously selected columns.
michael@0 464 @param [in] column
michael@0 465 0 based index of the column to be selected.
michael@0 466 @retval S_OK
michael@0 467 @retval E_INVALIDARG if bad [in] passed
michael@0 468 */
michael@0 469 HRESULT selectColumn
michael@0 470 (
michael@0 471 [in] long column
michael@0 472 );
michael@0 473
michael@0 474 /** @brief Unselects one row, leaving other selected rows selected (if any).
michael@0 475 @param [in] row
michael@0 476 0 based index of the row to be unselected.
michael@0 477 @retval S_OK
michael@0 478 @retval E_INVALIDARG if bad [in] passed
michael@0 479 */
michael@0 480 HRESULT unselectRow
michael@0 481 (
michael@0 482 [in] long row
michael@0 483 );
michael@0 484
michael@0 485 /** @brief Unselects one column, leaving other selected columns selected (if any).
michael@0 486 @param [in] column
michael@0 487 0 based index of the column to be unselected.
michael@0 488 @retval S_OK
michael@0 489 @retval E_INVALIDARG if bad [in] passed
michael@0 490 */
michael@0 491 HRESULT unselectColumn
michael@0 492 (
michael@0 493 [in] long column
michael@0 494 );
michael@0 495
michael@0 496 /** @brief Given a cell index, gets the row and column indexes and extents of a cell
michael@0 497 and whether or not it is selected.
michael@0 498
michael@0 499 This is a convenience function. It is not mandatory to implement it.
michael@0 500 @param [in] index
michael@0 501 0 based index of this cell in the table.
michael@0 502 @param [out] row
michael@0 503 0 based row index.
michael@0 504 @param [out] column
michael@0 505 0 based column index.
michael@0 506 @param [out] rowExtents
michael@0 507 Number of cells spanned by this cell in this row.
michael@0 508 @param [out] columnExtents
michael@0 509 Number of cells spanned by this cell in this column.
michael@0 510 @param [out] isSelected
michael@0 511 Indicates if the specified cell is selected.
michael@0 512 @retval S_OK
michael@0 513 @retval E_INVALIDARG if bad [in] passed, [out] values are 0s and FALSE respectively
michael@0 514 */
michael@0 515 [propget] HRESULT rowColumnExtentsAtIndex
michael@0 516 (
michael@0 517 [in] long index,
michael@0 518 [out] long *row,
michael@0 519 [out] long *column,
michael@0 520 [out] long *rowExtents,
michael@0 521 [out] long *columnExtents,
michael@0 522 [out, retval] boolean *isSelected
michael@0 523 );
michael@0 524
michael@0 525 /** @brief Returns the type and extents describing how a table changed.
michael@0 526
michael@0 527 Provided for use by the IA2_EVENT_TABLE_MODEL_CHANGED event handler.
michael@0 528
michael@0 529 This data is only guaranteed to be valid while the thread notifying the event
michael@0 530 continues. Once the handler has returned, the validity of the data depends on
michael@0 531 how the server manages the life cycle of its objects. Also, note that the server
michael@0 532 may have different life cycle management strategies for controls depending on
michael@0 533 whether or not a control manages its children. Lists, trees, and tables can have
michael@0 534 a large number of children and thus it's possible that the child objects for those
michael@0 535 controls would only be created as needed. Servers should document their life cycle
michael@0 536 strategy as this will be of interest to assistive technology or script engines
michael@0 537 accessing data out of process or from other threads. Servers only need to save the
michael@0 538 most recent row and column values associated with the change and a scope of the
michael@0 539 entire application is adequate.
michael@0 540
michael@0 541 @param [out] modelChange
michael@0 542 A struct of (type(insert, delete, update), firstRow, lastRow, firstColumn, lastColumn).
michael@0 543 @retval S_OK
michael@0 544 @retval S_FALSE if there is nothing to return, [out] value is NULL
michael@0 545 */
michael@0 546 [propget] HRESULT modelChange
michael@0 547 (
michael@0 548 [out, retval] IA2TableModelChange *modelChange
michael@0 549 );
michael@0 550
michael@0 551 }

mercurial