<!--*********************************************************** * * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. * ***********************************************************--> <HTML> <HEAD> <META NAME="GENERATOR" Content="Microsoft Developer Studio"> <META HTTP-EQUIV="Content-Type" content="text/html; charset=iso-8859-1"> <TITLE>Document Title</TITLE> </HEAD> <BODY id=theBody> <script language="JScript"> function callOleTest( id) { var factory= new ActiveXObject("com.sun.star.ServiceManager"); var oletest= factory.createInstance("oletest.OleTest"); // alert(oletest); var arr= new Array( 1, 2, 3, 4, 0); var arrDouble= new Array( 1.2345, 12.345, 123,45, 1234.5, 12345); var arrBool= new Array( 1, 0, 2, 0, 3); var arrChar= new Array( '1', 'A', "1", "A", ' ', 55, 56); var arrString= new Array("hamburger","cheeseburger", "chicken nuggets", "chicken wings" , "pizza"); var arrAny= new Array( 100, 100.1235,"hallo"); var arrSeq= new Array( arr, arr, arr); var arrSeq2= new Array( arrSeq, arrSeq, arrSeq) // var ob= new Object(); // ob.value= "A JScript object"; // var arrObject= new Array( ob, ob, ob); var arrout1= new Array(); var arrout2= new Array(); var arrout3= new Array(); var ret, i; var sfarray, sfarray1, sfarray2, sfarray3; var value= oletest._GetValueObject(); var outValue= oletest._GetValueObject(); outValue.InitOutParam(); var outValue2= oletest._GetValueObject(); outValue2.InitOutParam(); var outValue3= oletest._GetValueObject(); outValue3.InitOutParam(); var inoutValue= oletest._GetValueObject(); // inoutValue.InitInOutParam(); switch( id) { // Array in-params case 1: value.Set("[]byte", arr) ret= oletest.methodByte( value); sfarray= new VBArray( ret); document.writeln( "Param: " + arr.toString() + "<br>"); document.writeln( "Returns a Sequence< BYTE > <br>" + sfarray.toArray()) ; break; case 2: value.Set("[]double", arrDouble) ret= oletest.methodDouble( value); sfarray= new VBArray( ret); document.writeln( "Param: " + arrDouble.toString() +"<br>"); document.writeln( "Returns a Sequence< double > <br>" + sfarray.toArray()) ; break; case 3: value.Set("[]boolean", arrBool) ret= oletest.methodBool( value); sfarray= new VBArray( ret); document.writeln( "Param: " + arrBool.toString() +"<br>"); document.writeln( "Returns a Sequence< BOOL > <br>" + sfarray.toArray()) ; break; case 4: value.Set("[]short", arr) ret= oletest.methodShort( value); sfarray= new VBArray( ret); document.writeln( "Param: " + arr.toString() +"<br>"); document.writeln( "Returns a Sequence< SHORT > <br>" + sfarray.toArray()) ; break; case 5: value.Set("[]unsigned short", arr) ret= oletest.methodUShort( value); sfarray= new VBArray( ret); document.writeln( "Param: " + arr.toString() +"<br>"); document.writeln( "Returns a Sequence< unsigned SHORT > <br>" + sfarray.toArray()) ; break; case 6: value.Set("[]long", arr) ret= oletest.methodLong( value); sfarray= new VBArray( ret); document.writeln( "Param: " + arr.toString() +"<br>"); document.writeln( "Returns a Sequence< LONG > <br>" + sfarray.toArray()) ; break; case 7: value.Set("[]unsigned long", arr) ret= oletest.methodULong( value); sfarray= new VBArray( ret); document.writeln( "Param: " + arr.toString() +"<br>"); document.writeln( "Returns a Sequence< unsigned LONG > <br>" + sfarray.toArray()) ; break; case 8: value.Set("[]char", arrChar) ret= oletest.methodChar( value); sfarray= new VBArray( ret); document.writeln( "Param: " + arrChar.toString() +"<br>"); document.writeln( "Returns a Sequence< wchar_t > <br>" + sfarray.toArray()) ; break; case 9: value.Set("[]string", arrString) ret= oletest.methodString( value); sfarray= new VBArray( ret); document.writeln( "Param: " + arrString.toString() +"<br>"); document.writeln( "Returns a Sequence< UString > <br>" + sfarray.toArray()) ; break; case 10: value.Set("[]any", arrAny) ret= oletest.methodAny( value); sfarray= new VBArray( ret); document.writeln( "Param: " + arrAny.toString() +"<br>"); document.writeln( "Returns a Sequence< UsrAny > <br>" + sfarray.toArray() ) ; break; case 11: var allArray= new Array(); for(var i= 0; i <3; i++) { var value1= oletest._GetValueObject(); value1.Set("[]long", arr); allArray[i]= value1; } value.Set("[][]long", allArray); ret= oletest.methodSequence( value); sfarray= new VBArray( ret); document.writeln( "Param: " + arrSeq.toString() +"<br>"); document.writeln("Returns a Sequence< Sequence < long >> <br>") ; var arr1= new Array(); arr1= sfarray.toArray(); for( i=0; i < arr1.length; i++) { sfarray2= new VBArray( arr1[i]); var arr2= new Array(); arr2= sfarray2.toArray(); document.writeln( arr2.toString() + "<br>" ); } break; case 12: var array1= new Array(); for(var i= 0; i <3; i++) { var array2 = new Array(); for( var j= 0; j < 3; j++) { var value2= oletest._GetValueObject(); value2.Set("[]long", arr); array2[j]= value2; } var value1= oletest._GetValueObject(); value1.Set("[][]long", array2) array1[i]= value1; } var valueAll= oletest._GetValueObject(); valueAll.Set("[][][]long",array1); ret= oletest.methodSequence2( valueAll); document.writeln( "Param: " + arrSeq2.toString() +"<br>"); sfarray1= new VBArray( ret); arr1= sfarray1.toArray(); for( i=0; i < arr1.length; i++) { sfarray2= new VBArray( arr1[i]); arr2= sfarray2.toArray(); for ( j=0; j < arr2.length; j++) { sfarray3= new VBArray( arr2[j]); arr3= sfarray3.toArray(); document.write( i+ " "); document.writeln(j + ": "+ arr3.toString() + "<br>" ); } } break; case 13: var ar= new Array(); for( i=0; i< 3; i++) { var ob= new Object(); var valueObject= oletest._GetValueObject(); ob.value= "A JScript object!"; valueObject.Set("com.sun.star.uno.XInterface", ob); // valueObject.Set("long", 5); ar[i]= valueObject; } value.Set("[]com.sun.star.uno.XInterface", ar); // value.Set("[]long", ar); ret = oletest.methodXInterface( value); sfarray= new VBArray( ret); var arRet= sfarray.toArray(); document.writeln( "Params : Array containing objects ") for( index in ar) { document.writeln( "object " + index + ": " + ar[index].Get().value +" "); } document.writeln( "<br>" ) ; document.writeln("Return: <br>"); for( index in arRet) { document.writeln( "object " + index + ": " + arRet[index].value + " "); } break; // Properties: setting and getting values case 200: value.Set("[]byte", arr) oletest.AttrByte = value; ret= oletest.AttrByte; sfarray= new VBArray( ret); document.writeln("Setting AttrByte: " + arr.toString() + "<p>"); document.writeln("Getting AttrByte: " + sfarray.toArray()); break; case 201: value.Set("[]double", arrDouble) oletest.AttrDouble= value; ret= oletest.AttrDouble; sfarray= new VBArray( ret); document.writeln("Setting AttrDouble: " + arrDouble.toString() + "<p>"); document.writeln("Getting AttrDouble: " + sfarray.toArray()); break; case 202: value.Set("[]boolean", arrBool) oletest.AttrBool= value; ret= oletest.AttrBool; sfarray= new VBArray( ret); document.writeln("Setting AttrBool: " + arrBool.toString() + "<p>"); document.writeln("Getting AttrBool: " + sfarray.toArray()); break; case 203: value.Set("[]short", arr) oletest.AttrShort= value; ret= oletest.AttrShort; sfarray= new VBArray( ret); document.writeln("Setting AttrShort: " + arr.toString() + "<p>"); document.writeln("Getting AttrShort: " + sfarray.toArray()); break; case 204: value.Set("[]unsigned short", arr) oletest.AttrUShort= value; ret= oletest.AttrUShort; sfarray= new VBArray( ret); document.writeln("Setting AttrUShort: " + arr.toString() + "<p>"); document.writeln("Getting AttrUShort: " + sfarray.toArray()); break; case 205: value.Set("[]long", arr) oletest.AttrLong= value; ret= oletest.AttrLong; sfarray= new VBArray( ret); document.writeln("Setting AttrLong: " + arr.toString() + "<p>"); document.writeln("Getting AttrLong: " + sfarray.toArray()); break; case 206: value.Set("[]unsigned long", arr) oletest.AttrULong= value; ret= oletest.AttrULong; sfarray= new VBArray( ret); document.writeln("Setting AttrULong: " + arr.toString() + "<p>"); document.writeln("Getting AttrULong: " + sfarray.toArray()); break; case 207: value.Set("[]char", arrChar) oletest.AttrChar= value; ret= oletest.AttrChar; sfarray= new VBArray( ret); document.writeln("Setting AttrChar: " + arrChar.toString() + "<p>"); document.writeln("Getting AttrChar: " + sfarray.toArray()); break; case 208: value.Set("[]string", arrString) oletest.AttrString= value; ret= oletest.AttrString; sfarray= new VBArray( ret); document.writeln("Setting AttrString: " + arrString.toString() + "<p>"); document.writeln("Getting AttrString: " + sfarray.toArray()); break; case 209: value.Set("[]any", arrAny) oletest.AttrAny= value; ret= oletest.AttrAny; sfarray= new VBArray( ret); document.writeln("Setting AttrAny: " + arrAny.toString() + "<p>"); document.writeln("Getting AttrAny: " + sfarray.toArray()); break; case 210: var allArray= new Array(); for(var i= 0; i <3; i++) { var value1= oletest._GetValueObject(); value1.Set("[]long", arr); allArray[i]= value1; } value.Set("[][]long", allArray); oletest.AttrSequence= value; ret= oletest.AttrSequence; sfarray= new VBArray( ret); document.writeln( "Param: " + arrSeq.toString() +"<br>"); document.writeln("Returns a Sequence< Sequence < long >> <br>") ; var arr1= new Array(); arr1= sfarray.toArray(); for( i=0; i < arr1.length; i++) { sfarray2= new VBArray( arr1[i]); var arr2= new Array(); arr2= sfarray2.toArray(); document.writeln( arr2.toString() + "<br>" ); } break; case 211: var array1= new Array(); for(var i= 0; i <3; i++) { var array2 = new Array(); for( var j= 0; j < 3; j++) { var value2= oletest._GetValueObject(); value2.Set("[]long", arr); array2[j]= value2; } var value1= oletest._GetValueObject(); value1.Set("[][]long", array2) array1[i]= value1; } var valueAll= oletest._GetValueObject(); valueAll.Set("[][][]long",array1); oletest.AttrSequence2= valueAll; ret= oletest.AttrSequence2; sfarray1= new VBArray( ret); arr1= sfarray1.toArray(); for( i=0; i < arr1.length; i++) { sfarray2= new VBArray( arr1[i]); arr2= sfarray2.toArray(); for ( j=0; j < arr2.length; j++) { sfarray3= new VBArray( arr2[j]); arr3= sfarray3.toArray(); document.write( i+ " "); document.writeln(j + ": "+ arr3.toString() + "<br>" ); } } break; case 212: var ar= new Array(); for( i=0; i< 3; i++) { var ob= new Object(); var valueObject= oletest._GetValueObject(); ob.value= "A JScript object!"; valueObject.Set("com.sun.star.uno.XInterface", ob); ar[i]= valueObject; } value.Set("[]com.sun.star.uno.XInterface", ar); oletest.AttrXInterface= value; ret= oletest.AttrXInterface; sfarray= new VBArray( ret); var arRet= sfarray.toArray(); document.writeln( "Params : Array containing objects ") for( index in ar) { document.writeln( "object " + index + ": " + ar[index].Get().value +" "); } document.writeln( "<br>" ) ; document.writeln("Return: <br>"); for( index in arRet) { document.writeln( "object " + index + ": " + arRet[index].value + " "); } break; // Out-parameter ------------------------------------------------------------ case (2000): oletest.testout_methodByte( outValue ); alert("byte: " + outValue.Get() ); break; case (2001): oletest.testout_methodDouble( outValue ); alert( "double: " + outValue.Get() ); break; case (2002): oletest.testout_methodBool( outValue ); alert( "boolean: " + outValue.Get() ); break; case (2003): oletest.testout_methodShort( outValue ); alert( "short: " + outValue.Get() ); break; case (2004): oletest.testout_methodUShort( outValue ); alert( "unsigned short: " + outValue.Get() ); break; case (2005): oletest.testout_methodLong( outValue ); alert( "long: " + outValue.Get() ); break; case (2006): oletest.testout_methodULong( outValue ); alert( "unsigned long: " + outValue.Get() ); break; case (2007): oletest.testout_methodChar( outValue ); alert( "char: " + outValue.Get() ); break; case (2008): oletest.testout_methodString( outValue ); alert( "string: " + outValue.Get()); break; case (2009): oletest.testout_methodAny( outValue ); alert( "any: " + outValue.Get() ); break; case (2010): oletest.testout_methodSequence( outValue ); var sfarray= new VBArray( outValue.Get()); arr= sfarray.toArray(); document.writeln("use the browser's back arrow to go to the previous page <p>"); document.writeln( arr.toString()); break; case (2011): oletest.testout_methodSequence2( outValue ); var sfarray= new VBArray( outValue.Get()); arr= sfarray.toArray(); var i; for( i=0; i < arr.length; i++) { var sfarray= new VBArray( arr[i]); var arr2= new Array(); arr2= sfarray.toArray(); document.writeln( arr2.toString() + "<br>" ); } break; case (2012): oletest.testout_methodMulParams1( outValue, outValue2 ); document.writeln( "int : " + outValue.Get() + " int :" + outValue2.Get()); break; case (2013): oletest.testout_methodMulParams2( outValue, outValue2, outValue3 ); document.writeln( "int: " + outValue.Get() + " int: " + outValue2.Get() + " string: " + outValue3.Get() ); break; case (2014): oletest.testout_methodMulParams3( "hallo", outValue ); document.writeln( "string: " + outValue.Get() ); break; case (2015): oletest.testout_methodXInterface( outValue ); var out= outValue.Get(); document.writeln( "string: " + out.AttrAny2); break; // INOUT - Parameter ------------------------------------------------------------------------------- // The in value has to be placed on index 0 of the passed in array case (500): inoutValue.InitInOutParam("byte", 100); oletest.testinout_methodByte( inoutValue ); alert("byte: " + inoutValue.Get() ); break; case (501): inoutValue.InitInOutParam("double", 3.14); oletest.testinout_methodDouble( inoutValue ); alert( "double: " + inoutValue.Get() ); break; case (502): inoutValue.InitInOutParam("boolean", false); oletest.testinout_methodBool( inoutValue ); alert( "boolean: " + inoutValue.Get() ); break; case (503): inoutValue.InitInOutParam( "short", 200); oletest.testinout_methodShort( inoutValue ); alert( "short: " + inoutValue.Get() ); break; case (504): inoutValue.InitInOutParam("unsigned short", 300); oletest.testinout_methodUShort( inoutValue ); alert( "unsigned short: " + inoutValue.Get() ); break; case (505): inoutValue.InitInOutParam("long", 400); oletest.testinout_methodLong( inoutValue ); alert( "long: " + inoutValue.Get() ); break; case (506): inoutValue.InitInOutParam( "unsigned long", 500); oletest.testinout_methodULong( inoutValue ); alert( "unsigned long: " + inoutValue.Get() ); break; case (507): inoutValue.InitInOutParam( "char", "A"); oletest.testinout_methodChar( inoutValue ); alert( "char: " + inoutValue.Get() ); break; case (508): inoutValue.InitInOutParam("string", "I am a string"); oletest.testinout_methodString( inoutValue ); alert( "string: " + inoutValue.Get() ); break; case (509): inoutValue.InitInOutParam("[]long", arr); oletest.testinout_methodAny( inoutValue ); // the method simply returns the argument sfarray= new VBArray( inoutValue.Get()); arr= sfarray.toArray(); alert( "any: " + arr.toString() ); break; case (510): inoutValue.InitInOutParam("[]long", arr); oletest.testinout_methodSequence( inoutValue ); var sfarray= new VBArray( inoutValue.Get()); arr= sfarray.toArray(); document.writeln("use the browser's back arrow to go to the previous page <p>"); document.writeln( arr.toString()); break; case (511): inoutValue.InitInOutParam( "[][]long", arrSeq); oletest.testinout_methodSequence2( inoutValue ); var sfarray= new VBArray( inoutValue.Get()); arr= sfarray.toArray(); var i; for( i=0; i < arr.length; i++) { var sfarray= new VBArray( arr[i]); var arr2= new Array(); arr2= sfarray.toArray(); document.writeln( arr2.toString() + "<br>" ); } break; case 512: var ob= new Object(); ob.value= "this is a string"; inoutValue.InitInOutParam( "com.sun.star.script.XInvocation", ob); oletest.testinout_methodXInterface( inoutValue); document.write("Out value: " + inoutValue.Get().value ); break; // Test ANY // Methods case 1000: i= 100; ret= oletest.methodAnyTest1( i); document.writeln( "in: " + i + " ret: " + ret); break; case 1001: i= 3.14; ret= oletest.methodAnyTest1( i); document.writeln( "in: " + i + " ret: " + ret); break; case 1002: i= "Hallo" ret= oletest.methodAnyTest1( i); document.writeln( "in: " + i + " ret: " + ret); break; case 1003: i= arr; ret= oletest.methodAnyTest1( i); sfarray= new VBArray( ret); document.writeln( "in: " + i + " ret: " + sfarray.toArray()); break; case 1004: var obj= new Object(); obj[1]= "This is index 0"; ret= oletest.methodAnyTest1( obj); document.writeln( "in: " + obj + " ret: " + ret); break; // Test ANY property case 1010: i= 100; oletest.AttrAny2= i; ret= oletest.AttrAny2; document.writeln( "set: " + i + " get: " + ret); break; case 1011: i= 3.14; oletest.AttrAny2= i; ret= oletest.AttrAny2; document.writeln( "set: " + i + " get: " + ret); break; case 1012: i= "Hallo" oletest.AttrAny2= i; ret= oletest.AttrAny2; document.writeln( "set: " + i + " get: " + ret); break; case 1013: i= arr; oletest.AttrAny2= i; ret= oletest.AttrAny2; sfarray= new VBArray( ret); document.writeln( "set: " + i + " get: " + sfarray.toArray()); break; case 1014: var obj= new Object(); obj[1]= "This is index 0"; oletest.AttrAny2= obj; ret= oletest.AttrAny2; document.writeln( "set: " + obj + " get: " + ret); break; case 2100: alert("2100"); var ret= oletest.retMethodByte(); var sfarray= VBArray( ret); document.writeln( sfarray.toArray() ); break; // case 5000: // oletest.other_methodAnyIn("hallo"); } } function funcOut( out) { out["du"]= 0xffff; } </script> <script language="VBScript"> sub callBasic(id) Dim factory Set factory= GetObject("", "com.sun.star.ServiceManager") Set oletest= factory.createInstance("oletest.OleTest") arrInt= Array(1,2,3,4,5) arrInt2= Array( -1, -2, 127, 128, 0) arrDouble= Array(1.1, 2.2, 3.3, 4.4, 5.5) arrBool= Array(0,1,0,2,0) arrLong= Array( &Hff, &Hffff, &Hffffff, &Hffffffff) arrString= Array("Chicken Wings", "Cheeseburger", "Hamburger") arrChar= Array("a",65, "M") arrAny= Array("Mickey", 3.14, 100, "A") Dim arrDim2Int(1,1) For i= 0 To 1 For j= 0 To 1 arrDim2Int(i,j) = i*2 + j Next Next Dim arrDim3Int(1,1,1) For i= 0 To 1 For j= 0 To 1 For k=0 To 1 arrDim3Int(i,j,k) = i*2 + j*2 + k Next Next Next set outValue= factory.Bridge_GetValueObject() outValue.InitOutParam set value= factory.Bridge_GetValueObject() select case id case 0 value.Set "[]byte", arrInt ret= oletest.methodByte(value) document.writeln "<br> return value: " printArray ret case 1 document.writeln "param: " printArray arrDouble ret= oletest.methodDouble(arrDouble) document.writeln "<br> return value: " printArray ret case 2 document.writeln "param: " printArray arrBool ret= oletest.methodBool(arrBool) document.writeln "<br> return value: " printArray ret case 3 document.writeln "param: " printArray arrInt2 ret= oletest.methodShort(arrInt2) document.writeln "<br> return value: " printArray ret case 4 document.writeln "param: " printArray arrInt ret= oletest.methodUShort(arrInt) document.writeln "<br> return value: " printArray ret case 5 document.writeln "param: " printArray arrLong ret= oletest.methodLong(arrLong) document.writeln "<br> return value: " printArray ret case 6 document.writeln "param: " printArray arrInt ret= oletest.methodULong(arrInt) document.writeln "<br> return value: " printArray ret case 7 document.writeln "param: " printArray arrString ret= oletest.methodString(arrString) document.writeln "<br> return value: " printArray ret case 8 document.writeln "param: " printArray arrChar ret= oletest.methodChar(arrChar) document.writeln "<br> return value: " printArray ret case 9 document.writeln "param: " printArray arrAny ret= oletest.methodAny(arrAny) document.writeln "<br> return value: " printArray ret case 10 document.writeln "param: " printArray2 arrDim2Int ret= oletest.methodSequence(arrDim2Int) document.writeln "<br> return value: " for each val in ret document.write "<br> array: " for each val2 in val document.write val2 next next // In Out Parameter -------------------------------------------------- case 100 a= 100 document.write "param: " & CStr( a) & "<br>" oletest.testinout_methodByte a document.write a case 101 a= 1.11 document.write "param: " & CStr( a) & "<br>" oletest.testinout_methodDouble a document.write a case 102 a= 5 document.write "param: "& CStr( a) & "<br>" oletest.testinout_methodBool a document.write a case 103 a= -10 document.write "param: "& CStr( a) & "<br>" oletest.testinout_methodShort a document.write a case 104 a= 128 document.write "param: "& CStr( a) & "<br>" oletest.testinout_methodUShort a document.write a case 105 a= 65556 document.write "param: "& CStr( a) & "<br>" oletest.testinout_methodLong a document.write a case 106 a= 65556 document.write "param: "& CStr( a) & "<br>" oletest.testinout_methodULong a document.write a case 107 a= "ein test string" document.write "param: "& CStr( a) & "<br>" oletest.testinout_methodString a document.write a case 108 a= "W" document.write "param: "& CStr( a) & "<br>" oletest.testinout_methodChar a document.write a case 109 a= "Ein String im Any" document.write "param: "& CStr( a) & "<br>" oletest.other_methodAnyIn a document.write a // Attributes ----------------------------------------------------------------- case 200 document.write "set: " printArray arrInt oletest.AttrByte= arrInt b= oletest.AttrByte call printArrayEx( "<br> get: ", "<br>", b) case 201 document.write "set: " printArray arrDouble oletest.AttrDouble= arrDouble b= oletest.AttrDouble call printArrayEx( "<br> get: ", "<br>", b) case 202 document.write "set: " printArray arrBool : oletest.AttrBool= arrBool b= oletest.AttrBool call printArrayEx( "<br> get: ", "<br>", b) case 203 document.write "set: " printArray arrInt2 : oletest.AttrShort= arrInt2 b= oletest.AttrShort call printArrayEx( "<br> get: ", "<br>", b) case 204 document.write "set: " printArray arrInt oletest.AttrUShort= arrInt b= oletest.AttrUShort call printArrayEx( "<br> get: ", "<br>", b) case 205 document.write "set: " printArray arrInt2 oletest.AttrLong= arrInt2 b= oletest.AttrLong call printArrayEx( "<br> get: ", "<br>", b) case 206 document.write "set: " printArray arrInt oletest.AttrULong= arrInt b= oletest.AttrULong call printArrayEx( "<br> get: ", "<br>", b) case 207 document.write "set: " printArray arrString oletest.AttrString= arrString b= oletest.AttrString call printArrayEx( "<br> get: ", "<br>", b) case 208 document.write "set: " printArray arrChar oletest.AttrChar= arrChar b= oletest.AttrChar call printArrayEx( "<br> get: ", "<br>", b) case 209 document.write "set: " printArray arrAny oletest.AttrAny= arrAny b= oletest.AttrAny call printArrayEx( "<br> get: ", "<br>", b) case 210 document.write "set: <br>" printArray2 arrDim2Int : oletest.AttrSequence= arrDim2Int ret= oletest.AttrSequence document.write "get: " for each val in ret document.write "<br> array: " for each val2 in val document.write val2 next next // out params case 300 oletest.testout_methodByte( outValue ) alert("byte: " & outValue.Get() ) end select end sub sub printArray( arr) document.write "array: " For Each val In arr document.write CStr(val) & " " Next end sub // print a 2 dimensional Array sub printArray2( arr) elements1= UBound( arr, 1) - LBound( arr, 1) +1 elements2= UBound( arr, 2) - LBound( arr, 2) +1 For i=0 To elements1 -1 document.write( "array " & CStr( i) & ": " ) For j=0 To elements2 -1 document.write CStr( arr(i,j)) Next document.write( "<br>") Next end sub sub printArrayEx( pre, post, array) document.write pre printArray array document.write post end sub </script> <div id=out> </div> <!-- Insert HTML here --> <h2> JScript with _GetValueObject </h2> Tests Array/Sequence conversion.<br> All methods receive a Sequence as Parameter. The element type of the Sequence is written on the buttons. <br> <button onclick='callOleTest( 1)'>byte</Button> <button onclick='callOleTest( 2)'>double</Button> <button onclick='callOleTest( 3)'>boolean</Button> <button onclick='callOleTest( 4)'>short</Button> <button onclick='callOleTest( 5)'>unsigned short</Button> <button onclick='callOleTest( 6)'>long</Button> <button onclick='callOleTest( 7)'>unsigned long</Button> <button onclick='callOleTest( 8)'>char</Button> <button onclick='callOleTest( 10)'>any</Button> <button onclick='callOleTest( 11)'>sequence<long> </Button> <button onclick='callOleTest( 12)'>sequence<sequence<long> > </Button> <button onclick='callOleTest( 13)'>XInterface</Button> <p> Out Parameter <br> <button onclick='callOleTest( 2000)'>byte </Button> <button onclick='callOleTest( 2001)'>double</Button> <button onclick='callOleTest( 2002)'>boolean</Button> <button onclick='callOleTest( 2003)'>short</Button> <button onclick='callOleTest( 2004)'>unsigned short</Button> <button onclick='callOleTest( 2005)'>long</Button> <button onclick='callOleTest( 2006)'>unsigned long</Button> <button onclick='callOleTest( 2007)'>char</Button> <button onclick='callOleTest( 2008)'>string</Button> <button onclick='callOleTest( 2009)'>any</Button> <button onclick='callOleTest( 2010)'>sequence<long> </Button> <button onclick='callOleTest( 2011)'>sequence<sequence<long> > </Button> <button onclick='callOleTest( 2012)'>2 out </Button> <button onclick='callOleTest( 2013)'>3 out </Button> <button onclick='callOleTest( 2014)'>1 in & 1 out </Button> <button onclick='callOleTest( 2015)'>XInterface </Button> <p> In Out Parameter <br> <button onclick='callOleTest( 500)'>byte </Button> <button onclick='callOleTest( 501)'>double</Button> <button onclick='callOleTest( 502)'>boolean</Button> <button onclick='callOleTest( 503)'>short</Button> <button onclick='callOleTest( 504)'>unsigned short</Button> <button onclick='callOleTest( 505)'>long</Button> <button onclick='callOleTest( 506)'>unsigned long</Button> <button onclick='callOleTest( 507)'>char</Button> <button onclick='callOleTest( 508)'>string</Button> <button onclick='callOleTest( 509)'>any</Button> <button onclick='callOleTest( 510)'>sequence<long> </Button> <button onclick='callOleTest( 511)'>sequence<sequence<long> > </Button> <button onclick='callOleTest( 512)'>XInterface </Button> <p> Tests Array/Sequence conversion with Attributes. All params are of type Sequence and the element type of the Sequence is written on the buttons. <br> <button onclick='callOleTest( 200)'>byte </Button> <button onclick='callOleTest( 201)'>double</Button> <button onclick='callOleTest( 202)'>boolean</Button> <button onclick='callOleTest( 203)'>short</Button> <button onclick='callOleTest( 204)'>unsigned short</Button> <button onclick='callOleTest( 205)'>long</Button> <button onclick='callOleTest( 206)'>unsigned long</Button> <button onclick='callOleTest( 207)'>char</Button> <button onclick='callOleTest( 208)'>string</Button> <button onclick='callOleTest( 209)'>any</Button> <button onclick='callOleTest( 210)'>sequence<long> </Button> <button onclick='callOleTest( 211)'>sequence<sequence<long> > </Button> <button onclick='callOleTest( 212)'>XInterface </Button> <p> <!-- Test of Any parameter in a method. Any contains:<br> <button onclick='callOleTest( 1000)'>integer </Button> <button onclick='callOleTest( 1001)'>double </Button> <button onclick='callOleTest( 1002)'>string</Button> <button onclick='callOleTest( 1003)'>array</Button> <button onclick='callOleTest( 1004)'>object</Button> <p> Test of Any parameter in a property. Any contains:<br> <button onclick='callOleTest( 1010)'>integer </Button> <button onclick='callOleTest( 1011)'>double </Button> <button onclick='callOleTest( 1012)'>string</Button> <button onclick='callOleTest( 1013)'>array</Button> <button onclick='callOleTest( 1014)'>object</Button> <p> <p> --> <h2> Visual Basic Tests </h2> Test array /Sequence conversion and return value<br> Template: <b> Sequence < type > method( Sequence< type > ) </b> <p> <button onclick='callBasic(0)'>byte</button> <!-- <button onclick='callBasic(1)'>double</button> <button onclick='callBasic(2)'>boolean</button> <button onclick='callBasic(3)'>short</button> <button onclick='callBasic(4)'>u short</button> <button onclick='callBasic(5)'>long</button> <button onclick='callBasic(6)'>u long</button> <button onclick='callBasic(7)'>string</button> <button onclick='callBasic(8)'>char</button> <button onclick='callBasic(9)'>any</button> <br> <button onclick='callBasic(10)'>Seq < int ></button> --> <p> Out parameter <br> Template: <b> void method( Sequence < type > ) </b> <br> <button onclick='callBasic(300)'>byte</button> <!-- <button onclick='callBasic(101)'>double</button> <button onclick='callBasic(102)'>boolean</button> <button onclick='callBasic(103)'>short</button> <button onclick='callBasic(104)'>u short</button> <button onclick='callBasic(105)'>long</button> <button onclick='callBasic(106)'>u long</button> <button onclick='callBasic(107)'>string</button> <button onclick='callBasic(108)'>char</button> <button onclick='callBasic(109)'>any</button> <br> --> <p> <!-- Tests Array/Sequence conversion with <b>Attributes</b>. All params are of type Sequence and the element type of the Sequence is written on the buttons. <br> <button onclick='callBasic( 200)'>byte </Button> <button onclick='callBasic( 201)'>double</Button> <button onclick='callBasic( 202)'>boolean</Button> <button onclick='callBasic( 203)'>short</Button> <button onclick='callBasic( 204)'>unsigned short</Button> <button onclick='callBasic( 205)'>long</Button> <button onclick='callBasic( 206)'>unsigned long</Button> <button onclick='callBasic( 207)'>string</Button> <button onclick='callBasic( 208)'>char</Button> <button onclick='callBasic( 209)'>any</Button> <button onclick='callBasic( 210)'>sequence<long> </Button> -->