home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
OS/2 Shareware BBS: 10 Tools
/
10-Tools.zip
/
devpl016.zip
/
SESSION.C
< prev
Wrap
Text File
|
1994-02-07
|
10KB
|
392 lines
/**************************************************************************
âvâìâOâëâÇïNô«(âZâbâVâçâôâXâ^ü[âg or âZâbâVâçâôÉ╪éΦè╖éª)âïü[â`âô
SESSION.C ---- SESSION.OBJ
****************************************************************************/
#define INCL_BASE /*PMâwâbâ_ü[üEâtâ@âCâïé╠è╓ÿAòöò¬ */
#include <os2.h>
#include <string.h> /*C/2âXâgâèâôâOè╓Éö */
#include <stdlib.h>
#include "DWP.h" /*âèâ\ü[âXïLìåID */
int pm_session(char *pgmname,char *parm,char *title)
{
USHORT r;
STARTDATA sd;
USHORT sid;
PID pid;
sd.Length = 50; // ì\æóæ╠é╠Æ╖é│Åφé╔éTéO
sd.Related = 1; // ïNô«âZâbâVâçâôé╞é╠è╓îW
// 0 = ô╞ùºâZâbâVâçâô
// 1 = ÄqâZâbâVâçâô
sd.FgBg = 0; // âZâbâVâçâôé╠Ä└ìsè┬ï½
// 0 = ╠½▒╕▐╫▌─▐
// 1 = ╩▐»╕╕▐╫▌─▐
sd.TraceOpt = 0 ; // TRACE OPTION
// 0 = Trace off
// 1 = Trace on Äqæ╖é╠Æ╩Æm(post)é╚é╡
// 2 = Trace on æSÄqæ╖é╠╛»╝«▌é╠Trace
sd.PgmTitle = title; // âvâìâOâëâÇé╠â^âCâgâïò╢ÄÜù±(ASCIIZ)
// POINTER MAX:61byte
// 0 or null string é╠Ä₧é═ PgmName é¬
// é╞éτéΩéΘ
sd.PgmName = pgmname; // âìü[âhé╖éΘâvâìâOâëâÇé╠è«æSé╚
// ╠º▓┘û╝é╞╩▀╜û╝é╠ASCIIZò╢ÄÜù±é≡
// Īé╖â|âCâôâ^ü[ DEFULT = SHELL CMD
sd.PgmInputs = parm; // █░─▐é╖éΘ╠▀█╕▐╫╤é╓ôné╖╩▀╫╥░└é≡Īé╖
// ╬▀▓╜└(ASCIIZ)é≡ÄwÆΦé╖éΘ
sd.TermQ = 0L; // OS/2╖¡░é╓ôné╖è«æSé╚╩▀╜û╝é≡ÄwÆΦé╖éΘ
// (ASCIIZ) or 0L ÄwÆΦé╡é╚é¡é─éαénéj
sd.Environment = 0; // █░─▐╠▀█╕▐╫╤é╓ôné╖è┬ï½ò╢ÄÜù±é≡Īé╖
// ╬▀▓▌└░
// 0L AND InheritOpt=1 é╠Ä₧é═
// Ée╛»╝«▌è┬ï½
// 0L and InheritOpt=0 é╠Ä₧é═
// DosSteratSessioné≡
// î─é±é╛è┬ï½
sd.InheritOpt = 1; // ÅπïLÄQÅ╞
sd.SessionType = 3; // session type (screen mode)é╠ÄwÆΦ
// 0 = PgmHandle é╠session type
// 1 = Full screen mode start
// 2 = Window screen mode start
// 3 = PM API mode start
sd.IconFile = ""; // ICON File name é≡Īé╖╬▀▓▌└░
sd.PgmHandle = 0; // ╠▀█╕▐╫╤ ╩▌─▐┘
sd.PgmControl = 2; // PM API application é╠Åëè·Å≤æ╘
// (full screen modeé┼é═û│Äï)
// 0 = òsë┬Äï
// 2 = ì┼æσò\Ī
// 4 = ì┼żò\Ī
// 8 = Ä⌐ô«âXâNâìü[âïû│é╡
// 0x8000 = ÄwÆΦé│éΩé╜ê╩ÆuâTâCâY
sd.InitXPos =0; // Åëè·âZâbâVâçâôé╠ X ì└òW
// (full screen modeé┼é═û│Äï)
// (0,0)é═ëEë║èp
sd.InitYPos =0; // Åëè·âZâbâVâçâôé╠ Y ì└òW
// (full screen modeé┼é═û│Äï)
// (0,0)é═ëEë║èp
sd.InitXSize =0; // Åëè·âZâbâVâçâôé╠ò¥
// (full screen modeé┼é═û│Äï)
sd.InitXSize =0; // Åëè·âZâbâVâçâôé╠ìéé│
// (full screen modeé┼é═û│Äï)
if ((r=DosStartSession(&sd,&sid,&pid)))
{
DosBeep(100,100);
return 0;
}
return sid;
}
int TextWinF_session(char *pgmname,char *parm,char *title)
{
USHORT r;
STARTDATA sd;
USHORT sid;
PID pid;
sd.Length = 50; // ì\æóæ╠é╠Æ╖é│Åφé╔éTéO
sd.Related = 1; // ïNô«âZâbâVâçâôé╞é╠è╓îW
// 0 = ô╞ùºâZâbâVâçâô
// 1 = ÄqâZâbâVâçâô
sd.FgBg = 0; // âZâbâVâçâôé╠Ä└ìsè┬ï½
// 0 = ╠½▒╕▐╫▌─▐
// 1 = ╩▐»╕╕▐╫▌─▐
sd.TraceOpt = 0 ; // TRACE OPTION
// 0 = Trace off
// 1 = Trace on Äqæ╖é╠Æ╩Æm(post)é╚é╡
// 2 = Trace on æSÄqæ╖é╠╛»╝«▌é╠Trace
sd.PgmTitle = title; // âvâìâOâëâÇé╠â^âCâgâïò╢ÄÜù±(ASCIIZ)
// POINTER MAX:61byte
// 0 or null string é╠Ä₧é═ PgmName é¬
// é╞éτéΩéΘ
sd.PgmName = pgmname; // âìü[âhé╖éΘâvâìâOâëâÇé╠è«æSé╚
// ╠º▓┘û╝é╞╩▀╜û╝é╠ASCIIZò╢ÄÜù±é≡
// Īé╖â|âCâôâ^ü[ DEFULT = SHELL CMD
sd.PgmInputs = parm; // █░─▐é╖éΘ╠▀█╕▐╫╤é╓ôné╖╩▀╫╥░└é≡Īé╖
// ╬▀▓╜└(ASCIIZ)é≡ÄwÆΦé╖éΘ
sd.TermQ = 0L; // OS/2╖¡░é╓ôné╖è«æSé╚╩▀╜û╝é≡ÄwÆΦé╖éΘ
// (ASCIIZ) or 0L ÄwÆΦé╡é╚é¡é─éαénéj
sd.Environment = 0; // █░─▐╠▀█╕▐╫╤é╓ôné╖è┬ï½ò╢ÄÜù±é≡Īé╖
// ╬▀▓▌└░
// 0L AND InheritOpt=1 é╠Ä₧é═
// Ée╛»╝«▌è┬ï½
// 0L and InheritOpt=0 é╠Ä₧é═
// DosSteratSessioné≡
// î─é±é╛è┬ï½
sd.InheritOpt = 1; // ÅπïLÄQÅ╞
sd.SessionType = 2; // session type (screen mode)é╠ÄwÆΦ
// 0 = PgmHandle é╠session type
// 1 = Full screen mode start
// 2 = Window screen mode start
// 3 = PM API mode start
sd.IconFile = ""; // ICON File name é≡Īé╖╬▀▓▌└░
sd.PgmHandle = 0; // ╠▀█╕▐╫╤ ╩▌─▐┘
sd.PgmControl = 2; // PM API application é╠Åëè·Å≤æ╘
// (full screen modeé┼é═û│Äï)
// 0 = òsë┬Äï
// 2 = ì┼æσò\Ī
// 4 = ì┼żò\Ī
// 8 = Ä⌐ô«âXâNâìü[âïû│é╡
// 0x8000 = ÄwÆΦé│éΩé╜ê╩ÆuâTâCâY
sd.InitXPos =0; // Åëè·âZâbâVâçâôé╠ X ì└òW
// (full screen modeé┼é═û│Äï)
// (0,0)é═ëEë║èp
sd.InitYPos =0; // Åëè·âZâbâVâçâôé╠ Y ì└òW
// (full screen modeé┼é═û│Äï)
// (0,0)é═ëEë║èp
sd.InitXSize =0; // Åëè·âZâbâVâçâôé╠ò¥
// (full screen modeé┼é═û│Äï)
sd.InitXSize =0; // Åëè·âZâbâVâçâôé╠ìéé│
// (full screen modeé┼é═û│Äï)
if ((r=DosStartSession(&sd,&sid,&pid)))
{
DosBeep(100,100);
return 0;
}
return sid;
}
int TextWinB_session(char *pgmname,char *parm,char *title)
{
USHORT r;
STARTDATA sd;
USHORT sid;
PID pid;
sd.Length = 50; // ì\æóæ╠é╠Æ╖é│Åφé╔éTéO
sd.Related = 1; // ïNô«âZâbâVâçâôé╞é╠è╓îW
// 0 = ô╞ùºâZâbâVâçâô
// 1 = ÄqâZâbâVâçâô
sd.FgBg = 1; // âZâbâVâçâôé╠Ä└ìsè┬ï½
// 0 = ╠½▒╕▐╫▌─▐
// 1 = ╩▐»╕╕▐╫▌─▐
sd.TraceOpt = 0 ; // TRACE OPTION
// 0 = Trace off
// 1 = Trace on Äqæ╖é╠Æ╩Æm(post)é╚é╡
// 2 = Trace on æSÄqæ╖é╠╛»╝«▌é╠Trace
sd.PgmTitle = title; // âvâìâOâëâÇé╠â^âCâgâïò╢ÄÜù±(ASCIIZ)
// POINTER MAX:61byte
// 0 or null string é╠Ä₧é═ PgmName é¬
// é╞éτéΩéΘ
sd.PgmName = pgmname; // âìü[âhé╖éΘâvâìâOâëâÇé╠è«æSé╚
// ╠º▓┘û╝é╞╩▀╜û╝é╠ASCIIZò╢ÄÜù±é≡
// Īé╖â|âCâôâ^ü[ DEFULT = SHELL CMD
sd.PgmInputs = parm; // █░─▐é╖éΘ╠▀█╕▐╫╤é╓ôné╖╩▀╫╥░└é≡Īé╖
// ╬▀▓╜└(ASCIIZ)é≡ÄwÆΦé╖éΘ
sd.TermQ = 0L; // OS/2╖¡░é╓ôné╖è«æSé╚╩▀╜û╝é≡ÄwÆΦé╖éΘ
// (ASCIIZ) or 0L ÄwÆΦé╡é╚é¡é─éαénéj
sd.Environment = 0; // █░─▐╠▀█╕▐╫╤é╓ôné╖è┬ï½ò╢ÄÜù±é≡Īé╖
// ╬▀▓▌└░
// 0L AND InheritOpt=1 é╠Ä₧é═
// Ée╛»╝«▌è┬ï½
// 0L and InheritOpt=0 é╠Ä₧é═
// DosSteratSessioné≡
// î─é±é╛è┬ï½
sd.InheritOpt = 1; // ÅπïLÄQÅ╞
sd.SessionType = 2; // session type (screen mode)é╠ÄwÆΦ
// 0 = PgmHandle é╠session type
// 1 = Full screen mode start
// 2 = Window screen mode start
// 3 = PM API mode start
sd.IconFile = ""; // ICON File name é≡Īé╖╬▀▓▌└░
sd.PgmHandle = 0; // ╠▀█╕▐╫╤ ╩▌─▐┘
sd.PgmControl = 2; // PM API application é╠Åëè·Å≤æ╘
// (full screen modeé┼é═û│Äï)
// 0 = òsë┬Äï
// 2 = ì┼æσò\Ī
// 4 = ì┼żò\Ī
// 8 = Ä⌐ô«âXâNâìü[âïû│é╡
// 0x8000 = ÄwÆΦé│éΩé╜ê╩ÆuâTâCâY
sd.InitXPos =0; // Åëè·âZâbâVâçâôé╠ X ì└òW
// (full screen modeé┼é═û│Äï)
// (0,0)é═ëEë║èp
sd.InitYPos =0; // Åëè·âZâbâVâçâôé╠ Y ì└òW
// (full screen modeé┼é═û│Äï)
// (0,0)é═ëEë║èp
sd.InitXSize =0; // Åëè·âZâbâVâçâôé╠ò¥
// (full screen modeé┼é═û│Äï)
sd.InitXSize =0; // Åëè·âZâbâVâçâôé╠ìéé│
// (full screen modeé┼é═û│Äï)
if ((r=DosStartSession(&sd,&sid,&pid)))
{
DosBeep(100,100);
return 0;
}
return sid;
}
int TextFullF_session(char *pgmname,char *parm,char *title)
{
USHORT r;
STARTDATA sd;
USHORT sid;
PID pid;
sd.Length = 50; // ì\æóæ╠é╠Æ╖é│Åφé╔éTéO
sd.Related = 1; // ïNô«âZâbâVâçâôé╞é╠è╓îW
// 0 = ô╞ùºâZâbâVâçâô
// 1 = ÄqâZâbâVâçâô
sd.FgBg = 0; // âZâbâVâçâôé╠Ä└ìsè┬ï½
// 0 = ╠½▒╕▐╫▌─▐
// 1 = ╩▐»╕╕▐╫▌─▐
sd.TraceOpt = 0 ; // TRACE OPTION
// 0 = Trace off
// 1 = Trace on Äqæ╖é╠Æ╩Æm(post)é╚é╡
// 2 = Trace on æSÄqæ╖é╠╛»╝«▌é╠Trace
sd.PgmTitle = title; // âvâìâOâëâÇé╠â^âCâgâïò╢ÄÜù±(ASCIIZ)
// POINTER MAX:61byte
// 0 or null string é╠Ä₧é═ PgmName é¬
// é╞éτéΩéΘ
sd.PgmName = pgmname; // âìü[âhé╖éΘâvâìâOâëâÇé╠è«æSé╚
// ╠º▓┘û╝é╞╩▀╜û╝é╠ASCIIZò╢ÄÜù±é≡
// Īé╖â|âCâôâ^ü[ DEFULT = SHELL CMD
sd.PgmInputs = parm; // █░─▐é╖éΘ╠▀█╕▐╫╤é╓ôné╖╩▀╫╥░└é≡Īé╖
// ╬▀▓╜└(ASCIIZ)é≡ÄwÆΦé╖éΘ
sd.TermQ = 0L; // OS/2╖¡░é╓ôné╖è«æSé╚╩▀╜û╝é≡ÄwÆΦé╖éΘ
// (ASCIIZ) or 0L ÄwÆΦé╡é╚é¡é─éαénéj
sd.Environment = 0; // █░─▐╠▀█╕▐╫╤é╓ôné╖è┬ï½ò╢ÄÜù±é≡Īé╖
// ╬▀▓▌└░
// 0L AND InheritOpt=1 é╠Ä₧é═
// Ée╛»╝«▌è┬ï½
// 0L and InheritOpt=0 é╠Ä₧é═
// DosSteratSessioné≡
// î─é±é╛è┬ï½
sd.InheritOpt = 1; // ÅπïLÄQÅ╞
sd.SessionType = 1; // session type (screen mode)é╠ÄwÆΦ
// 0 = PgmHandle é╠session type
// 1 = Full screen mode start
// 2 = Window screen mode start
// 3 = PM API mode start
sd.IconFile = ""; // ICON File name é≡Īé╖╬▀▓▌└░
sd.PgmHandle = 0; // ╠▀█╕▐╫╤ ╩▌─▐┘
sd.PgmControl = 2; // PM API application é╠Åëè·Å≤æ╘
// (full screen modeé┼é═û│Äï)
// 0 = òsë┬Äï
// 2 = ì┼æσò\Ī
// 4 = ì┼żò\Ī
// 8 = Ä⌐ô«âXâNâìü[âïû│é╡
// 0x8000 = ÄwÆΦé│éΩé╜ê╩ÆuâTâCâY
sd.InitXPos =0; // Åëè·âZâbâVâçâôé╠ X ì└òW
// (full screen modeé┼é═û│Äï)
// (0,0)é═ëEë║èp
sd.InitYPos =0; // Åëè·âZâbâVâçâôé╠ Y ì└òW
// (full screen modeé┼é═û│Äï)
// (0,0)é═ëEë║èp
sd.InitXSize =0; // Åëè·âZâbâVâçâôé╠ò¥
// (full screen modeé┼é═û│Äï)
sd.InitXSize =0; // Åëè·âZâbâVâçâôé╠ìéé│
// (full screen modeé┼é═û│Äï)
if ((r=DosStartSession(&sd,&sid,&pid)))
{
DosBeep(100,100);
return 0;
}
return sid;
}