/************************************************************************* * * File Name (AccessibleAction.idl) * * IAccessible2 IDL Specification * * 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"; /** @brief This interface gives access to actions that can be executed for accessible objects. Every accessible object that can be manipulated beyond its methods exported over the accessibility API should support this interface to expose all actions that it can perform. Each action can be performed or queried for a name, description or associated key bindings. Actions are needed more for ATs that assist the mobility impaired. By providing actions directly, the AT can present them to the user without the user having to perform the extra steps to navigate a context menu. */ [object, uuid(B70D9F59-3B5A-4dba-AB9E-22012F607DF5)] interface IAccessibleAction : IUnknown { /** @brief Returns the number of accessible actions available in this object. If there are more than one, the first one is considered the "default" action of the object. @param [out] nActions The returned value of the number of actions is zero if there are no actions. */ HRESULT nActions ( [out,retval] long* nActions ); /** @brief Performs the specified Action on the object. @param [in] actionIndex This index specifies the action to perform. If it lies outside the valid range no action is performed. */ HRESULT doAction ( [in] long actionIndex ); /** @brief Returns a description of the specified action of the object. @param [in] actionIndex This index specifies the action of which to return a description. If it lies outside the valid range an empty string is returned. @param [out] description The returned value is a localized string of the specified action. */ [propget] HRESULT description ( [in] long actionIndex, [out, retval] BSTR *description ); /** @brief Returns an array of BSTRs describing one or more key bindings, if there are any, associated with the specified action. Note: the client allocates and passes in an array of pointers. The server allocates the BSTRs and passes back one or more pointers to these BSTRs into the array of pointers allocated by the client. The client is responsible for deallocating the BSTRs. @param [in] actionIndex This index specifies the action of which to return the key bindings. @param [in] nMaxBinding The maximum number of keybindings requested, i.e. the size of the array allocated to hold the results. @param [out] keyBinding An array of BSTRs, one for each key binding. @param [out] nBinding The actual number of key bindings returned. */ [propget] HRESULT keyBinding ( [in] long actionIndex, [in] long nMaxBinding, [out, size_is(,nMaxBinding), length_is(,*nBinding)] BSTR **keyBinding, [out, retval] long *nBinding ); /** @brief Returns the non-localized name of specified action. @param [in] actionIndex @param [out] name */ [propget] HRESULT name ( [in] long actionIndex, [out, retval] BSTR *name ); /** @brief Returns the localized name of specified action. @param [in] actionIndex @param [out] localizedName */ [propget] HRESULT localizedName ( [in] long actionIndex, [out, retval] BSTR *localizedName ); }