/************************************************************************* * * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * Copyright 2000, 2010 Oracle and/or its affiliates. * * OpenOffice.org - a multi-platform office productivity suite * * This file is part of OpenOffice.org. * * OpenOffice.org is free software: you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License version 3 * only, as published by the Free Software Foundation. * * OpenOffice.org 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 version 3 for more details * (a copy is included in the LICENSE file that accompanied this code). * * You should have received a copy of the GNU Lesser General Public License * version 3 along with OpenOffice.org. If not, see * * for a copy of the LGPLv3 License. * ************************************************************************/ #ifndef __com_sun_star_script_XInvocation_idl__ #define __com_sun_star_script_XInvocation_idl__ #ifndef __com_sun_star_uno_XInterface_idl__ #include #endif #ifndef __com_sun_star_beans_XIntrospectionAccess_idl__ #include #endif #ifndef __com_sun_star_lang_IllegalArgumentException_idl__ #include #endif #ifndef __com_sun_star_script_CannotConvertException_idl__ #include #endif #ifndef __com_sun_star_reflection_InvocationTargetException_idl__ #include #endif #ifndef __com_sun_star_beans_UnknownPropertyException_idl__ #include #endif //============================================================================= module com { module sun { module star { module script { //============================================================================= /** gives access to an object's methods and properties. Container access is available through XIndexContainer, XNameContainer and XEnumerationAccess.

*/ published interface XInvocation: com::sun::star::uno::XInterface { //------------------------------------------------------------------------- /** returns the introspection from this object or if the object does not provide this information. */ com::sun::star::beans::XIntrospectionAccess getIntrospection(); //------------------------------------------------------------------------- /** provides access to methods exposed by an object. @param aParams all parameters; pure out params are undefined in sequence, the value has to be ignored by the callee @param aOutParamIndex This sequence contains the indices of all parameters that are specified as out or inout. @param aOutParam This sequence contains the values of all parameters that are specified as out or inout and corresponds with the indices provided by the aOutParamIndex sequence. Example: aOutParamIndex == { 1, 4 } means that aOutParam[0] contains the out value of the aParams[1] parameter and aOutParam[1] contains the out value of the aParams[4] parameter. */ any invoke( [in] string aFunctionName, [in] sequence aParams, [out] sequence aOutParamIndex, [out] sequence aOutParam ) raises( com::sun::star::lang::IllegalArgumentException, com::sun::star::script::CannotConvertException, com::sun::star::reflection::InvocationTargetException ); //------------------------------------------------------------------------- /** sets a value to the property with the specified name.

If the underlying object implements an XNameContainer, then this method will insert the value if there is no such aPropertyName.

*/ void setValue( [in] string aPropertyName, [in] any aValue ) raises( com::sun::star::beans::UnknownPropertyException, com::sun::star::script::CannotConvertException, com::sun::star::reflection::InvocationTargetException ); //------------------------------------------------------------------------- /** returns the value of the property with the specified name. @param aPropertyName specifies the name of the property. */ any getValue( [in] string aPropertyName ) raises( com::sun::star::beans::UnknownPropertyException ); //------------------------------------------------------------------------- /** returns if the method with the specified name exists, else .

This optimizes the calling sequence ( XInvocation::hasMethod, XInvocation::invoke )!

@param aName specifies the name of the method. */ boolean hasMethod( [in] string aName ); //------------------------------------------------------------------------- /** returns if the property with the specified name exists, else .

This optimizes the calling sequence ( XInvocation::hasProperty, XInvocation::getValue ) or ( XInvocation::hasProperty, XInvocation::setValue )! @param aName specifies the name of the property. */ boolean hasProperty( [in] string aName ); }; //============================================================================= }; }; }; }; #endif