/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ /* * This file is part of the LibreOffice project. * * This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at http://mozilla.org/MPL/2.0/. * * This file incorporates work covered by the following license notice: * * 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 . */ #ifndef __com_sun_star_script_XInvocation_idl__ #define __com_sun_star_script_XInvocation_idl__ #include #include #include #include #include #include module com { module sun { module star { module script { /** gives access to an object's methods and properties. Container access is available through com::sun::star::container::XIndexContainer, com::sun::star::container::XNameContainer and com::sun::star::container::XEnumerationAccess.

*/ published interface XInvocation: com::sun::star::uno::XInterface { /** returns the introspection from this object or `NULL` if the object does not provide this information. */ com::sun::star::beans::XIntrospectionAccess getIntrospection(); /** provides access to methods exposed by an object. @param aFunctionName the method to invoke @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 com::sun::star::container::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 `TRUE` if the method with the specified name exists, else `FALSE`.

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

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

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 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */