home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / bpos2i.zip / SESMGR.PAS < prev    next >
Pascal/Delphi Source File  |  1994-05-31  |  6KB  |  159 lines

  1. (* ====================================================== *)
  2. (*                        SESMGR.PAS                      *)
  3. (*    Implementation of the functions of SESMGR.DLL       *)
  4. (*          Translated to Pascal by wr/toolbox mag        *)
  5. (* ====================================================== *)
  6. {$IFNDEF OS2}
  7.   Error: Wrong target/Compiler not patched
  8. {$ENDIF}
  9.  
  10. UNIT SesMgr;
  11.  
  12. INTERFACE
  13.  
  14. USES
  15.   Os2Def;
  16. (* Start a new session and run a program in it *)
  17.  
  18. (* Record used to start a session *)
  19. TYPE
  20.   StartData = RECORD
  21.     cb           : WORD;     (* length of data including itself   *)
  22.     related      : WORD;     (* 0 -> not related, 1 -> is a child *)
  23.     FgBg         : WORD;     (* 0 -> foreground, 1 -> background  *)
  24.     TraceOpt     : WORD;     (* 0 -> no tracing, 1 -> tracing     *)
  25.     PgmTitle     : pChar;    (* address of ASCIIZ program title   *)
  26.     PgmName      : pChar;    (* address of ASCIIZ program name    *)
  27.     PgmInputs    : pChar;    (* address of ASCIIZ progrm inputs   *)
  28.     TermQ        : pChar;    (* name of queue to send terminate   *)
  29.                              (* message to                        *)
  30.     Environment  : pChar;
  31.     InheritOpt   : WORD;
  32.     SessionType  : WORD;
  33.     IconFile     : pChar;
  34.     PgmHandle    : LongInt (* LONGCARD *);
  35.     PgmControl   : WORD;
  36.     InitXPos     : WORD;
  37.     InitYPos     : WORD;
  38.     InitXSize    : WORD;
  39.     InitYSize    : WORD;
  40.   END;
  41.  
  42. (* The status info for sessions *)
  43.  
  44. TYPE
  45.   StatusData = RECORD
  46.     cb        : WORD;     (* length of info               *)
  47.     SelectInd : WORD;     (* 0 -> unchanged               *)
  48.                           (* 1 -> selectable              *)
  49.                           (* 2 -> not selectable          *)
  50.     BindInd   : WORD;     (* 0 -> unchanged               *)
  51.                           (* 1 -> bring to foreground     *)
  52.                           (*      when parent selected    *)
  53.                           (* 2 -> break bind              *)
  54.   END;
  55.  
  56. FUNCTION DosStartSession(
  57.     StartData           : StartData;    (* parameters to start session *)
  58.     VAR SessID          : WORD;     (* returned session ID *)
  59.     VAR ProcessID       : WORD      (* returned process ID *)
  60.     ) : WORD;
  61. FUNCTION Dos16StartSession(
  62.     StartData           : StartData;    (* parameters to start session *)
  63.     VAR SessID          : WORD;     (* returned session ID *)
  64.     VAR ProcessID       : WORD      (* returned process ID *)
  65.     ) : WORD;
  66.  
  67. (* Stop a child session *)
  68.  
  69. FUNCTION DosStopSession(
  70.     TargetOpton         : WORD;     (* 0 -> terminate specified session *)
  71.                                         (* 1 -> terminate all sessions *)
  72.     SessID              : WORD;     (* session ID of session to stop *)
  73.     Reserved            : LongInt       (* must be zero *)
  74.     ) : WORD;
  75. FUNCTION Dos16StopSession(
  76.     TargetOpton         : WORD;     (* 0 -> terminate specified session *)
  77.                                         (* 1 -> terminate all sessions *)
  78.     SessID              : WORD;     (* session ID of session to stop *)
  79.     Reserved            : LongInt       (* must be zero *)
  80.     ) : WORD;
  81.  
  82.  
  83. (* Switch a child session to the foreground *)
  84.  
  85. FUNCTION DosSelectSession(
  86.     SessID              : WORD;     (* session ID to make foreground *)
  87.     Reserved            : LongInt       (* must be zero *)
  88.     ) : WORD;
  89. FUNCTION Dos16SelectSession(
  90.     SessID              : WORD;     (* session ID to make foreground *)
  91.     Reserved            : LongInt       (* must be zero *)
  92.     ) : WORD;
  93.  
  94. (* Sets the status of a child session *)
  95.  
  96. FUNCTION DosSetSession(
  97.     SessID              : WORD;     (* the session ID of the child *)
  98.     StatData            : StatusData    (* the new status data *)
  99.     ) : WORD;
  100. FUNCTION Dos16SetSession(
  101.     SessID              : WORD;     (* the session ID of the child *)
  102.     StatData            : StatusData    (* the new status data *)
  103.     ) : WORD;
  104.  
  105.  
  106. IMPLEMENTATION
  107.  
  108. (* ====================================================== *)
  109.  
  110.   FUNCTION DosStopSession(* ------------- *);
  111.     EXTERNAL 'SESMGR'   INDEX   8;
  112.   FUNCTION Dos16StopSession(* ------------- *);
  113.     EXTERNAL 'SESMGR'   INDEX   8;
  114.  
  115.   FUNCTION DosSelectSession(* ------------- *);
  116.     EXTERNAL 'SESMGR'   INDEX   9;
  117.   FUNCTION Dos16SelectSession(* ------------- *);
  118.     EXTERNAL 'SESMGR'   INDEX   9;
  119.  
  120. (* ====================================================== *)
  121.  
  122.   FUNCTION DosSetSession(* ------------- *);
  123.     EXTERNAL 'SESMGR'   INDEX  14;
  124.   FUNCTION Dos16SetSession(* ------------- *);
  125.     EXTERNAL 'SESMGR'   INDEX  14;
  126.  
  127. (* ====================================================== *)
  128.  
  129.   FUNCTION DosStartSession(* ------------- *);
  130.     EXTERNAL 'SESMGR'   INDEX  17;
  131.   FUNCTION Dos16StartSession(* ------------- *);
  132.     EXTERNAL 'SESMGR'   INDEX  17;
  133.  
  134. (* ====================================================== *)
  135. {
  136.   FUNCTION DosSMRegisterDD(* ------------- *);
  137.     External 'SESMGR'   INDEX  29;
  138.   FUNCTION Dos16SMRegisterDD(* ------------- *);
  139.     External 'SESMGR'   INDEX  29;
  140. }
  141. (* ====================================================== *)
  142. (*                       32 Bit                           *)
  143. {
  144.   FUNCTION Dos32StartSession(* ------------- *);
  145.     External 'SESMGR'   INDEX  37;
  146.  
  147.   FUNCTION Dos32SelectSession(* ------------- *);
  148.     External 'SESMGR'   INDEX  38;
  149.  
  150.   FUNCTION Dos32SetSession(* ------------- *);
  151.     External 'SESMGR'   INDEX  39;
  152.  
  153.   FUNCTION Dos32StopSession(* ------------- *);
  154.     External 'SESMGR'   INDEX  40;
  155. }
  156. END.
  157.  
  158. (* ===================================================== *)
  159.