Chain

Temporarily transfers control to an external program

Syntax
   Declare Function Chain ( ByRef program As Const String ) As Long

Usage
   result = Chain( program )

Parameters
   program
      The file name (including file path) of the program (executable) to 
      transfer control to.

Return Value
      Returns the external program's exit code if executed successfully, or 
      negative one (-1) otherwise.

Description
   Transfers control over to an external program. When the program exits, 
   execution resumes immediately after the call to Chain.

Example
   #ifdef __FB_LINUX__
      Dim As String program = "./program"
   #else
      Dim As String program = "program.exe"
   #endif

   Print "Running " & program & "..."
   If (Chain(program) <> 0) Then
      Print program & " not found!"
   End If

Platform Differences
   * Linux requires the program name case matches the real name of the 
     file. Windows and DOS  are case insensitive. The program  chained may 
     be case sensitive for its command line parameters.
   * Path separators in Linux are forward slashes / . Windows uses 
     backward slashes \ but it allows for forward slashes .  DOS uses 
     backward  \ slashes.
   * Exit code is limited to 8 bits in DOS.

Differences from QB
   * Common does not allow to keep the values of certain variables when 
     chaining programs with Chain.

See also
   * Exec transfer temporarily, with arguments  
   * Run one-way transfer
   * Command pick arguments

