Thanks!

Frank Schönheit - Sun Microsystems Germany wrote:

Hi Andrew,

'oFormDoc = oFormDef.execute(sOpenMode, nCmd, eEmpty) ' Variable NOT defined 'oFormDoc = oFormDef.execute(sOpenMode, nCmd, oNull) ' Object Variable NOT set 'oFormDoc = oFormDef.execute(sOpenMode, nCmd, NULL) ' Object Variable NOT set
 'oFormDef.releaseCommandIdentifier(nCmd)

In all three cases, the error message was not about the last parameter,
but about "sOpenMode". |execute| does not take a string, but a
com.sun.star.ucb.Command - sorry for the confusion, I blindly assumed it
were a string. This of course (unnecessarily) complicates the macro when
using |execute|.

To make things worse, our implementation currently also requires a
OpenCommandArgument2 to be present in the Command structure - either
directly in its |Argument| member, or, if |Argument| is an array of
property values, in one of the values in this array. This again is
unnecessary, but sadly complicates things even more.

The complete solution would look as follows:

Dim identifier as Long
identifier = oForm.createCommandIdentifier()

Dim UcbCommand as new com.sun.star.ucb.Command
UcbCommand.Name = "openDesign"
Dim Arguments as new com.sun.star.ucb.OpenCommandArgument2
Arguments.Mode = com.sun.star.ucb.OpenMode.DOCUMENT
UcbCommand.Argument = Arguments

Dim environment as Object

Dim component as Object
component = oForm.execute( UcbCommand, identifier, environment )

This, of course, makes me to completely withdraw my statement about
|execute| being easier to use than |loadComponentFromURL| :(
(though I think we will do something about it, at least we should not
required an OpenCommandArgument, but default it)

Ciao
Frank


--
Andrew Pitonyak
My Macro Document: http://www.pitonyak.org/AndrewMacro.sxw
My Macro Book: http://www.hentzenwerke.com/catalog/oome.htm
Free Info:  http://www.pitonyak.org/oo.php


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to