1*cdf0e10cSrcweir/*************************************************************************
2*cdf0e10cSrcweir *
3*cdf0e10cSrcweir * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4*cdf0e10cSrcweir *
5*cdf0e10cSrcweir * Copyright 2000, 2010 Oracle and/or its affiliates.
6*cdf0e10cSrcweir *
7*cdf0e10cSrcweir * OpenOffice.org - a multi-platform office productivity suite
8*cdf0e10cSrcweir *
9*cdf0e10cSrcweir * This file is part of OpenOffice.org.
10*cdf0e10cSrcweir *
11*cdf0e10cSrcweir * OpenOffice.org is free software: you can redistribute it and/or modify
12*cdf0e10cSrcweir * it under the terms of the GNU Lesser General Public License version 3
13*cdf0e10cSrcweir * only, as published by the Free Software Foundation.
14*cdf0e10cSrcweir *
15*cdf0e10cSrcweir * OpenOffice.org is distributed in the hope that it will be useful,
16*cdf0e10cSrcweir * but WITHOUT ANY WARRANTY; without even the implied warranty of
17*cdf0e10cSrcweir * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
18*cdf0e10cSrcweir * GNU Lesser General Public License version 3 for more details
19*cdf0e10cSrcweir * (a copy is included in the LICENSE file that accompanied this code).
20*cdf0e10cSrcweir *
21*cdf0e10cSrcweir * You should have received a copy of the GNU Lesser General Public License
22*cdf0e10cSrcweir * version 3 along with OpenOffice.org.  If not, see
23*cdf0e10cSrcweir * <http://www.openoffice.org/license.html>
24*cdf0e10cSrcweir * for a copy of the LGPLv3 License.
25*cdf0e10cSrcweir *
26*cdf0e10cSrcweir ************************************************************************/
27*cdf0e10cSrcweir
28*cdf0e10cSrcweir#ifndef __com_sun_star_script_provider_XScript_idl__
29*cdf0e10cSrcweir#define __com_sun_star_script_provider_XScript_idl__
30*cdf0e10cSrcweir
31*cdf0e10cSrcweir#ifndef __com_sun_star_uno_XInterface_idl__
32*cdf0e10cSrcweir#include <com/sun/star/uno/XInterface.idl>
33*cdf0e10cSrcweir#endif
34*cdf0e10cSrcweir
35*cdf0e10cSrcweir#ifndef __com_sun_star_lang_IllegalArgumentException_idl__
36*cdf0e10cSrcweir#include <com/sun/star/lang/IllegalArgumentException.idl>
37*cdf0e10cSrcweir#endif
38*cdf0e10cSrcweir
39*cdf0e10cSrcweir#ifndef __com_sun_star_script_CannotConvertException_idl__
40*cdf0e10cSrcweir#include <com/sun/star/script/CannotConvertException.idl>
41*cdf0e10cSrcweir#endif
42*cdf0e10cSrcweir
43*cdf0e10cSrcweir#ifndef __com_sun_star_reflection_InvocationTargetException_idl__
44*cdf0e10cSrcweir#include <com/sun/star/reflection/InvocationTargetException.idl>
45*cdf0e10cSrcweir#endif
46*cdf0e10cSrcweir
47*cdf0e10cSrcweir#ifndef  __com_sun_star_script_provider_ScriptFrameworkErrorException_idl__
48*cdf0e10cSrcweir#include <com/sun/star/script/provider/ScriptFrameworkErrorException.idl>
49*cdf0e10cSrcweir#endif
50*cdf0e10cSrcweir
51*cdf0e10cSrcweir//===========================================================================
52*cdf0e10cSrcweir
53*cdf0e10cSrcweirmodule com { module sun { module star { module script { module provider {
54*cdf0e10cSrcweir
55*cdf0e10cSrcweir//===========================================================================
56*cdf0e10cSrcweir/**
57*cdf0e10cSrcweir    This interface represents an invokable script or UNO function.
58*cdf0e10cSrcweir*/
59*cdf0e10cSrcweirinterface XScript : ::com::sun::star::uno::XInterface {
60*cdf0e10cSrcweir
61*cdf0e10cSrcweir    //----------------------------------------------------------------------
62*cdf0e10cSrcweir    /**
63*cdf0e10cSrcweir        invoke the script or function represented by the implementing
64*cdf0e10cSrcweir            object
65*cdf0e10cSrcweir
66*cdf0e10cSrcweir		@param aParams
67*cdf0e10cSrcweir            all parameters; pure, out params are undefined in sequence,
68*cdf0e10cSrcweir            i.e., the value has to be ignored by the callee
69*cdf0e10cSrcweir		@param aOutParamIndex
70*cdf0e10cSrcweir            out indices, indicating the position of the out or inout
71*cdf0e10cSrcweir            parameters in the list of arguments to the script
72*cdf0e10cSrcweir		@param aOutParam
73*cdf0e10cSrcweir            out parameters<p>
74*cdf0e10cSrcweir            For example, if the script had the signature<br>
75*cdf0e10cSrcweir            <code>long foo( [inout] string a, [in] string b, [out] string c )</code>
76*cdf0e10cSrcweir            <br> the call would look like<br>
77*cdf0e10cSrcweir            <code>bar.invoke( {"foo", "foo2", "this-is-ignored" }, aOutParamIndex, aOutParam);</code>
78*cdf0e10cSrcweir            <br> and after the call the out sequences would contain<br>
79*cdf0e10cSrcweir            <listing>
80*cdf0e10cSrcweir            aOutParamIndex={0,2};
81*cdf0e10cSrcweir            aOutParam={"string from a", "string from c"};
82*cdf0e10cSrcweir            </listing>
83*cdf0e10cSrcweir
84*cdf0e10cSrcweir        @returns
85*cdf0e10cSrcweir            the value returned from the function being invoked
86*cdf0e10cSrcweir
87*cdf0e10cSrcweir        @throws ::com::sun::star::reflection::InvocationTargetException
88*cdf0e10cSrcweir            if and error occurs while attempting to invoke a script the information is captured. If the error or exception is generated by the script itself it is wrapped as either ScriptErrorRaisedException or ScriptExceptionRaisedException or ScriptingFrameworkErrorException are wrapped as ScriptFrameworkErrorExceptions.
89*cdf0e10cSrcweir    */
90*cdf0e10cSrcweir    any invoke(
91*cdf0e10cSrcweir        [in] sequence<any> aParams,
92*cdf0e10cSrcweir		[out] sequence<short> aOutParamIndex,
93*cdf0e10cSrcweir		[out] sequence<any> aOutParam ) raises(
94*cdf0e10cSrcweir        ::com::sun::star::script::provider::ScriptFrameworkErrorException ,
95*cdf0e10cSrcweir        ::com::sun::star::reflection::InvocationTargetException);
96*cdf0e10cSrcweir
97*cdf0e10cSrcweir};
98*cdf0e10cSrcweir
99*cdf0e10cSrcweir//===========================================================================
100*cdf0e10cSrcweir}; }; }; }; }; // ::com::sun::star::script::provider
101*cdf0e10cSrcweir
102*cdf0e10cSrcweir#endif
103