| <!--*********************************************************** |
| * |
| * 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 runJScriptTest( Log) |
| { |
| document.writeln("================================================================================<br>"); |
| document.writeln("JScript<br>"); |
| document.writeln("================================================================================<p>"); |
| |
| //var name : String = "Fred"; |
| //print(name); |
| var arr= new Array( 1, 2, 3, 4, 0); |
| var arrInt= new Array( 1,2,3,4,5); |
| var arrDouble= new Array( 1.2345, 12.345, 123.45, 1234.5, 12345); |
| var arrBool= new Array( true, false, true, false, true); |
| var arrChar= new Array( '1', 'A'," ", 55); |
| |
| 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( ); |
| |
| var arEventListener= new Array( new XEventListener_Impl(), new XEventListener_Impl(), |
| new XEventListener_Impl()); |
| var arEventListener2= new Array( new XEventListener_Impl(), new XEventListener_Impl(), |
| new XEventListener_Impl()); |
| var arArEventListener= new Array( arEventListener, arEventListener2); |
| |
| var arObj= new Array(); |
| for( i=0; i< 3; i++) |
| { |
| arObj[i]= new Object(); |
| } |
| var outVal= new Array(); |
| var outVal2= new Array(); |
| var outVal3= new Array(); |
| |
| for( i=0; i < 3; i++) |
| { |
| arrSeq2[i]= new Array(); |
| for( j= 0; j < 3; j++) |
| { |
| arrSeq2[i][j]= new Array(); |
| for( k= 0; k < 5; k++) |
| { |
| arrSeq2[i][j][k]= (i * 3 * 5) + (j * 5) + k; |
| // document.write(arrSeq2[i][j][k] + " "); |
| } |
| // document.write("<br>"); |
| } |
| } |
| |
| |
| ret= oletest.methodByte( arr); |
| _ret= new VBArray( ret).toArray(); |
| Log.print( isEqualAr( arr, _ret), "methodByte"); |
| |
| ret= oletest.methodFloat( arrDouble); |
| _ret= new VBArray( ret).toArray(); |
| bOk= false; |
| if( (arrDouble.length == _ret.length) |
| && (_ret[0] > 1.2344 && _ret[0] < 1.2346) |
| && (_ret[1] > 12.344 && _ret[1] < 12.346) |
| && (_ret[2] > 123.44 && _ret[2] < 123.46) |
| && (_ret[3] > 1234.4 && _ret[3] < 1234.6) |
| && (_ret[4] > 12344 && _ret[4] < 12346)) |
| bOk= true; |
| Log.print( bOk, "methodFloat"); |
| |
| ret= oletest.methodDouble( arrDouble); |
| _ret= new VBArray( ret).toArray(); |
| Log.print( isEqualAr( arrDouble, _ret), "methodDouble"); |
| |
| ret= oletest.methodBool( arrBool); |
| _ret= new VBArray( ret).toArray(); |
| Log.print( isEqualAr( arrBool, _ret), "methodBool"); |
| |
| ret= oletest.methodShort( arr); |
| _ret= new VBArray( ret).toArray(); |
| Log.print( isEqualAr( arr, _ret), "methodShort"); |
| |
| ret= oletest.methodUShort( arr); |
| _ret= new VBArray( ret).toArray(); |
| Log.print( isEqualAr( arr, _ret), "methodUShort"); |
| |
| ret= oletest.methodLong( arr); |
| _ret= new VBArray( ret).toArray(); |
| Log.print( isEqualAr( arr, _ret), "methodLong"); |
| |
| ret= oletest.methodULong( arr); |
| _ret= new VBArray( ret).toArray(); |
| Log.print( isEqualAr( arr, _ret), "methodULong"); |
| |
| ret= oletest.methodChar( arrChar); |
| _ret= new VBArray( ret).toArray(); |
| bOk= false; |
| if( _ret.length == arrChar.length && _ret[0] == 49 && _ret[1] == 65 && _ret[2] == 32 && _ret[3] == 55) |
| bOk= true; |
| Log.print( bOk, "methodChar"); |
| |
| ret= oletest.methodString( arrString); |
| _ret= new VBArray( ret).toArray(); |
| Log.print( isEqualAr( arrString, _ret), "methodString"); |
| |
| ret= oletest.methodAny( arrAny); |
| _ret= new VBArray( ret).toArray(); |
| Log.print( isEqualAr( arrAny, _ret), "methodAny"); |
| |
| ret= oletest.methodSequence( arrSeq); |
| _ret= new VBArray( ret).toArray(); |
| for( i=0; i < _ret.length; i++) |
| { |
| sfarray2= new VBArray( _ret[i]); |
| var arr2= sfarray2.toArray(); |
| if( ! isEqualAr(arrSeq[i], arr2)) |
| { |
| bOk= false; |
| break; |
| } |
| } |
| Log.print( bOk, "methodSequence"); |
| |
| ret= oletest.methodSequence2( arrSeq2); |
| arr1= new VBArray( ret).toArray(); |
| for( i=0; i < arr1.length; i++) |
| { |
| var ar2Dim= arrSeq2[i]; |
| sfarray2= new VBArray( arr1[i]); |
| arr2= sfarray2.toArray(); |
| for ( j=0; j < arr2.length; j++) |
| { |
| var ar1Dim= ar2Dim[j]; |
| sfarray3= new VBArray( arr2[j]); |
| arr3= sfarray3.toArray(); |
| // document.write(arr3[j].toString()); |
| if( ! isEqualAr( arrSeq2[i][j], arr3)) |
| { |
| bOk= false; |
| break; |
| } |
| } |
| } |
| Log.print( bOk, "methodSequence2"); |
| |
| ret= oletest.methodXInterface( arObj); |
| _ret= new VBArray( ret).toArray(); |
| bOk= true; |
| for(i in _ret) |
| { |
| if( _ret[i] !== arObj[i]) |
| { |
| bOk= false; |
| break; |
| } |
| } |
| Log.print( bOk, "methodXInterface"); |
| |
| |
| ret= oletest.methodXEventListeners( arEventListener); |
| _ret= new VBArray(ret).toArray(); |
| bOk= true; |
| for ( key in _ret) |
| { |
| if( ! _ret[key].disposingCalled()) |
| { |
| bOk= false; |
| break; |
| } |
| } |
| Log.print( bOk, "methodXEventListeners"); |
| |
| ret= oletest.methodXEventListenersMul( arArEventListener); |
| _ret= new VBArray(ret).toArray(); |
| bOk= true; |
| for( key in _ret) |
| { |
| _ret2= new VBArray(_ret[key]).toArray(); |
| for( key2 in _ret2) |
| { |
| if( ! _ret2[key2].disposingCalled()) |
| { |
| bOk= false; |
| break; |
| } |
| } |
| } |
| Log.print( bOk, "methodXEventListenersMul"); |
| |
| document.writeln("<br>"); |
| oletest.AttrByte = arr; |
| ret= oletest.AttrByte; |
| _ret= new VBArray( ret).toArray(); |
| Log.print( isEqualAr( arr, _ret), "AttrByte"); |
| |
| oletest.AttrFloat= arrDouble; |
| ret= oletest.AttrFloat; |
| _ret= new VBArray( ret).toArray(); |
| bOk= false; |
| if( (arrDouble.length == _ret.length) |
| && (_ret[0] > 1.2344 && _ret[0] < 1.2346) |
| && (_ret[1] > 12.344 && _ret[1] < 12.346) |
| && (_ret[2] > 123.44 && _ret[2] < 123.46) |
| && (_ret[3] > 1234.4 && _ret[3] < 1234.6) |
| && (_ret[4] > 12344 && _ret[4] < 12346)) |
| bOk= true; |
| Log.print( bOk, "AttrFloat"); |
| |
| oletest.AttrDouble= arrDouble; |
| ret= oletest.AttrDouble; |
| _ret= new VBArray( ret).toArray(); |
| Log.print( isEqualAr( arrDouble, _ret), "AttrDouble"); |
| |
| oletest.AttrBool= arrBool; |
| ret= oletest.AttrBool; |
| _ret= new VBArray( ret).toArray(); |
| Log.print( isEqualAr( arrBool, _ret), "AttrBool"); |
| |
| oletest.AttrShort= arr; |
| ret= oletest.AttrShort; |
| _ret= new VBArray( ret).toArray(); |
| Log.print( isEqualAr( arr, _ret), "AttrShort"); |
| |
| oletest.AttrUShort= arr; |
| ret= oletest.AttrUShort; |
| _ret= new VBArray( ret).toArray(); |
| Log.print( isEqualAr( arr, _ret), "AttrUShort"); |
| |
| oletest.AttrLong= arr; |
| ret= oletest.AttrLong; |
| _ret= new VBArray( ret).toArray(); |
| Log.print( isEqualAr( arr, _ret), "AttrLong"); |
| |
| oletest.AttrULong= arr; |
| ret= oletest.AttrULong; |
| _ret= new VBArray( ret).toArray(); |
| Log.print( isEqualAr( arr, _ret), "AttrULong"); |
| |
| oletest.AttrChar= arrChar; |
| ret= oletest.AttrChar; |
| _ret= new VBArray(ret).toArray(); |
| bOk= false; |
| if( _ret.length == arrChar.length && _ret[0] == 49 && _ret[1] == 65 && _ret[2] == 32 && _ret[3] == 55) |
| bOk= true; |
| Log.print( bOk, "AttrChar"); |
| |
| oletest.AttrString= arrString; |
| ret= oletest.AttrString; |
| _ret= new VBArray( ret).toArray(); |
| Log.print( isEqualAr( arrString, _ret), "AttrString"); |
| |
| oletest.AttrAny= arrAny; |
| ret= oletest.AttrAny; |
| _ret= new VBArray( ret).toArray(); |
| Log.print( isEqualAr( arrAny, _ret), "AttrAny"); |
| |
| oletest.AttrSequence= arrSeq; |
| ret= oletest.AttrSequence; |
| _ret= new VBArray( ret).toArray(); |
| for( i=0; i < _ret.length; i++) |
| { |
| sfarray2= new VBArray( _ret[i]); |
| var arr2= sfarray2.toArray(); |
| if( ! isEqualAr(arrSeq[i], arr2)) |
| { |
| bOk= false; |
| break; |
| } |
| } |
| Log.print( bOk, "AttrSequence"); |
| |
| oletest.AttrSequence2= arrSeq2; |
| ret= oletest.AttrSequence2; |
| arr1= new VBArray( ret).toArray(); |
| for( i=0; i < arr1.length; i++) |
| { |
| var ar2Dim= arrSeq2[i]; |
| sfarray2= new VBArray( arr1[i]); |
| arr2= sfarray2.toArray(); |
| for ( j=0; j < arr2.length; j++) |
| { |
| var ar1Dim= ar2Dim[j]; |
| sfarray3= new VBArray( arr2[j]); |
| arr3= sfarray3.toArray(); |
| if( ! isEqualAr( arrSeq2[i][j], arr3)) |
| { |
| bOk= false; |
| break; |
| } |
| } |
| } |
| Log.print( bOk, "AttrSequence2"); |
| |
| oletest.AttrXInterface= arObj; |
| ret= oletest.AttrXInterface; |
| _ret= new VBArray( ret).toArray(); |
| bOk= true; |
| for(i in _ret) |
| { |
| if( _ret[i] !== arObj[i]) |
| { |
| bOk= false; |
| break; |
| } |
| } |
| Log.print( bOk, "AttrXInterface"); |
| |
| ret= oletest.methodXInterface( arObj); |
| _ret= new VBArray( ret); |
| _ret= _ret.toArray(); |
| bOk= true; |
| for(i in _ret) |
| { |
| if( _ret[i] !== arObj[i]) |
| { |
| bOk= false; |
| break; |
| } |
| } |
| Log.print( bOk, "methodXInterface"); |
| //====================================================================================== |
| document.writeln("<br>"); |
| var inVal, outVal, retVal; |
| outVal = new Array(); |
| |
| inVal = 77; |
| retVal = oletest.in_methodByte(inVal) |
| oletest.testout_methodByte( outVal ); |
| Log.print( retVal == inVal, "in_methodByte"); |
| Log.print( outVal[0] == inVal, "testout_methodByte"); |
| |
| inVal = 3.14 |
| retVal = oletest.in_methodFloat(inVal); |
| oletest.testout_methodFloat( outVal ); |
| Log.print( retVal > 3.14 && retVal < 3.15, "in_methodFloat"); |
| Log.print( outVal[0] > 3.13 && outVal[0] < 3.15, "testout_methodFloat"); |
| //Log.print( outVal[0] == inVal, "testout_methodFloat"); |
| |
| retVal = oletest.in_methodDouble(inVal) |
| oletest.testout_methodDouble( outVal ); |
| Log.print( retVal == inVal, "in_methodDouble"); |
| Log.print( outVal[0] == 3.14, "testout_methodDouble" ); |
| |
| inVal = true; |
| retVal = oletest.in_methodBool(inVal); |
| oletest.testout_methodBool( outVal ); |
| Log.print(retVal == inVal, "in_methodBool"); |
| Log.print( outVal[0] == true, "testout_methodBool"); |
| |
| inVal = 111 |
| retVal = oletest.in_methodShort(inVal); |
| oletest.testout_methodShort( outVal ); |
| Log.print(retVal == inVal, "in_methodShort"); |
| Log.print( outVal[0] == inVal, "testout_methodShort"); |
| |
| retVal = oletest.in_methodUShort(inVal); |
| oletest.testout_methodUShort( outVal ); |
| Log.print(retVal == inVal, "in_methodUShort"); |
| Log.print( outVal[0] == inVal, "testout_methodUShort"); |
| |
| retVal = oletest.in_methodLong(inVal); |
| oletest.testout_methodLong( outVal ); |
| Log.print(retVal == inVal, "in_methodLong"); |
| Log.print( outVal[0] == inVal, "testout_methodLong"); |
| |
| retVal = oletest.in_methodULong(inVal); |
| oletest.testout_methodULong( outVal ); |
| Log.print(retVal == inVal, "in_methodULong"); |
| Log.print( outVal[0] == inVal, "testout_methodULong"); |
| |
| retVal = oletest.in_methodChar(inVal); |
| oletest.testout_methodChar( outVal ); |
| Log.print(retVal == inVal, "in_methodChar"); |
| Log.print( outVal[0] == inVal, "testout_methodChar"); |
| |
| inVal = "Hello World"; |
| retVal = oletest.in_methodString(inVal); |
| oletest.testout_methodString( outVal ); |
| Log.print(retVal == inVal, "in_methodString"); |
| Log.print( outVal[0] == inVal, "testout_methodString"); |
| |
| retVal = oletest.in_methodAny(inVal); |
| oletest.testout_methodAny( outVal ); |
| Log.print(retVal == inVal, "in_methodAny"); |
| Log.print( outVal[0] == inVal, "testout_methodAny"); |
| |
| inVal = new Object(); |
| retVal = oletest.in_methodXInterface(inVal); |
| oletest.testout_methodXInterface(outVal); |
| Log.print(retVal === inVal, "in_methodXInterface"); |
| Log.print(outVal[0] === inVal, "testout_methodXInterface"); |
| |
| inVal = oletest; |
| retVal = oletest.in_methodXInterface(inVal); |
| oletest.testout_methodXInterface(outVal); |
| Log.print(retVal === inVal, "in_methodXInterface"); |
| Log.print(outVal[0] === inVal, "testout_methodXInterface"); |
| |
| |
| oletest.testout_methodSequence( outVal ); |
| var arr= new VBArray( outVal[0]).toArray(); |
| Log.print( isEqualAr(arr, new Array( 0,1,2,3,4,5,6,7,8,9)), "testout_methodSequence"); |
| |
| oletest.testout_methodSequence2( outVal ); |
| var arr= new VBArray( outVal[0]).toArray(); |
| bOk= true; |
| if( arr.length= 10) |
| { |
| for( i=0; i < arr.length; i++) |
| { |
| var arr2= new VBArray( arr[i]).toArray(); |
| if( ! isEqualAr( arr2, new Array( 0,1,2,3,4,5,6,7,8,9))) |
| { |
| bOk= false; |
| break; |
| } |
| } |
| } |
| Log.print( bOk, "testout_methodSequence2"); |
| |
| oletest.testout_methodMulParams1( outVal, outVal2 ); |
| Log.print( outVal[0] == 999 && outVal2[0] == 1111, "testout_methodMulParams1"); |
| |
| oletest.testout_methodMulParams2( outVal, outVal2, outVal3 ); |
| Log.print( outVal[0] == 1111 && outVal2[0] == 1222 && outVal3[0] == " another string", |
| "testout_methodMulParams2"); |
| |
| oletest.testout_methodMulParams3( "hallo", outVal ); |
| Log.print( outVal[0] == "Out Hallo!", "testout_methodMulParams3"); |
| |
| var in1= 3.14; |
| var in2= 1111; |
| var in3= -2222; |
| oletest.testout_methodMulParams4( in1, outVal, in2, outVal2, in3 ); |
| Log.print( (outVal[0] > 4.13 && outVal[0] < 4.15) && (outVal2[0] == 1112), "testout_methodMulParams4"); |
| |
| document.writeln("<p>"); |
| |
| inVal = 100; |
| outVal[0]= inVal; |
| oletest.testinout_methodByte( outVal ); |
| oletest.testinout_methodByte( outVal ); |
| Log.print( outVal[0] == inVal, "testinout_methodByte"); |
| |
| inVal = 3.14; |
| outVal[0]= inVal; |
| oletest.testinout_methodFloat( outVal ); |
| oletest.testinout_methodFloat( outVal ); |
| Log.print( outVal[0] > 3.13 && outVal[0] < 3.15, "testinout_methodFloat"); |
| |
| inVal = 3.14 |
| outVal[0]= inVal; |
| oletest.testinout_methodDouble( outVal ); |
| oletest.testinout_methodDouble( outVal ); |
| Log.print( outVal[0] == inVal, "testinout_methodDouble"); |
| |
| inVal = true; |
| outVal[0]= inVal; |
| oletest.testinout_methodBool( outVal ); |
| oletest.testinout_methodBool( outVal ); |
| Log.print( outVal[0] == inVal, "testinout_methodBool"); |
| |
| inVal = 200; |
| outVal[0]= inVal; |
| oletest.testinout_methodShort( outVal ); |
| oletest.testinout_methodShort( outVal ); |
| Log.print( outVal[0] == inVal, "testinout_methodShort"); |
| |
| inVal = 300; |
| outVal[0]= inVal; |
| oletest.testinout_methodUShort( outVal ); |
| oletest.testinout_methodUShort( outVal ); |
| Log.print( outVal[0] == inVal, "testinout_methodUShort"); |
| |
| inVal = 400 |
| outVal[0]= inVal; |
| oletest.testinout_methodLong( outVal ); |
| oletest.testinout_methodLong( outVal ); |
| Log.print( outVal[0] == inVal, "testinout_methodLong"); |
| |
| inVal = 500; |
| outVal[0]= inVal; |
| oletest.testinout_methodULong( outVal ); |
| oletest.testinout_methodULong( outVal ); |
| Log.print( outVal[0] == inVal, "testinout_methodULong"); |
| |
| inVal = "B"; |
| outVal[0]= inVal; |
| oletest.testinout_methodChar( outVal ); |
| oletest.testinout_methodChar( outVal ); |
| |
| Log.print( outVal[0] == 66, "testinout_methodChar"); |
| |
| inVal = "Hello World 2!"; |
| outVal[0]= inVal; |
| oletest.testinout_methodString( outVal ); |
| oletest.testinout_methodString( outVal ); |
| Log.print( outVal[0] == inVal, "testinout_methodString"); |
| |
| inVal = new Object(); |
| outVal[0]= inVal; |
| oletest.testinout_methodAny( outVal ); |
| oletest.testinout_methodAny( outVal ); |
| Log.print( outVal[0] === inVal, "testinout_methodAny"); |
| |
| inVal = arrInt; |
| outVal[0] = inVal; |
| oletest.testinout_methodSequence( outVal ); |
| oletest.testinout_methodSequence( outVal ); |
| retVal = new VBArray(outVal[0]).toArray(); |
| |
| Log.print( isEqualAr(retVal, new Array(3,4,5,6,7)), "testinout_methodSequence"); |
| |
| |
| outVal[0]= arrSeq; |
| oletest.testinout_methodSequence2( outVal ); |
| var arr= new VBArray( outVal[0]).toArray(); |
| var i; |
| bOk= true; |
| if( arr.length == 3) |
| { |
| var tmpArr= new Array(2,4,6,8,0); |
| for( i=0; i < arr.length; i++) |
| { |
| var arr2= new VBArray( arr[i]).toArray(); |
| if( ! isEqualAr( arr2, tmpArr)) |
| { |
| bOk= false; |
| break; |
| } |
| } |
| } |
| Log.print( bOk, "testinout_methodSequence2"); |
| |
| |
| var ob= new Object(); |
| var sInVal= "this is a string" |
| ob.value= sInVal; |
| outVal[0]= ob; |
| oletest.testinout_methodXInterface( outVal); |
| Log.print( outVal[0].value == "out", "testinout_methodXInterface"); |
| document.writeln("<p>"); |
| |
| i= 100; |
| ret= oletest.methodAnyTest1( i); |
| Log.print( i == ret, "methodAnyTest1"); |
| |
| i= 3.14; |
| ret= oletest.methodAnyTest1( i); |
| Log.print( i == ret, "methodAnyTest1"); |
| |
| i= "Hallo" |
| ret= oletest.methodAnyTest1( i); |
| Log.print( i == ret, "methodAnyTest1"); |
| |
| i= arrInt; |
| ret= oletest.methodAnyTest1( i); |
| var arr= new VBArray( ret).toArray(); |
| Log.print( isEqualAr(arr, arrInt), "methodAnyTest1"); |
| |
| var obj= new Object(); |
| ret= oletest.methodAnyTest1( obj); |
| Log.print( obj == ret, "methodAnyTest1"); |
| |
| |
| document.writeln("<p>"); |
| |
| i= 100; |
| oletest.AttrAny2= i; |
| ret= oletest.AttrAny2; |
| Log.print( i == ret, "AttrAny2"); |
| |
| i= 3.14; |
| oletest.AttrAny2= i; |
| ret= oletest.AttrAny2; |
| Log.print( i == ret, "AttrAny2"); |
| |
| i= "Hallo" |
| oletest.AttrAny2= i; |
| ret= oletest.AttrAny2; |
| Log.print( i == ret, "AttrAny2"); |
| |
| i= arrInt; |
| oletest.AttrAny2= i; |
| ret= oletest.AttrAny2; |
| var arr= new VBArray( ret).toArray(); |
| Log.print( isEqualAr(arr, arrInt), "AttrAny2"); |
| |
| var obj= new Object(); |
| oletest.AttrAny2= obj; |
| ret= oletest.AttrAny2; |
| Log.print( obj == ret, "AttrAny2"); |
| |
| |
| document.writeln("<p>"); |
| // Structs ---------------------------------------------- |
| |
| /* var struct= oletest._GetStruct("com.sun.star.beans.Property"); */ |
| /* struct.Attributes= 1; */ |
| /* struct.Handle= 2; */ |
| /* struct.Name= "some Property" */ |
| /* oletest.methodStruct( struct); */ |
| |
| var ret= oletest.retMethodStruct(); |
| Log.print( ret.Attributes == 127 && ret.Handle == 255 && ret.Name == "OleTest_Property", "retMethodStruct"); |
| |
| var astruct= oletest._GetStruct("com.sun.star.beans.Property"); |
| astruct.Attributes= 1; |
| astruct.Handle= 2; |
| astruct.Name= "some Property" |
| oletest.AttrStruct= astruct; |
| |
| var ret= oletest.AttrStruct; |
| Log.print( ret.Attributes == 127 && ret.Handle == 255 && ret.Name == "OleTest_Property", "AttrStruct"); |
| |
| // The function returns the struct. Since structs are passed by value the returned struct |
| // will be wrapped in another IDispatch object |
| astruct.Attributes= 1; |
| astruct.Handle= 2; |
| astruct.Name= "Property"; |
| ret= oletest.methodStruct2( astruct); |
| Log.print( ret.Attributes == 1 && ret.Handle == 2 && ret.Name == "Property", "methodStruct2"); |
| |
| |
| document.writeln("<p>"); |
| // Test Identity from COM objects in UNO |
| var listener1= new XEventListener_Impl(); |
| oletest.setObject(listener1); |
| ret= oletest.isSame(listener1); |
| Log.print2( ret, "Ok Testing identity of COM objects<br>","Failed Testing identity of COM objects<br>"); |
| |
| var oletest2= oletest.getThis(); |
| ret= oletest === oletest2; |
| Log.print2(ret, "Ok Testing identity of UNO objects<br>","Failed Testing identity of UNO objects<br>"); |
| } |
| |
| |
| |
| |
| function isEqualAr( ar1, ar2) |
| { |
| var bOk= false; |
| if( ar1.length == ar2.length) |
| { |
| bOk= true; |
| for( x in ar1) |
| { |
| // document.writeln( ar1[x] + " "); |
| // document.writeln( ar2[x] + " "); |
| if( ar1[x] != ar2[x]) |
| { |
| bOk= false; |
| break; |
| } |
| } |
| } |
| return bOk; |
| } |
| |
| /* function isEqualAr2( ar1, ar2) */ |
| /* { */ |
| |
| /* var bOk= false; */ |
| /* if( ar1.length == ar2.length) */ |
| /* { */ |
| /* bOk= true; */ |
| /* for( x in ar1) */ |
| /* { */ |
| /* document.write( ar1[x]); */ |
| /* document.write( ar2[x]); */ |
| /* if( ! isEqualAr( ar1[x], ar2[x])) */ |
| /* { */ |
| /* bOk= false; */ |
| /* break; */ |
| /* } */ |
| /* } */ |
| /* } */ |
| /* return bOk; */ |
| |
| /* } */ |
| |
| function XEventListener_Impl() |
| { |
| this._environment= "JScript"; |
| this._implementedInterfaces= new Array( "com.sun.star.lang.XEventListener"); |
| |
| //XEventListener |
| this.disposing= XEventListener_disposing; |
| |
| this.bdisposingCalled= false; |
| this.bQuiet= true; |
| this.resetDisposing= XEventListener_resetDisposing; |
| this.disposingCalled= XEventListener_disposingCalled; |
| } |
| |
| function XEventListener_disposing( source) |
| { |
| if( !this.bQuiet) |
| alert("JScript Event Listener \n disposing is being called"); |
| this.bdisposingCalled= true; |
| } |
| |
| function XEventListener_resetDisposing() |
| { |
| this.bdisposingCalled= false; |
| } |
| |
| function XEventListener_disposingCalled() |
| { |
| return this.bdisposingCalled; |
| } |
| </script> |
| |
| <script language="VBScript"> |
| Function runVBTest( Log) |
| document.writeln("================================================================================<br>") |
| document.writeln("VB Script<br>") |
| document.writeln("================================================================================<p>") |
| |
| Dim arrInt |
| arrInt= Array(1,2,3,-4,-5, 0) |
| arrUInt= Array(1,2,3,4,5) |
| arrDouble= Array( 1.2345, 12.345, 123.45, 1234.5, 12345) |
| arrBool= Array( true, false, true, false, true) |
| arrChar= Array("A","B",67) |
| arrString= Array("hamburger","cheeseburger", "chicken nuggets", "chicken wings" , "pizza") |
| arrAny= Array( 100, 100.1235,"hallo") |
| |
| |
| Dim arrDim2Int(2,1) |
| Dim i,j,k |
| For i= 0 To 1 |
| For j= 0 To 2 |
| arrDim2Int(j,i) = i*3 + j |
| Next |
| Next |
| |
| |
| Dim arrDim3Int(3,2,1) |
| For i= 0 To 1 |
| For j= 0 To 2 |
| For k= 0 To 3 |
| arrDim3Int(k,j,i)= i* 3 + j* 4 + k |
| Next |
| Next |
| Next |
| |
| Dim arrXEvent(2) |
| For i= 0 To 2 |
| Set arrXEvent(i)= new VBEventListener |
| Next |
| |
| Dim arrXEvent2(2,1) |
| For i= 0 To 1 |
| For j= 0 To 2 |
| Set arrXEvent2(j,i)= new VBEventListener |
| Next |
| Next |
| |
| |
| |
| ret= oletest.methodByte( arrUInt) |
| Log.print isEqualVBAr( ret, arrUInt), "methodByte" |
| |
| ret= oletest.methodFloat( arrDouble) |
| Log.print isEqualVBAr( ret, arrDouble), "methodFloat" |
| |
| ret= oletest.methodDouble( arrDouble) |
| Log.print isEqualVBAr( ret, arrDouble), "methodDouble" |
| |
| ret= oletest.methodBool( arrBool) |
| Log.print isEqualVBAr( ret, arrBool), "methodBool" |
| |
| ret= oletest.methodShort( arrInt) |
| Log.print isEqualVBAr( ret, arrInt), "methodShort" |
| |
| ret= oletest.methodUShort( arrUInt) |
| Log.print isEqualVBAr( ret, arrUInt), "methodUShort" |
| |
| ret= oletest.methodLong( arrInt) |
| Log.print isEqualVBAr( ret, arrInt), "methodLong" |
| |
| ret= oletest.methodULong( arrUInt) |
| Log.print isEqualVBAr( ret, arrUInt), "methodULong" |
| |
| ret= oletest.methodChar( arrChar) |
| bOk= false |
| if ret(0) = 65 AND ret(1) = 66 AND ret(2) = 67 then |
| bOk= true |
| end if |
| Log.print bOk, "methodChar" |
| |
| ret= oletest.methodString( arrString) |
| Log.print isEqualVBAr( ret, arrString), "methodString" |
| |
| ret= oletest.methodAny( arrAny) |
| Log.print isEqualVBAr( ret, arrAny), "methodAny" |
| |
| |
| ret= oletest.methodSequence( arrDim2Int) |
| bOk= true |
| |
| For i= 0 To 1 |
| Dim arr1 |
| arr1= ret(i) |
| For j= 0 To 2 |
| if arr1(j) <> arrDim2Int(j,i) then |
| bOk= false |
| exit for |
| end if |
| Next |
| Next |
| Log.print bOk, "methodSequence" |
| |
| ret= oletest.methodSequence2( arrDim3Int) |
| 'arrDim3Int(3,2,1) |
| bOk= true |
| For i= 0 To 1 |
| arr1= ret(i) |
| For j= 0 To 2 |
| arr2= arr1(j) |
| For k= 0 To 3 |
| If arr2(k) <> arrDim3Int(k,j,i) then |
| bOk= false |
| exit for |
| End If |
| Next |
| Next |
| Next |
| Log.print bOk, "methodSequence2" |
| |
| ret= oletest.methodXInterface(arrXEvent) |
| bOk= true |
| numArg= UBound( arrXEvent) - LBound( arrXEvent) + 1 |
| numRet= UBound( ret) - LBound( ret) + 1 |
| If numArg = numRet then |
| For i= 0 To numArg - 1 |
| If NOT (arrXEvent(i) Is ret(i)) then |
| bOk= false |
| Exit For |
| End if |
| Next |
| End If |
| Log.print bOk, "methodXInterface" |
| |
| ret= oletest.methodXEventListeners( arrXEvent) |
| bOk= true |
| For i= 0 To 2 |
| If arrXEvent(i).disposingCalled = false then |
| bOk= false |
| Exit For |
| End If |
| Next |
| Log.print bOk, "methodXEventListeners" |
| |
| ret= oletest.methodXEventListenersMul(arrXEvent2) |
| bOk= true |
| For i= 0 To 1 |
| For j= 0 To 2 |
| If arrXEvent2(j,i).disposingCalled = false then |
| bOk= false |
| Exit For |
| End If |
| Next |
| Next |
| Log.print bOk, "methodXEventListenersMul" |
| |
| ' Attributes ------------------------------------------------------ |
| document.writeln( "<br>" ) |
| oletest.AttrByte= arrUInt |
| ret= oletest.AttrByte |
| Log.print isEqualVBAr( arrUInt, ret), "AttrByte" |
| |
| oletest.AttrFloat= arrDouble |
| ret= oletest.AttrFloat |
| Log.print isEqualVBAr( arrDouble, ret), "AttrFloat" |
| |
| oletest.AttrDouble= arrDouble |
| ret= oletest.AttrDouble |
| Log.print isEqualVBAr( arrDouble, ret), "AttrDouble" |
| |
| oletest.AttrBool= arrBool |
| ret= oletest.AttrBool |
| Log.print isEqualVBAr( arrBool, ret), "AttrBool" |
| |
| oletest.AttrShort= arrInt |
| ret= oletest.AttrShort |
| Log.print isEqualVBAr( arrInt, ret), "AttrShort" |
| |
| oletest.AttrUShort= arrUInt |
| ret= oletest.AttrUShort |
| Log.print isEqualVBAr( arrUInt, ret), "AttrUShort" |
| |
| oletest.AttrLong= arrInt |
| ret= oletest.AttrLong |
| Log.print isEqualVBAr( arrInt, ret), "AttrLong" |
| |
| oletest.AttrULong= arrUInt |
| ret= oletest.AttrULong |
| Log.print isEqualVBAr( arrUInt, ret), "AttrULong" |
| |
| oletest.AttrChar= arrChar |
| ret= oletest.AttrChar |
| bOk= false |
| if ret(0) = 65 AND ret(1) = 66 AND ret(2) = 67 then |
| bOk= true |
| end if |
| Log.print bOk, "AttrChar" |
| |
| oletest.AttrString= arrString |
| ret= oletest.AttrString |
| Log.print isEqualVBAr( arrString, ret), "AttrString" |
| |
| oletest.AttrSequence= arrDim2Int |
| ret= oletest.AttrSequence |
| bOk= true |
| For i= 0 To 1 |
| arr1= ret(i) |
| For j= 0 To 2 |
| if arr1(j) <> arrDim2Int(j,i) then |
| bOk= false |
| exit for |
| end if |
| Next |
| Next |
| Log.print bOk, "AttrSequence" |
| |
| oletest.AttrSequence2= arrDim3Int |
| ret= oletest.AttrSequence2 |
| 'arrDim3Int(3,2,1) |
| bOk= true |
| For i= 0 To 1 |
| arr1= ret(i) |
| For j= 0 To 2 |
| arr2= arr1(j) |
| For k= 0 To 3 |
| If arr2(k) <> arrDim3Int(k,j,i) then |
| bOk= false |
| exit for |
| End If |
| Next |
| Next |
| Next |
| Log.print bOk, "AttrSequence2" |
| |
| oletest.AttrXInterface= arrXEvent |
| ret= oletest.AttrXInterface |
| bOk= true |
| numArg= UBound( arrXEvent) - LBound( arrXEvent) + 1 |
| numRet= UBound( ret) - LBound( ret) + 1 |
| If numArg = numRet then |
| For i= 0 To numArg - 1 |
| If NOT (arrXEvent(i) Is ret(i)) then |
| bOk= false |
| Exit For |
| End if |
| Next |
| End If |
| Log.print bOk, "AttrXInterface" |
| |
| 'out params ================================================================================ |
| document.writeln("<p>") |
| Dim inVal, outVal, retVal |
| |
| inVal = 111 |
| retVal = oletest.in_methodByte(inVal) |
| oletest.testout_methodByte outVal |
| Log.print inVal = retVal, "in_methodByte" |
| Log.print outVal = inVal, "testout_methodByte" |
| |
| inVal = 3.14 |
| retVal = oletest.in_methodFloat(inVal) |
| oletest.testout_methodFloat outVal |
| Log.print inVal = retVal, "in_methodFloat" |
| Log.print outVal > 3.13 AND outVal < 3.15, "testout_methodFloat" |
| |
| inVal = 3.14 |
| retVal = oletest.in_methodDouble(inVal) |
| oletest.testout_methodDouble outVal |
| Log.print inVal = retVal, "in_methodDouble" |
| Log.print outVal = 3.14, "testout_methodDouble" |
| |
| inVal = true |
| retVal = oletest.in_methodBool(inVal) |
| oletest.testout_methodBool outVal |
| Log.print inVal = retVal, "in_methodBool" |
| Log.print outVal = inVal, "testout_methodBool" |
| |
| inVal = 222 |
| retVal = oletest.in_methodShort(inVal) |
| oletest.testout_methodShort outVal |
| Log.print inVal = retVal, "in_methodShort" |
| Log.print outVal = inVAl, "testout_methodShort" |
| |
| inVal = 333 |
| retVal = oletest.in_methodUShort(inVal) |
| oletest.testout_methodUShort outVal |
| Log.print inVal = retVal, "in_methodUShort" |
| Log.print outVal = inVal, "testout_methodUShort" |
| |
| inVal = 4444 |
| retVal = oletest.in_methodLong(inVal) |
| oletest.testout_methodLong outVal |
| Log.print inVal = retVal, "in_methodLong" |
| Log.print outVal = inVal, "testout_methodLong" |
| |
| inVal = 5555 |
| retVal = oletest.in_methodULong(inVal) |
| oletest.testout_methodULong outVal |
| Log.print inVal = retVal, "in_methodULong" |
| Log.print outVal = inVal, "testout_methodULong" |
| |
| inVal = 65 |
| retVal = oletest.in_methodChar(inVal) |
| oletest.testout_methodChar outVal |
| Log.print inVal = retVal, "in_methodChar" |
| Log.print outVal = 65, "testout_methodChar" |
| |
| inVal = "Hello World 3!" |
| retVal = oletest.in_methodString(inVal) |
| oletest.testout_methodString outVal |
| Log.print inVal = retVal, "in_methodString" |
| Log.print outVal = inVal, "testout_methodString" |
| |
| inVal = "Hello World 4!" |
| retVal = oletest.in_methodAny(inVal) |
| oletest.testout_methodAny outVal |
| Log.print outVal = inVal, "testout_methodAny" |
| |
| oletest.testout_methodSequence outVal |
| Log.print isEqualVBAr(outVal, Array( 0,1,2,3,4,5,6,7,8,9)), "testout_methodSequence" |
| |
| oletest.testout_methodSequence2 outVal |
| count= UBound( outVal) - LBound( outVal) + 1 |
| ret= False |
| If count = 10 Then |
| For Each ar In outVal |
| ret= isEqualVBAr(ar, Array( 0,1,2,3,4,5,6,7,8,9)) |
| If ret = false Then |
| Exit For |
| End If |
| Next |
| End If |
| Log.print ret, "testout_methodSequence2" |
| |
| outVal= Empty |
| outVal2= Empty |
| oletest.testout_methodMulParams1 outVal, outVal2 |
| ret= false |
| If outVal = 999 AND outVal2 = 1111 Then |
| ret= true |
| End If |
| Log.print ret, "testout_methodMulParams1" |
| |
| outVal= Empty |
| outVal2= Empty |
| outVal3= Empty |
| oletest.testout_methodMulParams2 outVal, outVal2, outVal3 |
| ret = false |
| If outVal = 1111 AND outVal2 = 1222 AND outVal3 = " another string" Then |
| ret= true |
| End If |
| Log.print ret, "testout_methodMulParams2" |
| |
| document.writeln("missing: testout_methodMulParams3 <br>") |
| document.writeln("missing: testout_methodMulParams4 <br>") |
| |
| outVal= Empty |
| oletest.testout_methodXInterface outVal |
| ret= false |
| If outVal Is oletest Then |
| ret= true |
| End If |
| Log.print ret, "testout_methodXInterface" |
| |
| Set outVal= Nothing |
| document.writeln("missing: testout_methodXInterface <br>") |
| |
| inVal = 1 |
| outVal= inVal |
| oletest.testinout_methodByte outVal |
| oletest.testinout_methodByte outVal |
| Log.print inVal = outVal, "testinout_methodByte" |
| |
| |
| document.writeln("missing: testinout_methodFloat <br>") |
| document.writeln("missing: testinout_methodDouble <br>") |
| document.writeln("missing: testinout_methodBool <br>") |
| document.writeln("missing: testinout_methodShort <br>") |
| document.writeln("missing: testinout_methodUShort <br>") |
| document.writeln("missing: testinout_methodLong <br>") |
| document.writeln("missing: testinout_methodULong <br>") |
| document.writeln("missing: testinout_methodChar <br>") |
| document.writeln("missing: testinout_methodString <br>") |
| document.writeln("missing: testinout_methodAny <br>") |
| document.writeln("missing: testinout_methodSequence <br>") |
| document.writeln("missing: testinout_methodSequence2 <br>") |
| document.writeln("missing: testinout_methodXInterface <br>") |
| document.writeln("missing: methodAnyTest1 <br>") |
| document.writeln("missing: methodAnyTest1 <br>") |
| document.writeln("missing: methodAnyTest1 <br>") |
| document.writeln("missing: methodAnyTest1 <br>") |
| document.writeln("missing: methodAnyTest1 <br>") |
| document.writeln("missing: AttrAny2 <br>") |
| document.writeln("missing: methodAnyTest1 <br>") |
| document.writeln("missing: methodAnyTest1 <br>") |
| document.writeln("missing: methodAnyTest1 <br>") |
| document.writeln("missing: methodAnyTest1 <br>") |
| document.writeln("missing: methodAnyTest1 <br>") |
| document.writeln("missing: retMethodStruct <br>") |
| document.writeln("missing: AttrStruct <br>") |
| document.writeln("missing: methodStruct2 <br>") |
| |
| ' Test Identity from COM objects in UNO |
| Dim listener1 |
| Set listener1= new VBEventListener |
| call oletest.setObject( listener1) |
| ret= oletest.isSame(listener1) |
| Log.print2 ret, "Ok Testing identity of COM objects <br>","Failed Testing identity of COM objects<br>" |
| ' Test identity of UNO objects |
| |
| set oletest2= oletest.getThis() |
| ret= oletest Is oletest2 |
| Log.print2 ret, "Ok Testing identity of UNO objects<br>","Failed Testing identity of UNO objects<br>" |
| |
| End Function |
| |
| |
| Function isEqualVBAr( arr1, arr2) |
| ret = false |
| s1= UBound( arr1) - LBound( arr1) + 1 |
| s2= UBound( arr2) - LBound( arr2) + 1 |
| |
| if s1 = s2 then |
| ret= true |
| Dim i |
| for i= 0 To s1 - 1 |
| if arr1(i) <> arr2(i) then |
| ret= false |
| exit for |
| end if |
| next |
| end if |
| isEqualVBar= ret |
| End Function |
| |
| |
| 'The listener object |
| |
| Class VBEventListener |
| Dim Bridge_ImplementedInterfaces(0) |
| Dim bDisposingCalled |
| |
| 'XEventListener::disposing |
| Function disposing( source) |
| bDisposingCalled= true |
| End Function |
| |
| Sub Class_Initialize() |
| bDisposingCalled= false |
| Bridge_ImplementedInterfaces(0)= "com.sun.star.lang.XEventListener" |
| End Sub |
| |
| Function resetDisposing() |
| bDisposingCalled= false |
| End Function |
| |
| Function disposingCalled() |
| disposingCalled= bDisposingCalled |
| End Function |
| End Class |
| |
| |
| 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,2) |
| 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 |
| |
| |
| select case id |
| |
| // Out Parameter |
| |
| |
| |
| // 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 |
| |
| case 150 |
| dim a |
| document.write "param: "& CStr( a) & "<br>" |
| oletest.testout_methodByte( 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 |
| |
| case 300 |
| dim aByte |
| aByte= 100 |
| call oletest.testinout_methodByte( aByte) |
| MsgBox aByte |
| |
| |
| case 400 |
| |
| set struct= oletest.Bridge_GetStruct("com.sun.star.beans.Property") |
| struct.Attributes= 1 |
| struct.Handle= 2 |
| struct.Name= "some Property" |
| oletest.methodStruct struct |
| |
| case 401 |
| set struct= oletest.retMethodStruct() |
| alert( "Property::Attributes : " & struct.Attributes & vblf & " Property::Handle : " _ |
| & struct.Handle & vblf & " Property::Name : " & struct.Name) |
| |
| case 402 |
| set struct= oletest.Bridge_GetStruct("com.sun.star.beans.Property") |
| struct.Attributes= 1 |
| struct.Handle= 2 |
| struct.Name= "some Property" |
| oletest.AttrStruct= struct |
| |
| set struct2= oletest.AttrStruct |
| alert( "property get: " & vblf & "Property::Attributes : " & struct2.Attributes & _ |
| vblf & " Property::Handle : " & struct2.Handle & vblf & " Property::Name : " _ |
| & struct2.Name) |
| 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> |
| |
| <script language="JScript"> |
| var arFunctions= new Array(); |
| arFunctions["methodByte"]= "sequence<byte> methodByte( [in] sequence<byte> aSeq )"; |
| arFunctions["methodFloat"]= "sequence<float> methodFloat( [in] sequence<float> aSeq)"; |
| arFunctions["methodDouble"]= "sequence<double> methodDouble( [in] sequence<double> aSeq)"; |
| arFunctions["methodBool"]= "sequence<boolean> methodBool( [in] sequence<boolean> aSeq)"; |
| arFunctions["methodShort"]= "sequence<short> methodShort( [in] sequence<short> aSeq)"; |
| arFunctions["methodUShort"]= "sequence<unsigned short> methodUShort( [in] sequence<unsigned short> aSeq)"; |
| arFunctions["methodLong"]= "sequence<long> methodLong( [in] sequence<long> aSeq)"; |
| arFunctions["methodULong"]= "sequence<unsigned long> methodULong( [in] sequence<unsigned long> aSeq)"; |
| arFunctions["methodString"]= "sequence<string> methodString( [in] sequence<string> aSeq)"; |
| arFunctions["methodChar"]= "sequence<char> methodChar( [in] sequence<char> aSeq)"; |
| arFunctions["methodAny"]= "sequence<any> methodAny ( [in] sequence<any> aSeq)"; |
| arFunctions["methodXInterface"]= "sequence<XInterface> methodXInterface ( [in] sequence<XInterface> aSeq)"; |
| arFunctions["methodSequence"]= "sequence< sequence <long> > methodSequence( [in] sequence< sequence< long > > aSeq)"; |
| arFunctions["methodSequence2"]= "sequence< sequence <sequence <long> > > methodSequence2( [in] sequence< sequence< sequence<long> > > aSeq)"; |
| arFunctions["methodXEventListeners"]= "sequence< com::sun::star::lang::XEventListener > methodXEventListeners( [in] sequence<com::sun::star::lang::XEventListener> aSeq)"; |
| arFunctions["methodXEventListenersMul"]= "sequence< sequence< com::sun::star::lang::XEventListener > > methodXEventListenersMul( [in] sequence< sequence< com::sun::star::lang::XEventListener> > aSeq)"; |
| arFunctions["AttrByte"]="[attribute] sequence<byte> AttrByte"; |
| arFunctions["AttrFloat"]="[attribute] sequence<float> AttrFloat"; |
| arFunctions["AttrDouble"]="[attribute] sequence<double> AttrDouble"; |
| arFunctions["AttrBool"]="[attribute] sequence<boolean> AttrBool"; |
| arFunctions["AttrShort"]="[attribute] sequence<short> AttrShort"; |
| arFunctions["AttrUShort"]="[attribute] sequence<unsigned short> AttrUShort"; |
| arFunctions["AttrLong"]="[attribute] sequence<long> AttrLong"; |
| arFunctions["AttrULong"]="[attribute] sequence<unsigned long> AttrULong"; |
| arFunctions["AttrString"]="[attribute] sequence<string> AttrString"; |
| arFunctions["AttrChar"]="[attribute] sequence<char> AttrChar"; |
| arFunctions["AttrAny"]="[attribute] sequence<any> AttrAny"; |
| arFunctions["AttrSequence"]="[attribute] sequence< sequence<long> > AttrSequence"; |
| arFunctions["AttrSequence2"]="[attribute] sequence< sequence< sequence <long> > > AttrSequence2"; |
| arFunctions["AttrXInterface"]="[attribute] sequence< com::sun::star::uno::XInterface > AttrXInterface"; |
| |
| arFunctions["testout_methodByte"]= " void testout_methodByte( [out] byte rOut )"; |
| arFunctions["testout_methodFloat"]= "void testout_methodFloat( [out] float rOut)"; |
| arFunctions["testout_methodDouble"]= "void testout_methodDouble( [out] double rOut)"; |
| arFunctions["testout_methodBool"]= "void testout_methodBool( [out] boolean rOut)"; |
| arFunctions["testout_methodShort"]= "void testout_methodShort( [out] short rOut)"; |
| arFunctions["testout_methodUShort"]= "void testout_methodUShort( [out] unsigned short rOut)"; |
| arFunctions["testout_methodLong"]= "void testout_methodLong( [out] long rOut)"; |
| arFunctions["testout_methodULong"]= "void testout_methodULong( [out] unsigned long rOut)"; |
| arFunctions["testout_methodString"]= "void testout_methodString( [out] string rOut)"; |
| arFunctions["testout_methodChar"]= "void testout_methodChar( [out] char rOut)"; |
| arFunctions["testout_methodAny"]= "void testout_methodAny( [out] any rOut)"; |
| arFunctions["testout_methodSequence"]= "void testout_methodSequence( [out] sequence< long > rOut)"; |
| arFunctions["testout_methodSequence2"]= "void testout_methodSequence2( [out] sequence < sequence< long > > rOut)"; |
| arFunctions["testout_methodXInterface"]= "void testout_methodXInterface( [out] com::sun::star::uno::XInterface rOut)"; |
| arFunctions["testout_methodMulParams1"]= "void testout_methodMulParams1( [out] long rout1, [out] long rout2)"; |
| arFunctions["testout_methodMulParams2"]= "void testout_methodMulParams2( [out] long rout1, [out] long rout2, [out] string rout3)"; |
| arFunctions["testout_methodMulParams3"]= "void testout_methodMulParams3( [in] string sin, [out] string sout)"; |
| arFunctions["testout_methodMulParams4"]= "void testout_methodMulParams4( [in] float in1, [out] float out1, [in] long in2, [out] long out2, [in] long in3)"; |
| arFunctions["testinout_methodByte"]="void testinout_methodByte( [inout] byte rOut )"; |
| arFunctions["testinout_methodFloat"]="void testinout_methodFloat( [inout] float rOut)"; |
| arFunctions["testinout_methodDouble"]="void testinout_methodDouble( [inout] double rOut)"; |
| arFunctions["testinout_methodBool"]="void testinout_methodBool( [inout] boolean rOut)"; |
| arFunctions["testinout_methodShort"]="void testinout_methodShort( [inout] short rOut)"; |
| arFunctions["testinout_methodUShort"]="void testinout_methodUShort( [inout] unsigned short rOut)"; |
| arFunctions["testinout_methodLong"]="void testinout_methodLong( [inout] long rOut)"; |
| arFunctions["testinout_methodULong"]="void testinout_methodULong( [inout] unsigned long rOut)"; |
| arFunctions["testinout_methodString"]="void testinout_methodString( [inout] string rOut)"; |
| arFunctions["testinout_methodChar"]="void testinout_methodChar( [inout] char rOut)"; |
| arFunctions["testinout_methodAny"]="void testinout_methodAny( [inout] any rOut)"; |
| arFunctions["testinout_methodSequence"]="void testinout_methodSequence( [inout] sequence< long > rOut)"; |
| arFunctions["testinout_methodSequence2"]="void testinout_methodSequence2( [inout] sequence < sequence< long > > rOut)"; |
| arFunctions["testinout_methodXInterface"]="void testinout_methodXInterface( [inout] com::sun::star::script::XInvocation rOut)"; |
| arFunctions["testinout_methodXInterface2"]="void testinout_methodXInterface2( [inout] com::sun::star::uno::XInterface rOut)"; |
| |
| arFunctions["in_methodByte"]= "byte in_methodByte( [in] byte rIn )"; |
| arFunctions["in_methodFloat"]= "float in_methodFloat( [in] float rIn);" |
| arFunctions["in_methodDouble"]= "double in_methodDouble( [in] double rIn)"; |
| arFunctions["in_methodBool"]= "boolean in_methodBool( [in] boolean rIn)"; |
| arFunctions["in_methodShort"]= "short in_methodShort( [in] short rIn)"; |
| arFunctions["in_methodUShort"]= "unsigned short in_methodUShort( [in] unsigned short rIn)"; |
| arFunctions["in_methodLong"]= "long in_methodLong( [in] long rIn)"; |
| arFunctions["in_methodULong"]= "unsigned long in_methodULong( [in] unsigned long rIn)"; |
| arFunctions["in_methodHyper"]= "hyper in_methodHyper( [in] hyper rIn)"; |
| arFunctions["in_methodUHyper"]= "unsigned hyper in_methodHyper( [in] unsigned hyper rIn)"; |
| arFunctions["in_methodString"]= "string in_methodString( [in] string rIn)"; |
| arFunctions["in_methodChar"]= "char in_methodChar( [in] char rIn)"; |
| arFunctions["in_methodAny"]= "any in_methodAny ( [in] any rIn)"; |
| arFunctions["in_methodXInterface"]= "XInterface in_methodXInterface([in] XInterface rIn)"; |
| |
| |
| arFunctions["methodAnyTest1"]="any methodAnyTest1( [in] any rIn)"; |
| arFunctions["AttrAny2"]= "[attribute] any AttrAny2"; |
| arFunctions["retMethodStruct"]= "com::sun::star::beans::Property retMethodStruct()"; |
| arFunctions["AttrStruct"]= "[attribute] com::sun::star::beans::Property AttrStruct"; |
| arFunctions["methodStruct2"]= "com::sun::star::beans::Property methodStruct2( [in] com::sun::star::beans::Property aProp)"; |
| |
| |
| var factory= new ActiveXObject("com.sun.star.ServiceManager"); |
| var oletest= factory.createInstance("oletest.OleTest"); |
| |
| Log= new Logger(); |
| |
| |
| runJScriptTest(Log); |
| runVBTest(Log); |
| Log.summarize(); |
| |
| |
| function Logger() |
| { |
| this.print= logger_print; |
| this.print2= logger_print2; |
| this.summarize= logger_summarize; |
| this.bAllOk= true; |
| } |
| function logger_print( bool, method) |
| { |
| this.print2(bool, "Ok " + arFunctions[method] + "<br>", |
| "Failed " + arFunctions[method] + "<br>"); |
| } |
| |
| function logger_print2( bool, okString, failedString) |
| { |
| if( bool) |
| document.writeln( okString); |
| else |
| { |
| document.writeln( failedString); |
| this.bAllOk= this.bAllOk && false; |
| } |
| } |
| |
| function logger_summarize() |
| { |
| document.writeln("<p> ==============================================================================<br>"); |
| if(this.bAllOk) |
| document.writeln("No errors <br>"); |
| else |
| document.writeln("Error ! The test failed! <br>"); |
| } |
| |
| |
| </script> |
| |
| </body> |
| </html> |
| |
| |