2007-03-22 10:30:00 -07:00
|
|
|
/*************************************************************************
|
|
|
|
*
|
|
|
|
* File Name (AccessibleHyperlink.idl)
|
|
|
|
*
|
|
|
|
* IAccessible2 IDL Specification
|
|
|
|
*
|
2009-09-10 18:07:56 -07:00
|
|
|
* Copyright (c) Linux Foundation 2007, 2008
|
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
|
|
|
|
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02110-1301 USA
|
|
|
|
*
|
|
|
|
************************************************************************/
|
|
|
|
|
|
|
|
import "objidl.idl";
|
|
|
|
import "oaidl.idl";
|
|
|
|
import "oleacc.idl";
|
|
|
|
import "AccessibleAction.idl";
|
|
|
|
|
|
|
|
/** @brief This interface represents hyperlinks.
|
|
|
|
|
|
|
|
This interface represents a hyperlink associated with a single substring
|
|
|
|
of text or single non-text object. Non-text objects can have either a
|
|
|
|
single link or a collection of links such as when the non-text object is
|
|
|
|
an image map.
|
|
|
|
|
2009-09-10 18:07:56 -07:00
|
|
|
Linked objects and anchors are implementation dependent. This interface is derived
|
|
|
|
from IAccessibleAction. IAccessibleAction::nActions is one greater than the
|
2007-03-22 10:30:00 -07:00
|
|
|
maximum value for the indices used with the methods of this interface.
|
|
|
|
|
|
|
|
Furthermore, the object that implements this interface has to be connected
|
|
|
|
implicitly or explicitly with an object that implements IAccessibleText.
|
|
|
|
IAccessibleHyperlink::startIndex and IAccessibleHyperlink::endIndex are
|
|
|
|
indices with respect to the text exposed by IAccessibleText.
|
2009-09-10 18:07:56 -07:00
|
|
|
|
|
|
|
This interface provides access to a single object which can have multiple actions.
|
|
|
|
An example is an image map which is an image with multiple links each of which is
|
|
|
|
associated with a separate non-overlapping area of the image. This interface could
|
|
|
|
also be applied to other kinds of objects with multiple actions such as "smart tags"
|
|
|
|
which are objects, typically strings, which have multiple actions such as
|
|
|
|
"Activate URI", "Bookmark URI", etc.
|
|
|
|
|
|
|
|
An interesting use case is an image map where each area is associated with multiple
|
|
|
|
actions, e.g. an image map of smart tags. In this case you would have to implement
|
|
|
|
two levels of accessible hyperlinks. The first level hyperlinks would only implement
|
|
|
|
anchor and anchorTarget. The anchors would all reference the image object. The
|
|
|
|
anchorTargets would reference the second level accessible hyperlink objects. None
|
|
|
|
of the IAccessibleAction methods would be implemented on the first level hyperlink
|
|
|
|
objects. The second level hyperlink objects would implement the IAccessibleAction
|
|
|
|
methods. Their anchors would also reference the image object and their anchorTargets
|
|
|
|
would reference URLs or the objects that would be activated.
|
|
|
|
|
|
|
|
This use case demonstrates that in some cases there is no need for IAccessibleHyperlink
|
|
|
|
to derive from IAccessibleAction. As a result it may be removed in a later version of
|
|
|
|
the IDL and it is suggested that implementations should not rely on the inheritance.
|
|
|
|
|
2007-03-22 10:30:00 -07:00
|
|
|
*/
|
|
|
|
[object, uuid(01C20F2B-3DD2-400f-949F-AD00BDAB1D41)]
|
|
|
|
interface IAccessibleHyperlink : IAccessibleAction
|
|
|
|
{
|
|
|
|
|
|
|
|
/** @brief Returns an object that represents the link anchor, as appropriate
|
|
|
|
for the link at the specified index.
|
|
|
|
@param [in] index
|
|
|
|
A 0 based index identifies the anchor when, as in the case of an image map,
|
|
|
|
there is more than one link represented by this object. The valid maximal
|
|
|
|
index is indicated by IAccessibleAction::nActions.
|
|
|
|
@param [out] anchor
|
|
|
|
This is an implementation dependent value. For example, for a text link this
|
2009-09-10 18:07:56 -07:00
|
|
|
method could return the substring of the containing string where the substring
|
2007-03-22 10:30:00 -07:00
|
|
|
is overridden with link behavior, and for an image link this method could return
|
2009-09-10 18:07:56 -07:00
|
|
|
an IUnknown VARIANT for IAccessibleImage. See the section about
|
|
|
|
@ref _variants "VARIANTs" for additional information.
|
|
|
|
@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
|
2007-03-22 10:30:00 -07:00
|
|
|
*/
|
|
|
|
[propget] HRESULT anchor
|
|
|
|
(
|
|
|
|
[in] long index,
|
|
|
|
[out, retval] VARIANT *anchor
|
|
|
|
);
|
|
|
|
|
|
|
|
/** @brief Returns an object representing the target of the link, as appropriate
|
|
|
|
for the link at the specified index.
|
|
|
|
@param [in] index
|
|
|
|
A 0 based index identifies the anchor when, as in the case of an image map,
|
|
|
|
there is more than one link represented by this object. The valid maximal
|
|
|
|
index is indicated by IAccessibleAction::nActions.
|
|
|
|
@param [out] anchorTarget
|
|
|
|
This is an implementation dependent value. For example this method could
|
|
|
|
return a BSTR VARIANT of the URI. Alternatively this method could return an
|
|
|
|
IUnknown VARIANT of a COM interface representing a target object to be
|
2009-09-10 18:07:56 -07:00
|
|
|
activated when the link is activated. See the section about
|
|
|
|
@ref _variants "VARIANTs" for additional information.
|
|
|
|
@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
|
2007-03-22 10:30:00 -07:00
|
|
|
*/
|
|
|
|
[propget] HRESULT anchorTarget
|
|
|
|
(
|
|
|
|
[in] long index,
|
|
|
|
[out, retval] VARIANT *anchorTarget
|
|
|
|
);
|
|
|
|
|
2009-09-10 18:07:56 -07:00
|
|
|
/** @brief Returns the 0 based character offset at which the textual representation of the hyperlink starts.
|
2007-03-22 10:30:00 -07:00
|
|
|
|
|
|
|
The returned value is related to the IAccessibleText interface of the object that
|
|
|
|
owns this hyperlink.
|
|
|
|
@param [out] index
|
2009-09-10 18:07:56 -07:00
|
|
|
@retval S_OK
|
2007-03-22 10:30:00 -07:00
|
|
|
*/
|
|
|
|
[propget] HRESULT startIndex
|
|
|
|
(
|
|
|
|
[out, retval] long *index
|
|
|
|
);
|
|
|
|
|
2009-09-10 18:07:56 -07:00
|
|
|
/** @brief Returns the 0 based character offset at which the textual representation of the hyperlink ends.
|
2007-03-22 10:30:00 -07:00
|
|
|
|
|
|
|
The returned value is related to the IAccessibleText interface of the object that
|
|
|
|
owns this hyperlink. The character at the index is not part of the hypertext.
|
|
|
|
@param [out] index
|
2009-09-10 18:07:56 -07:00
|
|
|
@retval S_OK
|
2007-03-22 10:30:00 -07:00
|
|
|
*/
|
|
|
|
[propget] HRESULT endIndex
|
|
|
|
(
|
|
|
|
[out, retval] long *index
|
|
|
|
);
|
|
|
|
|
|
|
|
/** @brief Returns whether the target object referenced by this link is still valid.
|
|
|
|
|
|
|
|
This is a volatile state that may change without sending an appropriate event.
|
|
|
|
Returns TRUE if the referenced target is still valid and FALSE otherwise.
|
|
|
|
|
2009-09-10 18:07:56 -07:00
|
|
|
This has also been used to indicate whether or not the URI of the anchorTarget
|
|
|
|
is malformed.
|
|
|
|
|
|
|
|
Note: This method is not being used, is deprecated, and should not be implemented or
|
|
|
|
used. It is likely that this method will be removed in a later version of the IDL.
|
|
|
|
|
2007-03-22 10:30:00 -07:00
|
|
|
@param [out] valid
|
2009-09-10 18:07:56 -07:00
|
|
|
@retval S_OK
|
|
|
|
@retval S_FALSE if there is nothing to return, [out] value is FALSE
|
2007-03-22 10:30:00 -07:00
|
|
|
*/
|
|
|
|
[propget] HRESULT valid
|
|
|
|
(
|
|
|
|
[out, retval] boolean *valid
|
|
|
|
);
|
|
|
|
}
|