Related C++ Class: ArgumentArray
v2.0
This object is owned by a Command object and holds a
collection of Argument objects.
Each Argument has a unique name, which is useful for documentation purposes
and to faciliate the ArgumentCollection.Item method.
However it is the order of the arguments in the collection which determines how
they are passed to the command implementation. For script-based
implementations the number of arguments must exactly match the number of
arguments expected by the function (or subroutine) that implements the command.
(For commands implemented with the C++ API all the arguments are passed together
in a CValueArray).
Even though the number of arguments defined must exactly match those expected
by the implementation, it is not always necessary to specify each argument when
invoking a command. In that case a default value is passed, based on the
definition or the action of an ArgumentHandler.
This object can be used in two different ways - to define the arguments of a new
custom command and to specify specific argument values when a command is executed.
The definition of the arguments is normally done on a command after XSIApplication.CreateCommand
has been called and before XSIApplication.AddCommand is called. Alternatively an existing
custom command can be changed by changing the argument collection and then calling Command.Update.
Note: You access a specific argument using the ArgumentCollection.Item method,
for example, oCommand.Arguments.Item("strArgument"). Usually the argument returns the value
assigned; however, if the argument is not available, "Nothing" in VBScript or "NULL"
in COM-based C++ is returned.
/* This example finds the Argument names for the SICreateImageClip command. When working with the ISIVTCollection returned by SICreateImageClip, you need to know the exact names of the output arguments. */ var e = new Enumerator( Application.Commands ); for ( ; ! e.atEnd(); e.moveNext() ) { if ( e.item().ScriptingName == "SICreateImageClip" ) { var cmd = e.item(); for ( var i=0; i<cmd.Arguments.Count; i++ ) { // the pipe '|' characters allow you to see // any spaces before or after the name Application.LogMessage( "|" + cmd.Arguments(i).Name + "|" ); } } } // Logs the following results: //INFO : |FileName| //INFO : |Name| //INFO : |Clip| |
set args = Application.Commands("Twist").Arguments LogMessage "arguments count: " & args.count |