xref: /trunk/main/extensions/test/ole/OleTest.htm (revision cdf0e10c)
1 <HTML>
2 <HEAD>
3 <META NAME="GENERATOR" Content="Microsoft Developer Studio">
4 <META HTTP-EQUIV="Content-Type" content="text/html; charset=iso-8859-1">
5 <TITLE>Document Title</TITLE>
6 </HEAD>
7 <BODY id=theBody>
8 
9 <script language="JScript">
10 // XEventListener implementation in JScript --------------------------------------------------
11 function XEventListener_Impl()
12 {
13 	this._environment= "JScript";
14 	this._implementedInterfaces= new Array( "com.sun.star.lang.XEventListener");
15 
16 	//XEventListener
17 	this.disposing= XEventListener_disposing;
18 
19 	this.bdisposingCalled= false;
20 	this.bQuiet= true;
21 	this.resetDisposing= XEventListener_resetDisposing;
22 	this.disposingCalled= XEventListener_disposingCalled;
23 }
24 
25 function XEventListener_disposing( source)
26 {
27   if( !this.bQuiet)
28         alert("JScript Event Listener \n disposing is being called");
29   this.bdisposingCalled= true;
30 }
31 
32 function XEventListener_resetDisposing()
33 {
34    this.bdisposingCalled= false;
35 }
36 
37 function XEventListener_disposingCalled()
38 {
39      return this.bdisposingCalled;
40 }
41 
42 //--------------------------------------------------------------------------------------------
43 function callOleTest(	 id)
44 {
45 	var factory= new ActiveXObject("com.sun.star.ServiceManager");
46 	var oletest= factory.createInstance("oletest.OleTest");
47 //	alert(oletest);
48 
49 	var arr= new Array( 1, 2, 3, 4, 0);
50 	var arrDouble= new Array( 1.2345, 12.345, 123,45, 1234.5, 12345);
51 	var arrBool= new Array( 1, 0, 2, 0, 3);
52 	var arrChar= new Array( '1', 'A', "1", "A", ' ', 55, 56);
53 	var arrString= new Array("hamburger","cheeseburger", "chicken nuggets", "chicken wings" , "pizza");
54 	var arrAny= new Array( 100, 100.1235,"hallo");
55 	var arrSeq= new Array( arr, arr, arr);
56 	var arrSeq2= new Array( arrSeq, arrSeq, arrSeq)
57 
58 
59 	var arrout1= new Array();
60 	var arrout2= new Array();
61 	var arrout3= new Array();
62 
63 	var ret, i;
64 	var sfarray, sfarray1, sfarray2, sfarray3;
65 	var arEventListener= new Array( new XEventListener_Impl(), new XEventListener_Impl(),
66 	                                new XEventListener_Impl());
67 	var arEventListener2= new Array( new XEventListener_Impl(), new XEventListener_Impl(),
68 	                                new XEventListener_Impl());
69 	var arArEventListener= new Array( arEventListener, arEventListener2);
70 	switch( id)
71 	{
72 	// Array in-params
73 	case 1: ret= oletest.methodByte( arr);
74 		sfarray= new VBArray( ret);
75 		document.writeln( "Param: " + arr.toString()  + "<br>");
76 		document.writeln( "Returns a Sequence&lt BYTE &gt <br>" + sfarray.toArray()) ; break;
77 
78 	case 2: ret= oletest.methodDouble( arrDouble);
79 		sfarray= new VBArray( ret);
80 		document.writeln( "Param: " + arrDouble.toString() +"<br>");
81 		document.writeln( "Returns a Sequence&lt double &gt <br>" + sfarray.toArray()) ; break;
82 
83 	case 3:	ret= oletest.methodBool( arrBool);
84 		sfarray= new VBArray( ret);
85 		document.writeln( "Param: " + arrBool.toString() +"<br>");
86 		document.writeln( "Returns a Sequence&lt BOOL &gt <br>" + sfarray.toArray()) ; break;
87 
88 	case 4: ret= oletest.methodShort( arr);
89 		sfarray= new VBArray( ret);
90 		document.writeln( "Param: " + arr.toString() +"<br>");
91 		document.writeln( "Returns a Sequence&lt SHORT &gt <br>" + sfarray.toArray()) ; break;
92 
93 	case 5: ret= oletest.methodUShort( arr);
94 		sfarray= new VBArray( ret);
95 		document.writeln( "Param: " + arr.toString() +"<br>");
96 		document.writeln( "Returns a Sequence&lt unsigned SHORT &gt <br>" + sfarray.toArray()) ; break;
97 
98 	case 6: ret= oletest.methodLong( arr);
99 		sfarray= new VBArray( ret);
100 		document.writeln( "Param: " + arr.toString() +"<br>");
101 		document.writeln( "Returns a Sequence&lt LONG &gt <br>" + sfarray.toArray()) ; break;
102 
103 	case 7:	ret= oletest.methodULong( arr);
104 		sfarray= new VBArray( ret);
105 		document.writeln( "Param: " + arr.toString() +"<br>");
106 		document.writeln( "Returns a Sequence&lt unsigned LONG &gt <br>" + sfarray.toArray()) ; break;
107 
108 	case 8: ret= oletest.methodChar( arrChar);
109 		sfarray= new VBArray( ret);
110 		document.writeln( "Param: " + arrChar.toString() +"<br>");
111 		document.writeln( "Returns a Sequence&lt wchar_t &gt <br>" + sfarray.toArray()) ; break;
112 
113 	case 9:	ret= oletest.methodString( arrString);
114 		sfarray= new VBArray( ret);
115 		document.writeln( "Param: " + arrString.toString() +"<br>");
116 		document.writeln( "Returns a Sequence&lt UString &gt <br>" + sfarray.toArray()) ; break;
117 
118 	case 10: ret= oletest.methodAny( arrAny);
119 		sfarray= new VBArray( ret);
120 		document.writeln( "Param: " + arrAny.toString() +"<br>");
121 		document.writeln( "Returns a Sequence&lt UsrAny &gt <br>" + sfarray.toArray() ) ; break;
122 
123 	case 11: ret= oletest.methodSequence( arrSeq);
124 		sfarray= new VBArray( ret);
125 		document.writeln( "Param: " + arrSeq.toString() +"<br>");
126 		document.writeln("Returns a Sequence&lt Sequence &lt long &gt&gt <br>") ;
127 		var arr1= new Array();
128 		arr1= sfarray.toArray();
129 		for( i=0; i < arr1.length; i++)
130 		{
131 			sfarray2= new VBArray( arr1[i]);
132 			var arr2= new Array();
133 			arr2= sfarray2.toArray();
134 			document.writeln( arr2.toString() + "<br>" );
135 		}
136 		break;
137 
138 	case 12: ret= oletest.methodSequence2( arrSeq2);
139 		document.writeln( "Param: " + arrSeq2.toString() +"<br>");
140 		sfarray1= new VBArray( ret);
141 		arr1= sfarray1.toArray();
142 		for( i=0; i < arr1.length; i++)
143 		{
144 			sfarray2= new VBArray( arr1[i]);
145 			arr2= sfarray2.toArray();
146 
147 			for ( j=0; j < arr2.length; j++)
148 			{
149 				sfarray3= new VBArray( arr2[j]);
150 				arr3= sfarray3.toArray();
151 				document.write( i+ " ");
152 				document.writeln(j + ": "+ arr3.toString() + "<br>" );
153 			}
154 
155 		}
156 		break;
157 
158 	case 13:
159 		var ar= new Array();
160 		for( i=0; i< 3; i++)
161 		{
162 			var ob= new Object();
163 			ob.value= "A JScript object!";
164 			ar[i]= ob;
165 		}
166 
167 		ret	=	oletest.methodXInterface( ar);
168 		sfarray= new VBArray( ret);
169 		var arRet= sfarray.toArray();
170 
171 		document.writeln( "Params : Array containing objects ")
172 		for( index in ar)
173 		{
174 			document.writeln( "object " + index + ": " + ar[index].value +"  ");
175 		}
176 		document.writeln( "<br>" ) ;
177 		document.writeln("Return: <br>");
178 		for( index in arRet)
179 		{
180 			document.writeln( "object " + index + ": " + arRet[index].value + " ");
181 		}
182 		break;
183 
184 	case 14: ret= oletest.methodFloat( arrDouble);
185 		sfarray= new VBArray( ret);
186 		document.writeln( "Param: " + arrDouble.toString() +"<br>");
187 		document.writeln( "Returns a Sequence&lt float&gt <br>" + sfarray.toArray()) ; break;
188 
189 	case 15:
190 		ret= oletest.methodXEventListeners( arEventListener);
191 		sfarray= new VBArray(ret);
192 		_ret= sfarray.toArray();
193 		for ( key in _ret)
194 		{
195 	           if( ! _ret[key].disposingCalled())
196 		      alert("Error! oletest.methodXEventListeners")
197 		}
198 		break;
199 	case 16:
200 	   ret= oletest.methodXEventListenersMul( arArEventListener);
201 	   sfarray= new VBArray(ret);
202 	   _ret= sfarray.toArray();
203 	   for( key in _ret)
204 	   {
205 	      sfarray2= new VBArray(_ret[key]);
206 	      _ret2= sfarray2.toArray();
207 	      for( key2 in _ret2)
208 	      {
209 	        if( ! _ret2[key2].disposingCalled())
210 		      alert("Error! oletest.methodXEventListeners")
211 	      }
212 	   }
213 	break;
214 
215 
216 
217 	// Properties: setting and getting values
218 	case 200: oletest.AttrByte = arr;
219 		ret= oletest.AttrByte;
220 		document.writeln("Setting AttrByte: " + arr.toString() + "<p>");
221 		document.writeln("Getting AttrByte: " + arr.toString()); break;
222 
223 	case 201: oletest.AttrDouble= arrDouble;
224 		ret= oletest.AttrDouble;
225 		document.writeln("Setting AttrDouble: " + arrDouble.toString() + "<p>");
226 		document.writeln("Getting AttrDouble: " + arrDouble.toString()); break;
227 
228 	case 202: oletest.AttrBool= arrBool;
229 		ret= oletest.AttrBool;
230 		document.writeln("Setting AttrBool: " + arrBool.toString() + "<p>");
231 		document.writeln("Getting AttrBool: " + arrBool.toString()); break;
232 
233 	case 203: oletest.AttrShort= arr;
234 		ret= oletest.AttrShort;
235 		document.writeln("Setting AttrShort: " + arr.toString() + "<p>");
236 		document.writeln("Getting AttrShort: " + arr.toString()); break;
237 
238 	case 204: oletest.AttrUShort= arr;
239 		ret= oletest.AttrUShort;
240 		document.writeln("Setting AttrUShort: " + arr.toString() + "<p>");
241 		document.writeln("Getting AttrUShort: " + arr.toString()); break;
242 
243 	case 205: oletest.AttrLong= arr;
244 		ret= oletest.AttrLong;
245 		document.writeln("Setting AttrLong: " + arr.toString() + "<p>");
246 		document.writeln("Getting AttrLong: " + arr.toString()); break;
247 
248 	case 206: oletest.AttrULong= arr;
249 		ret= oletest.AttrULong;
250 		document.writeln("Setting AttrULong: " + arr.toString() + "<p>");
251 		document.writeln("Getting AttrULong: " + arr.toString()); break;
252 
253 	case 207: oletest.AttrChar= arrChar;
254 		ret= oletest.AttrChar;
255 		document.writeln("Setting AttrChar: " + arrChar.toString() + "<p>");
256 		document.writeln("Getting AttrChar: " + arrChar.toString()); break;
257 
258 	case 208: oletest.AttrString= arrString;
259 		ret= oletest.AttrString;
260 		document.writeln("Setting AttrString: " + arrString.toString() + "<p>");
261 		document.writeln("Getting AttrString: " + arrString.toString()); break;
262 
263 	case 209: oletest.AttrAny= arrAny;
264 		ret= oletest.AttrAny;
265 		document.writeln("Setting AttrAny: " + arrAny.toString() + "<p>");
266 		document.writeln("Getting AttrAny: " + arrAny.toString()); break;
267 
268 	case 210: oletest.AttrSequence= arrSeq;
269 		ret= oletest.AttrSequence;
270 		document.writeln("Setting AttrSequence: " + arrSeq.toString() + "<p>");
271 		document.writeln("Getting AttrSequence: " + arrSeq.toString()); break;
272 
273 	case 211: oletest.AttrSequence2= arrSeq2;
274 		ret= oletest.AttrSequence2;
275 		document.writeln("Setting AttrSequence2: " + arrSeq2.toString() + "<p>");
276 		document.writeln("Getting AttrSequence2: " + arrSeq2.toString()); break;
277 
278 	case 212: oletest.AttrFloat= arrDouble;
279 		ret= oletest.AttrFloat;
280 		document.writeln("Setting AttrFloat: " + arrDouble.toString() + "<p>");
281 		document.writeln("Getting AttrFloat: " + arrDouble.toString()); break;
282 
283 
284 
285 	// Out-parameter ------------------------------------------------------------
286 	case (2000):
287 		oletest.testout_methodByte( arrout1 );
288 		alert("byte: " + arrout1[0] ); 	break;
289 	case (2001):
290 		oletest.testout_methodDouble( arrout1 );
291 		alert( "double: " + arrout1[0] ); break;
292 	case (2002):
293 		oletest.testout_methodBool( arrout1 );
294 		alert( "boolean: " + arrout1[0] );	break;
295 	case (2003):
296 		oletest.testout_methodShort( arrout1 );
297 		alert( "short: " + arrout1[0] ); break;
298 	case (2004):
299 		oletest.testout_methodUShort( arrout1 );
300 		alert( "unsigned short: " + arrout1[0] ); break;
301 	case (2005):
302 		oletest.testout_methodLong( arrout1 );
303 		alert( "long: " + arrout1[0] );	break;
304 	case (2006):
305 		oletest.testout_methodULong( arrout1 );
306 		alert( "unsigned long: " + arrout1[0] ); break;
307 	case (2007):
308 		oletest.testout_methodChar( arrout1 );
309 		alert( "char: " + arrout1[0] );	break;
310 	case (2008):
311 		oletest.testout_methodString( arrout1 );
312 		alert( "string: " + arrout1[0] ); break;
313 	case (2009):
314 		oletest.testout_methodAny( arrout1 );
315 		alert( "any: " + arrout1[0] );	break;
316 	case (2010):
317 		oletest.testout_methodSequence( arrout1 );
318 		var sfarray= new VBArray( arrout1[0]);
319 		arr= sfarray.toArray();
320 		document.writeln("use the browser's back arrow to go to the previous page <p>");
321 		document.writeln( arr.toString());
322 		break;
323 	case (2011):
324 		oletest.testout_methodSequence2( arrout1 );
325 		var sfarray= new VBArray( arrout1[0]);
326 		arr= sfarray.toArray();
327 		var i;
328 		for( i=0; i < arr.length; i++)
329 		{
330 			var sfarray= new VBArray( arr[i]);
331 			var arr2= new Array();
332 			arr2= sfarray.toArray();
333 			document.writeln( arr2.toString() + "<br>" );
334 		}
335 		break;
336 	case (2012):
337 		oletest.testout_methodMulParams1( arrout1, arrout2 );
338 		document.writeln( "int : " + arrout1[0] + " int :" + arrout2[0] ); break;
339 	case (2013):
340 		oletest.testout_methodMulParams2( arrout1, arrout2, arrout3 );
341 		document.writeln( "int: " + arrout1[0] + " int: " + arrout2[0] + " string: " + arrout3[0] ); break;
342 	case (2014):
343 		oletest.testout_methodMulParams3( "hallo", arrout1 );
344 		document.writeln( "string: " + arrout1[0] ); break;
345 	case (2015):
346 		oletest.testout_methodXInterface( arrout1 );
347 		var outVal= arrout1[0];
348 		alert( outVal.AttrAny2);
349 		document.writeln( "string: " + arrout1[0].AttrAny2); break;
350 	case (2016):
351 		oletest.testout_methodFloat( arrout1 );
352 		alert( "float: " + arrout1[0] ); break;
353 	case (2017):
354 		var in1= 3.14;
355 		var in2= 1111;
356 		var in3= -2222;
357 		oletest.testout_methodMulParams4( in1, arrout1, in2, arrout2, in3 );
358 		document.write("param1 [in] float: " + in1 + " param2 [out] float: " + arrout1[0] +
359 					" param3 [in] long: " + in2 + " param4 [out] long: " + arrout2[0] +
360 					" param5 [in] long: " + in3);
361 		break;
362 
363 
364 	// INOUT - Parameter -------------------------------------------------------------------------------
365 	// The in value has to be placed on index 0 of the passed in array
366 	case (500):
367 		arrout1[0]= 100;
368 		oletest.testinout_methodByte( arrout1 );
369 		alert("byte: " + arrout1[0] ); 	break;
370 	case (501):
371 		arrout1[0]= 3.14;
372 		oletest.testinout_methodDouble( arrout1 );
373 		alert( "double: " + arrout1[0] ); break;
374 	case (502):
375 		arrout1[0]= false;
376 		oletest.testinout_methodBool( arrout1 );
377 		alert( "boolean: " + arrout1[0] );	break;
378 	case (503):
379 		arrout1[0]= 200;
380 		oletest.testinout_methodShort( arrout1 );
381 		alert( "short: " + arrout1[0] ); break;
382 	case (504):
383 		arrout1[0]= 300;
384 		oletest.testinout_methodUShort( arrout1 );
385 		alert( "unsigned short: " + arrout1[0] ); break;
386 	case (505):
387 		arrout1[0]= 400;
388 		oletest.testinout_methodLong( arrout1 );
389 		alert( "long: " + arrout1[0] );	break;
390 	case (506):
391 		arrout1[0]= 500;
392 		oletest.testinout_methodULong( arrout1 );
393 		alert( "unsigned long: " + arrout1[0] ); break;
394 	case (507):
395 		arrout1[0]= "A";
396 		oletest.testinout_methodChar( arrout1 );
397 		alert( "char: " + arrout1[0] );	break;
398 	case (508):
399 		arrout1[0]= "I am a string";
400 		oletest.testinout_methodString( arrout1 );
401 		alert( "string: " + arrout1[0] ); break;
402 	case (509):
403 		arrout1[0]= arr;
404 		oletest.testinout_methodAny( arrout1 ); // the method simply returns the argument
405 		sfarray= new VBArray( arrout1[0]);
406 		arr= sfarray.toArray();
407 		alert( "any: " + arr.toString() );	break;
408 	case (510):
409 		arrout1[0]= arr;
410 		oletest.testinout_methodSequence( arrout1 );
411 		var sfarray= new VBArray( arrout1[0]);
412 		arr= sfarray.toArray();
413 		document.writeln("use the browser's back arrow to go to the previous page <p>");
414 		document.writeln( arr.toString());
415 		break;
416 	case (511):
417 		arrout1[0]= arrSeq;
418 		oletest.testinout_methodSequence2( arrout1 );
419 		var sfarray= new VBArray( arrout1[0]);
420 		arr= sfarray.toArray();
421 		var i;
422 		for( i=0; i < arr.length; i++)
423 		{
424 			var sfarray= new VBArray( arr[i]);
425 			var arr2= new Array();
426 			arr2= sfarray.toArray();
427 			document.writeln( arr2.toString() + "<br>" );
428 		}
429 		break;
430 	case 512:
431 		var ob= new Object();
432 		ob.value= "this is a string";
433 
434 		arrout1[0]= ob;
435 		alert (arrout1[0].value);
436 		oletest.testinout_methodXInterface( arrout1);
437 		alert (arrout1[0].value);
438 		var outValue= arrout1[0];
439 		for ( key in outValue)
440 		{
441 			document.write( outValue[key] );
442 		}
443 		document.write("Out value: " + outValue );
444 		document.write("Out 1 value: " + arrout1[1]);
445 		break;
446 
447 //	 	var ob= new Object();
448 //		ob.value= "this is a string";
449 //		inoutValue.Set( "object", ob);
450 //		oletest.testinout_methodXInterface( inoutValue);
451 //		document.write("Out value: " + inoutValue.Get().value );
452 //		break;
453 
454 	case (513):
455 		arrout1[0]= 3.14;
456 		oletest.testinout_methodFloat( arrout1 );
457 		alert( "float: " + arrout1[0] ); break;
458 
459 
460 
461 	// Test ANY
462 	// Methods
463 	case 1000:
464 		i= 100;
465 		ret= oletest.methodAnyTest1( i);
466 		document.writeln( "in: " + i + " ret: " + ret);
467 		break;
468 	case 1001:
469 		i= 3.14;
470 		ret= oletest.methodAnyTest1( i);
471 		document.writeln( "in: " + i + " ret: " + ret);
472 		break;
473 	case 1002:
474 		i= "Hallo"
475 		ret= oletest.methodAnyTest1( i);
476 		document.writeln( "in: " + i + " ret: " + ret);
477 		break;
478 	case 1003:
479 		i= arr;
480 		ret= oletest.methodAnyTest1( i);
481 		sfarray= new VBArray( ret);
482 		document.writeln( "in: " + i + " ret: " + sfarray.toArray());
483 		break;
484 	case 1004:
485 		var obj= new Object();
486 		obj[1]= "This is index 0";
487 		ret= oletest.methodAnyTest1( obj);
488 		document.writeln( "in: " + obj + " ret: " + ret);
489 		break;
490 
491 
492 	// Test ANY property
493 	case 1010:
494 		i= 100;
495 		oletest.AttrAny2= i;
496 		ret= oletest.AttrAny2;
497 		document.writeln( "set: " + i + " get: " + ret);
498 		break;
499 	case 1011:
500 		i= 3.14;
501 		oletest.AttrAny2= i;
502 		ret= oletest.AttrAny2;
503 		document.writeln( "set: " + i + " get: " + ret);
504 		break;
505 	case 1012:
506 		i= "Hallo"
507 		oletest.AttrAny2= i;
508 		ret= oletest.AttrAny2;
509 		document.writeln( "set: " + i + " get: " + ret);
510 		break;
511 	case 1013:
512 		i= arr;
513 		oletest.AttrAny2= i;
514 		ret= oletest.AttrAny2;
515 		sfarray= new VBArray( ret);
516 		document.writeln( "set: " + i + " get: " + sfarray.toArray());
517 		break;
518 	case 1014:
519 		var obj= new Object();
520 		obj[1]= "This is index 0";
521 		oletest.AttrAny2= obj;
522 		ret= oletest.AttrAny2;
523 		document.writeln( "set: " + obj + " get: " + ret);
524 		break;
525 
526 	// Structs ----------------------------------------------
527 	case 1020:
528 		 var struct= oletest._GetStruct("com.sun.star.beans.Property");
529 		 struct.Attributes= 1;
530 		 struct.Handle= 2;
531 		 struct.Name= "some Property"
532 		 oletest.methodStruct( struct);
533 		 break;
534 	case 1021:
535 		var struct= oletest.retMethodStruct();
536 		alert( "Property::Attributes : " + struct.Attributes + " \nProperty::Handle : "
537 		+ struct.Handle + "\n Property::Name : " + struct.Name);
538 		break;
539 	case 1022:
540 		 var struct= oletest._GetStruct("com.sun.star.beans.Property");
541 		 struct.Attributes= 1;
542 		 struct.Handle= 2;
543 		 struct.Name= "some Property"
544 		 oletest.AttrStruct=  struct;
545 
546 		 var struct2= oletest.AttrStruct;
547 		alert( "property get: \n Property::Attributes : " + struct2.Attributes + " \nProperty::Handle : "
548 		+ struct2.Handle + "\n Property::Name : " + struct2.Name);
549 		break;
550 
551 	case 2100:
552 		alert("2100");
553 		var ret= oletest.retMethodByte();
554 		var sfarray= VBArray( ret);
555 		document.writeln( sfarray.toArray() );
556 		break;
557 
558 
559 
560 	}
561 
562 }
563 
564 function funcOut( out)
565 {
566 	out["du"]= 0xffff;
567 }
568 
569 </script>
570 
571 <script language="VBScript">
572 
573 sub callBasic(id)
574 
575 	Dim factory
576 	Set	factory= GetObject("", "com.sun.star.ServiceManager")
577 
578 	Set	oletest= factory.createInstance("oletest.OleTest")
579 
580 
581 	arrInt= Array(1,2,3,4,5)
582 	arrInt2= Array( -1, -2, 127, 128, 0)
583 	arrDouble= Array(1.1, 2.2, 3.3, 4.4, 5.5)
584 	arrBool= Array(0,1,0,2,0)
585 	arrLong= Array( &Hff, &Hffff, &Hffffff, &Hffffffff)
586 	arrString= Array("Chicken Wings", "Cheeseburger", "Hamburger")
587 	arrChar= Array("a",65, "M")
588 	arrAny= Array("Mickey", 3.14, 100, "A")
589 
590 	Dim arrDim2Int(1,1)
591 	For i= 0 To 1
592 		For j= 0 To 1
593 			arrDim2Int(i,j) = i*2 + j
594 		Next
595 	Next
596 
597 	Dim arrDim3Int(1,1,1)
598 	For i= 0 To 1
599 		For j= 0 To 1
600 			For k=0 To 1
601 				arrDim3Int(i,j,k) = i*2 + j*2 + k
602 			Next
603 		Next
604 	Next
605 
606 
607 	select case id
608 		case 0
609 			document.writeln "param: "
610 			printArray arrInt
611 			ret= oletest.methodByte(arrInt)
612 			document.writeln "<br> return value: "
613 			printArray ret
614 		case 1
615 			document.writeln "param: "
616 			printArray arrDouble
617 			ret= oletest.methodDouble(arrDouble)
618 			document.writeln "<br> return value: "
619 			printArray ret
620 		case 2
621 			document.writeln "param: "
622 			printArray arrBool
623 			ret= oletest.methodBool(arrBool)
624 			document.writeln "<br> return value: "
625 			printArray ret
626 		case 3
627 			document.writeln "param: "
628 			printArray arrInt2
629 			ret= oletest.methodShort(arrInt2)
630 			document.writeln "<br> return value: "
631 			printArray ret
632 		case 4
633 			document.writeln "param: "
634 			printArray arrInt
635 			ret= oletest.methodUShort(arrInt)
636 			document.writeln "<br> return value: "
637 			printArray ret
638 		case 5
639 			document.writeln "param: "
640 			printArray arrLong
641 			ret= oletest.methodLong(arrLong)
642 			document.writeln "<br> return value: "
643 			printArray ret
644 		case 6
645 			document.writeln "param: "
646 			printArray arrInt
647 			ret= oletest.methodULong(arrInt)
648 			document.writeln "<br> return value: "
649 			printArray ret
650 		case 7
651 			document.writeln "param: "
652 			printArray arrString
653 			ret= oletest.methodString(arrString)
654 			document.writeln "<br> return value: "
655 			printArray ret
656 		case 8
657 			document.writeln "param: "
658 			printArray arrChar
659 			ret= oletest.methodChar(arrChar)
660 			document.writeln "<br> return value: "
661 			printArray ret
662 		case 9
663 			document.writeln "param: "
664 			printArray arrAny
665 			ret= oletest.methodAny(arrAny)
666 			document.writeln "<br> return value: "
667 			printArray ret
668 		case 10
669 			document.writeln "param: "
670 			printArray2 arrDim2Int
671 			ret= oletest.methodSequence(arrDim2Int)
672 			document.writeln "<br> return value: "
673 			for each val in ret
674 				document.write "<br> array: "
675 				for each val2 in val
676 					document.write val2
677 				next
678 			next
679 
680 	// Out Parameter
681 		case 150
682 			dim rOut
683 			oletest.testout_methodByte rOut
684 			MsgBox rOut
685 //	void testout_methodFloat( [out] float rOut);
686 //	void testout_methodDouble( [out] double rOut);
687 //	void testout_methodBool( [out] boolean rOut);
688 //	void testout_methodShort( [out] short rOut);
689 //	void testout_methodUShort( [out] unsigned short rOut);
690 //	void testout_methodLong( [out]  long rOut);
691 //	void testout_methodULong( [out] unsigned long rOut);
692 
693 
694  // In Out Parameter --------------------------------------------------
695 		case 100
696 			a= 100
697 			document.write "param: " & CStr(  a) & "<br>"
698 			oletest.testinout_methodByte a
699 			document.write a
700 		case 101
701 			a= 1.11
702 			document.write "param: " & CStr(  a) & "<br>"
703 			oletest.testinout_methodDouble a
704 			document.write a
705 		case 102
706 			a= 5
707 			document.write "param: "& CStr(  a) & "<br>"
708 			oletest.testinout_methodBool a
709 			document.write a
710 		case 103
711 			a= -10
712 			document.write "param: "& CStr(  a) & "<br>"
713 			oletest.testinout_methodShort a
714 			document.write a
715 		case 104
716 			a= 128
717 			document.write "param: "& CStr(  a) & "<br>"
718 			oletest.testinout_methodUShort a
719 			document.write a
720 		case 105
721 			a= 65556
722 			document.write "param: "& CStr(  a) & "<br>"
723 			oletest.testinout_methodLong a
724 			document.write a
725 		case 106
726 			a= 65556
727 			document.write "param: "& CStr(  a) & "<br>"
728 			oletest.testinout_methodULong a
729 			document.write a
730 		case 107
731 			a= "ein test string"
732 			document.write "param: "& CStr(  a) & "<br>"
733 			oletest.testinout_methodString a
734 			document.write a
735 		case 108
736 			a= "W"
737 			document.write "param: "& CStr(  a) & "<br>"
738 			oletest.testinout_methodChar a
739 			document.write a
740 		case 109
741 			a= "Ein String im Any"
742 			document.write "param: "& CStr(  a) & "<br>"
743 			oletest.other_methodAnyIn a
744 			document.write a
745 
746 		case 150
747 			dim a
748 			document.write "param: "& CStr(  a) & "<br>"
749 			oletest.testout_methodByte( a)
750 			document.write a
751 // Attributes -----------------------------------------------------------------
752 		case 200
753 			document.write "set: "
754 			printArray arrInt
755 			oletest.AttrByte= arrInt
756 			b= oletest.AttrByte
757 			call printArrayEx( "<br> get: ", "<br>", b)
758 		case 201
759 			document.write "set: "
760 			printArray arrDouble
761 			oletest.AttrDouble= arrDouble
762 			b= oletest.AttrDouble
763 			call printArrayEx( "<br> get: ", "<br>", b)
764 		case 202
765 			document.write "set: "
766 			printArray arrBool :
767 			oletest.AttrBool= arrBool
768 			b= oletest.AttrBool
769 			call printArrayEx( "<br> get: ", "<br>", b)
770 		case 203
771 			document.write "set: "
772 			printArray arrInt2 :
773 			oletest.AttrShort= arrInt2
774 			b= oletest.AttrShort
775 			call printArrayEx( "<br> get: ", "<br>", b)
776 		case 204
777 			document.write "set: "
778 			printArray arrInt
779 			oletest.AttrUShort= arrInt
780 			b= oletest.AttrUShort
781 			call printArrayEx( "<br> get: ", "<br>", b)
782 		case 205
783 			document.write "set: "
784 			printArray arrInt2
785 			oletest.AttrLong= arrInt2
786 			b= oletest.AttrLong
787 			call printArrayEx( "<br> get: ", "<br>", b)
788 		case 206
789 			document.write "set: "
790 			printArray arrInt
791 			oletest.AttrULong= arrInt
792 			b= oletest.AttrULong
793 			call printArrayEx( "<br> get: ", "<br>", b)
794 		case 207
795 			document.write "set: "
796 			printArray arrString
797 			oletest.AttrString= arrString
798 			b= oletest.AttrString
799 			call printArrayEx( "<br> get: ", "<br>", b)
800 		case 208
801 			document.write "set: "
802 			printArray arrChar
803 			oletest.AttrChar= arrChar
804 			b= oletest.AttrChar
805 			call printArrayEx( "<br> get: ", "<br>", b)
806 		case 209
807 			document.write "set: "
808 			printArray arrAny
809 			oletest.AttrAny= arrAny
810 			b= oletest.AttrAny
811 			call printArrayEx( "<br> get: ", "<br>", b)
812 
813 		case 210
814 			document.write "set: <br>"
815 			printArray2 arrDim2Int :
816 			oletest.AttrSequence= arrDim2Int
817 			ret= oletest.AttrSequence
818 			document.write "get: "
819 			for each val in ret
820 				document.write "<br> array: "
821 				for each val2 in val
822 					document.write val2
823 				next
824 			next
825 
826 		case 300
827 			dim aByte
828 			aByte= 100
829 			call oletest.testinout_methodByte( aByte)
830 			MsgBox aByte
831 
832 
833 		case 400
834 
835 		set  struct= oletest.Bridge_GetStruct("com.sun.star.beans.Property")
836 		 struct.Attributes= 1
837 		 struct.Handle= 2
838 		 struct.Name= "some Property"
839 		 oletest.methodStruct struct
840 
841 	case 401
842 		set struct= oletest.retMethodStruct()
843 		alert( "Property::Attributes : " & struct.Attributes & vblf & " Property::Handle : " _
844 		& struct.Handle & vblf & " Property::Name : " & struct.Name)
845 
846 	case 402
847 		set struct= oletest.Bridge_GetStruct("com.sun.star.beans.Property")
848 		 struct.Attributes= 1
849 		 struct.Handle= 2
850 		 struct.Name= "some Property"
851 		 oletest.AttrStruct=  struct
852 
853 		 set struct2= oletest.AttrStruct
854 		alert( "property get: " & vblf & "Property::Attributes : " & struct2.Attributes & _
855 		vblf & " Property::Handle : " &  struct2.Handle & vblf & " Property::Name : " _
856 		& struct2.Name)
857 	end select
858 end sub
859 
860 sub printArray( arr)
861 	document.write "array: "
862 	For Each val In arr
863 		document.write CStr(val) & " "
864 	Next
865 end sub
866 
867 // print a 2 dimensional Array
868 
869 sub printArray2( arr)
870 		elements1= UBound( arr, 1) - LBound( arr, 1) +1
871 		elements2= UBound( arr, 2) - LBound( arr, 2) +1
872 
873 		For i=0 To elements1 -1
874 			document.write( "array " & CStr( i) & ": "  )
875 			For j=0 To elements2 -1
876 				document.write CStr( arr(i,j))
877 			Next
878 			document.write( "<br>")
879 		Next
880 end sub
881 
882 sub printArrayEx( pre, post, array)
883 	document.write pre
884 	printArray array
885 	document.write post
886 end sub
887 </script>
888 
889 <div id=out> </div>
890 
891 <!-- Insert HTML here -->
892 
893 <h2> JScript </h2>
894 Tests Array/Sequence conversion.<br>
895 All methods receive a Sequence as Parameter. The element type of the Sequence is written on the buttons.
896 <br>
897 <button onclick='callOleTest( 1)'>byte</Button>
898 <button onclick='callOleTest( 14)'>float</Button>
899 <button onclick='callOleTest( 2)'>double</Button>
900 <button onclick='callOleTest( 3)'>boolean</Button>
901 <button onclick='callOleTest( 4)'>short</Button>
902 <button onclick='callOleTest( 5)'>unsigned short</Button>
903 <button onclick='callOleTest( 6)'>long</Button>
904 <button onclick='callOleTest( 7)'>unsigned long</Button>
905 <button onclick='callOleTest( 8)'>char</Button>
906 <button onclick='callOleTest( 9)'>string</Button>
907 <button onclick='callOleTest( 10)'>any</Button>
908 <button onclick='callOleTest( 11)'>sequence&lt;long&gt; </Button>
909 <button onclick='callOleTest( 12)'>sequence&lt;sequence&lt;long&gt; &gt; </Button>
910 <button onclick='callOleTest( 13)' id=button2 name=button2>XInterface</Button>
911 <button onclick='callOleTest( 15)'>XEventListener</Button>
912 <button onclick='callOleTest( 16)'>sequence&lt;XEventListener&gt;</Button>
913 <p>
914 
915 <p>
916 Out Parameter <br>
917 <button onclick='callOleTest( 2000)'>byte </Button>
918 <button onclick='callOleTest( 2016)'>float</Button>
919 <button onclick='callOleTest( 2001)'>double</Button>
920 <button onclick='callOleTest( 2002)'>boolean</Button>
921 <button onclick='callOleTest( 2003)'>short</Button>
922 <button onclick='callOleTest( 2004)'>unsigned short</Button>
923 <button onclick='callOleTest( 2005)'>long</Button>
924 <button onclick='callOleTest( 2006)'>unsigned long</Button>
925 <button onclick='callOleTest( 2007)'>char</Button>
926 <button onclick='callOleTest( 2008)'>string</Button>
927 <button onclick='callOleTest( 2009)'>any</Button>
928 <button onclick='callOleTest( 2010)'>sequence&ltlong&gt </Button>
929 <button onclick='callOleTest( 2011)'>sequence&ltsequence&ltlong&gt &gt </Button>
930 <button onclick='callOleTest( 2012)'>2 out </Button>
931 <button onclick='callOleTest( 2013)'>3 out </Button>
932 <button onclick='callOleTest( 2014)'>1 in & 1 out </Button>
933 <button onclick='callOleTest( 2015)'>XInterface </Button>
934 <button onclick='callOleTest( 2017)'>mixed out and in </Button>
935 
936 
937 <p>
938 In Out Parameter <br>
939 <button onclick='callOleTest( 500)'>byte </Button>
940 <button onclick='callOleTest( 513)'>float</Button>
941 <button onclick='callOleTest( 501)'>double</Button>
942 <button onclick='callOleTest( 502)'>boolean</Button>
943 <button onclick='callOleTest( 503)'>short</Button>
944 <button onclick='callOleTest( 504)'>unsigned short</Button>
945 <button onclick='callOleTest( 505)'>long</Button>
946 <button onclick='callOleTest( 506)'>unsigned long</Button>
947 <button onclick='callOleTest( 507)'>char</Button>
948 <button onclick='callOleTest( 508)'>string</Button>
949 <button onclick='callOleTest( 509)'>any</Button>
950 <button onclick='callOleTest( 510)'>sequence&ltlong&gt </Button>
951 <button onclick='callOleTest( 511)'>sequence&ltsequence&ltlong&gt &gt </Button>
952 <button onclick='callOleTest( 512)'>XInterface </Button>
953 <p>
954 
955 Tests Array/Sequence conversion with Attributes. All params are of type Sequence and
956  the element type of the Sequence is written on the buttons. <br>
957 <button onclick='callOleTest( 200)'>byte </Button>
958 <button onclick='callOleTest( 212)'>float</Button>
959 <button onclick='callOleTest( 201)'>double</Button>
960 <button onclick='callOleTest( 202)'>boolean</Button>
961 <button onclick='callOleTest( 203)'>short</Button>
962 <button onclick='callOleTest( 204)'>unsigned short</Button>
963 <button onclick='callOleTest( 205)'>long</Button>
964 <button onclick='callOleTest( 206)'>unsigned long</Button>
965 <button onclick='callOleTest( 207)'>char</Button>
966 <button onclick='callOleTest( 208)'>string</Button>
967 <button onclick='callOleTest( 209)'>any</Button>
968 <button onclick='callOleTest( 210)'>sequence&ltlong&gt </Button>
969 <button onclick='callOleTest( 211)'>sequence&ltsequence&ltlong&gt &gt </Button>
970 <p>
971 
972 Test of Any parameter in a method. Any contains:<br>
973 <button onclick='callOleTest( 1000)'>integer </Button>
974 <button onclick='callOleTest( 1001)'>double </Button>
975 <button onclick='callOleTest( 1002)'>string</Button>
976 <button onclick='callOleTest( 1003)'>array</Button>
977 <button onclick='callOleTest( 1004)'>object</Button>
978 <p>
979 Test of Any parameter in a property. Any contains:<br>
980 <button onclick='callOleTest( 1010)'>integer </Button>
981 <button onclick='callOleTest( 1011)'>double </Button>
982 <button onclick='callOleTest( 1012)'>string</Button>
983 <button onclick='callOleTest( 1013)'>array</Button>
984 <button onclick='callOleTest( 1014)'>object</Button>
985 <P>
986 Test of Struct conversions<br>
987 <button onclick='callOleTest( 1020)'>methodStruct </Button>
988 <button onclick='callOleTest( 1021)'>return struct</Button>
989 <button onclick='callOleTest( 1022)'>struct attribute</Button>
990 
991 
992 
993 
994 <p>
995 
996 
997 <h2> Visual Basic Tests </h2>
998 Test array /Sequence conversion and return value<br>
999 Template: <b> Sequence &lt type &gt method( Sequence&lt type &gt ) </b> <br>
1000 <!--<font color= red>Multi dimensional arrays are not processed by VBSript</font> <br>  -->
1001 <button onclick='callBasic(0)'>byte</button>
1002 <button onclick='callBasic(1)'>double</button>
1003 <button onclick='callBasic(2)'>boolean</button>
1004 <button onclick='callBasic(3)'>short</button>
1005 <button onclick='callBasic(4)'>u short</button>
1006 <button onclick='callBasic(5)'>long</button>
1007 <button onclick='callBasic(6)'>u long</button>
1008 <button onclick='callBasic(7)'>string</button>
1009 <button onclick='callBasic(8)'>char</button>
1010 <button onclick='callBasic(9)'>any</button> <br>
1011 <button onclick='callBasic(10)'>Seq &lt int &gt</button> <br>
1012 
1013 
1014 IN/Out parameter <br>
1015 Template: <b> void method(type  ) </b> <br>
1016 <button onclick='callBasic(100)'>byte</button>
1017 <button onclick='callBasic(101)'>double</button>
1018 <button onclick='callBasic(102)'>boolean</button>
1019 <button onclick='callBasic(103)'>short</button>
1020 <button onclick='callBasic(104)'>u short</button>
1021 <button onclick='callBasic(105)'>long</button>
1022 <button onclick='callBasic(106)'>u long</button>
1023 <button onclick='callBasic(107)'>string</button>
1024 <button onclick='callBasic(108)'>char</button>
1025 <button onclick='callBasic(109)'>any</button> <br>
1026 
1027 Simple out parameter<br>
1028 <button onclick='callBasic(150)'>byte</button>
1029 <!--<button onclick='callBasic(151)'>double</button>
1030 <button onclick='callBasic(152)'>boolean</button>
1031 <button onclick='callBasic(153)'>short</button>
1032 <button onclick='callBasic(155)'>long</button>
1033 <button onclick='callBasic(157)'>string</button>
1034 <button onclick='callBasic(158)'>char</button>
1035 <button onclick='callBasic(159)'>any</button> <br>
1036 //-->
1037 <br>
1038 
1039 
1040 Tests Array/Sequence conversion with <b>Attributes</b>. All params are of type Sequence and
1041  the element type of the Sequence is written on the buttons. <br>
1042 <button onclick='callBasic( 200)'>byte </Button>
1043 <button onclick='callBasic( 201)'>double</Button>
1044 <button onclick='callBasic( 202)'>boolean</Button>
1045 <button onclick='callBasic( 203)'>short</Button>
1046 <button onclick='callBasic( 204)'>unsigned short</Button>
1047 <button onclick='callBasic( 205)'>long</Button>
1048 <button onclick='callBasic( 206)'>unsigned long</Button>
1049 <button onclick='callBasic( 207)'>string</Button>
1050 <button onclick='callBasic( 208)'>char</Button>
1051 <button onclick='callBasic( 209)'>any</Button>
1052 <button onclick='callBasic( 210)'>sequence&ltlong&gt </Button> <br>
1053 
1054 In Out parameter <br>
1055 <button onclick='callBasic( 300)'>byte</Button>
1056 <p>
1057 Structs <br>
1058 <button onclick='callBasic(400)'>methodStruct</button>
1059 <button onclick='callBasic(401)'>return Struct</button>
1060 <button onclick='callBasic(402)'>struct attribute</button>
1061 
1062 
1063 
1064