home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Power-Programmierung
/
CD1.mdf
/
pascal
/
bp7os2
/
bpos2int
/
sesmgr.pas
< prev
next >
Wrap
Pascal/Delphi Source File
|
1994-05-31
|
6KB
|
159 lines
(* ====================================================== *)
(* SESMGR.PAS *)
(* Implementation of the functions of SESMGR.DLL *)
(* Translated to Pascal by wr/toolbox mag *)
(* ====================================================== *)
{$IFNDEF OS2}
Error: Wrong target/Compiler not patched
{$ENDIF}
UNIT SesMgr;
INTERFACE
USES
Os2Def;
(* Start a new session and run a program in it *)
(* Record used to start a session *)
TYPE
StartData = RECORD
cb : WORD; (* length of data including itself *)
related : WORD; (* 0 -> not related, 1 -> is a child *)
FgBg : WORD; (* 0 -> foreground, 1 -> background *)
TraceOpt : WORD; (* 0 -> no tracing, 1 -> tracing *)
PgmTitle : pChar; (* address of ASCIIZ program title *)
PgmName : pChar; (* address of ASCIIZ program name *)
PgmInputs : pChar; (* address of ASCIIZ progrm inputs *)
TermQ : pChar; (* name of queue to send terminate *)
(* message to *)
Environment : pChar;
InheritOpt : WORD;
SessionType : WORD;
IconFile : pChar;
PgmHandle : LongInt (* LONGCARD *);
PgmControl : WORD;
InitXPos : WORD;
InitYPos : WORD;
InitXSize : WORD;
InitYSize : WORD;
END;
(* The status info for sessions *)
TYPE
StatusData = RECORD
cb : WORD; (* length of info *)
SelectInd : WORD; (* 0 -> unchanged *)
(* 1 -> selectable *)
(* 2 -> not selectable *)
BindInd : WORD; (* 0 -> unchanged *)
(* 1 -> bring to foreground *)
(* when parent selected *)
(* 2 -> break bind *)
END;
FUNCTION DosStartSession(
StartData : StartData; (* parameters to start session *)
VAR SessID : WORD; (* returned session ID *)
VAR ProcessID : WORD (* returned process ID *)
) : WORD;
FUNCTION Dos16StartSession(
StartData : StartData; (* parameters to start session *)
VAR SessID : WORD; (* returned session ID *)
VAR ProcessID : WORD (* returned process ID *)
) : WORD;
(* Stop a child session *)
FUNCTION DosStopSession(
TargetOpton : WORD; (* 0 -> terminate specified session *)
(* 1 -> terminate all sessions *)
SessID : WORD; (* session ID of session to stop *)
Reserved : LongInt (* must be zero *)
) : WORD;
FUNCTION Dos16StopSession(
TargetOpton : WORD; (* 0 -> terminate specified session *)
(* 1 -> terminate all sessions *)
SessID : WORD; (* session ID of session to stop *)
Reserved : LongInt (* must be zero *)
) : WORD;
(* Switch a child session to the foreground *)
FUNCTION DosSelectSession(
SessID : WORD; (* session ID to make foreground *)
Reserved : LongInt (* must be zero *)
) : WORD;
FUNCTION Dos16SelectSession(
SessID : WORD; (* session ID to make foreground *)
Reserved : LongInt (* must be zero *)
) : WORD;
(* Sets the status of a child session *)
FUNCTION DosSetSession(
SessID : WORD; (* the session ID of the child *)
StatData : StatusData (* the new status data *)
) : WORD;
FUNCTION Dos16SetSession(
SessID : WORD; (* the session ID of the child *)
StatData : StatusData (* the new status data *)
) : WORD;
IMPLEMENTATION
(* ====================================================== *)
FUNCTION DosStopSession(* ------------- *);
EXTERNAL 'SESMGR' INDEX 8;
FUNCTION Dos16StopSession(* ------------- *);
EXTERNAL 'SESMGR' INDEX 8;
FUNCTION DosSelectSession(* ------------- *);
EXTERNAL 'SESMGR' INDEX 9;
FUNCTION Dos16SelectSession(* ------------- *);
EXTERNAL 'SESMGR' INDEX 9;
(* ====================================================== *)
FUNCTION DosSetSession(* ------------- *);
EXTERNAL 'SESMGR' INDEX 14;
FUNCTION Dos16SetSession(* ------------- *);
EXTERNAL 'SESMGR' INDEX 14;
(* ====================================================== *)
FUNCTION DosStartSession(* ------------- *);
EXTERNAL 'SESMGR' INDEX 17;
FUNCTION Dos16StartSession(* ------------- *);
EXTERNAL 'SESMGR' INDEX 17;
(* ====================================================== *)
{
FUNCTION DosSMRegisterDD(* ------------- *);
External 'SESMGR' INDEX 29;
FUNCTION Dos16SMRegisterDD(* ------------- *);
External 'SESMGR' INDEX 29;
}
(* ====================================================== *)
(* 32 Bit *)
{
FUNCTION Dos32StartSession(* ------------- *);
External 'SESMGR' INDEX 37;
FUNCTION Dos32SelectSession(* ------------- *);
External 'SESMGR' INDEX 38;
FUNCTION Dos32SetSession(* ------------- *);
External 'SESMGR' INDEX 39;
FUNCTION Dos32StopSession(* ------------- *);
External 'SESMGR' INDEX 40;
}
END.
(* ===================================================== *)