2007-03-22 10:30:00 -07:00
|
|
|
/*************************************************************************
|
|
|
|
*
|
|
|
|
* File Name (AccessibleRelation.idl)
|
|
|
|
*
|
|
|
|
* IAccessible2 IDL Specification
|
|
|
|
*
|
2009-09-10 18:07:56 -07:00
|
|
|
* Copyright (c) Linux Foundation 2007, 2009
|
2007-03-22 10:30:00 -07:00
|
|
|
* Copyright (c) IBM Corp. 2006
|
|
|
|
* Copyright (c) Sun Microsystems, Inc. 2000, 2006
|
|
|
|
*
|
|
|
|
* This library is free software; you can redistribute it and/or
|
|
|
|
* modify it under the terms of the GNU Lesser General Public
|
|
|
|
* License version 2.1, as published by the Free Software Foundation; either
|
|
|
|
* version 2.1 of the License, or (at your option) any later version.
|
|
|
|
*
|
|
|
|
* This library is distributed in the hope that it will be useful,
|
|
|
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
|
|
* Lesser General Public License for more details.
|
|
|
|
*
|
|
|
|
* You should have received a copy of the GNU Lesser General Public
|
|
|
|
* License along with this library; if not, write to the Free Software
|
2009-09-10 18:07:56 -07:00
|
|
|
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
2007-03-22 10:30:00 -07:00
|
|
|
*
|
|
|
|
************************************************************************/
|
|
|
|
|
|
|
|
import "objidl.idl";
|
|
|
|
import "oaidl.idl";
|
|
|
|
import "oleacc.idl";
|
|
|
|
|
|
|
|
/** @defgroup grpRelations Relations
|
|
|
|
Use the following constants to compare against the BSTRs returned by
|
|
|
|
IAccessibleRelation::relationType.
|
|
|
|
*/
|
|
|
|
///@{
|
|
|
|
|
|
|
|
/** Some attribute of this object is affected by a target object. */
|
|
|
|
const WCHAR *const IA2_RELATION_CONTROLLED_BY = L"controlledBy";
|
|
|
|
|
|
|
|
/** This object is interactive and controls some attribute of a target object. */
|
|
|
|
const WCHAR *const IA2_RELATION_CONTROLLER_FOR = L"controllerFor";
|
|
|
|
|
|
|
|
/** This object is described by the target object. */
|
|
|
|
const WCHAR *const IA2_RELATION_DESCRIBED_BY = L"describedBy";
|
|
|
|
|
|
|
|
/** This object is describes the target object. */
|
|
|
|
const WCHAR *const IA2_RELATION_DESCRIPTION_FOR = L"descriptionFor";
|
|
|
|
|
|
|
|
/** This object is embedded by a target object. */
|
|
|
|
const WCHAR *const IA2_RELATION_EMBEDDED_BY = L"embeddedBy";
|
|
|
|
|
|
|
|
/** This object embeds a target object. This relation can be used on the
|
|
|
|
OBJID_CLIENT accessible for a top level window to show where the content
|
|
|
|
areas are.
|
|
|
|
*/
|
|
|
|
const WCHAR *const IA2_RELATION_EMBEDS = L"embeds";
|
|
|
|
|
2009-09-10 18:07:56 -07:00
|
|
|
/** Content flows to this object from a target object.
|
|
|
|
This relation and IA2_RELATION_FLOWS_TO are useful to tie text and non-text
|
|
|
|
objects together in order to allow assistive technology to follow the
|
|
|
|
intended reading order.
|
|
|
|
*/
|
2007-03-22 10:30:00 -07:00
|
|
|
const WCHAR *const IA2_RELATION_FLOWS_FROM = L"flowsFrom";
|
|
|
|
|
|
|
|
/** Content flows from this object to a target object. */
|
|
|
|
const WCHAR *const IA2_RELATION_FLOWS_TO = L"flowsTo";
|
|
|
|
|
|
|
|
/** This object is label for a target object. */
|
|
|
|
const WCHAR *const IA2_RELATION_LABEL_FOR = L"labelFor";
|
|
|
|
|
2009-09-10 18:07:56 -07:00
|
|
|
/** This object is labelled by a target object. Note that the double L spelling
|
|
|
|
which follows is preferred. Please use it instead. This single L version may
|
|
|
|
be removed in a later version.
|
|
|
|
*/
|
2007-03-22 10:30:00 -07:00
|
|
|
const WCHAR *const IA2_RELATION_LABELED_BY = L"labelledBy";
|
|
|
|
|
2009-09-10 18:07:56 -07:00
|
|
|
/** This object is labelled by a target object. */
|
|
|
|
const WCHAR *const IA2_RELATION_LABELLED_BY = L"labelledBy";
|
|
|
|
|
2007-03-22 10:30:00 -07:00
|
|
|
/** This object is a member of a group of one or more objects. When
|
|
|
|
there is more than one object in the group each member may have one and the
|
|
|
|
same target, e.g. a grouping object. It is also possible that each member has
|
|
|
|
multiple additional targets, e.g. one for every other member in the group.
|
|
|
|
*/
|
|
|
|
const WCHAR *const IA2_RELATION_MEMBER_OF = L"memberOf";
|
|
|
|
|
|
|
|
/** This object is a child of a target object. */
|
|
|
|
const WCHAR *const IA2_RELATION_NODE_CHILD_OF = L"nodeChildOf";
|
|
|
|
|
|
|
|
/** This object is a parent window of the target object. */
|
|
|
|
const WCHAR *const IA2_RELATION_PARENT_WINDOW_OF = L"parentWindowOf";
|
|
|
|
|
|
|
|
/** This object is a transient component related to the target object.
|
2009-09-10 18:07:56 -07:00
|
|
|
When this object is activated the target object doesn't loose focus.
|
2007-03-22 10:30:00 -07:00
|
|
|
*/
|
|
|
|
const WCHAR *const IA2_RELATION_POPUP_FOR = L"popupFor";
|
|
|
|
|
|
|
|
/** This object is a sub window of a target object. */
|
|
|
|
const WCHAR *const IA2_RELATION_SUBWINDOW_OF = L"subwindowOf";
|
|
|
|
|
|
|
|
///@}
|
|
|
|
|
|
|
|
/// This interface gives access to an object's set of relations.
|
|
|
|
[object, uuid(7CDF86EE-C3DA-496a-BDA4-281B336E1FDC)]
|
|
|
|
interface IAccessibleRelation : IUnknown
|
|
|
|
{
|
|
|
|
/** @brief Returns the type of the relation.
|
|
|
|
@param [out] relationType
|
2009-09-10 18:07:56 -07:00
|
|
|
The strings returned are defined @ref grpRelations "in this section of the documentation".
|
|
|
|
@retval S_OK
|
2007-03-22 10:30:00 -07:00
|
|
|
*/
|
|
|
|
[propget] HRESULT relationType
|
|
|
|
(
|
|
|
|
[out, retval] BSTR *relationType
|
|
|
|
);
|
|
|
|
|
|
|
|
/** @brief Returns a localized version of the relation type.
|
|
|
|
@param [out] localizedRelationType
|
2009-09-10 18:07:56 -07:00
|
|
|
@retval S_OK
|
2007-03-22 10:30:00 -07:00
|
|
|
*/
|
|
|
|
[propget] HRESULT localizedRelationType
|
|
|
|
(
|
|
|
|
[out, retval] BSTR *localizedRelationType
|
|
|
|
);
|
|
|
|
|
|
|
|
/** @brief Returns the number of targets for this relation.
|
|
|
|
@param [out] nTargets
|
2009-09-10 18:07:56 -07:00
|
|
|
@retval S_OK
|
2007-03-22 10:30:00 -07:00
|
|
|
*/
|
|
|
|
[propget] HRESULT nTargets
|
|
|
|
(
|
|
|
|
[out, retval] long *nTargets
|
|
|
|
);
|
|
|
|
|
|
|
|
/** @brief Returns one accessible relation target.
|
|
|
|
@param [in] targetIndex
|
|
|
|
0 based index
|
|
|
|
@param [out] target
|
2009-09-10 18:07:56 -07:00
|
|
|
@retval S_OK
|
|
|
|
@retval S_FALSE if there is nothing to return, [out] value is NULL
|
|
|
|
@retval E_INVALIDARG if bad [in] passed, [out] value is NULL
|
|
|
|
@note Use QueryInterface to get IAccessible2.
|
2007-03-22 10:30:00 -07:00
|
|
|
*/
|
|
|
|
[propget] HRESULT target
|
|
|
|
(
|
|
|
|
[in] long targetIndex,
|
|
|
|
[out, retval] IUnknown **target
|
|
|
|
);
|
|
|
|
|
|
|
|
/** @brief Returns multiple accessible relation targets
|
|
|
|
@param [in] maxTargets
|
2009-09-10 18:07:56 -07:00
|
|
|
maximum size of the array allocated by the client
|
|
|
|
@param [out] targets
|
|
|
|
The array of target objects. Note that this array is to be allocated by the
|
|
|
|
client and freed when no longer needed. Refer to @ref _arrayConsideration
|
|
|
|
"Special Consideration when using Arrays" for more details. You will need to use
|
|
|
|
QueryInterface on the IUnknown to get the IAccessible2.
|
2007-03-22 10:30:00 -07:00
|
|
|
@param [out] nTargets
|
2009-09-10 18:07:56 -07:00
|
|
|
actual number of targets in the returned array (not more than maxTargets)
|
|
|
|
@retval S_OK
|
|
|
|
@retval S_FALSE if there is nothing to return, nTargets is set to 0
|
2007-03-22 10:30:00 -07:00
|
|
|
*/
|
|
|
|
[propget] HRESULT targets
|
|
|
|
(
|
|
|
|
[in] long maxTargets,
|
|
|
|
[out, size_is(maxTargets), length_is(*nTargets)]
|
2009-09-10 18:07:56 -07:00
|
|
|
IUnknown **targets,
|
2007-03-22 10:30:00 -07:00
|
|
|
[out, retval] long *nTargets
|
|
|
|
);
|
|
|
|
|
|
|
|
}
|