Hi there,
not being sure which e-mail list would be appropriate, I send it to
those two that may help the most, but setting the reply-to field to
"[email protected]" to avoid spamming multiple lists. If this is
not appropriate please advise.
Following use-case:
* OOo Basic subroutine using the dispatch interface to dispatch an
ooRexx macro/script, supplying it arguments (an UNO object to be
documented explicitly and for which a writer document will be
created which will receive formatted text with underlying links to
the OOo UNO documentation),
* the bridge to ooRexx (itself written in C++) is realized via Java
as a bridge, using the OOo Java based scripting interface for
communication; all communication between OOo and ooRexx is carried
out via the Java bridge from the perspective of OOo.
The problem:
* The ooRexx script is invoked, but at the moment where on its side
the Java "com.sun.star.comp.helper.Bootstrap.bootstrap()" is
executed, in order to get an independent xContext, which then is
used to create a "com.sun.star.frame.Desktop" UNO object, which
then is used to get the xComponentLoader to use its
"loadComponentFromUrl(...)" to load an empty swriter document,
then there OOo hangs hard (need a task manager to kill it).
* Doing the same with Java (i.e. invoking the very same ooRexx
script/macro from a Java OOo app) works!
Can someone shed some light on interdependencies between OOo Basic and
invoked non-OOo-Basic code via Java that bootstraps independently to OOo
in order to get a xContext?
TIA,
---rony
P.S.: Here's the OOo Basic code-snippet to invoke the ooRexx script via
dispatch:
------------------ cut here -----------------
Sub TestDispatchCreateApiInfoWithRexx
Dim oDispHelper, oProvider as object
Dim macroUrl as string
dim args0(0) as new com.sun.star.beans.PropertyValue
oProvider=ThisComponent.CurrentController.Frame
oDispHelper=createUnoService("com.sun.star.frame.DispatchHelper")
macroUrl="vnd.sun.star.script:wu_tools.createApiInfo.rex?language=ooRexx&location=user"
args0(0).Name="arg1"
args0(0).Value=oDispHelper ' some UNO object/IDL string
r=oDispHelper.executeDispatch(oProvider, macroUrl, "", 0, args0())
msgbox r.Result, 0, "result from dispatching createApiInfo.rex"
End Sub
------------------ cut here -----------------