Example: Custom Command Workaround for Both Output Arguments and Return Values

This example contains a command plug-in that you can call from languages that do not support output arguments. It allows those languages to get at the GetSkeleton command's output argument (Index) as well as the returned skeleton objects.

' Load MyGetSkeleton command
function XSILoadPlugin( in_reg )
	in_reg.Name = "MyGetSkeletonPlugin"
	in_reg.Major = 1
	in_reg.Minor = 0

	in_reg.RegisterCommand "MyGetSkeleton","MyGetSkeleton"

	XSILoadPlugin = true
end function

' Define MyGetSkeleton command
function MyGetSkeleton_Init( in_ctxt )
	dim oCmd
	set oCmd = in_ctxt.Source
	oCmd.Description = "Version of GetSkeleton with no output arguments"
	oCmd.Tooltip = "Version of GetSkeleton with no output arguments"
	oCmd.ReturnValue = true

	dim oArgs
	set oArgs = oCmd.Arguments
	oArgs.Add "InputObj",siArgumentInput
	MyGetSkeleton_Init = true
end function

' Execute callback for the custom command
function MyGetSkeleton_Execute( InputObj )
	' Call the GetSkeleton command and pack the output 
	' argument and the return value in an array 
	set oSkel = GetSkeleton( InputObj, lIndex )
	aReturn = Array( lIndex, oSkel )

	' Return the array
	MyGetSkeleton_Execute = aReturn 
end function