例: 出力引数と戻り値のカスタム コマンドによる回避策

 
 
 

この例には、出力引数をサポートしていない言語から呼び出すことができるコマンド プラグインが含まれます。 これを使用すると、これらの言語で GetSkeleton コマンドの出力引数(Index)や返されたスケルトン オブジェクトを取得することができます。

' 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