home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / devpl016.zip / SESSION.C < prev   
Text File  |  1994-02-07  |  10KB  |  392 lines

  1. /**************************************************************************
  2.  
  3.     âvâìâOâëâÇïNô«(âZâbâVâçâôâXâ^ü[âg or âZâbâVâçâôÉ╪éΦè╖éª)âïü[â`âô
  4.  
  5.  
  6.     SESSION.C ---- SESSION.OBJ
  7.  
  8. ****************************************************************************/
  9.  
  10.  
  11.  
  12. #define INCL_BASE                     /*PMâwâbâ_ü[üEâtâ@âCâïé╠è╓ÿAòöò¬    */
  13.  
  14. #include <os2.h>
  15. #include <string.h>                     /*C/2âXâgâèâôâOè╓Éö                 */
  16. #include <stdlib.h>
  17. #include "DWP.h"                    /*âèâ\ü[âXïLìåID                    */
  18.  
  19.  
  20.  
  21.  
  22.  
  23.  
  24. int pm_session(char *pgmname,char *parm,char *title)
  25. {
  26.     USHORT r;
  27.     STARTDATA sd;
  28.     USHORT sid;
  29.     PID pid;
  30.  
  31.         sd.Length = 50;        // ì\æóæ╠é╠Æ╖é│Åφé╔éTéO
  32.  
  33.         sd.Related = 1;        // ïNô«âZâbâVâçâôé╞é╠è╓îW
  34.                     //   0  = ô╞ùºâZâbâVâçâô
  35.                     //   1  = ÄqâZâbâVâçâô
  36.  
  37.         sd.FgBg = 0;        // âZâbâVâçâôé╠Ä└ìsè┬ï½
  38.                     //   0  = ╠½▒╕▐╫▌─▐
  39.                     //   1  = ╩▐»╕╕▐╫▌─▐
  40.  
  41.         sd.TraceOpt = 0 ;     // TRACE OPTION
  42.                     //   0  = Trace off
  43.                     //   1  = Trace on Äqæ╖é╠Æ╩Æm(post)é╚é╡
  44.                     //   2  = Trace on æSÄqæ╖é╠╛»╝«▌é╠Trace
  45.  
  46.         sd.PgmTitle = title;   // âvâìâOâëâÇé╠â^âCâgâïò╢ÄÜù±(ASCIIZ)
  47.                     // POINTER  MAX:61byte
  48.                     // 0 or null string é╠Ä₧é═ PgmName é¬
  49.                     // é╞éτéΩéΘ
  50.  
  51.         sd.PgmName = pgmname;    // âìü[âhé╖éΘâvâìâOâëâÇé╠è«æSé╚
  52.                     // ╠º▓┘û╝é╞╩▀╜û╝é╠ASCIIZò╢ÄÜù±é≡
  53.                     // Äªé╖â|âCâôâ^ü[ DEFULT = SHELL CMD
  54.  
  55.         sd.PgmInputs = parm;    // █░─▐é╖éΘ╠▀█╕▐╫╤é╓ôné╖╩▀╫╥░└é≡Īé╖
  56.                     // ╬▀▓╜└(ASCIIZ)é≡ÄwÆΦé╖éΘ
  57.  
  58.         sd.TermQ = 0L;        // OS/2╖¡░é╓ôné╖è«æSé╚╩▀╜û╝é≡ÄwÆΦé╖éΘ
  59.                     // (ASCIIZ) or 0L ÄwÆΦé╡é╚é¡é─éαénéj
  60.  
  61.         sd.Environment = 0;    // █░─▐╠▀█╕▐╫╤é╓ôné╖è┬ï½ò╢ÄÜù±é≡Īé╖
  62.                     // ╬▀▓▌└░
  63.                     //     0L AND InheritOpt=1 é╠Ä₧é═
  64.                     //                  Ée╛»╝«▌è┬ï½
  65.                     //      0L and InheritOpt=0 é╠Ä₧é═
  66.                     //                  DosSteratSessioné≡
  67.                     //                  î─é±é╛è┬ï½
  68.  
  69.         sd.InheritOpt = 1;    // ÅπïLÄQÅ╞
  70.  
  71.         sd.SessionType = 3;    // session type (screen mode)é╠ÄwÆΦ
  72.                     //     0 = PgmHandle é╠session type
  73.                     //    1 = Full screen mode start
  74.                     //    2 = Window screen mode start
  75.                     //      3 = PM API mode start
  76.  
  77.         sd.IconFile = "";    // ICON File name é≡Īé╖╬▀▓▌└░
  78.  
  79.         sd.PgmHandle = 0;    // ╠▀█╕▐╫╤ ╩▌─▐┘
  80.  
  81.         sd.PgmControl = 2;    // PM API application é╠Åëè·Å≤æ╘
  82.                     // (full screen modeé┼é═û│Äï)
  83.                     //     0 = òsë┬Äï
  84.                     //      2 = ì┼æσò\Ī
  85.                     //      4 = ì┼żò\Ī
  86.                     //    8 = Ä⌐ô«âXâNâìü[âïû│é╡
  87.                     //    0x8000 = ÄwÆΦé│éΩé╜ê╩ÆuâTâCâY
  88.  
  89.         sd.InitXPos =0;    // Åëè·âZâbâVâçâôé╠ X ì└òW
  90.                     // (full screen modeé┼é═û│Äï)
  91.                     // (0,0)é═ëEë║èp
  92.  
  93.         sd.InitYPos =0;    // Åëè·âZâbâVâçâôé╠ Y ì└òW
  94.                     // (full screen modeé┼é═û│Äï)
  95.                     // (0,0)é═ëEë║èp
  96.  
  97.         sd.InitXSize =0;    // Åëè·âZâbâVâçâôé╠ò¥
  98.                     // (full screen modeé┼é═û│Äï)
  99.  
  100.         sd.InitXSize =0;    // Åëè·âZâbâVâçâôé╠ìéé│
  101.                     // (full screen modeé┼é═û│Äï)
  102.                     
  103.  
  104.         if ((r=DosStartSession(&sd,&sid,&pid)))
  105.            {
  106.                DosBeep(100,100);
  107.             return 0;
  108.            }
  109.  
  110.     return    sid;
  111. }
  112.  
  113.  
  114.  
  115.  
  116.  
  117. int TextWinF_session(char *pgmname,char *parm,char *title)
  118. {
  119.     USHORT r;
  120.     STARTDATA sd;
  121.     USHORT sid;
  122.     PID pid;
  123.  
  124.         sd.Length = 50;        // ì\æóæ╠é╠Æ╖é│Åφé╔éTéO
  125.  
  126.         sd.Related = 1;        // ïNô«âZâbâVâçâôé╞é╠è╓îW
  127.                     //   0  = ô╞ùºâZâbâVâçâô
  128.                     //   1  = ÄqâZâbâVâçâô
  129.  
  130.         sd.FgBg = 0;        // âZâbâVâçâôé╠Ä└ìsè┬ï½
  131.                     //   0  = ╠½▒╕▐╫▌─▐
  132.                     //   1  = ╩▐»╕╕▐╫▌─▐
  133.  
  134.         sd.TraceOpt = 0 ;     // TRACE OPTION
  135.                     //   0  = Trace off
  136.                     //   1  = Trace on Äqæ╖é╠Æ╩Æm(post)é╚é╡
  137.                     //   2  = Trace on æSÄqæ╖é╠╛»╝«▌é╠Trace
  138.  
  139.         sd.PgmTitle = title;   // âvâìâOâëâÇé╠â^âCâgâïò╢ÄÜù±(ASCIIZ)
  140.                     // POINTER  MAX:61byte
  141.                     // 0 or null string é╠Ä₧é═ PgmName é¬
  142.                     // é╞éτéΩéΘ
  143.  
  144.         sd.PgmName = pgmname;    // âìü[âhé╖éΘâvâìâOâëâÇé╠è«æSé╚
  145.                     // ╠º▓┘û╝é╞╩▀╜û╝é╠ASCIIZò╢ÄÜù±é≡
  146.                     // Äªé╖â|âCâôâ^ü[ DEFULT = SHELL CMD
  147.  
  148.         sd.PgmInputs = parm;    // █░─▐é╖éΘ╠▀█╕▐╫╤é╓ôné╖╩▀╫╥░└é≡Īé╖
  149.                     // ╬▀▓╜└(ASCIIZ)é≡ÄwÆΦé╖éΘ
  150.  
  151.         sd.TermQ = 0L;        // OS/2╖¡░é╓ôné╖è«æSé╚╩▀╜û╝é≡ÄwÆΦé╖éΘ
  152.                     // (ASCIIZ) or 0L ÄwÆΦé╡é╚é¡é─éαénéj
  153.  
  154.         sd.Environment = 0;    // █░─▐╠▀█╕▐╫╤é╓ôné╖è┬ï½ò╢ÄÜù±é≡Īé╖
  155.                     // ╬▀▓▌└░
  156.                     //     0L AND InheritOpt=1 é╠Ä₧é═
  157.                     //                  Ée╛»╝«▌è┬ï½
  158.                     //      0L and InheritOpt=0 é╠Ä₧é═
  159.                     //                  DosSteratSessioné≡
  160.                     //                  î─é±é╛è┬ï½
  161.  
  162.         sd.InheritOpt = 1;    // ÅπïLÄQÅ╞
  163.  
  164.         sd.SessionType = 2;    // session type (screen mode)é╠ÄwÆΦ
  165.                     //     0 = PgmHandle é╠session type
  166.                     //    1 = Full screen mode start
  167.                     //    2 = Window screen mode start
  168.                     //      3 = PM API mode start
  169.  
  170.         sd.IconFile = "";    // ICON File name é≡Īé╖╬▀▓▌└░
  171.  
  172.         sd.PgmHandle = 0;    // ╠▀█╕▐╫╤ ╩▌─▐┘
  173.  
  174.         sd.PgmControl = 2;    // PM API application é╠Åëè·Å≤æ╘
  175.                     // (full screen modeé┼é═û│Äï)
  176.                     //     0 = òsë┬Äï
  177.                     //      2 = ì┼æσò\Ī
  178.                     //      4 = ì┼żò\Ī
  179.                     //    8 = Ä⌐ô«âXâNâìü[âïû│é╡
  180.                     //    0x8000 = ÄwÆΦé│éΩé╜ê╩ÆuâTâCâY
  181.  
  182.         sd.InitXPos =0;    // Åëè·âZâbâVâçâôé╠ X ì└òW
  183.                     // (full screen modeé┼é═û│Äï)
  184.                     // (0,0)é═ëEë║èp
  185.  
  186.         sd.InitYPos =0;    // Åëè·âZâbâVâçâôé╠ Y ì└òW
  187.                     // (full screen modeé┼é═û│Äï)
  188.                     // (0,0)é═ëEë║èp
  189.  
  190.         sd.InitXSize =0;    // Åëè·âZâbâVâçâôé╠ò¥
  191.                     // (full screen modeé┼é═û│Äï)
  192.  
  193.         sd.InitXSize =0;    // Åëè·âZâbâVâçâôé╠ìéé│
  194.                     // (full screen modeé┼é═û│Äï)
  195.                     
  196.  
  197.         if ((r=DosStartSession(&sd,&sid,&pid)))
  198.            {
  199.                DosBeep(100,100);
  200.             return 0;
  201.            }
  202.  
  203.     return    sid;
  204.  
  205. }
  206.  
  207.  
  208. int TextWinB_session(char *pgmname,char *parm,char *title)
  209. {
  210.     USHORT r;
  211.     STARTDATA sd;
  212.     USHORT sid;
  213.     PID pid;
  214.  
  215.         sd.Length = 50;        // ì\æóæ╠é╠Æ╖é│Åφé╔éTéO
  216.  
  217.         sd.Related = 1;        // ïNô«âZâbâVâçâôé╞é╠è╓îW
  218.                     //   0  = ô╞ùºâZâbâVâçâô
  219.                     //   1  = ÄqâZâbâVâçâô
  220.  
  221.         sd.FgBg = 1;        // âZâbâVâçâôé╠Ä└ìsè┬ï½
  222.                     //   0  = ╠½▒╕▐╫▌─▐
  223.                     //   1  = ╩▐»╕╕▐╫▌─▐
  224.  
  225.         sd.TraceOpt = 0 ;     // TRACE OPTION
  226.                     //   0  = Trace off
  227.                     //   1  = Trace on Äqæ╖é╠Æ╩Æm(post)é╚é╡
  228.                     //   2  = Trace on æSÄqæ╖é╠╛»╝«▌é╠Trace
  229.  
  230.         sd.PgmTitle = title;   // âvâìâOâëâÇé╠â^âCâgâïò╢ÄÜù±(ASCIIZ)
  231.                     // POINTER  MAX:61byte
  232.                     // 0 or null string é╠Ä₧é═ PgmName é¬
  233.                     // é╞éτéΩéΘ
  234.  
  235.         sd.PgmName = pgmname;    // âìü[âhé╖éΘâvâìâOâëâÇé╠è«æSé╚
  236.                     // ╠º▓┘û╝é╞╩▀╜û╝é╠ASCIIZò╢ÄÜù±é≡
  237.                     // Äªé╖â|âCâôâ^ü[ DEFULT = SHELL CMD
  238.  
  239.         sd.PgmInputs = parm;    // █░─▐é╖éΘ╠▀█╕▐╫╤é╓ôné╖╩▀╫╥░└é≡Īé╖
  240.                     // ╬▀▓╜└(ASCIIZ)é≡ÄwÆΦé╖éΘ
  241.  
  242.         sd.TermQ = 0L;        // OS/2╖¡░é╓ôné╖è«æSé╚╩▀╜û╝é≡ÄwÆΦé╖éΘ
  243.                     // (ASCIIZ) or 0L ÄwÆΦé╡é╚é¡é─éαénéj
  244.  
  245.         sd.Environment = 0;    // █░─▐╠▀█╕▐╫╤é╓ôné╖è┬ï½ò╢ÄÜù±é≡Īé╖
  246.                     // ╬▀▓▌└░
  247.                     //     0L AND InheritOpt=1 é╠Ä₧é═
  248.                     //                  Ée╛»╝«▌è┬ï½
  249.                     //      0L and InheritOpt=0 é╠Ä₧é═
  250.                     //                  DosSteratSessioné≡
  251.                     //                  î─é±é╛è┬ï½
  252.  
  253.         sd.InheritOpt = 1;    // ÅπïLÄQÅ╞
  254.  
  255.         sd.SessionType = 2;    // session type (screen mode)é╠ÄwÆΦ
  256.                     //     0 = PgmHandle é╠session type
  257.                     //    1 = Full screen mode start
  258.                     //    2 = Window screen mode start
  259.                     //      3 = PM API mode start
  260.  
  261.         sd.IconFile = "";    // ICON File name é≡Īé╖╬▀▓▌└░
  262.  
  263.         sd.PgmHandle = 0;    // ╠▀█╕▐╫╤ ╩▌─▐┘
  264.  
  265.         sd.PgmControl = 2;    // PM API application é╠Åëè·Å≤æ╘
  266.                     // (full screen modeé┼é═û│Äï)
  267.                     //     0 = òsë┬Äï
  268.                     //      2 = ì┼æσò\Ī
  269.                     //      4 = ì┼żò\Ī
  270.                     //    8 = Ä⌐ô«âXâNâìü[âïû│é╡
  271.                     //    0x8000 = ÄwÆΦé│éΩé╜ê╩ÆuâTâCâY
  272.  
  273.         sd.InitXPos =0;    // Åëè·âZâbâVâçâôé╠ X ì└òW
  274.                     // (full screen modeé┼é═û│Äï)
  275.                     // (0,0)é═ëEë║èp
  276.  
  277.         sd.InitYPos =0;    // Åëè·âZâbâVâçâôé╠ Y ì└òW
  278.                     // (full screen modeé┼é═û│Äï)
  279.                     // (0,0)é═ëEë║èp
  280.  
  281.         sd.InitXSize =0;    // Åëè·âZâbâVâçâôé╠ò¥
  282.                     // (full screen modeé┼é═û│Äï)
  283.  
  284.         sd.InitXSize =0;    // Åëè·âZâbâVâçâôé╠ìéé│
  285.                     // (full screen modeé┼é═û│Äï)
  286.                     
  287.  
  288.         if ((r=DosStartSession(&sd,&sid,&pid)))
  289.            {
  290.                DosBeep(100,100);
  291.             return 0;
  292.            }
  293.  
  294.     return    sid;
  295.  
  296. }
  297.  
  298.  
  299.  
  300.  
  301. int TextFullF_session(char *pgmname,char *parm,char *title)
  302. {
  303.     USHORT r;
  304.     STARTDATA sd;
  305.     USHORT sid;
  306.     PID pid;
  307.  
  308.         sd.Length = 50;        // ì\æóæ╠é╠Æ╖é│Åφé╔éTéO
  309.  
  310.         sd.Related = 1;        // ïNô«âZâbâVâçâôé╞é╠è╓îW
  311.                     //   0  = ô╞ùºâZâbâVâçâô
  312.                     //   1  = ÄqâZâbâVâçâô
  313.  
  314.         sd.FgBg = 0;        // âZâbâVâçâôé╠Ä└ìsè┬ï½
  315.                     //   0  = ╠½▒╕▐╫▌─▐
  316.                     //   1  = ╩▐»╕╕▐╫▌─▐
  317.  
  318.         sd.TraceOpt = 0 ;     // TRACE OPTION
  319.                     //   0  = Trace off
  320.                     //   1  = Trace on Äqæ╖é╠Æ╩Æm(post)é╚é╡
  321.                     //   2  = Trace on æSÄqæ╖é╠╛»╝«▌é╠Trace
  322.  
  323.         sd.PgmTitle = title;   // âvâìâOâëâÇé╠â^âCâgâïò╢ÄÜù±(ASCIIZ)
  324.                     // POINTER  MAX:61byte
  325.                     // 0 or null string é╠Ä₧é═ PgmName é¬
  326.                     // é╞éτéΩéΘ
  327.  
  328.         sd.PgmName = pgmname;    // âìü[âhé╖éΘâvâìâOâëâÇé╠è«æSé╚
  329.                     // ╠º▓┘û╝é╞╩▀╜û╝é╠ASCIIZò╢ÄÜù±é≡
  330.                     // Äªé╖â|âCâôâ^ü[ DEFULT = SHELL CMD
  331.  
  332.         sd.PgmInputs = parm;    // █░─▐é╖éΘ╠▀█╕▐╫╤é╓ôné╖╩▀╫╥░└é≡Īé╖
  333.                     // ╬▀▓╜└(ASCIIZ)é≡ÄwÆΦé╖éΘ
  334.  
  335.         sd.TermQ = 0L;        // OS/2╖¡░é╓ôné╖è«æSé╚╩▀╜û╝é≡ÄwÆΦé╖éΘ
  336.                     // (ASCIIZ) or 0L ÄwÆΦé╡é╚é¡é─éαénéj
  337.  
  338.         sd.Environment = 0;    // █░─▐╠▀█╕▐╫╤é╓ôné╖è┬ï½ò╢ÄÜù±é≡Īé╖
  339.                     // ╬▀▓▌└░
  340.                     //     0L AND InheritOpt=1 é╠Ä₧é═
  341.                     //                  Ée╛»╝«▌è┬ï½
  342.                     //      0L and InheritOpt=0 é╠Ä₧é═
  343.                     //                  DosSteratSessioné≡
  344.                     //                  î─é±é╛è┬ï½
  345.  
  346.         sd.InheritOpt = 1;    // ÅπïLÄQÅ╞
  347.  
  348.         sd.SessionType = 1;    // session type (screen mode)é╠ÄwÆΦ
  349.                     //     0 = PgmHandle é╠session type
  350.                     //    1 = Full screen mode start
  351.                     //    2 = Window screen mode start
  352.                     //      3 = PM API mode start
  353.  
  354.         sd.IconFile = "";    // ICON File name é≡Īé╖╬▀▓▌└░
  355.  
  356.         sd.PgmHandle = 0;    // ╠▀█╕▐╫╤ ╩▌─▐┘
  357.  
  358.         sd.PgmControl = 2;    // PM API application é╠Åëè·Å≤æ╘
  359.                     // (full screen modeé┼é═û│Äï)
  360.                     //     0 = òsë┬Äï
  361.                     //      2 = ì┼æσò\Ī
  362.                     //      4 = ì┼żò\Ī
  363.                     //    8 = Ä⌐ô«âXâNâìü[âïû│é╡
  364.                     //    0x8000 = ÄwÆΦé│éΩé╜ê╩ÆuâTâCâY
  365.  
  366.         sd.InitXPos =0;    // Åëè·âZâbâVâçâôé╠ X ì└òW
  367.                     // (full screen modeé┼é═û│Äï)
  368.                     // (0,0)é═ëEë║èp
  369.  
  370.         sd.InitYPos =0;    // Åëè·âZâbâVâçâôé╠ Y ì└òW
  371.                     // (full screen modeé┼é═û│Äï)
  372.                     // (0,0)é═ëEë║èp
  373.  
  374.         sd.InitXSize =0;    // Åëè·âZâbâVâçâôé╠ò¥
  375.                     // (full screen modeé┼é═û│Äï)
  376.  
  377.         sd.InitXSize =0;    // Åëè·âZâbâVâçâôé╠ìéé│
  378.                     // (full screen modeé┼é═û│Äï)
  379.                     
  380.  
  381.         if ((r=DosStartSession(&sd,&sid,&pid)))
  382.            {
  383.                DosBeep(100,100);
  384.             return 0;
  385.            }
  386.  
  387.     return    sid;
  388.  
  389. }
  390.  
  391.  
  392.