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