home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 2 BBS / 02-BBS.zip / lora299s.zip / LORAWIN.H < prev    next >
C/C++ Source or Header  |  1998-05-12  |  21KB  |  966 lines

  1.  
  2. // LoraBBS Version 2.99 Free Edition
  3. // Copyright (C) 1987-98 Marco Maccaferri
  4. //
  5. // This program is free software; you can redistribute it and/or modify
  6. // it under the terms of the GNU General Public License as published by
  7. // the Free Software Foundation; either version 2 of the License, or
  8. // (at your option) any later version.
  9. //
  10. // This program is distributed in the hope that it will be useful,
  11. // but WITHOUT ANY WARRANTY; without even the implied warranty of
  12. // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  13. // GNU General Public License for more details.
  14. //
  15. // You should have received a copy of the GNU General Public License
  16. // along with this program; if not, write to the Free Software
  17. // Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  18.  
  19. #include "combase.h"
  20. #include "lora.h"
  21. #if defined(__OS2__) || defined(__NT__)
  22. #include "cpc.h"
  23. #endif
  24.  
  25. extern USHORT Daemon;
  26. extern class  TConfig *Cfg;
  27. extern class  TPMLog  *Log;
  28.  
  29. // ----------------------------------------------------------------------------
  30.  
  31. #define NO_RESPONSE        0
  32. #if !defined(OK)
  33. #define OK                 1
  34. #endif
  35. #if defined(__OS2__) || defined(__DOS__) || defined(__LINUX__)
  36. #define ERROR              2
  37. #endif
  38. #define RING               3
  39. #define CONNECT            4
  40. #define NO_CARRIER         5
  41. #define FAX                6
  42. #define FDCS               7
  43. #define FHNG               8
  44. #define FPTS               9
  45. #define FTSI               10
  46. #define FET                11
  47. #define FHS                12
  48. #define FCS                13
  49. #define FPS                14
  50. #define FTI                15
  51.  
  52. class TModem
  53. {
  54. public:
  55.    TModem (void);
  56.    ~TModem (void);
  57.  
  58.    CHAR   Device[32];
  59.    CHAR   NodelistPath[64], DialCmd[64];
  60.    CHAR   Ring[32];
  61.    USHORT LockSpeed, Terminal;
  62.    ULONG  Speed;
  63.    CHAR   Response[64];
  64. #if defined(__OS2__) || defined(__NT__)
  65.    HWND   hwndWindow;
  66. #elif defined(__DOS__) || defined(__LINUX__)
  67.    CXLWIN window;
  68. #endif
  69.    class  TLog *Log;
  70.    class  TSerial *Serial;
  71.  
  72.    USHORT GetResponse (VOID);
  73.    USHORT Initialize (ULONG comhandle = 0L);
  74.    VOID   Poll (PSZ pszNode);
  75.    VOID   SendCommand (PSZ pszCmd);
  76.  
  77. private:
  78.    USHORT Position;
  79. };
  80.  
  81. /* A T.30 DIS frame, as sent by the remote fax machine */
  82.  
  83. struct T30Params {
  84.    int vr;
  85.    int br;        /* BR = Bit Rate :    br * 2400BPS */
  86.    int wd;        /* Page Width :                    */
  87.    int ln;        /* Page Length :                   */
  88.    int df;        /* Data compression format :       */
  89.    int ec;        /* Error Correction :              */
  90.    int bf;        /* Binary File Transfer            */
  91.    int st;        /* Scan Time (ms) :                */
  92. };
  93.  
  94. struct faxmodem_response
  95. {
  96.    char remote_id[50];              /* +FCSI remote id      */
  97.    int  hangup_code;                /* +FHNG code           */
  98.    int  post_page_response_code;    /* +FPTS code           */
  99.    int  post_page_message_code;     /* +FET code            */
  100.    int  fcon;                       /* Boolean; TRUE if +FCON  seen */
  101.    int  connect;                    /* Boolean; TRUE if CONNECT msg seen */
  102.    int  ok;                         /* Boolean; TRUE if OK seen */
  103.    int  error;                      /* Boolean; TRUE if ERROR or NO CARRIER seen */
  104.  
  105.    /* Session params; parsed from +FDCS */
  106.    struct T30Params T30;
  107. };
  108.  
  109. class TFax
  110. {
  111. public:
  112.    TFax (void);
  113.    ~TFax (void);
  114.  
  115.    USHORT Format;
  116.    CHAR   DataPath[64];
  117.    class  TSerial *Com;
  118.    class  TLog *Log;
  119.  
  120.    int    faxreceive (void);
  121.  
  122. private:
  123.    int    gEnd_of_document, swaptableinit;
  124.    int    opage;
  125.    UCHAR  swaptable[256];
  126.    ULONG  faxsize;
  127.    struct faxmodem_response response;
  128.  
  129.    int    get_fax_file (int page);
  130.    int    read_g3_stream (FILE * fp);
  131.    void   get_faxline (char *p, int nbytes, unsigned int wtime);
  132.    void   init_swaptable (void);
  133.    void   init_modem_response (void);
  134.    void   get_modem_result_code (void);
  135.    void   fax_status (char *str);
  136.    void   parse_text_response (char *str);
  137.    int    faxmodem_receive_page (void);
  138. };
  139.  
  140. // ----------------------------------------------------------------------------
  141.  
  142. class TPMList
  143. {
  144. public:
  145. #if defined(__OS2__) || defined(__NT__)
  146.    TPMList (HWND hwnd);
  147. #elif defined(__LINUX__) || defined(__DOS__)
  148.    TPMList (void);
  149. #endif
  150.    ~TPMList (void);
  151.  
  152.    VOID   Add (PSZ Text);
  153.    VOID   Clear (VOID);
  154.    VOID   Update (PSZ Text);
  155.  
  156. private:
  157.    FILE   *fp;
  158.    USHORT DoWrite;
  159.    CHAR   Line[128];
  160. #if defined(__OS2__) || defined(__NT__)
  161.    HWND   hwndList;
  162. #elif defined(__DOS__) || defined(__LINUX__)
  163.    USHORT First;
  164.    CXLWIN window;
  165. #endif
  166. };
  167.  
  168. // ----------------------------------------------------------------------------
  169.  
  170. class TTicProcessor
  171. {
  172. public:
  173.    TTicProcessor (void);
  174.    ~TTicProcessor (void);
  175.  
  176.    CHAR   Inbound[128];
  177.    CHAR   Area[64], Name[32], Complete[128];
  178.    CHAR   Password[32], Replace[32];
  179.    ULONG  Size, Crc;
  180.    class  TConfig *Cfg;
  181.    class  TLog *Log;
  182.    class  TCollection *Description;
  183.    class  TKludges *SeenBy;
  184.    class  TCollection *Path;
  185.    class  TAddress From;
  186.    class  TAddress Origin;
  187.    class  TPMList *Output;
  188.  
  189.    USHORT Check (VOID);
  190.    USHORT CheckEchoList (PSZ pszFile, PSZ pszEchoTag);
  191.    VOID   Delete (VOID);
  192.    VOID   Hatch (class TAddress *Dest);
  193.    VOID   Hatch (class TAddress &Dest);
  194.    VOID   Hatch (PSZ address);
  195.    VOID   Import (VOID);
  196.    USHORT ImportTic (VOID);
  197.    USHORT Open (PSZ pszFile);
  198.    USHORT OpenNext (VOID);
  199.  
  200. private:
  201.    CHAR   PktName[32];
  202.    CHAR   CurrentFile[128];
  203.    CHAR   Temp[256], Display[128];
  204.    class  TFileBase *File;
  205.    class  TFileData *Data;
  206.    class  TNodes *Nodes;
  207. };
  208.  
  209. // --------------------------------------------------------------------------
  210.  
  211. typedef struct {
  212.    USHORT Zone;
  213.    USHORT Net;
  214.    USHORT Node;
  215.    USHORT Point;
  216. } KLUDGES;
  217.  
  218. class TKludges
  219. {
  220. public:
  221.    TKludges (void);
  222.    ~TKludges (void);
  223.  
  224.    USHORT Sort, KeepPoint;
  225.    USHORT Zone, Net, Node, Point;
  226.    CHAR   Address[32], ShortAddress[32];
  227.  
  228.    USHORT Add (VOID);
  229.    USHORT AddString (PSZ pszString);
  230.    USHORT Check (PSZ pszName);
  231.    VOID   Clear (VOID);
  232.    VOID   Delete (VOID);
  233.    USHORT First (VOID);
  234.    VOID   New (VOID);
  235.    USHORT Next (VOID);
  236.  
  237. private:
  238.    class  TCollection Data;
  239. };
  240.  
  241. // ----------------------------------------------------------------------------
  242.  
  243. class TMailProcessor
  244. {
  245. public:
  246.    TMailProcessor (void);
  247.    ~TMailProcessor (void);
  248.  
  249.    USHORT Packets;
  250.    CHAR   Inbound[64], Outbound[64];
  251.    ULONG  Bad, NetMail, MsgTossed, Duplicate;
  252.    ULONG  MsgSent;
  253.    class  TConfig *Cfg;
  254.    class  TLog *Log;
  255.    class  TPMList *Output;
  256.    class  TStatus *Status;
  257.  
  258.    VOID   Change (VOID);
  259.    USHORT CheckEchoList (PSZ pszFile, PSZ pszEchoTag);
  260.    VOID   Export (VOID);
  261.    VOID   ExportNetMail (VOID);
  262.    VOID   Import (VOID);
  263.    VOID   ImportBad (VOID);
  264.    USHORT IsArcmail (VOID);
  265.    VOID   News (VOID);
  266.    VOID   Pack (PSZ pszFile, PSZ pszRoute = NULL);
  267.    VOID   Mail (VOID);
  268.    USHORT DoRescan (VOID);
  269.    USHORT UnpackArcmail (VOID);
  270.  
  271. private:
  272.    CHAR   PktName[32];
  273.    CHAR   Display[128];
  274.    CHAR   LastTag[64];
  275.    CHAR   Temp[1024];
  276.    CHAR   ArcMailName[128];
  277.    CHAR   Line[128], Name[128];
  278.    USHORT IsAreasBBS;
  279.    USHORT BadArea;
  280.    ULONG  TossedArea;
  281.    ULONG  Started, BytesProcessed;
  282.    class  PACKET *Packet;
  283.    class  TNodes *Nodes;
  284.    class  TMsgData *Data;
  285.    class  TEchoLink *Forward;
  286.    class  TDupes *Dupes;
  287.    class  TMsgBase *Msg;
  288.    class  TEchotoss *Echo;
  289.    class  TKludges *SeenBy;
  290.    class  TKludges *Path;
  291.  
  292.    USHORT ExportEchoMail (ULONG Number, PSZ pszEchoTag);
  293.    ULONG  ImportEchoMail (PSZ EchoTag, class TMsgBase *InBase = NULL);
  294.    VOID   MakeArcMailName (PSZ pszAddress, CHAR Flag);
  295.    USHORT OpenArea (PSZ pszEchoTag);
  296.    USHORT OpenNextPacket (VOID);
  297.    VOID   RouteTo (VOID);
  298.    VOID   SendTo (VOID);
  299.    VOID   Poll (VOID);
  300. };
  301.  
  302. // --------------------------------------------------------------------------
  303.  
  304. class TAreaManager
  305. {
  306. public:
  307.    TAreaManager (void);
  308.    ~TAreaManager (void);
  309.  
  310.    class  TConfig *Cfg;
  311.    class  TLog *Log;
  312.    class  TMsgBase *Msg;
  313.    class  TStatus *Status;
  314.  
  315.    USHORT AddArea (PSZ address, PSZ area);
  316.    VOID   DoAreaListings (PSZ Address, USHORT Type, USHORT Level, ULONG AccessFlags, ULONG DenyFlags);
  317.    USHORT FilePassive (PSZ address, USHORT flag);
  318.    USHORT FileRemoveAll (PSZ address);
  319.    VOID   ImportAreasBBS (VOID);
  320.    VOID   ImportDescriptions (PSZ pszFile);
  321.    VOID   ExportDescriptions (PSZ pszFile);
  322.    VOID   MsgFooter (VOID);
  323.    VOID   MsgHeader (VOID);
  324.    USHORT Passive (PSZ address, USHORT flag);
  325.    VOID   ProcessAreafix (VOID);
  326.    VOID   ProcessRaid (VOID);
  327.    USHORT RemoveAll (PSZ address);
  328.    USHORT RemoveArea (PSZ address, PSZ area);
  329.    VOID   Rescan (PSZ pszEchoTag, PSZ pszAddress, USHORT MaxMsgs = 0);
  330.    USHORT SetInPacketPwd (PSZ address, PSZ pwd);
  331.    USHORT SetOutPacketPwd (PSZ address, PSZ pwd);
  332.    USHORT SetPacker (PSZ Cmd);
  333.    USHORT SetPacketPwd (PSZ address, PSZ pwd);
  334.    USHORT SetPwd (PSZ address, PSZ pwd);
  335.    USHORT SetSessionPwd (PSZ address, PSZ pwd);
  336.    VOID   UpdateAreasBBS (VOID);
  337.  
  338. private:
  339.    class  TNodes *Nodes;
  340.    class  TEchoLink *EchoLink;
  341.    class  TFilechoLink *FileEchoLink;
  342.    class  TMsgData *Data;
  343.    class  TFileData *FileData;
  344.    class  TCollection Text;
  345. };
  346.  
  347. // --------------------------------------------------------------------------
  348.  
  349. VOID CompileNodelist (USHORT force);
  350.  
  351. // ----------------------------------------------------------------------------
  352.  
  353. class TPMStatus : public TStatus
  354. {
  355. public:
  356. #if defined(__OS2__) || defined(__NT__)
  357.    TPMStatus (HWND hwnd);
  358. #else
  359.    TPMStatus (void);
  360. #endif
  361.    ~TPMStatus (void);
  362.  
  363.    VOID   Clear (VOID);
  364.    VOID   SetLine (USHORT line, PSZ text, ...);
  365.  
  366. private:
  367. #if defined(__OS2__) || defined(__NT__)
  368.    HWND   hwndList;
  369. #endif
  370. };
  371.  
  372. class TPMLog : public TLog
  373. {
  374. public:
  375. #if defined(__OS2__) || defined(__NT__)
  376.    TPMLog (HWND hwnd);
  377. #else
  378.    TPMLog (void);
  379. #endif
  380.    ~TPMLog (void);
  381.  
  382.    USHORT First;
  383.    VOID   Write (PSZ pszFormat, ...);
  384.  
  385. private:
  386. #if defined(__OS2__) || defined(__NT__)
  387.    HWND   hwndList;
  388. #elif defined(__DOS__) || defined(__LINUX__)
  389.    CXLWIN window;
  390. #endif
  391. };
  392.  
  393. #if defined(__OS2__) || defined(__NT__)
  394. #define WMU_ADDLOGITEM              1
  395. #define WMU_ADDMODEMITEM            2
  396. #define WMU_SETSTATUSLINE           3
  397. #define WMU_SETSTATUSLINE0          4
  398. #define WMU_SETSTATUSLINE1          5
  399. #define WMU_REFRESHOUTBOUND         6
  400. #define WMU_ADDOUTBOUNDLINE         7
  401. #define WMU_CLEAROUTBOUND           8
  402. #define WMU_REPLACEOUTBOUNDLINE     9
  403.  
  404. #if defined(__OS2__)
  405. extern HAB  hab;
  406. extern HWND hwndMainFrame, hwndMainClient;
  407. extern FILEDLG fild;
  408. extern HEV  hCfgEvent;
  409. #elif defined(__NT__)
  410. extern HINSTANCE hinst;
  411. extern HWND hwndMainClient, hwndMainList;
  412. extern HWND hwndModemClient, hwndModemList;
  413. extern HWND hwndProgressDlg;
  414. #endif
  415.  
  416. class CAddressDlg : public CDialog
  417. {
  418. public:
  419.    CAddressDlg (HWND p_hWnd);
  420.  
  421.    USHORT OnInitDialog (VOID);
  422.    VOID   OnHelp (VOID);
  423.    VOID   OnOK (VOID);
  424.  
  425. private:
  426.    DECLARE_MESSAGE_MAP ()
  427.  
  428.    VOID   Add (VOID);
  429.    VOID   Change (VOID);
  430.    VOID   Remove (VOID);
  431.    VOID   SelChanged (VOID);
  432. };
  433.  
  434. class CAnswerDlg : public CDialog
  435. {
  436. public:
  437.    CAnswerDlg (HWND p_hWnd);
  438.  
  439.    USHORT OnInitDialog (VOID);
  440.    VOID   OnHelp (VOID);
  441.    VOID   OnOK (VOID);
  442. };
  443.  
  444. class CAreafixDlg : public CDialog
  445. {
  446. public:
  447.    CAreafixDlg (HWND p_hWnd);
  448.  
  449.    USHORT OnInitDialog (VOID);
  450.    VOID   OnHelp (VOID);
  451.    VOID   OnOK (VOID);
  452. };
  453.  
  454. class CBBSGeneralDlg : public CDialog
  455. {
  456. public:
  457.    CBBSGeneralDlg (HWND p_hWnd);
  458.  
  459.    USHORT OnInitDialog (VOID);
  460.    VOID   OnHelp (VOID);
  461.    VOID   OnOK (VOID);
  462. };
  463.  
  464. class CCommandsDlg : public CDialog
  465. {
  466. public:
  467.    CCommandsDlg (HWND p_hWnd);
  468.  
  469.    USHORT OnInitDialog (VOID);
  470.    VOID   OnHelp (VOID);
  471.    VOID   OnOK (VOID);
  472. };
  473.  
  474. class CDirectoriesDlg : public CDialog
  475. {
  476. public:
  477.    CDirectoriesDlg (HWND p_hWnd);
  478.  
  479.    USHORT OnInitDialog (VOID);
  480.    VOID   OnHelp (VOID);
  481.    VOID   OnOK (VOID);
  482. };
  483.  
  484. class CEventsDlg : public CDialog
  485. {
  486. public:
  487.    CEventsDlg (HWND p_hWnd);
  488.    ~CEventsDlg (void);
  489.  
  490.    USHORT OnInitDialog (VOID);
  491.    VOID   OnHelp (VOID);
  492.    VOID   OnOK (VOID);
  493.  
  494. private:
  495.    class  TEvents *Data;
  496.    DECLARE_MESSAGE_MAP ()
  497.  
  498.    VOID   Add (VOID);
  499.    VOID   Delete (VOID);
  500.    VOID   DisplayData (VOID);
  501.    VOID   List (VOID);
  502.    VOID   Next (VOID);
  503.    VOID   Previous (VOID);
  504.    VOID   ReadData (VOID);
  505. };
  506.  
  507. class CExternalDlg : public CDialog
  508. {
  509. public:
  510.    CExternalDlg (HWND p_hWnd);
  511.  
  512.    USHORT OnInitDialog (VOID);
  513.    VOID   OnHelp (VOID);
  514.    VOID   OnOK (VOID);
  515. };
  516.  
  517. class CFaxOptDlg : public CDialog
  518. {
  519. public:
  520.    CFaxOptDlg (HWND p_hWnd);
  521.  
  522.    USHORT OnInitDialog (VOID);
  523.    VOID   OnHelp (VOID);
  524.    VOID   OnOK (VOID);
  525. };
  526.  
  527. class CFileDlg : public CDialog
  528. {
  529. public:
  530.    CFileDlg (HWND p_hWnd);
  531.    ~CFileDlg (void);
  532.  
  533.    VOID   OnAdd (VOID);
  534.    VOID   OnDelete (VOID);
  535.    VOID   OnHelp (VOID);
  536.    USHORT OnInitDialog (VOID);
  537.    VOID   OnInsert (VOID);
  538.    VOID   OnNext (VOID);
  539.    VOID   OnOK (VOID);
  540.    VOID   OnPrevious (VOID);
  541.    VOID   Security (VOID);
  542.  
  543. private:
  544.    class  TFileData *Data;
  545.    DECLARE_MESSAGE_MAP()
  546.  
  547.    VOID   DisplayData (VOID);
  548.    VOID   Links (VOID);
  549.    VOID   List (VOID);
  550.    VOID   Move (VOID);
  551.    VOID   ReadData (VOID);
  552.    VOID   Search (VOID);
  553. };
  554.  
  555. class CGeneralDlg : public CDialog
  556. {
  557. public:
  558.    CGeneralDlg (HWND p_hWnd);
  559.  
  560.    USHORT OnInitDialog (VOID);
  561.    VOID   OnHelp (VOID);
  562.    VOID   OnOK (VOID);
  563. };
  564.  
  565. class CHardwareDlg : public CDialog
  566. {
  567. public:
  568.    CHardwareDlg (HWND p_hWnd);
  569.  
  570.    USHORT OnInitDialog (VOID);
  571.    VOID   OnHelp (VOID);
  572.    VOID   OnOK (VOID);
  573. };
  574.  
  575. class CInternetDlg : public CDialog
  576. {
  577. public:
  578.    CInternetDlg (HWND p_hWnd);
  579.  
  580.    USHORT OnInitDialog (VOID);
  581.    VOID   OnHelp (VOID);
  582.    VOID   OnOK (VOID);
  583. };
  584.  
  585. class CLimitsDlg : public CDialog
  586. {
  587. public:
  588.    CLimitsDlg (HWND p_hWnd);
  589.    virtual ~CLimitsDlg ();
  590.  
  591.    class  TLimits *Limits;
  592.  
  593.    USHORT OnInitDialog (VOID);
  594.    VOID   OnHelp (VOID);
  595.    VOID   OnOK (VOID);
  596.  
  597. private:
  598.    DECLARE_MESSAGE_MAP ()
  599.  
  600.    VOID   DisplayData (VOID);
  601.    VOID   Delete (VOID);
  602.    VOID   Next (VOID);
  603.    VOID   Previous (VOID);
  604.    VOID   Add (VOID);
  605. };
  606.  
  607. class CMailprocDlg : public CDialog
  608. {
  609. public:
  610.    CMailprocDlg (HWND p_hWnd);
  611.  
  612.    USHORT OnInitDialog (VOID);
  613.    VOID   OnHelp (VOID);
  614.    VOID   OnOK (VOID);
  615. };
  616.  
  617. class CMenuDlg : public CDialog
  618. {
  619. public:
  620.    CMenuDlg (HWND p_hWnd);
  621.    ~CMenuDlg (void);
  622.  
  623.    USHORT OnInitDialog (VOID);
  624.    VOID   OnHelp (VOID);
  625.    VOID   OnOK (VOID);
  626.  
  627. private:
  628.    CHAR   FullFile[256];
  629. #if defined(__OS2__)
  630.    FILEDLG fild;
  631. #elif defined(__NT__)
  632.    OPENFILENAME OpenFileName;
  633. #endif
  634.    class  TMenu *Menu;
  635.  
  636.    DECLARE_MESSAGE_MAP ()
  637.  
  638.    VOID   Add (VOID);
  639.    VOID   Color (VOID);
  640.    VOID   Command (VOID);
  641.    VOID   Delete (VOID);
  642.    VOID   DisplayData (VOID);
  643.    VOID   HilightColor (VOID);
  644.    VOID   Insert (VOID);
  645.    VOID   List (VOID);
  646.    VOID   Next (VOID);
  647.    VOID   Previous (VOID);
  648.    VOID   Prompt (VOID);
  649.    VOID   ReadData (VOID);
  650.    VOID   Security (VOID);
  651. };
  652.  
  653. class CMessageDlg : public CDialog
  654. {
  655. public:
  656.    CMessageDlg (HWND p_hWnd);
  657.    ~CMessageDlg (void);
  658.  
  659.    VOID   OnAdd (VOID);
  660.    VOID   OnDelete (VOID);
  661.    VOID   OnHelp (VOID);
  662.    USHORT OnInitDialog (VOID);
  663.    VOID   OnInsert (VOID);
  664.    VOID   OnNext (VOID);
  665.    VOID   OnOK (VOID);
  666.    VOID   OnPrevious (VOID);
  667.  
  668. private:
  669.    class  TMsgData *Data;
  670.    DECLARE_MESSAGE_MAP()
  671.  
  672.    VOID   DisplayData (VOID);
  673.    VOID   Links (VOID);
  674.    VOID   List (VOID);
  675.    VOID   Move (VOID);
  676.    VOID   ReadData (VOID);
  677.    VOID   Search (VOID);
  678.    VOID   Security (VOID);
  679. };
  680.  
  681. class CMiscDlg : public CDialog
  682. {
  683. public:
  684.    CMiscDlg (HWND p_hWnd);
  685.  
  686.    USHORT OnInitDialog (VOID);
  687.    VOID   OnHelp (VOID);
  688.    VOID   OnOK (VOID);
  689. };
  690.  
  691. class CNewUserDlg : public CDialog
  692. {
  693. public:
  694.    CNewUserDlg (HWND p_hWnd);
  695.  
  696.    USHORT OnInitDialog (VOID);
  697.    VOID   OnHelp (VOID);
  698.    VOID   OnOK (VOID);
  699.    VOID   NewUserSecurity (VOID);
  700.  
  701. private:
  702.    DECLARE_MESSAGE_MAP();
  703.  
  704.    UCHAR  GetSelection (USHORT id, USHORT Three);
  705. };
  706.  
  707. class CNodelistDlg : public CDialog
  708. {
  709. public:
  710.    CNodelistDlg (HWND p_hWnd);
  711.  
  712.    USHORT OnInitDialog (VOID);
  713.    VOID   OnHelp (VOID);
  714.    VOID   OnOK (VOID);
  715.  
  716. private:
  717.    DECLARE_MESSAGE_MAP ()
  718.  
  719.    VOID   Add (VOID);
  720.    VOID   Edit (VOID);
  721.    VOID   Remove (VOID);
  722. };
  723.  
  724. class CNodesDlg : public CDialog
  725. {
  726. public:
  727.    CNodesDlg (HWND p_hWnd);
  728.    ~CNodesDlg (void);
  729.  
  730.    USHORT OnInitDialog (VOID);
  731.    VOID   OnHelp (VOID);
  732.    VOID   OnOK (VOID);
  733.  
  734. private:
  735.    class  TNodes *Data;
  736.    DECLARE_MESSAGE_MAP ()
  737.  
  738.    VOID   Add (VOID);
  739.    VOID   Copy (VOID);
  740.    VOID   Delete (VOID);
  741.    VOID   DisplayData (VOID);
  742.    VOID   List (VOID);
  743.    VOID   Next (VOID);
  744.    VOID   Other (VOID);
  745.    VOID   Previous (VOID);
  746.    VOID   ReadData (VOID);
  747.    VOID   Security (VOID);
  748.    VOID   NodeTic (VOID);
  749.    VOID   NodeEcho (VOID);
  750. };
  751.  
  752. class CNodeFlagsDlg : public CDialog
  753. {
  754. public:
  755.    CNodeFlagsDlg (HWND p_hWnd);
  756.  
  757.    USHORT OnInitDialog (VOID);
  758.    VOID   OnHelp (VOID);
  759.    VOID   OnOK (VOID);
  760.  
  761. private:
  762.    DECLARE_MESSAGE_MAP ()
  763.  
  764.    VOID   Add (VOID);
  765.    VOID   Change (VOID);
  766.    VOID   Remove (VOID);
  767. };
  768.  
  769. class COfflineDlg : public CDialog
  770. {
  771. public:
  772.    COfflineDlg (HWND p_hWnd);
  773.  
  774.    USHORT OnInitDialog (VOID);
  775.    VOID   OnHelp (VOID);
  776.    VOID   OnOK (VOID);
  777. };
  778.  
  779. class COkFileDlg : public CDialog
  780. {
  781. public:
  782.    COkFileDlg (HWND p_hWnd);
  783.  
  784.    USHORT OnInitDialog (VOID);
  785.    VOID   OnHelp (VOID);
  786.    VOID   OnOK (VOID);
  787.  
  788. private:
  789.    DECLARE_MESSAGE_MAP ()
  790.  
  791.    VOID   Add (VOID);
  792.    VOID   Change (VOID);
  793.    VOID   Remove (VOID);
  794.    VOID   SelChanged (VOID);
  795. };
  796.  
  797. class COriginDlg : public CDialog
  798. {
  799. public:
  800.    COriginDlg (HWND p_hWnd);
  801.  
  802.    USHORT OnInitDialog (VOID);
  803.    VOID   OnHelp (VOID);
  804.    VOID   OnOK (VOID);
  805.  
  806. private:
  807.    class  TCollection Text;
  808.    DECLARE_MESSAGE_MAP ()
  809.  
  810.    VOID   Add (VOID);
  811.    VOID   ItemSelected (VOID);
  812.    VOID   Remove (VOID);
  813.    VOID   Replace (VOID);
  814. };
  815.  
  816. class CPackerDlg : public CDialog
  817. {
  818. public:
  819.    CPackerDlg (HWND p_hWnd);
  820.    ~CPackerDlg (void);
  821.  
  822.    USHORT OnInitDialog (VOID);
  823.    VOID   OnHelp (VOID);
  824.    VOID   OnOK (VOID);
  825.  
  826. private:
  827.    class  TPacker *Data;
  828.    DECLARE_MESSAGE_MAP ()
  829.  
  830.    VOID   Add (VOID);
  831.    VOID   Delete (VOID);
  832.    VOID   DisplayData (VOID);
  833.    VOID   List (VOID);
  834.    VOID   Next (VOID);
  835.    VOID   Previous (VOID);
  836.    VOID   ReadData (VOID);
  837. };
  838.  
  839. class CProtocolDlg : public CDialog
  840. {
  841. public:
  842.    CProtocolDlg (HWND p_hWnd);
  843.    ~CProtocolDlg (void);
  844.  
  845.    VOID   OnAdd (VOID);
  846.    VOID   OnDelete (VOID);
  847.    VOID   OnHelp (VOID);
  848.    USHORT OnInitDialog (VOID);
  849.    VOID   OnNext (VOID);
  850.    VOID   OnOK (VOID);
  851.    VOID   OnPrevious (VOID);
  852.  
  853. private:
  854.    class  TProtocol *Data;
  855.    DECLARE_MESSAGE_MAP()
  856.  
  857.    VOID   DisplayData (VOID);
  858.    VOID   List (VOID);
  859.    VOID   ReadData (VOID);
  860. };
  861.  
  862. class CRaidDlg : public CDialog
  863. {
  864. public:
  865.    CRaidDlg (HWND p_hWnd);
  866.  
  867.    USHORT OnInitDialog (VOID);
  868.    VOID   OnHelp (VOID);
  869.    VOID   OnOK (VOID);
  870. };
  871.  
  872. class CSiteInfoDlg : public CDialog
  873. {
  874. public:
  875.    CSiteInfoDlg (HWND p_hWnd);
  876.  
  877.    USHORT OnInitDialog (VOID);
  878.    VOID   OnHelp (VOID);
  879.    VOID   OnOK (VOID);
  880. };
  881.  
  882. class CTranslationDlg : public CDialog
  883. {
  884. public:
  885.    CTranslationDlg (HWND p_hWnd);
  886.    ~CTranslationDlg (void);
  887.  
  888.    USHORT OnInitDialog (VOID);
  889.    VOID   OnHelp (VOID);
  890.    VOID   OnOK (VOID);
  891.  
  892. private:
  893.    void *Data;
  894.    DECLARE_MESSAGE_MAP ()
  895.  
  896.    VOID   Add (VOID);
  897.    VOID   Copy (VOID);
  898.    VOID   Delete (VOID);
  899.    VOID   DisplayData (VOID);
  900.    VOID   List (VOID);
  901.    VOID   Next (VOID);
  902.    VOID   Previous (VOID);
  903.    VOID   ReadData (VOID);
  904. };
  905.  
  906. class CUserDlg : public CDialog
  907. {
  908. public:
  909.    CUserDlg (HWND p_hWnd);
  910.    ~CUserDlg (void);
  911.  
  912.    USHORT OnInitDialog (VOID);
  913.    VOID   OnHelp (VOID);
  914.    VOID   OnOK (VOID);
  915.  
  916. private:
  917.    class  TUser *Data;
  918.    DECLARE_MESSAGE_MAP ()
  919.  
  920.    VOID   Add (VOID);
  921.    VOID   Delete (VOID);
  922.    VOID   DisplayData (VOID);
  923.    VOID   List (VOID);
  924.    VOID   Next (VOID);
  925.    VOID   Other (VOID);
  926.    VOID   Password (VOID);
  927.    VOID   Previous (VOID);
  928.    VOID   ReadData (VOID);
  929.    VOID   Search (VOID);
  930.    VOID   Security (VOID);
  931. };
  932.  
  933. #elif defined(__DOS__) || defined(__LINUX__)
  934.  
  935. VOID DisplayButton (USHORT y, USHORT x, CHAR *Text, USHORT Shadow = BLACK|_LGREY);
  936. USHORT MessageBox (PSZ Caption, PSZ Text);
  937.  
  938. USHORT CAddressDlg (VOID);
  939. USHORT CAnswerDlg (VOID);
  940. USHORT CAreafixDlg (VOID);
  941. USHORT CBBSGeneralDlg (VOID);
  942. USHORT CCommandsDlg (VOID);
  943. USHORT CCompressorDlg (VOID);
  944. USHORT CDirectoriesDlg (VOID);
  945. USHORT CEventDlg (VOID);
  946. USHORT CExternalProcDlg (VOID);
  947. USHORT CFaxDlg (VOID);
  948. USHORT CFileDlg (VOID);
  949. USHORT CGeneralOptDlg (VOID);
  950. USHORT CHardwareDlg (VOID);
  951. USHORT CInternetDlg (VOID);
  952. USHORT CMailerMiscDlg (VOID);
  953. USHORT CMailProcessingDlg (VOID);
  954. USHORT CMenuEditorDlg (PSZ pszFile);
  955. USHORT CMessageDlg (VOID);
  956. USHORT CNewUsersDlg (VOID);
  957. USHORT CNodelistDlg (VOID);
  958. VOID   CNodeFlagsDlg (VOID);
  959. USHORT CNodesDlg (VOID);
  960. USHORT COfflineDlg (VOID);
  961. USHORT CSiteInfoDlg (VOID);
  962. USHORT CUserDlg (VOID);
  963.  
  964. #endif
  965.  
  966.