xref: /trunk/main/extensions/test/ole/idl/oletest.idl (revision cdf0e10c4e3984b49a9502b011690b615761d4a3)
1/*************************************************************************
2 *
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4 *
5 * Copyright 2000, 2010 Oracle and/or its affiliates.
6 *
7 * OpenOffice.org - a multi-platform office productivity suite
8 *
9 * This file is part of OpenOffice.org.
10 *
11 * OpenOffice.org is free software: you can redistribute it and/or modify
12 * it under the terms of the GNU Lesser General Public License version 3
13 * only, as published by the Free Software Foundation.
14 *
15 * OpenOffice.org is distributed in the hope that it will be useful,
16 * but WITHOUT ANY WARRANTY; without even the implied warranty of
17 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
18 * GNU Lesser General Public License version 3 for more details
19 * (a copy is included in the LICENSE file that accompanied this code).
20 *
21 * You should have received a copy of the GNU Lesser General Public License
22 * version 3 along with OpenOffice.org.  If not, see
23 * <http://www.openoffice.org/license.html>
24 * for a copy of the LGPLv3 License.
25 *
26 ************************************************************************/
27
28#include <com/sun/star/uno/XInterface.idl>
29#include <com/sun/star/script/XInvocation.idl>
30#include <com/sun/star/beans/XPropertySet.idl>
31#include <com/sun/star/lang/XEventListener.idl>
32
33
34module oletest
35{
36
37interface XTestSequence: com::sun::star::uno::XInterface
38{
39    sequence<byte> methodByte( [in] sequence<byte> aSeq );
40    sequence<float> methodFloat( [in] sequence<float> aSeq);
41    sequence<double> methodDouble( [in] sequence<double> aSeq);
42    sequence<boolean> methodBool( [in] sequence<boolean> aSeq);
43    sequence<short> methodShort( [in] sequence<short> aSeq);
44    sequence<unsigned short> methodUShort( [in] sequence<unsigned short> aSeq);
45    sequence<long> methodLong( [in] sequence<long> aSeq);
46    sequence<unsigned long> methodULong( [in] sequence<unsigned long> aSeq);
47    sequence<string> methodString( [in] sequence<string> aSeq);
48    sequence<char> methodChar( [in] sequence<char> aSeq);
49    sequence<any> methodAny ( [in] sequence<any> aSeq);
50    sequence<type> methodType   ( [in] sequence<type> aSeq);
51    sequence<com::sun::star::uno::XInterface> methodXInterface ( [in] sequence<com::sun::star::uno::XInterface> aSeq);
52    sequence< sequence <long> > methodSequence( [in] sequence< sequence< long > > aSeq);
53    sequence< sequence <sequence <long> > > methodSequence2( [in] sequence< sequence< sequence<long> > > aSeq);
54    sequence< com::sun::star::lang::XEventListener > methodXEventListeners( [in] sequence<com::sun::star::lang::XEventListener> aSeq);
55    sequence< sequence< com::sun::star::lang::XEventListener > > methodXEventListenersMul( [in] sequence< sequence< com::sun::star::lang::XEventListener> > aSeq);
56
57    [attribute] sequence<byte> AttrByte;
58    [attribute] sequence<float> AttrFloat;
59    [attribute] sequence<double> AttrDouble;
60    [attribute] sequence<boolean> AttrBool;
61    [attribute] sequence<short> AttrShort;
62    [attribute] sequence<unsigned short> AttrUShort;
63    [attribute] sequence<long> AttrLong;
64    [attribute] sequence<unsigned long> AttrULong;
65    [attribute] sequence<string> AttrString;
66    [attribute] sequence<char> AttrChar;
67    [attribute] sequence<any> AttrAny;
68    [attribute] sequence<type> AttrType;
69    [attribute] sequence< sequence<long> > AttrSequence;
70    [attribute] sequence< sequence< sequence <long> > > AttrSequence2;
71    [attribute] sequence< com::sun::star::uno::XInterface > AttrXInterface;
72
73    [attribute] byte AByte;
74    [attribute] float AFloat;
75    [attribute] double ADouble;
76    [attribute] boolean ABool;
77    [attribute] short AShort;
78    [attribute] unsigned short AUShort;
79    [attribute] long ALong;
80    [attribute] unsigned long AULong;
81    [attribute] string AString;
82    [attribute] char AChar;
83    [attribute] any AAny;
84    [attribute] type AType;
85    [attribute] com::sun::star::uno::XInterface  AXInterface;
86    [attribute] com::sun::star::script::XInvocation  AXInvocation;
87
88    void testout_methodByte( [out] byte rOut );
89    void testout_methodFloat( [out] float rOut);
90    void testout_methodDouble( [out] double rOut);
91    void testout_methodBool( [out] boolean rOut);
92    void testout_methodShort( [out] short rOut);
93    void testout_methodUShort( [out] unsigned short rOut);
94    void testout_methodLong( [out]  long rOut);
95    void testout_methodULong( [out] unsigned long rOut);
96    void testout_methodHyper( [out]  hyper rOut);
97    void testout_methodUHyper( [out] unsigned hyper rOut);
98    void testout_methodString( [out] string rOut);
99    void testout_methodChar( [out] char rOut);
100    void testout_methodAny  ( [out] any rOut);
101    void testout_methodType ( [out] type rOut);
102    void testout_methodSequence( [out] sequence< long > rOut);
103    void testout_methodSequence2( [out] sequence < sequence< long > > rOut);
104    void testout_methodXInterface( [out] com::sun::star::uno::XInterface rOut);
105
106    void testout_methodMulParams1( [out] long rout1, [out] long rout2);
107    void testout_methodMulParams2( [out] long rout1, [out] long rout2, [out] string rout3);
108    void testout_methodMulParams3( [in] string sin, [out] string sout);
109    void testout_methodMulParams4( [in] float in1, [out] float out1, [in] long in2, [out] long out2, [in] long in3);
110
111    void testinout_methodByte( [inout] byte rOut );
112    void testinout_methodFloat( [inout] float rOut);
113    void testinout_methodDouble( [inout] double rOut);
114    void testinout_methodBool( [inout] boolean rOut);
115    void testinout_methodShort( [inout] short rOut);
116    void testinout_methodUShort( [inout] unsigned short rOut);
117    void testinout_methodLong( [inout]  long rOut);
118    void testinout_methodULong( [inout] unsigned long rOut);
119    void testinout_methodHyper( [inout]  hyper rOut);
120    void testinout_methodUHyper( [inout] unsigned hyper rOut);
121    void testinout_methodString( [inout] string rOut);
122    void testinout_methodChar( [inout] char rOut);
123    void testinout_methodAny    ( [inout] any rOut);
124    void testinout_methodType   ( [inout] type rOut);
125    void testinout_methodSequence( [inout] sequence< long > rOut);
126    void testinout_methodSequence2( [inout] sequence < sequence< long > > rOut);
127    void testinout_methodXInterface( [inout] com::sun::star::script::XInvocation rOut);
128    void testinout_methodXInterface2( [inout] com::sun::star::uno::XInterface rOut);
129
130    any methodAnyTest1( [in] any rIn);
131    [attribute]  any AttrAny2;
132
133};
134interface XTestStruct: com::sun::star::uno::XInterface
135{
136// Method taking structs as arguments
137    void methodStruct( [in] com::sun::star::beans::Property aProp);
138//  Methods returning structs
139    com::sun::star::beans::Property retMethodStruct();
140// Attributes as structs
141    [attribute] com::sun::star::beans::Property AttrStruct;
142
143    com::sun::star::beans::Property methodStruct2( [in] com::sun::star::beans::Property aProp);
144};
145
146
147struct SimpleStruct
148{
149    string message;
150};
151
152interface XTestInParameters: com::sun::star::uno::XInterface
153{
154    byte in_methodByte( [in] byte rIn );
155    float in_methodFloat( [in] float rIn);
156    double in_methodDouble( [in] double rIn);
157    boolean in_methodBool( [in] boolean rIn);
158    short in_methodShort( [in] short rIn);
159    unsigned short in_methodUShort( [in] unsigned short rIn);
160    long in_methodLong( [in]  long rIn);
161    unsigned long in_methodULong( [in] unsigned long rIn);
162    hyper in_methodHyper( [in]  hyper rIn);
163    unsigned hyper in_methodUHyper( [in] unsigned hyper rIn);
164    string in_methodString( [in] string rIn);
165    char in_methodChar( [in] char rIn);
166    any in_methodAny    ( [in] any rIn);
167    type in_methodType  ( [in] type rIn);
168    com::sun::star::uno::XInterface in_methodXInterface([in] com::sun::star::uno::XInterface rIn);
169    com::sun::star::script::XInvocation in_methodInvocation( [in] com::sun::star::script::XInvocation inv);
170    SimpleStruct in_methodStruct( [in] SimpleStruct aStruct);
171    void in_methodAll( [in] byte b, [in] float f, [in] double d, [in] boolean abool, [in]short sh,
172                       [in] unsigned short us, [in] long l, [in] unsigned long ul,
173                       [in] string s, [in] char c, [in] any a, [in] type t, [in] com::sun::star::script::XInvocation inv);
174};
175
176
177enum SimpleEnum
178{
179    A,
180    B,
181    C
182};
183
184interface XTestOther: com::sun::star::uno::XInterface
185{
186    // Any test
187    void other_methodAnyIn( [in] any rAny);
188    void other_methodAnyOut( [out] any rAny);
189    any other_methodAnyRet();
190    void in_float( [in] float val);
191    //typeInAny determines what type must be in rAny. If rAny contains
192    //a different type then an exception is being thrown
193    any other_methodAny([in] any rAny, [in] string typeInAny);
194};
195
196
197interface XSimple: com::sun::star::uno::XInterface
198{
199    void func( [in] string message);
200    string getName();
201};
202
203interface XSimple2: com::sun::star::uno::XInterface
204{
205    void func2( [in] string message);
206    string getName2();
207};
208
209interface XSimple3: com::sun::star::uno::XInterface
210{
211    void func3( [in] string message);
212    string getName3();
213};
214
215
216interface XCallback: com::sun::star::uno::XInterface
217{
218    void func1();
219    oletest::XSimple returnInterface();
220    void outInterface( [out] oletest::XSimple outInterface);
221    void outStruct( [out] oletest::SimpleStruct outStruct);
222    void outEnum( [out] oletest::SimpleEnum outEnum);
223    void outSeqAny( [out] sequence<any> outSeqAny);
224    void outSeqByte( [out] sequence<byte> outVal);
225    void outAny( [out] any outAny);
226    void outBool( [out] boolean outBool);
227    void outChar( [out] char outChar);
228    void outString( [out] string outString);
229    void outFloat( [out] float outFloat);
230    void outDouble( [out] double outDouble);
231    void outByte( [out] byte outByte);
232    void outShort( [out] short outShort);
233    void outLong( [out] long outLong);
234    void outValuesMixed( [in] long lval, [out] long outval, [in] string sval);
235    void outValuesAll( [out] oletest::XSimple outInterface,
236                       [out] SimpleStruct outStruct ,
237                       [out] SimpleEnum outEnum,
238                       [out] sequence<any> outSeqAny,
239                       [out] any outAny,
240                       [out] boolean outBool,
241                       [out] char outChar,
242                       [out] string outString,
243                       [out] float outFloat,
244                       [out] double outDouble,
245                       [out] byte   outByte,
246                       [out] short outShort,
247                       [out] long outLong);
248// IN OUT parameters
249    void inoutInterface( [inout] oletest::XSimple inoutVal);
250    void inoutStruct( [inout] oletest::SimpleStruct inoutVal);
251    void inoutEnum( [inout] oletest::SimpleEnum inoutVal);
252    void inoutSeqAny( [inout] sequence<any> inoutVal);
253    void inoutAny( [inout] any inoutVal);
254    void inoutBool( [inout] boolean inoutVal);
255    void inoutChar( [inout] char inoutVal);
256    void inoutString( [inout] string inoutVal);
257    void inoutFloat( [inout] float inoutVal);
258    void inoutDouble( [inout] double inoutVal);
259    void inoutByte( [inout] byte inoutVal);
260    void inoutShort( [inout] short inoutVal);
261    void inoutLong( [inout] long inoutVal);
262
263    void inoutValuesAll( [inout] oletest::XSimple aXSimple,
264                         [inout] oletest::SimpleStruct aStruct,
265                         [inout] oletest::SimpleEnum aEnum,
266                         [inout] sequence<any> aSeq,
267                         [inout] any aAny,
268                         [inout] boolean aBool,
269                         [inout] char aChar,
270                         [inout] string aString,
271                         [inout] float aFloat,
272                         [inout] double aDouble,
273                         [inout] byte aByte,
274                         [inout] short aShort,
275                         [inout] long aLong);
276
277    // IN parameter
278
279    void inValues( [in] char aChar, [in] long aLong, [in] string aString);
280    void inSeqByte( [in] sequence<byte> val);
281    void inSeqXEventListener( [in] sequence<com::sun::star::lang::XEventListener> listener, [in]
282                              sequence<com::sun::star::lang::EventObject> events);
283
284    // Attributes
285    [attribute] oletest::XSimple simple;
286
287
288
289
290};
291
292interface XTestInterfaces: com::sun::star::uno::XInterface
293{
294    // Any test
295    void testInterface( [in] oletest::XCallback xCallback, [in] long mode);
296    void testInterface2( [in] oletest::XSimple xSimple, [in] long mode);
297};
298
299interface XIdentity: com::sun::star::uno::XInterface
300{
301    void setObject([in] com::sun::star::uno::XInterface val);
302    boolean isSame( [in] com::sun::star::uno::XInterface val);
303
304    com::sun::star::uno::XInterface getThis();
305};
306
307}; // oletest
308
309