home *** CD-ROM | disk | FTP | other *** search
/ CICA 1995 May / cica_0595_4.zip / cica_0595_4 / UTIL / PBBSW35 / DISK2.PWR / POWRDLL.H < prev    next >
Text File  |  1994-07-23  |  27KB  |  633 lines

  1. /****************************************************************************/
  2. /* PowerBBS Development Add-On DLL                        */
  3. /* (c) 1994 by Russell E. Frey                            */
  4. /*                                        */
  5. /* This source code may be freely distributed.                    */
  6. /* You may create a 3rd party DLL add-on to PowerBBS, and            */
  7. /* distribute it ROYALTY FREE.                            */
  8. /*                                        */
  9. /* You may even modify this code and distribute it, so long as you        */
  10. /* note the modifications at the top of the code and keep ALL the        */
  11. /* comments here at the top.                            */
  12. /*                                        */
  13. /* Be sure to announce your product on our BBS: 516-822-7396 and/or        */
  14. /* distribute shareware versions of your DLL on our BBS.  We will do        */
  15. /* our best to help you distribute your product!                */
  16. /*                                        */
  17. /* If you translate this code to a different language, please consider        */
  18. /* making your translation FREEWARE and upload it to the BBS.  Be sure        */
  19. /* to thoroughly debug your translation (you do not want to mess up        */
  20. /* the users record or they will not be happy!)                    */
  21. /*                                        */
  22. /* This code can easily be translated to ANY language capable to make a DLL */
  23. /* To run this DLL, in PowerBBS MENU SETUP at the CGM option place a D [For */
  24. /* DLL!].  Then in the description of command put the NAME of the actual    */
  25. /* DLL created.  For example this file: POWRDLL.DLL would be placed in        */
  26. /* the description.                                */
  27. /*                                        */
  28. /* When a user now selects the command PowerBBS will dynamically load        */
  29. /* POWRDLL.DLL.  It will execute VERY FAST.  This is an easy way to create  */
  30. /* a 3rd party add-on as if it was written inside of PowerBBS!  The user    */
  31. /* will notice NO SLOWDOWN!                            */
  32. /*                                        */
  33. /* PowerLang's RUN_DLL command may also be used to execute the DLL        */
  34. /*                                        */
  35. /* We welcome ALL your comments on the Power of PowerBBS's DLL            */
  36. /* We also welcome any questions you might have, but due to time        */
  37. /* constraints may not be able to help you in some cases (including        */
  38. /* debugging your code, etc).                            */
  39. /*                                        */
  40. /* Be aware that this product is provided AS IS.  We are not            */
  41. /* liable for ANY problems this DLL may cause.                    */
  42. /*                                        */
  43. /****************************************************************************/
  44.  
  45.  
  46. //---------------------------------------------------------------------------
  47. // User types to directly manipulate user information.                        
  48. // NEVER MANIPULATE any information unless you are SURE of what you are doing!
  49. //---------------------------------------------------------------------------
  50.  
  51. // Notes for 'C' DLL developers:
  52. // Define a couple of commonly used string sizes. Note that Pascal uses
  53. // two types of strings, one where all bytes in the string contains the
  54. // actual data, and one where the first byte is a length byte and the
  55. // following contains that number of characters. In the following
  56. // structures, where the second type of strings are used these are
  57. // declared in the 'C' struture as:
  58. //     unsigned char HelloLen[1];
  59. //     char Hello[30];
  60. // The support function in the PowerDLL.C, LPSTR PascalToCString (), is used
  61. // to extract this type of string. The pointer, PascalString, should point
  62. // to the length byte, HelloLen in above example. The Max parameter for this
  63. // function indicates the maximum length of the buffer, supplied by the
  64. // caller, to prevent buffer overrun.
  65.  
  66. typedef char Packed2Chars[2];
  67. typedef char Packed3Chars[3];
  68. typedef char Packed4Chars[4];
  69. typedef char Packed5Chars[5];
  70. typedef char Packed6Chars[6];
  71. typedef char Packed7Chars[7];
  72. typedef char Packed8Chars[8];
  73. typedef char Packed9Chars[9];
  74. typedef char Packed10Chars[10];
  75. typedef char Packed11Chars[11];
  76. typedef char Packed12Chars[12];
  77. typedef char Packed13Chars[13];
  78. typedef char Packed14Chars[14];
  79. typedef char Packed15Chars[15];
  80. typedef char Packed16Chars[16];
  81. typedef char Packed19Chars[19];
  82. typedef char Packed20Chars[20];
  83. typedef char Packed23Chars[23];
  84. typedef char Packed24Chars[24];
  85. typedef char Packed25Chars[25];
  86. typedef char Packed30Chars[30];
  87. typedef char Packed32Chars[32];
  88. typedef char Packed35Chars[35];
  89. typedef char Packed39Chars[39];
  90. typedef char Packed40Chars[40];
  91. typedef char Packed45Chars[45];
  92. typedef char Packed78Chars[78];
  93. typedef char Packed128Chars[128];
  94.  
  95.  
  96. // Specification of the PowerUser_Rec. variable which stores the current
  97. // users information.
  98.  
  99. typedef struct _tagPowrUserRecord
  100. {
  101.     Packed25Chars name;            // {Name}
  102.     Packed20Chars Location;        // {City/Location}
  103.     Packed15Chars Computer;        // {Computer Type}
  104.     Packed14Chars Phone_Number;        // {Phone Number} {Home}
  105.     Packed10Chars Password;        // {Password}
  106.     Packed8Chars  Birthday;        // {Date of birthday, DD/MM/YY}
  107.     Packed8Chars  First_Call;        // {Date of first call, DD/MM/YY}
  108.     Packed8Chars  Last_File_Scan;   // {Date of last file search, DD/MM/YY}
  109.     Packed8Chars  Expiration_Date;  // {Expiration Date}
  110.     Packed8Chars  Last_Call;        // {Date of last call, DD/MM/YY}
  111.     Packed5Chars  Last_Time;        // {Time of last call, HH:MM}
  112.     int           Calls;        // {Total number of calls}
  113.     int           uploads;        // {Total number of uploads}
  114.     int           downloads;        // {Total number of downloads}
  115.     int           Time_On;          // {Minutes used TODAY}
  116.     double        Today_Bytes;        // {Bytes downloaded TODAY}
  117.     double        Download_Bytes;   // {Total bytes downloaded}
  118.     double      Upload_Bytes;        // {Total bytes uploaded}
  119.     char          FFU [820];        // array[1..820] of byte;
  120.     unsigned char Qwk_Init;        // byte
  121.     unsigned char QWK_Flag1,
  122.           QWK_Flag2;        // byte;
  123.     unsigned int  QWK_Flag3,
  124.                   QWK_Flag4;        // word;
  125.     unsigned char internaluse;        // byte;
  126.     unsigned int  waiting_messages; // word; { number of messages waiting }
  127.     unsigned char reservedb;        // byte;
  128.     long          reservedl;        // longint;
  129.     unsigned char handle_new;        // byte;
  130.     unsigned char info_in_new_numbs;// if<>200 then just junk in next fields:
  131.     char          chat_use_handle;  // boolean;
  132.     char      qwk_msg_use_handle;// boolean;
  133.     Packed14Chars data_phone;        
  134.     Packed14Chars business_number;
  135.     Packed14Chars fax_number;
  136.     unsigned char bchat_exit;        // {if=200 use string}
  137.     char          chat_exit_len;    // length of chat exit string
  138.     char          chat_exit [60];   // String[60];
  139.     unsigned char bchat_entry;        // Byte; {if=200 use string}
  140.     char          chat_entry_len;   // legth of chat entry string
  141.     char          chat_entry [60];  // String[60];
  142.     unsigned char Access;        // {Access Level}
  143.     unsigned char Expiration_Access;// {Expired Access Level}
  144.     unsigned char Screen_Lines;        // {Length of a page}
  145.     unsigned char Safe_Total;        // {Time in Bank}
  146.     unsigned char Options;        // {Option bits}
  147. // bit value 1 = expert; 4 = dead; 8 = hasmail
  148. //           16=TRUE,64=TRUE then 32=TRUE[MALE];FALSE[FEMALE]
  149.     char          Xproto;        // {Protocol}
  150.     char          Monitor_Type;        // {Monitor? (M)onocrome (C)olor (N)one}
  151.     unsigned int  Messages_Left;    // {total messages left by user}
  152.     double        downbytes_month;  // {total bytes downloaded/month}
  153.     unsigned char downbytesmonth;   // byte;
  154.     unsigned int  downbytes_month_max;// {max downbytes/month}
  155.     Packed5Chars  truebps2;        // {true baud rate}
  156.     unsigned char lang_num;        // {current language number}
  157.     unsigned char is_focused;        // {used internally}
  158.     unsigned char powercomm_connect;// {true if PowerComm connect}
  159.     unsigned char color_mode_connect;// {true if PowerComm/color_mode connect}
  160.     unsigned char last_forum_on2;   // {last forum joined}
  161.     long          credits;        // {amount of credits left}
  162.     char          anony_name_len;   // Junk
  163.     char          anony_name2[14];  // {JUNK}
  164.     char          script[37];       // {used for scripts}
  165.     char          auto_forum_join_set;// { = 10 means use auto forum join! }
  166.     int           auto_forum_join;  //
  167.     unsigned char set_up_int_msgs;  // { = 10 if use next two options! }
  168.     unsigned int  max_internet_msgs_month;
  169.     unsigned int  current_internet_msgs_month;
  170.     unsigned char the_internet_month;
  171.  
  172.     unsigned char allow_FTPmail;    // {allow if = 10}
  173.     unsigned int  dollars;
  174.     unsigned char call_verified;
  175.     char          anonymous_name[20];
  176.     char          has_anonyname;    // { if true, set to 10 }
  177.     char          has_address;        // { if true, set to 10 }
  178.     char          last_menu_code;
  179.     char          QWK_Net_User;        // { if true, set to 10 }
  180.     char          area_backnum[3];
  181.     int          last_forum_on;
  182.     char      created_rec;        // { if true, set to 10 }
  183.     unsigned int  PowerUser_Ext_Num;
  184.     char          address[50];        // {address} {location above}
  185.     char          state[10];        // {state}
  186.     char      zip[10];        // {zip}
  187.     char          call_backnum[7];  // {Called Number}
  188. } POWRUSER_RECORD, FAR * LPPOWRUSER_RECORD;
  189.  
  190. #define HIGHEST_EXT_FORUM_NUMBER 1000
  191.  
  192. typedef struct _tagforum_data_options_record
  193. {
  194.     unsigned char Options;
  195. // bit value 1 = member
  196. //           2 = 2
  197. //          16 = join_it
  198.     float Message_Pointer;
  199. } FORUM_DATA_OPTIONS_RECORD, FAR * LPFORUM_DATA_OPTIONS_RECORD;
  200.  
  201. typedef struct _tagPowrUser_Record_Extension
  202. {
  203.     unsigned char Delete_This;
  204.     FORUM_DATA_OPTIONS_RECORD Forum_Data [HIGHEST_EXT_FORUM_NUMBER];
  205.     long          user_name;
  206.     unsigned char junk;
  207. } POWRUSER_RECORD_EXTENSION, FAR * LPPOWRUSER_RECORD_EXTENSION;
  208.  
  209.  
  210. // Specification of the Power_CallInfo_Rec; holds the current caller's
  211. // information (The USERINFO.BBS File)
  212. typedef struct _tagPower_CallInfo_Rec
  213. {
  214.     Packed25Chars     name;        // {User Name}
  215.     int               User_Pointer; // {User Record # starting at 1}
  216.     Packed5Chars      BaudRate;     // {Baud Rate to Send at}
  217.     char              Com_Number;   // {Com Number to Send at}
  218.     unsigned char     What_Menu;    // {Current Menu}
  219.     char              color_mode;   // {Gcolor_modeType:
  220. //                                        'C' => Color
  221. //                                        'M' => Monochrome
  222. //                                        'N' => None}
  223.     unsigned char     Access;       // {User Access Level}
  224.     unsigned char     ForumNum2;    // {Current Forum Number}
  225.     Packed5Chars      Logon_Time;   // {hh:mm Time of Logon}
  226.     int               Logon_Mins;   // {Time the user logged on in mins}
  227.     int               Used_Today;   // {Time the user used in
  228.                                     //  previous calls so far today}
  229.     int               time_limit;   // {Maximum mins permitted on BBS}
  230.     int               KDownload_Maximum; // {Maximum download bytes in K}
  231.     int               Upload_Credit;// {Minutes given for Uploading}
  232.     int               Minutes_Useable;// {Maximum time left for Caller}
  233.     int               Node_Num;     // {Node number of this CallInfo File}
  234.     char              PathDataLen;  // Length of string to follow...
  235.     char              Path_Data[28];// {Path to PowrBBS.DAT}
  236.     int               Forum_Num;    // integer;
  237.     char              Whatsdoing2;  // {'P' - Live Program
  238. //                                      'G' - Goodbye after transfer
  239. //                                      'T' - Transfer}
  240.     char              Trans_Type;   // {set to U for upload or D for download}
  241.     char              Protocol;     // {protocol # for transfers}
  242.     long              Started;      // {transfer, 'P' - Live Program}
  243. } POWER_CALLINFO_REC, FAR * LPPOWER_CALLINFO_REC;
  244.  
  245.                     
  246. // structure of the forum setup
  247.     
  248. typedef struct _tagPowerBBS_Forum_Structure
  249. {
  250.     unsigned char   forum_name_len[1];          // Length of forum name      
  251.     char            forum_name[20];             // {name of forum}
  252.     Packed23Chars   forum_subsysop;             // {sub-sysop if any}
  253.     char            is_anonymous;               // {true if anonymous
  254.                                                 //  messages may be entered}
  255.     char            all_messages_public;        // {true if no private mail}
  256.     char            forum_public;               // {true if open to all users}
  257.     int             forum_min_access_level;     // {min access needed for
  258.                                                 //  forum no matter what}
  259.     unsigned char   forum_mb_path_len[1];       // Length of following path 
  260.     char            forum_messagebase_path[31]; // {path/filename of message
  261.                                                 //  base file}
  262.     unsigned char   forum_newsfile_len[1];      // Length of following path
  263.     char            forum_newsfile[31];         // {path/filename to news}
  264.     unsigned char   forum_filelist_len[1];      // Length of file list path
  265.     char            forum_filelisting[31];      // {path/filename to listing
  266.                                                 //  of file areas available}
  267.     unsigned char   furum_file_data_len[1];     // Length of list data path
  268.     char            forum_filelisting_data[31]; // {path/filename to data
  269.                                                 //  file containing
  270.                                                 //  information as to where
  271.                                                 //  file lists are}
  272.     unsigned char   forum_download_dirs_len[1]; // Length of download path
  273.     char            forum_download_dirs[31];    // {list of download
  274.                                                 //  directories, that one
  275.                                                 //  may access to download
  276.                                                 //  files from}
  277.     unsigned char   forum_upload_direct_len[1]; // Length of upload dir path
  278.     char            forum_upload_directory[31]; // {upload directory}
  279.     unsigned char   forum_upload_list_len[1];   // Length of upload list len
  280.     char            forum_upload_listing[31];   // {listing of uploaded
  281.                                                 //  files}
  282. } POWERBBS_FORUM_STRUCTURE, FAR * LPPOWERBBS_FORUM_STRUCTURE;
  283.  
  284.  
  285. // MOST of the information located in the PowrBBS.Dat file 
  286. // Note that MANY variables contained in this record may contain JUNK
  287. // or is part of something else used in PowerBBS.Dat.  Be careful
  288. // with what you use!
  289.                         
  290. typedef struct _tagPBBSRECORD
  291. {
  292.      unsigned char BBS_NameLen[1];
  293.      char BBS_Name[30];
  294.      unsigned char Sysop_FirstNameLen[1];
  295.      char Sysop_FirstName [10];
  296.      unsigned char Sysop_LastNameLen[1];
  297.      char Sysop_Last_Name[15];
  298.      unsigned char end_defaultLen[1];
  299.      char end_default[4];
  300.      int MAX_Obey_Ratio;
  301.      int Min_Msgs_Ratio;
  302.      int Min_Downfile_Ratio;
  303.      int Min_Downbyte_Ratio;
  304.      int Min_Msgs_Ratio2;
  305.      int Min_Downfile_Ratio2;
  306.      int Min_Downbyte_Ratio2;
  307.      int New_User_Level;
  308.      unsigned char AccessLevelInfoLen[1];
  309.      char Access_Level_Info[30];
  310.      unsigned char DownloadRestrictFileLen[1];
  311.      char Download_Restrict_File[30];
  312.      unsigned char UploadAccessFileLen[1];
  313.      char Upload_Access_File[30];
  314.      unsigned char UsersPathLen[1];
  315.      char Users_Path[30];
  316.      unsigned char UsersPath2Len[1];
  317.      char Users_Path2[30];
  318.      unsigned char ForumDataFileLen[1];
  319.      char Forum_Data_File[30];
  320.      unsigned char Protocolinfo_fileLen[1];
  321.      char Protocolinfo_file[30];
  322.      unsigned char Transfer_FileList_FileLen[1];
  323.      char Transfer_FileList_File[30];
  324.      unsigned char Security_FileLen[1];
  325.      char Security_File[30];
  326.      unsigned char Transfer_DirectoryLen[1];
  327.      char Transfer_Directory[50];
  328.      unsigned char Activity_LogLen[1];
  329.      char Activity_Log [30];
  330.      unsigned char Tranlog_PathLen[1];
  331.      char Tranlog_Path[30];
  332.      unsigned char OpeningLen[1];
  333.      char Opening[30];
  334.      unsigned char HelloLen[1];
  335.      char Hello[30];
  336.      unsigned char Birthday_FileLen[1];
  337.      char Birthday_File [30];
  338.      unsigned char Expired_FileLen[1];
  339.      char Expired_File [30];
  340.      unsigned char Sysop_FileLen[1];
  341.      char Sysop_File [30];
  342.      unsigned char Forum_MenuLen[1];
  343.      char Forum_Menu [30];
  344.      unsigned char NewUser_TextLen[1];
  345.      char NewUser_Text [30];
  346.      unsigned char No_Sysop_ChatLen[1];
  347.      char No_Sysop_Chat [30];
  348.      unsigned char enter_chat_fileLen[1];
  349.      char enter_chat_file [30];
  350.      unsigned char exit_chat_FileLen[1];
  351.      char exit_chat_File [30];
  352.      unsigned char Script_TextLen[1];
  353.      char Script_Text [30];
  354.      unsigned char QScript_FileLen[1];
  355.      char QScript_File [30];
  356.      unsigned char BadUsers_NamesLen[1];
  357.      char BadUsers_Names [30];
  358.      unsigned char Read_Help_FileLen[1];
  359.      char Read_Help_File [30];
  360.      unsigned char Mail_PrefixLen[1];
  361.      char Mail_Prefix [8];
  362.      int Most_Msgs_Downloadable;
  363.      unsigned char OS_Shell_FileLen[1];
  364.      char OS_Shell_File [30];
  365.      unsigned char Begin_Download_FileLen[1];
  366.      char Begin_Download_File [30];
  367.      unsigned char Begin_Upload_FileLen[1];
  368.      char Begin_Upload_File [30];
  369.      unsigned char Freefile_ListLen[1];
  370.      char Freefile_List [30];
  371.      unsigned char Start_BatchLen[1];
  372.      char Start_Batch [30];
  373.      unsigned char Init_Modem_Command1Len[1];
  374.      char Init_Modem_Command1 [55];
  375.      unsigned char Init_Modem_Command2Len[1];
  376.      char Init_Modem_Command2 [55];
  377.      unsigned char Nodes_Users_InfoLen[1];
  378.      char Nodes_Users_Info [30];
  379.      unsigned char chatstatfileLen[1];
  380.      char chatstatfile [30];
  381.      unsigned char chattalkfileLen[1];
  382.      char chattalkfile [30];
  383.      unsigned char onetoonefileLen[1];
  384.      char onetoonefile[30];
  385.      unsigned char roominfofileLen[1];
  386.      char roominfofile[30];
  387.      unsigned char run_xmodem1kLen[1];
  388.      char run_xmodem1k[255];
  389.      unsigned char script_for_newusersLen[1];
  390.      char script_for_newusers[30];
  391.      unsigned char answer_to_scriptLen[1];
  392.      char answer_to_script [30];
  393.      unsigned char credit_system[1];
  394.      unsigned char more_creditsLen[1];
  395.      char more_credits[30];
  396.      unsigned char anony_infoLen[1];
  397.      char anony_info [30];
  398.      unsigned char runanonybbs;
  399.      unsigned char lowbaudinfoscreenLen[1];
  400.      char lowbaudinfoscreen [30];
  401.      int minimum_sec_to_abort_intro;
  402.      unsigned char screen_enter_script_modeLen[1];
  403.      char screen_enter_script_mode[30];
  404.      unsigned char screen_end_script_modeLen[1];
  405.      char screen_end_script_mode [30];
  406.      unsigned char Live_Programs_MenuLen[1];
  407.      char Live_Programs_Menu [30];
  408.      unsigned char Live_Programs_DataFileLen[1];
  409.      char Live_Programs_DataFile [30];
  410.      unsigned char Chat_Help_FileLen[1];
  411.      char Chat_Help_File [30];
  412.      int Most_Lines_Msg;
  413.      long minimum_baud;
  414.      unsigned char Modem_OffhookLen[1];
  415.      char Modem_Offhook [30];
  416.      unsigned char Read_Mail_MenuLen[1];
  417.      char Read_Mail_Menu [30];
  418.      UINT aux_addr1;
  419.      UINT cardtype;
  420.      UINT cardseg;
  421. /* --------------------Event Information------------------------------*/
  422.      unsigned char old_active_event;
  423.      unsigned char old_time_of_eventLen[1];
  424.      char old_time_of_event[5];
  425.      unsigned char old_Wait_For_Event;
  426. /* --------------------- Test Files ----------------------------------*/
  427.      unsigned char TestFiles;
  428.      unsigned char TestBatchLen[1];
  429.      char TestBatch [30];
  430.      unsigned char TestFile1Len[1];
  431.      char TestFile1 [30];
  432.      unsigned char TestFile2Len[1];
  433.      char TestFile2 [30];
  434. /*--------------------------------------------------------------------*/
  435.      unsigned char Private_Uploads_Only;
  436.      unsigned char Private_Upload_DirectoryLen[1];
  437.      char Private_Upload_Directory [30];
  438.      unsigned char Private_Upload_ListLen[1];
  439.      char Private_Upload_List[30];
  440.      unsigned char Bulletins_MenuLen[1];
  441.      char Bulletins_Menu [30];
  442.      unsigned char Bulletins_DataLen[1];
  443.      char Bulletins_Data [30];
  444.      char Baud_Rate_Open_At [5];
  445.      unsigned char LockBaud;
  446.      unsigned char ClosedBBS;
  447.      unsigned char Port_NumberLen[1];
  448.      char Port_Number [6];
  449.      unsigned char Port_Number2Len[1];
  450.      char Port_Number2 [6];
  451.      char Port_Number3[7];
  452.      unsigned char RingAnswer;
  453.      int Max_Pause_Time;
  454.      unsigned char UseRealName;
  455.      unsigned char AllowBadChars;
  456.      unsigned char Permit_Ansi_Messages;
  457.      unsigned char News_New;
  458.      unsigned Turn_Off_FreeCheck;
  459.      int Minimum_Space_Uploads;
  460.      unsigned char Default_AnsiColorLen[1];
  461.      char Default_AnsiColor [4];
  462.      unsigned char Default_AnsiIntensityLen[1];
  463.      char Default_AnsiIntensity [4];
  464.      float Transfer_Figure_Time;
  465.      unsigned char Pack_QWK_FilesLen[1];
  466.      char Pack_QWK_Files [30];
  467.      unsigned char View_ZIP_FileLen[1];
  468.      char View_ZIP_File [50];
  469.      unsigned char Test_ZIP_FileLen[1];
  470.      char Test_ZIP_File[50];
  471.      unsigned char Bad_archiveLen[1];
  472.      char Bad_archive [50];
  473.      unsigned char IndexPathLen[1];
  474.      char IndexPath [30];
  475.      unsigned char IndexRamdiskPathLen[1];
  476.      char IndexRamdiskPath [30];
  477.      unsigned char StatsScreenLen;
  478.      char StatsScreen [30];
  479.      unsigned char PowerInfoPathLen[1];
  480.      char PowerInfoPath [30];
  481.      unsigned char SerialNumberLen[1];
  482.      char SerialNumber [255];
  483.      unsigned char AskBirthdate;
  484.      char NonEchoChar;
  485.      unsigned char DeleteDropUploads;
  486.      unsigned char FilesRatiosScreenLen[1];
  487.      char FilesRatiosScreen [30];
  488.      unsigned char LogFileNameLen[1];
  489.      char LogFileName [30];
  490.      unsigned char TranStringLen[1];
  491.      char TranString [30];
  492.      unsigned char NSPathLen[1];
  493.      char NSPath [30];
  494.      unsigned char Monitor_FileLen[1];
  495.      char Monitor_File [30];
  496.      unsigned char PermitHandles;
  497.      unsigned char FrontDoorBatchLen[1];
  498.      char FrontDoorBatch [30];
  499.      unsigned char QuitBatchFileLen[1];
  500.      char QuitBatchFile [30];
  501.      unsigned char TheListPathLen[1];
  502.      char TheListPath [30];
  503.      unsigned char UpdateScreenLen[1];
  504.      char UpdateScreen [30];
  505.      unsigned char ClockScreenLen[1];
  506.      char ClockScreen [30];
  507.      unsigned char QuestionClosedLen[1];
  508.      char QuestionClosed [30];
  509.      unsigned char AnswerClosedLen[1];
  510.      char AnswerClosed [30];
  511.      unsigned char LangInfoFileLen[1];
  512.      char LangInfoFile [30];
  513.      unsigned char BadRatioFileLen[1];
  514.      char BadRatioFile [30];
  515.      unsigned char Source_MNU_POW_DirLen[1];
  516.      char Source_MNU_POW_Dir [30];
  517.      unsigned char irq_modemLen[1];
  518.      char irq_modem [30];
  519.      WORD modem_base1;
  520.      unsigned char modem_base2Len[1];
  521.      char modem_base2 [30];
  522.      unsigned char MultiLanguage;
  523.      unsigned char UseDtr;
  524.      unsigned char UsePowerMail;
  525.      unsigned char UseFrontDoor;
  526.      unsigned char Expiration_WarningLen[1];
  527.      char Expiration_Warning[30];
  528.      unsigned char PNET_TaglineLen[1];
  529.      char PNET_Tagline[60];
  530.      unsigned char MODEM_ATHOLen[1];
  531.      char MODEM_ATHO [30];
  532.      unsigned char date_format;        // { 0 = US MM-DD-YY; 1 = DD-MM-YY }
  533.      unsigned char event_data_fileLen[1];
  534.      char event_data_file [30];
  535.      int minimum_sec_new_files;
  536.      unsigned char use_fax;
  537.      unsigned char show_whose_online;
  538.      unsigned char show_dialog_on_startup;
  539.      unsigned char doorsys_pathLen[1];
  540.      char doorsys_path [30];
  541.      unsigned char track_gender;
  542.      unsigned char Start_Up_Minimized;
  543.      unsigned char Internet_Connection;
  544.      unsigned char PowerBase_CodeLen[1];
  545.      char PowerBase_Code [30];
  546.      unsigned char SysopPage_DataFileLen[1];
  547.      char SysopPage_DataFile [30];
  548.      unsigned char TheWavLen[1];
  549.      char TheWav [100];
  550.      WORD Bytes_upload_Credit;
  551.      WORD Bytes_Dn_Up_Credit;
  552.      WORD Credits_To_Uploader;
  553.      unsigned char Caller_ID;
  554.      unsigned char Show_Stats;
  555.      int Minimum_Access_For_Internet;
  556.      unsigned char forum_network_fileLen[1];
  557.      char forum_network_file [30];
  558.      unsigned char cbv_onoff;
  559.      unsigned char blts_onoff;
  560.      unsigned char Caller_ID_NameLen[1];
  561.      char Caller_ID_Name [100];
  562.      unsigned char Caller_ID_PhoneLen[1];
  563.      char Caller_ID_Phone [100];
  564.      unsigned char areacodefileLen[1];
  565.      char areacodefile [100];
  566.      unsigned char callbackfileLen[1];
  567.      char callbackfile [100];
  568.      unsigned char begincallbackLen[1];
  569.      char begincallback [100];
  570.      unsigned char badnumbersLen[1];
  571.      char badnumbers [100];
  572.      unsigned char security_changeLen[1];
  573.      char security_change [100];
  574.      unsigned char tempoLen[1];
  575.      char tempo [255];    
  576.      unsigned char Start_PowerBBS_DirectoryLen[1];
  577.      char Start_PowerBBS_Directory [100];
  578.      unsigned char lastdirlLen[1];
  579.      char lastdirl [90];
  580.  
  581.      unsigned char    QWK_Blts;
  582.      unsigned char    QWK_NewFiles;
  583.      unsigned char    QWK_UpNewFiles;
  584.      unsigned char    QWK_ALLNewFiles;
  585.      unsigned char    QWK_GOODBYE;
  586.      unsigned char    QWK_NEWS;
  587.      unsigned char    QWK_WELCOME;
  588.      unsigned char    QWK_FileEnclos;
  589.      unsigned char    QWK_ALLFileEnclos;
  590.      unsigned char    QWK_PromptFileEnclos;
  591.      unsigned char    QWK_Logoff;
  592.   
  593.      WORD QWK_MaxConf;
  594.      WORD QWK_Max_QWK;
  595.  
  596.      unsigned char marked_mailLen[1];
  597.      char marked_mail[255];
  598.      unsigned char credit_nameLen[1];
  599.      char credit_name[30];
  600.      unsigned char credit_bytesLen[1];
  601.      char credit_bytes[30];
  602.      unsigned char temps1Len[1];
  603.      char temps1 [255];
  604.      unsigned char temps2Len[1];
  605.      char temps2 [255];
  606.      unsigned char temps3Len[1];
  607.      char temps3 [255];
  608.      unsigned char temps4Len[1];
  609.      char temps4 [255];
  610.      unsigned char temps5Len[1];
  611.      char temps5 [255];
  612. } PBBSRECORD, FAR * LPPBBSRECORD;
  613.                 
  614.     
  615. #define PBBS_PRINTMODEM        10001
  616. #define PBBS_GET_ENTER      10002
  617. #define PBBS_ASK_USER       10003
  618. #define PBBS_CLS            10004                        
  619. #define PBBS_PAUSE_STOP     10005
  620. #define PBBS_GET_KEY        10006
  621. #define PBBS_GET_YN         10007
  622. #define PBBS_GET_YNQ        10008
  623. #define PBBS_GET_HOT        10009
  624. #define PBBS_TYPE_FILE        10010     
  625. #define PBBS_TIMED_KEY        10011
  626. #define PBBS_MODEM_CMD        10012
  627. #define PBBS_NOT_ONLINE        10013
  628. #define PBBS_EXEC_PRG        10014
  629. #define PBBS_KEY_WAITING    10015
  630. #define PBBS_VERIF_TIME        10017
  631. #define PBBS_TIME_LEFT        10016
  632.      
  633.