home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 2 BBS / 02-BBS.zip / orionful.zip / Docs / Bbs.H < prev    next >
Text File  |  1997-08-28  |  24KB  |  605 lines

  1. #define SMALLEST_MSG_SIZE_FOR_PACKING   384
  2.  
  3. #define MAX_MSG_AREAS  10240
  4. #define MAX_FIL_AREAS  10240
  5.  
  6. /* bbs.attribs */
  7.     #define B_LOGALLHELP      0x00000001
  8.     #define B_PREREGISTERED   0x00000002
  9.     #define B_NOPRETTY        0x00000004
  10.     #define B_INTL            0x00000008
  11.     #define B_NOHAPPY         0x00000010
  12.     #define B_ANSINEWS        0x00000020
  13.     #define B_NODUPENUMS      0x00000040
  14.     #define B_COLOR           0x00000080
  15.     #define B_HIGHASCII       0x00000100
  16.     #define B_PAUSE           0x00000200
  17.     #define B_CLEAR           0x00000400
  18.     #define B_COLD            0x00000800
  19.     #define B_WIDTH           0x00001000
  20.     #define B_LENGTH          0x00002000
  21.     #define B_SHOW            0x00004000
  22.     #define B_PHONE           0x00008000
  23.     #define B_ADDRESS         0x00010000
  24.     #define B_HANDLE          0x00020000
  25.     #define B_PASSWORD        0x00040000
  26.     #define B_INTERESTS       0x00080000
  27.     #define B_COMPUTERS       0x00100000
  28.     #define B_NO_NEW_EDIT     0x00200000
  29.     #define B_LOGONQUOTE      0x00400000
  30.     #define B_COMPRESS        0x00800000
  31.     #define B_LOGOFFQUOTE     0x01000000
  32.     #define B_LOGOFFMSG       0x02000000
  33.     #define B_FIRSTLOGMSG     0x04000000
  34.     #define B_FIRSTLOGCALLBK  0x08000000
  35.     #define B_ALWAYSCALLBACK  0x10000000
  36.     #define B_AUTOPASSWORDS   0x20000000
  37.     #define B_FOLLOWBBS       0x40000000
  38.     #define B_SYSOPIN         0x80000000
  39.     #define BIT_1             0x00000001
  40.     #define BIT_2             0x00000002
  41.     #define BIT_3             0x00000004
  42.     #define BIT_4             0x00000008
  43.     #define BIT_5             0x00000010
  44.     #define BIT_6             0x00000020
  45.     #define BIT_7             0x00000040
  46.     #define BIT_8             0x00000080
  47.     #define BIT_9             0x00000100
  48.     #define BIT_10            0x00000200
  49.     #define BIT_11            0x00000400
  50.     #define BIT_12            0x00000800
  51.     #define BIT_13            0x00001000
  52.     #define BIT_14            0x00002000
  53.     #define BIT_15            0x00004000
  54.     #define BIT_16            0x00008000
  55.     #define BIT_17            0x00010000
  56.     #define BIT_18            0x00020000
  57.     #define BIT_19            0x00040000
  58.     #define BIT_20            0x00080000
  59.     #define BIT_21            0x00100000
  60.     #define BIT_22            0x00200000
  61.     #define BIT_23            0x00400000
  62.     #define BIT_24            0x00800000
  63.     #define BIT_25            0x01000000
  64.     #define BIT_26            0x02000000
  65.     #define BIT_27            0x04000000
  66.     #define BIT_28            0x08000000
  67.     #define BIT_29            0x10000000
  68.     #define BIT_30            0x20000000
  69.     #define BIT_31            0x40000000
  70.     #define BIT_32            0x80000000
  71.  
  72. /* bbs.attribs2 */
  73.     #define B2_ANSI           0x00000001
  74.     #define B2_USEVER7        0x00000002
  75.     #define B2_AUTOVERIFY     0x00000004
  76.     #define B2_FTNTOALL       0x00000008
  77.     #define B2_MINIMIZEBBS    0x00000010
  78.     #define B2_SMALLFONT      0x00000020
  79.     #define B2_DATAPHONE      0x00000040
  80.     #define B2_FAXPHONE       0x00000080
  81.     #define B2_BUSPHONE       0x00000100
  82.     #define B2_ADDRESS2       0x00000200
  83.     #define B2_ADDRESS3       0x00000400
  84.     #define B2_CITY           0x00000800
  85.     #define B2_STATE          0x00001000
  86.     #define B2_ZIPCODE        0x00002000
  87.     #define B2_USEHANDLE      0x00004000
  88.     #define B2_NOVIDWHENMIN   0x00008000
  89.     #define B2_ABORTREXX      0x00010000
  90.     #define B2_NOBBSSCREEN    0x00020000
  91.     #define B2_CANFASTLOGIN   0x00040000
  92.     #define B2_ADDRESS1REQ    0x00080000
  93.     #define B2_ADDRESS2REQ    0x00100000
  94.     #define B2_ADDRESS3REQ    0x00200000
  95.     #define B2_CITYREQ        0x00400000
  96.     #define B2_STATEREQ       0x00800000
  97.     #define B2_ZIPREQ         0x01000000
  98.     #define B2_HOMEREQ        0x02000000
  99.     #define B2_DATAREQ        0x04000000
  100.     #define B2_BUSINESSREQ    0x08000000
  101.     #define B2_FAXREQ         0x10000000
  102.     #define B2_NOREGTXTINMSG  0x20000000              //JM960109
  103.     #define B2_NUMONLYPHONE   0x40000000              //JM960109
  104.     #define B2_ALWAYSSAVEINI  0x80000000              //JM960109
  105.  
  106. /* bbs.attribs3 */
  107.     #define B3_UNVERIFIED_NEWMENU        0x00000001
  108.     #define B3_NO_NEWUSERALIAS            0x00000002
  109.     #define B3_DROP_CARRIER_ON_TIMEUP    0x00000004
  110.     #define B3_BBS_WATCH_THREAD        0x00000008
  111.     #define B3_NO_TELNET_TIMEOUT        0x00000010
  112.     #define B3_ENABLE_ACCOUNTING        0x00000020
  113.     #define B3_ENABLE_EXCEPTIONS        0x00000040
  114.     #define B3_FLUSH_SYSTEM            0x00000080
  115.     #define B3_FLUSH_SYSTEM_LOG        0x00000100
  116.     #define B3_NOSTATUS            0x00000200
  117.     #define B3_STARTFTP            0x00000400
  118.     #define B3_NOCHAT            0x00000800
  119.     #define B3_SYSTEM_INFO            0x00001000
  120.     #define B3_BBS_INFO            0x00002000
  121.     #define B3_SYSOP_MAIL            0x00004000
  122.     #define B3_FULL_LANG_BUF        0x00008000
  123.     #define B3_ALLOW_KILL            0x00010000
  124.     #define B3_POP_KEEP            0x00020000
  125.  
  126.  
  127. /* user attribs */
  128.     #define U_ANSI            0x00000001
  129.     #define U_COLOR           0x00000002
  130.     #define U_HIGHASCII       0x00000004
  131.     #define U_NOMORE          0x00000008
  132.     #define U_NOCLEAR         0x00000010
  133.     #define U_COLD            0x00000020
  134.     #define U_NOSHOWADDRESS   0x00000040
  135.     #define U_NOSHOWPHONE     0x00000080
  136.     #define U_NOSHOWREAL      0x00000100
  137.     #define U_NOKILL          0x00000200
  138.     #define U_DELETED         0x00000400
  139.     #define U_EXPERT          0x00000800
  140.     #define U_TWIT            0x00001000
  141.     #define U_NEWFILES        0x00002000
  142.     #define U_NEWMSGS         0x00004000
  143.     #define U_DLNEWMSGS       0x00008000
  144.     #define U_DLNEWFILELIST   0x00010000
  145.     #define U_SEENEWS         0x00020000
  146.     #define U_ASKDL           0x00040000
  147.     #define U_NOVICE          0x00080000
  148.     #define U_NOROLL          0x00100000
  149.     #define U_POINTONLY       0x00200000
  150.     #define U_LOCKEDOUT       0x00400000
  151.     #define U_AVAILABLE       0x00800000
  152.     #define U_LISTPROTECTED   0x01000000
  153.     #define U_MISCNEWSOK      0x02000000
  154.     #define U_LIMITFLIST      0x04000000
  155.     #define U_EBCDIC          0x08000000
  156.     #define U_VERIFIED        0x10000000              // user call back verified, turn this off, they get
  157.  
  158. // verified again.. (if BBS verifies)
  159.     #define U_ANSITE2         0x20000000
  160.     #define U_RIPSCRIPT       0x40000000
  161.     #define U_AVATAR          0x80000000
  162.  
  163. /* user attribs2*/
  164.     #define U2_FSE            0x00000001
  165.     #define U2_OFF_AFTER_MAIL 0x00000002
  166.     #define U2_MONITOR_MAIL   0x00000004
  167.     #define U2_INT_NEW_FILES  0x00000008
  168.     #define U2_INC_BULLETS    0x00000010
  169.     #define U2_INC_WELCOME    0x00000020
  170.     #define U2_DEFAULT_QWK    0x00000040
  171.     #define U2_DEFAULT_FIDO   0x00000080
  172.     #define U2_DEFAULT_TEXT   0x00000100
  173.     #define U2_DEFAULT_BLUE   0x00000200
  174.     #define U2_AVTANS         0x00000400
  175.     #define U2_8DOT3          0x00000800              //JM940610
  176.     #define U2_NOSHOWBDAY     0x00001000
  177.     #define U2_ALLOW_NET_ATTACH 0x00002000
  178.     #define U2_ALLOW_LOCAL_ATTACH 0x00004000
  179.     #define U2_NO_ALT_ED      0x00008000
  180.     #define U2_POP_SCAN       0x00010000
  181.     #define U2_KEEP_SEENBY    0x00020000
  182.     #define U2_ALLOW_KILL     0x00040000
  183.     #define U2_POP_KEEP       0x00080000
  184.  
  185.  
  186. /* Used by string_input */
  187. /* flags */
  188.     #define STRF_UCASE        0x00000001
  189.     #define STRF_LCASE        0x00000002
  190.     #define STRF_REQUIRED     0x00000004
  191.     #define STRF_NOECHO       0x00000008
  192.     #define STRF_ENCRYPT      0x00000010
  193.     #define STRF_HOT          0x00000020
  194.     #define STRF_EDIT         0x00000040
  195.     #define STRF_PRETTY       0x00000080
  196.     #define STRF_MUSTHOT      0x00000100
  197.     #define STRF_NEAT         0x00000200
  198.     #define STRF_NOHELP       0x00000400
  199.     #define STRF_NOQUE        0x00000800
  200.     #define STRF_NOQUEONE     0x00001000
  201.     #define STRF_CHATCLNT     0x00002000
  202.     #define STRF_NOTIMECHECK  0x00004000
  203.     #define STRF_NOANSIINCHECK 0x00008000
  204.     #define STRF_ENTEROK      0x00010000
  205.     #define STRF_ALWAYSCHAT   0x00020000              //JM960202
  206.     #define STRF_NOFIRSTPROMPT 0x00040000              //JM960202
  207.  
  208. /* types */
  209.     #define STRT_ALPHA        1
  210.     #define STRT_NUMERIC      2
  211.     #define STRT_ALPHANUMERIC 3
  212.     #define STRT_HEX          4
  213.     #define STRT_FILENAME     5
  214.     #define STRT_FILESPEC     6
  215.     #define STRT_ALL          7
  216.     #define STRT_ANY          8
  217.     #define STRT_YN           9
  218.     #define STRT_MULTFILES    10
  219.     #define STRT_MULTSPECS    11
  220.     #define STRT_YNQ          12
  221.     #define STRT_YNQS         13
  222.     #define STRT_JUSTFILE     14
  223.     #define STRT_MULTJUST     15
  224.     #define STRT_TELEPHONE    16
  225.     #define STRT_YNNUM        17
  226.     #define STRT_TELEPHONENUM 18                      //JM960109
  227.  
  228. // Input flags (input, as in do_more, wait_inkey, etc)
  229.     #define IF_RETURNONERROR  0x00000001              // return lost carrier, or timeout
  230.     #define IF_NOQUEUE        0x00000002
  231.     #define IF_NOTIMECHECK    0x00000004
  232.     #define SINGLE_INPUT      0x00000008
  233.     #define PASSWORD_PROMPT   0x00000010
  234.  
  235. // Input return codes (along with TIMEOUT and LOSTCARRIER)
  236.     #define IRC_NOTIMELEFT    -3
  237.     #define IRC_LOCKEDOUT     -4
  238.     #define IRC_MORON         -5
  239.     #define IRC_REPROMPT      -6
  240.     #define IRC_ENDSYSOPCHAT  -7
  241.     #define IRC_CHATWAITING   -8
  242.     #define IRC_CHATDOWN      -9
  243.     #define IRC_IDLETIMEOUT   -10
  244.  
  245. struct _msgarea
  246.     {
  247.     char            *name;
  248.     char            *descr;
  249.     char            *forceto;
  250.     char            *origin;
  251.     char            *path;
  252.     char            *usenettag;
  253.     int             minage;
  254.     int             maxage;
  255.     unsigned long   r_security1;
  256.     unsigned long   r_security2;
  257.     unsigned long   r_flags1;
  258.     unsigned long   r_flags2;
  259.     unsigned long   w_security1;
  260.     unsigned long   w_security2;
  261.     unsigned long   w_flags1;
  262.     unsigned long   w_flags2;
  263.     unsigned long   s_security1;
  264.     unsigned long   s_security2;
  265.     unsigned long   s_flags1;
  266.     unsigned long   s_flags2;
  267.     unsigned long   areaflags;
  268.     unsigned long   *groupnum;
  269.     PADDR           addr;
  270.     PADDR           feeds;
  271.     unsigned int    number;
  272.     LONG            TimeFactor;
  273.     char            *password;
  274.     struct _msgarea *next;
  275.     struct _msgarea *prior;
  276.     };
  277.  
  278. typedef struct _msgarea MSGAREA, *PMSGAREA;          //JM931019
  279.  
  280. /*----------------------------------------------------------*/
  281. /* Message area flags (areaflags)                           */
  282. /*----------------------------------------------------------*/
  283.     #define M_NOORIG     0x00000001                   /* No Origin or tear       */
  284.     #define M_ANSI       0x00000002                   /* Allow Ansi Messages     */
  285.     #define M_PRIVATE    0x00000004                   /* Force Msgs Public       */
  286.     #define M_PUBLIC     0x00000008                   /* Force Msgs Private      */
  287.     #define M_ECHO       0x00000010                   /* Is a Echomail           */
  288.     #define M_NET        0x00000020                   /* It a Netmail area       */
  289.     #define M_MCI        0x00000040                   /* Allows MCI Commands     */
  290.     #define M_ANON       0x00000080                   /* All Msgs Annon.         */
  291.     #define M_REAL       0x00000100                   /* Requires Real Name      */
  292.     #define M_ASSOC      0x00000200                   /* Msg area allows assoc   */
  293.     #define M_FORCE      0x00000400                   /* Always force            */
  294.     #define M_COMPRESS   0x00000800                   /* Allow LZSS comp here    */
  295.     #define M_GROUP      0x00001000                   /* groupmail               */
  296.     #define M_USENET     0x00002000                   /* usenet conference       */
  297.     #define M_QWK        0x00004000                   /* qwk conference          */
  298.     #define M_SQUISH     0x00008000                   /* Squish MSG Base         */
  299.     #define M_EMAIL      0x00010000                   /* Internet E-Mail         */
  300.     #define M_FIDO       0x00100000                   /* Star . msg Format       */
  301.     #define M_JAM        0x00200000                   /* JAM msg Format          */
  302.  
  303.  
  304. struct _filearea
  305.     {
  306.     char             *name;
  307.     char             *descr;
  308.     int             minage;
  309.     int             maxage;
  310.     unsigned long    r_security1;
  311.     unsigned long    r_security2;
  312.     unsigned long    r_flags1;
  313.     unsigned long    r_flags2;
  314.     unsigned long    w_security1;
  315.     unsigned long    w_security2;
  316.     unsigned long    w_flags1;
  317.     unsigned long    w_flags2;
  318.     unsigned long    s_security1;
  319.     unsigned long    s_security2;
  320.     unsigned long    s_flags1;
  321.     unsigned long    s_flags2;
  322.     unsigned long    areaflags;
  323.     unsigned long    groupnum[256];
  324.     int              cost_per_k;
  325.     unsigned int     number;
  326.     char             *upath;
  327.     char             *dpath;
  328.     char             *password;
  329.     char             *ftpname;
  330.     LONG             TimeFactor;
  331.     struct _filearea *next;
  332.     struct _filearea *prior;
  333.     };
  334.  
  335.  
  336. typedef struct _filearea FILEAREA, *PFILEAREA;      //JM931019
  337.  
  338. /*-----------------------------------------------------------*/
  339. /* File area flags (areaflags)                               */
  340. /*-----------------------------------------------------------*/
  341.     #define F_FREE       0x00000001                   /*                           */
  342.     #define F_NOUP       0x00000002                   /*                           */
  343.     #define F_NODOWN     0x00000004                   /*                           */
  344.     #define F_LEECH      0x00000008                   /*                           */
  345.     #define F_DOWNBACK   0x00000010                   /*                           */
  346.     #define F_UPBACK     0x00000020                   /*                           */
  347.     #define F_CHARGE     0x00000040                   /*                           */
  348.     #define F_CANTLIST   0x00000080                   // Uploads not listable
  349.     #define F_CANTDL     0x00000100                   // Uploads not downloadable
  350.     #define F_NOFBBS     0x00000200                   /* no FILES.BBS at all       */
  351.     #define F_COMMONONLY 0x00000400                   /* use only common FILES.BBS */
  352.     #define F_UPBLIND    0x00000800                   // UL get desc. afterwards
  353.     #define F_COPYFILE   0x00001000                   // copy download from CD to HD
  354.     #define F_NODIR      0x00002000                   // copy download from CD to HD
  355.     #define F_NOCOMMON   0x00004000                   // copy download from CD to HD
  356.     #define F_NOSEARCH   0x00008000                   // copy download from CD to HD
  357.  
  358.  
  359. typedef struct _libarea
  360.     {
  361.     char            *name;
  362.     char            *descr;
  363.     int             minage;
  364.     int             maxage;
  365.     unsigned long   r_security1;
  366.     unsigned long   r_security2;
  367.     unsigned long   r_flags1;
  368.     unsigned long   r_flags2;
  369.     unsigned long   w_security1;
  370.     unsigned long   w_security2;
  371.     unsigned long   w_flags1;
  372.     unsigned long   w_flags2;
  373.     unsigned long   s_security1;
  374.     unsigned long   s_security2;
  375.     unsigned long   s_flags1;
  376.     unsigned long   s_flags2;
  377.     unsigned long   areaflags;
  378.     unsigned int    number;
  379.     char            *path;
  380.     char            *password;
  381.     struct _libarea *next;
  382.     struct _libarea *prior;
  383.     } LIBAREA, *PLIBAREA;
  384.  
  385.  
  386. /*----------------------------------------------------------*/
  387. /* Library area flags (areaflags)                           */
  388. /*----------------------------------------------------------*/
  389.     #define L_ANSIONLY   0x00000001                   /*                         */
  390. // Group structure
  391.  
  392.  
  393. typedef struct _GROUP
  394.     {
  395.     PSZ     Name;
  396.     PSZ     Password;
  397.     LONG    Number;
  398.     ULONG   Flags;
  399.     ULONG   MinutesPerDay;
  400.     ULONG   MinutesPerCall;
  401.     ULONG   DaysBeforeExpiration;
  402.     LONG    ExpireToGroup;
  403.     ULONG   MaxBankTime;
  404.     ULONG   MaxUKPerDay;
  405.     ULONG   MaxDKPerDay;
  406.     ULONG   ULDLRatio;
  407.     ULONG   RatioCredit;
  408.     ULONG   Security1;
  409.     ULONG   Security2;
  410.     ULONG   Flags1;
  411.     ULONG   Flags2;
  412.     int     CreditsPerUnit;
  413.     int     CreditsPerUnitPeek;
  414.     int     FreeCreditsDay;
  415.     int     FreeCreditsWeek;
  416.     int     FreeCreditsMonth;
  417.     int     FreeCreditsPercentage;
  418.     int     MaxDebt;
  419.     LONG    GroupIfBroke;
  420.     USHORT  DaysBetweenPWChange;
  421.     PSZ     MainMenu;
  422.     PSZ    MainMenuUnVerified;
  423.     struct _GROUP *Next;
  424.     struct _GROUP *Prev;
  425.     } GROUP, *PGROUP;
  426.  
  427.  
  428. // Group Flags
  429.     #define G_FLAGSOVERWRITE   0x00000001             // if not overwrite, then accumulate
  430.     #define G_SECOVERWRITE     0x00000002             // if not overwrite, then ignore
  431.     #define G_RATIOONBYTES     0x00000004             // if not bytes, then files
  432.     #define G_TIMEOVERWRITE    0x00000008             // if not overwrite, then ignore
  433. ///// New File Search Info
  434.  
  435.  
  436. typedef struct _user_info
  437.     {
  438.     CHAR        name[36];
  439.     CHAR        handle[36];
  440.     CHAR        address[60];
  441.     CHAR        address1[60];
  442.     CHAR        address2[60];
  443.     CHAR        city[20];
  444.     CHAR        state[5];
  445.     CHAR        zipcode[10];
  446.     CHAR        home_phone[21];
  447.     CHAR        data_phone[21];
  448.     CHAR        fax_phone[21];
  449.     CHAR        bus_phone[21];
  450.     CHAR        interests[78];
  451.     CHAR        SysOpComment[78];
  452.     USHORT      BankTime;
  453.     USHORT      computer_type;
  454.     ULONG       userid;
  455.     USHORT      pointid;
  456.     time_t      initial_logon;
  457.     time_t      expires;
  458.     time_t      last_logon;
  459.     time_t      logon_today;
  460.     USHORT      birthyear;
  461.     UCHAR       birthmonth;
  462.     UCHAR       birthday;
  463.     UCHAR       Gender;
  464.     LONG        credit;
  465.     LONG        minlimit;                                 // what exactly is this?
  466.     LONG        Group;                 // must match Group->Number
  467.     ULONG       CurrLastRead;                             // last Read for current msg area
  468.     ULONG       time_today;                                 // seconds used today
  469.     ULONG       time_per_day;                             // minutes allowed per day
  470.     ULONG       time_per_call;                             // minutes per call  0=just per day
  471.     ULONG       numcalls;
  472.     ULONG       ulnum;                                     // files uploaded (ever)
  473.     ULONG       dlnum;                                     // files downloaded (ever)
  474.     ULONG       ulk;                                         // UL in K (ever)
  475.     ULONG       dlk;                                         // DL in K (ever)
  476.     ULONG       uktoday;                                     // UL in K Today
  477.     ULONG       dktoday;                                     // DL in K Today
  478.     ULONG       ukperday;                                 // Max UL K Per day
  479.     ULONG       dkperday;                                 // Max DL K Per day
  480.     ULONG       numposts;
  481.     ULONG       security1;
  482.     ULONG       security2;
  483.     ULONG       flags1;
  484.     ULONG       flags2;
  485.     ULONG       attribs;
  486.     ULONG       attribs2;
  487.     USHORT      length;
  488.     USHORT      width;
  489.     USHORT      lastmsgarea;
  490.     USHORT      lastfilearea;
  491.     UCHAR       lastprotocol;
  492.     UCHAR       lastarchiver;
  493.     LONG        forsysop;
  494.     UCHAR       interface;
  495.     UCHAR       exp;
  496.     USHORT      leech_percent;
  497.     USHORT      MaxBankTime;
  498.     SHORT       TimeCredit;                                 // can be negative or positive
  499.     SHORT       CallsToday;
  500.     LONG        TotalMinsEver;
  501.     LONG        NetmailDebits;
  502.     time_t      LastPWChange;
  503.     time_t      LastListedNewFiles;                     //JM940822
  504.     ULONG       FileKCredit;
  505.     CHAR        UnixId[8];
  506.     CHAR        Country[24];
  507.     USHORT      weight;
  508.     CHAR        height[5];
  509.     CHAR        Pref;
  510.     CHAR        LangIdent[4];                             // permanent language identifier
  511.     USHORT      MailDLsToday;                             //JM960118
  512.     USHORT      UsesOLMail;                                 //JM960119
  513.     CHAR       POPPassword[16];
  514.     CHAR       POPLogin[16];
  515.     CHAR       POPServer[128];
  516.     CHAR        NoLongerUsed[22];
  517.     UCHAR       _UnUsedOldTags[256];
  518.     ULONG       PasswordCRC;
  519.     ULONG       PasswordCRC2;
  520.     USHORT      Max_Mail_Pkt;
  521.     CHAR        ReAsked;                                     // TRUE if reasked question were answered
  522.     USHORT      timeout;
  523.     USHORT      CurrMsgGroup;
  524.     USHORT      CurrFileGroup;
  525.     CHAR        EMail[37];
  526.     CHAR        FidoMail[32];
  527.     } USER, *PUSER;
  528.  
  529.  
  530. typedef struct _xmsg
  531.     {
  532.     CHAR    MajorVersion;
  533.     CHAR    MinorVersion;
  534.     USHORT  StructLen;
  535.     CHAR    from[60];
  536.     CHAR    to[60];
  537.     CHAR    subj[70];
  538.     CHAR    date[35];                                         /*   */
  539.     CHAR    indate[4];                                     /* import date  (YMD(null))                     */
  540.     ULONG   msgnum;
  541.     ULONG   timesread;
  542.     time_t  timerecv;
  543.     ULONG   length;                                         /* Length of message */
  544.     LONG    start;                                             /* Starting postition in text file              */
  545.     ULONG   OrigMsg;
  546.     ULONG   miscdatlen;
  547.     ULONG   miscdatstart;
  548.     USHORT  o_zone;
  549.     USHORT  o_net;
  550.     USHORT  o_node;
  551.     USHORT  o_point;
  552.     USHORT  d_zone;
  553.     USHORT  d_net;                                             /* Destination network number                   */
  554.     USHORT  d_node;                                         /* Destination node                             */
  555.     USHORT  d_point;
  556.     USHORT  cost;                                             /* Unit cost charged to send the message        */
  557.     USHORT  fflags;                                         /* Attribute (behavior) of the message          */
  558.     USHORT  xflags;                                         /* Extra attributes                             */
  559.     ULONG   bflags;
  560.     ULONG   cflags;
  561.     } XMSG, *PXMSG;
  562.  
  563.  
  564. /*----------------------------------------------------*/
  565. /* FIDO Message attributes (fflags)                   */
  566. /*----------------------------------------------------*/
  567.     #define MSGPRIVATE 0x0001                         /* private message,        */
  568.     #define MSGCRASH   0x0002                         /* accept for forwarding   */
  569.     #define MSGREAD    0x0004                         /* read by addressee       */
  570.     #define MSGSENT    0x0008                         /* sent OK (remote)        */
  571.     #define MSGFILE    0x0010                         /* file attached to msg    */
  572.     #define MSGFWD     0x0020                         /* being forwarded         */
  573.     #define MSGORPHAN  0x0040                         /* unknown dest node       */
  574.     #define MSGKILL    0x0080                         /* kill after mailing      */
  575.     #define MSGLOCAL   0x0100                         /* FidoNet vs. local       */
  576.     #define MSGXX1     0x0200                         /*                         */
  577.     #define MSGXX2     0x0400                         /* STRIPPED by FidoNet<tm> */
  578.     #define MSGFRQ     0x0800                         /* file request            */
  579.     #define MSGRRQ     0x1000                         /* receipt requested       */
  580.     #define MSGCPT     0x2000                         /* is a return receipt     */
  581.     #define MSGARQ     0x4000                         /* audit trail requested   */
  582.     #define MSGURQ     0x8000                         /* update request          */
  583.  
  584. /*----------------------------------------------------*/
  585. /*----------------------------------------------------*/
  586. /* Adept Message attributes (xflags)                  */
  587. /*----------------------------------------------------*/
  588.     #define MSGDELETED 0x0001                         /* deleted message,          0000 0000 0000 0001*/
  589.     #define MSGANON    0x0002                         /* anonymous message         0000 0000 0000 0010*/
  590.     #define MSGECHO    0x0004                         /* unmoved echo message      0000 0000 0000 0100*/
  591.     #define MSGNET     0x0008                         /* unmoved net message       0000 0000 0000 1000*/
  592.     #define MSGHOLD    0x0010                         /* file attached to msg      0000 0000 0001 0000*/
  593.     #define MSGHOST    0x0020                         /* being forwarded           0000 0000 0010 0000*/
  594.     #define MSGSCANNED 0x0040                         /* fidonet scanned           0000 0000 0100 0000*/
  595.     #define MSGKEEP    0x0080                         /* don't delete              0000 0000 1000 0000*/
  596.     #define MSGTREATED 0x0100                         /* soft cr's & lf's removed  0000 0001 0000 0000*/
  597.     #define MSGPACKED  0x0200                         /* message LZSS compressed   0000 0010 0000 0000*/
  598.     #define MSGGSCAN   0x0400                         /* groupmail scanned         0000 0100 0000 0000*/
  599.     #define MSGRSCAN   0x0800                         /* rfc0822 scanned           0000 1000 0000 0000*/
  600. /*#define    0x1000      0001 0000 0000 0000*/
  601. /*#define    0x2000      0010 0000 0000 0000*/
  602.     #define MSGARCHIVED 0x4000                        /*                           0100 0000 0000 0000*/
  603.     #define MSGTAGGED  0x8000                         /* used by offline readers   1000 0000 0000 0000*/
  604. /*----------------------------------------------------*/
  605.