/************************************************************** * * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the 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