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