/************************************************************************* * * File Name (AccessibleEditableText.idl) * * IAccessible2 IDL Specification * * Copyright (c) Linux Foundation 2007, 2008 * 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA * ************************************************************************/ import "objidl.idl"; import "oaidl.idl"; import "oleacc.idl"; import "IA2CommonTypes.idl"; /** @brief This interface provides clipboard capability to text objects. This interface is typically used in conjunction with the IAccessibleText interface and complements that interface with the additional capability of clipboard operations. Note that even a read only text object can support the copy capability so this interface is not limited to editable objects. The substrings used with this interface are specified as follows: If startOffset is less than endOffset, the substring starts with the character at startOffset and ends with the character just before endOffset. If endOffset is lower than startOffset, the result is the same as a call with the two arguments exchanged. The whole text can be defined by passing the indices zero and IAccessibleText::nCharacters. If both indices have the same value, an empty string is defined. Refer to the @ref _specialOffsets "Special Offsets for use in the IAccessibleText and IAccessibleEditableText Methods" for information about a special offset constant that can be used in %IAccessibleEditableText methods. */ [object, uuid(A59AA09A-7011-4b65-939D-32B1FB5547E3)] interface IAccessibleEditableText : IUnknown { /** @brief Copies the text range into the clipboard. The specified text between the two given indices is copied into the system clipboard. @param [in] startOffset Start index of the text to moved into the clipboard. The valid range is 0..length. @param [in] endOffset End index of the text to moved into the clipboard. The valid range is 0..length. @retval S_OK @retval E_INVALIDARG if bad [in] passed */ HRESULT copyText ( [in] long startOffset, [in] long endOffset ); /** @brief Deletes a range of text. The text between and including the two given indices is deleted from the text represented by this object. @param [in] startOffset Start index of the text to be deleted. The valid range is 0..length. @param [in] endOffset End index of the text to be deleted. The valid range is 0..length. @retval S_OK @retval E_INVALIDARG if bad [in] passed */ HRESULT deleteText ( [in] long startOffset, [in] long endOffset ); /** @brief Inserts text at the specified position. The specified string is inserted at the given index into the text represented by this object. @param [in] offset Index at which to insert the text. The valid range is 0..length. @param [in] text Text that is inserted. @retval S_OK @retval E_INVALIDARG if bad [in] passed */ HRESULT insertText ( [in] long offset, [in] BSTR *text ); /** @brief Deletes a range of text and copies it to the clipboard. The text between the two given indices is deleted from the text represented by this object and copied to the clipboard. @param [in] startOffset Start index of the text to be deleted. The valid range is 0..length. @param [in] endOffset End index of the text to be deleted. The valid range is 0..length. @retval S_OK @retval E_INVALIDARG if bad [in] passed */ HRESULT cutText ( [in] long startOffset, [in] long endOffset ); /** @brief Pastes text from the clipboard. The text in the system clipboard is pasted into the text represented by this object at the given index. This method is similar to the IAccessibleEditableText::insertText method. If the index is not valid the system clipboard text is not inserted. @param [in] offset Index at which to insert the text from the system clipboard into the text represented by this object. The valid range is 0..length. @retval S_OK @retval E_INVALIDARG if bad [in] passed */ HRESULT pasteText ( [in] long offset ); /** @brief Replaces text. The text between the two given indices is replaced by the specified replacement string. This method is equivalent to calling first IAccessibleEditableText::deleteText with the two indices and then calling IAccessibleEditableText::insertText with the replacement text at the start index. @param [in] startOffset Start index of the text to be replaced. The valid range is 0..length. @param [in] endOffset Start index of the text to be replaced. The valid range is 0..length. @param [in] text The Text that replaces the text between the given indices. @retval S_OK @retval E_INVALIDARG if bad [in] passed */ HRESULT replaceText ( [in] long startOffset, [in] long endOffset, [in] BSTR *text ); /** @brief Replaces the attributes of a text range by the given set of attributes. Sets the attributes for the text between the two given indices. The old attributes are replaced by the new list of attributes. @param [in] startOffset Start index of the text whose attributes are modified. The valid range is 0..length. @param [in] endOffset Start index of the text whose attributes are modified. The valid range is 0..length. @param [in] attributes Set of attributes that replaces the old list of attributes of the specified text portion. @retval S_OK @retval E_INVALIDARG if bad [in] passed */ HRESULT setAttributes ( [in] long startOffset, [in] long endOffset, [in] BSTR *attributes ); }