<!--*********************************************************** * * 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>