// ERROR: com.sun.start.lang.IllegalArgumentException: cannor coerce argument type during corereflection call!
Code: Select all
// Start Open Office through Javascript using a test document stored in C:
function startOpenOffice()
{
var smgr = new ActiveXObject("com.sun.star.ServiceManager");
var objDesktop= smgr.createInstance("com.sun.star.frame.Desktop")
var iHandler = smgr.createInstance("com.sun.star.task.InteractionHandler");
var arg1 = smgr.Bridge_GetStruct("com.sun.star.beans.PropertyValue");
arg1.Name = "InteractionHandler";
arg1.Value = iHandler;
var args = new Array();
args[0] = arg1;
sCurWordDocPath = objDesktop.loadComponentFromURL("file:///C:/letter.htm","_blank",0, args);
/* JScript event listener */
var xContext = smgr.getPropertyValue( "DefaultContext" );
var xCoreReflection = xContext.getValueByName( "/singletons/com.sun.star.reflection.theCoreReflection" );
var xClass = xCoreReflection.forName( "com.sun.star.document.XEventBroadcaster" );
var xMethod = xClass.getMethod( "addEventListener" );
var xListener = xCoreReflection.forName("com.sun.star.lang.XEventListener");
var arg1 = smgr.Bridge_GetStruct("com.sun.star.document.EventObject");
arg1.EventName = "thedocumentListener_";
arg1.Source = sCurWordDocPath;
var args = new Array();
args[0] = arg1;
var value = smgr.Bridge_GetValueObject();
value.InitInOutParam("[]any", args);
xMethod.invoke(sCurWordDocPath,value);
}
Code: Select all
// Replace xMethod.invoke(sCurWordDocPath,value) -> sCurWordDocPath.addEventListener(args);
// value is an object conversion to Sequence
// args is an array of struct containing the EventName and Source
// NO ERROR VERSION ALTHOUGH NO disposing event
// Start Open Office through Javascript using a test document stored in C:
function startOpenOffice()
{
var smgr = new ActiveXObject("com.sun.star.ServiceManager");
var objDesktop= smgr.createInstance("com.sun.star.frame.Desktop")
var iHandler = smgr.createInstance("com.sun.star.task.InteractionHandler");
var arg1 = smgr.Bridge_GetStruct("com.sun.star.beans.PropertyValue");
arg1.Name = "InteractionHandler";
arg1.Value = iHandler;
var args = new Array();
args[0] = arg1;
sCurWordDocPath = objDesktop.loadComponentFromURL("file:///C:/letter.htm","_blank",0, args);
/* JScript event listener */
var xContext = smgr.getPropertyValue( "DefaultContext" );
var xCoreReflection = xContext.getValueByName( "/singletons/com.sun.star.reflection.theCoreReflection" );
var xClass = xCoreReflection.forName( "com.sun.star.document.XEventBroadcaster" );
var xMethod = xClass.getMethod( "addEventListener" );
var xListener = xCoreReflection.forName("com.sun.star.lang.XEventListener");
var arg1 = smgr.Bridge_GetStruct("com.sun.star.document.EventObject");
arg1.EventName = "thedocumentListener_";
arg1.Source = sCurWordDocPath;
var args = new Array();
args[0] = arg1;
var value = smgr.Bridge_GetValueObject();
value.InitInOutParam("[]any", args);
xMethod.invoke(sCurWordDocPath,value);
}
function thedocumentListener_disposing()
{
alert("DISPOSING");
}
function disposing()
{
alert("DISPOSING");
}
Any help will be highly appreciated.
Thanks!
[Moderation (Villeroy): Added code tags to make it readable]