home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 2 BBS / 02-BBS.zip / fsrc1241.zip / structs.h < prev    next >
C/C++ Source or Header  |  1999-02-14  |  13KB  |  588 lines

  1. /* STRUCTS.H */
  2. /* Alle eigenen Strukturen */
  3.  
  4. /* Kompakte Struktur f. Fensterposition */
  5.  
  6. #define WINPOS_VALID   0x01
  7. #define WINPOS_MAX     0x02
  8. #define WINPOS_MIN     0x04
  9.  
  10. #pragma pack(1)
  11. typedef struct
  12. {
  13.    LONG  x;
  14.    LONG  y;
  15.    LONG  cx;
  16.    LONG  cy;
  17.    UCHAR uchFlags;
  18. } WINPOS, *PWINPOS;
  19.  
  20. /* Strukturen fuer den Setup-Dialog */
  21.  
  22. /* Userdaten */
  23.  
  24. #define MAX_USERNAMES 50
  25. #define MAX_ADDRESSES 100
  26.  
  27. typedef struct
  28. {
  29.    char username[MAX_USERNAMES][LEN_USERNAME+1];
  30.    char address[MAX_ADDRESSES][LEN_5DADDRESS+1];
  31.    char defaultorigin[LEN_ORIGIN+1];
  32. } USERDATAOPT;
  33.  
  34. /* Message-Area-Definition */
  35. #define AREAFORMAT_FTS    1
  36. #define AREAFORMAT_SQUISH 2
  37. #define AREAFORMAT_JAM    3
  38. #define AREAFORMAT_XBBS   4
  39. #define AREAFORMAT_RFC822 5
  40. #define AREAFORMAT_OTHER  255
  41.  
  42. #define AREATYPE_ECHO   0
  43. #define AREATYPE_NET    1
  44. #define AREATYPE_LOCAL  2
  45.  
  46. #define AREAOPT_FROMCFG        0x0002UL
  47. #define AREAOPT_SEPARATOR      0x0004UL
  48. #define AREAOPT_HIGHASCII      0x0008UL
  49. #define AREAOPT_NOHIGHLIGHT    0x0010UL
  50.  
  51. #define AREAFLAG_NOREMAP       0x0001UL
  52.  
  53. typedef struct
  54. {
  55.    char areatag[LEN_AREATAG+1];
  56.    char areadesc[LEN_AREADESC+1];
  57.    char address[LEN_5DADDRESS+1];
  58.    char username[LEN_USERNAME+1];
  59.    char pathfile[LEN_PATHNAME+1];
  60.    ULONG ulTemplateID;
  61.    ULONG ulFolderID;
  62.    USHORT areaformat;    /* AREAFORMAT_* */
  63.    USHORT areatype;      /* AREATYPE_* */
  64.    ULONG  ulDefAttrib;   /* ATTRIB_* */
  65.    ULONG  ulAreaOpt;     /* AREAOPT_* */
  66.    ULONG  ulTempFlags;   /* AREAFLAG_* */
  67. } AREADEFOPT, *PAREADEFOPT;
  68.  
  69. typedef struct _AREADEFLIST
  70. {
  71.    struct _AREADEFLIST *next;
  72.    struct _AREADEFLIST *prev;
  73.    AREADEFOPT areadata;
  74.    ULONG  maxmessages;
  75.    ULONG  currentmessage;
  76.    BOOL   scanned;
  77.    PVOID  areahandle;
  78.    BOOL   mailentered;
  79.    ULONG  oldlastread;
  80.    PULONG msgnumlist;
  81.    ULONG  usage;
  82.    ULONG  flWork;
  83.    BOOL   dirty;
  84.    BOOL   bLocked;
  85. } AREADEFLIST, *PAREADEFLIST;
  86.  
  87. /* Flags f. flWork */
  88. #define WORK_NOTHING  0x00000000
  89. #define WORK_SCAN     0x00000001
  90. #define WORK_FIND     0x00000002
  91. #define WORK_PERSMAIL 0x00000004
  92. #define WORK_ETOSS    0x00000008
  93.  
  94. /* Macros */
  95. typedef struct
  96. {
  97.    char macrotext[11][LEN_MACRO+1];
  98. } MACROTABLEOPT;
  99.  
  100. /* Message-Template */
  101. typedef struct _MSGTEMPLATE
  102. {
  103.    struct _MSGTEMPLATE *next;
  104.    struct _MSGTEMPLATE *prev;
  105.    SHORT quotelinelen;
  106.    SHORT joinlen;
  107.    BOOL useinitials;
  108.    BOOL forwardfirst;
  109.    BOOL randomorigin;
  110.    PSZ THeader;
  111.    PSZ TFooter;
  112.    PSZ TReply;
  113.    PSZ TDArea;
  114.    PSZ TForward;
  115.    PSZ TForwardFooter;
  116.    PSZ TXPost;
  117.    PSZ TCCopy;
  118.    PSZ TName;
  119.    char TOrigin[LEN_ORIGIN+1];
  120.    char TOriginFile[LEN_PATHNAME+1];
  121.    char TAllSyn[LEN_USERNAME+1];
  122.    char chQuoteChar;
  123.    WINPOS TPos;
  124.    ULONG ulID;        /* Eindeutige ID, 0 = Default */
  125.    BOOL bDirty;
  126. } MSGTEMPLATE, *PMSGTEMPLATE;
  127.  
  128. typedef struct
  129. {
  130.    PMSGTEMPLATE pTemplates;  /* Liste der Templates      */
  131.    BOOL    bDirty;           /* Dirty f. gesamte Liste   */
  132.    ULONG   ulNumTemplates;   /* Anzahl der Templates     */
  133.    WINPOS  FolderPos;        /* Template-Folder-Position */
  134.    ULONG   ulFlags;          /* s.u.                     */
  135. } TEMPLATELIST;
  136.  
  137. #define TEMPLATE_FOREGROUND     0x01UL
  138.  
  139. /* Nodelist */
  140. #define MAX_MODEMTYPES      8
  141. #define MAX_MODEMTYPES_BYTE 255
  142.  
  143. typedef struct
  144. {
  145.    ULONG ulOptions;  /* s.u. */
  146.  
  147.    /* bei Bit-Type: */
  148.    char modemtype[MAX_MODEMTYPES][LEN_MODEMTYPE+1];
  149.  
  150.    /* bei Byte-Type: */
  151.    char bytetypes[MAX_MODEMTYPES_BYTE][LEN_MODEMTYPE+1];
  152. } NODELISTOPT;
  153.  
  154. #define MODEMFLAGS_BITTYPE    0x00UL
  155. #define MODEMFLAGS_BYTETYPE   0x01UL
  156.  
  157.  
  158. /* Allg. Optionen */
  159. typedef struct
  160. {
  161.    BOOL dontuseapi;          /* unbenutzt */
  162.    BOOL origininnet;
  163.    BOOL usepid;
  164.    BOOL tearinnet;
  165.    BOOL scanatstartup;
  166.    BOOL showarrive;          /* unbenutzt */
  167.    BOOL beeponpersonal;
  168.    BOOL namesinthreadlist;   /* unbenutzt */
  169.    ULONG safety;
  170.    BOOL uselastarea;
  171.    char startarea[LEN_AREATAG+1];
  172.    LONG lTabSize;
  173.    LONG lMaxMsgLen;
  174.    ULONG ulInstallTime;
  175.    char jampath[LEN_PATHNAME+1];
  176.    BOOL nohighlight;
  177.    char LastCopyArea[LEN_AREATAG+1];
  178.    char LastMoveArea[LEN_AREATAG+1];
  179.    char LastForwardArea[LEN_AREATAG+1];
  180.    char attachpath[LEN_PATHNAME+1];
  181.    BOOL genFwdSubj;
  182. } GENERALOPT;
  183.  
  184. #define SAFETY_DELMSG       0x01UL
  185. #define SAFETY_SHREDMSG     0x02UL
  186. #define SAFETY_CATCHUP      0x04UL
  187. #define SAFETY_EDITSENT     0x08UL
  188. #define SAFETY_CHANGESETUP  0x10UL
  189. #define SAFETY_DISCARD      0x20UL
  190.  
  191. typedef struct
  192. {
  193.    BOOL useechotoss;
  194.    char pchEchoToss[LEN_PATHNAME+1];
  195. } ECHOTOSSOPT;
  196.  
  197. /* Farbeinstellungen */
  198. typedef struct
  199. {
  200.    LONG windowback;
  201.    LONG editback;
  202.    LONG editfore;
  203.    LONG statusfore;
  204.    LONG statusback;
  205.    LONG framefore;
  206.    LONG scriptfore;
  207.    LONG scriptback;
  208.    LONG areatitlefore;  /* unbenutzt */
  209.    LONG areatitleback;  /* unbenutzt */
  210.    LONG monitorfore;
  211.    LONG monitorback;
  212.    LONG fromfore;
  213.    LONG fromback;
  214.    LONG fromadfore;
  215.    LONG fromadback;
  216.    LONG tofore;
  217.    LONG toback;
  218.    LONG toadfore;
  219.    LONG toadback;
  220.    LONG subjfore;
  221.    LONG subjback;
  222.    LONG fromtostaticfore;
  223.    LONG fromtostaticback;
  224.    LONG attribfore;
  225.    LONG attribback;
  226.    LONG msgtimefore;
  227.    LONG msgtimeback;
  228.    LONG menufore;
  229.    LONG menuback;
  230.    LONG arealistfore;
  231.    LONG arealistback;
  232.    LONG tplfolderfore;
  233.    LONG tplfolderback;
  234.    LONG ccfolderfore;
  235.    LONG ccfolderback;
  236.    LONG threadlistfore;
  237.    LONG threadlistback;
  238.    LONG lookupfore;
  239.    LONG lookupback;
  240.    LONG cccontentsfore;
  241.    LONG cccontentsback;
  242.    LONG resultsfore;
  243.    LONG resultsback;
  244.    LONG nicknamesfore;
  245.    LONG nicknamesback;
  246.    LONG msginfofore;
  247.    LONG msginfoback;
  248.    LONG attachfore;
  249.    LONG attachback;
  250.    LONG viewerfore;
  251.    LONG viewerback;
  252.    LONG viewerquote;
  253.    LONG viewertearline;
  254.    LONG viewerorigin;
  255. } WINDOWCOLORS;
  256.  
  257. /* Fonteinstellungen */
  258.  
  259. typedef struct
  260. {
  261.    char editfont[FACESIZE+5];       /* unbenutzt */
  262.    char monitorfont[FACESIZE+5];
  263.    char fromfont[FACESIZE+5];
  264.    char fromadfont[FACESIZE+5];
  265.    char tofont[FACESIZE+5];
  266.    char toadfont[FACESIZE+5];
  267.    char subjfont[FACESIZE+5];
  268.    char attribfont[FACESIZE+5];
  269.    char statusfont[FACESIZE+5];
  270.    char scriptfont[FACESIZE+5];
  271.    char datefont[FACESIZE+5];
  272.    char buttonfont[FACESIZE+5];
  273.    char fromtofont[FACESIZE+5];
  274.    char msgnumberfont[FACESIZE+5];  /* unbenutzt */
  275.    char menufont[FACESIZE+5];
  276.    char arealistfont[FACESIZE+5];
  277.    char tplfolderfont[FACESIZE+5];
  278.    char findresultsfont[FACESIZE+5];
  279.    char ccfolderfont[FACESIZE+5];
  280.    char threadlistfont[FACESIZE+5];
  281.    char cclistfont[FACESIZE+5];
  282.    char lookupfont[FACESIZE+5];
  283.    char msginfofont[FACESIZE+5];
  284.    char nicknamesfont[FACESIZE+5];
  285.    char attachfont[FACESIZE+5];
  286.    char viewerfont[FACESIZE+5];
  287.    char areafolderfont[FACESIZE+5];
  288.    char viewermonofont[FACESIZE+5];
  289. } WINDOWFONTS;
  290.  
  291. /* Fensterpositionen */
  292.  
  293. typedef struct
  294. {
  295.    WINPOS mainwindowpos;
  296.    WINPOS optionspos;
  297.    WINPOS aboutpos;
  298.    WINPOS replypos;
  299.    WINPOS replylistpos;
  300.    WINPOS findpos;
  301.    WINPOS persmailpos;
  302.    WINPOS findresultspos;
  303.    WINPOS attribpos;
  304.    WINPOS importpos;
  305.    WINPOS exportpos;
  306.    WINPOS kludgeinfopos;
  307.    WINPOS newuserpos;
  308.    WINPOS newaddresspos;
  309.    WINPOS areasetuppos;
  310.    WINPOS requesterpos;
  311.    WINPOS currnamepos;
  312.    WINPOS ccentrypos;
  313.    WINPOS ccselectpos;
  314.    WINPOS nickentrypos;
  315.    WINPOS promptpos;
  316.    WINPOS sqparamspos;
  317.    WINPOS lookuppos;
  318.    WINPOS domainentrypos;
  319.    WINPOS renumberpos;
  320.    WINPOS attachpos;
  321.    WINPOS mlistsettingspos;
  322. } WINDOWPOSITIONS;
  323.  
  324.  
  325. /* Pfadnamen */
  326.  
  327. typedef struct
  328. {
  329.    char lastimport[LEN_PATHNAME+1];
  330.    char lastexport[LEN_PATHNAME+1];
  331.    char squishcfg[LEN_PATHNAME+1];
  332. } PATHNAMES;
  333.  
  334. /* alles andere */
  335.  
  336. typedef struct
  337. {
  338.    char lastfindtext[LEN_FINDTEXT+1];  /* unbenutzt */
  339.    char lastarearead[LEN_AREATAG+1];
  340.    LONG lastreadoffset;       /* Offset im SQL-File */
  341.    BOOL readcfg;
  342.    BOOL globalexclude;
  343.    ULONG ulCfgType;
  344. } MISCOPTIONS;
  345.  
  346. /* Infos fuer Uhrdarstellung */
  347.  
  348. typedef struct
  349. {
  350.    int DMY;        /* 0=MDY, 1=DMY, 2=YMD */
  351.    char datesep;   /* Datumsseparator */
  352.    char timesep;   /* Zeitseparator */
  353.    BOOL h24;       /* 24-Stunden-Uhr */
  354.    char amtext[4];     /* AM-Text */
  355.    char pmtext[4];     /* PM-Text */
  356. } INTLSETTING;
  357.  
  358. /* Dirty-Flags fuer das Speichern der Settings */
  359.  
  360. typedef struct
  361. {
  362.    BOOL userdirty;
  363.    BOOL macrosdirty;
  364.    BOOL templatedirty;
  365.    BOOL nodedirty;
  366.    BOOL optionsdirty;
  367.    BOOL hooksdirty;
  368.    BOOL echotossdirty;
  369.    BOOL domainsdirty;
  370.    BOOL finddirty;
  371.    BOOL threadsdirty;
  372.    BOOL lookupdirty;
  373.    BOOL resultsdirty;
  374.    BOOL alsettingsdirty;
  375.    BOOL mlsettingsdirty;
  376.    BOOL remapdirty;
  377.    BOOL browserdirty;
  378.    BOOL toolbardirty;
  379. } DIRTYFLAGS;
  380.  
  381. /* Squish-Outbounds und Domains */
  382.  
  383. typedef struct
  384. {
  385.    int  zonenum;
  386.    char outbound[LEN_PATHNAME+1];
  387. } OUTBOUND;
  388.  
  389. typedef struct _domains
  390. {
  391.    struct _domains *next;
  392.    char domainname[LEN_DOMAIN+1];
  393.    char indexfile[LEN_PATHNAME+1];
  394.    char nodelistfile[LEN_PATHNAME+1];
  395. } DOMAINS, *PDOMAINS;
  396.  
  397. /* Threadlisten-Optionen */
  398.  
  399. #define DSPTHREADS_ALL         0
  400. #define DSPTHREADS_WITHUNREAD  1
  401. #define DSPTHREADS_UNREADONLY  2
  402.  
  403. typedef struct
  404. {
  405.    BOOL shownames;
  406.    ULONG dspmode;
  407.    BOOL keepinfront;
  408.    WINPOS SettingsPos;
  409.    LONG lBackClr;
  410.    LONG lReadClr;
  411.    LONG lUnreadClr;
  412.    LONG lPersonalClr;
  413.    WINPOS ListPos;
  414.    BOOL compact;
  415. } THREADLISTOPTIONS;
  416.  
  417. /* Squish-Parameter */
  418.  
  419. typedef struct
  420. {
  421.    ULONG ulSkipMsgs;
  422.    ULONG ulMaxMsgs;
  423.    USHORT usDaysToKeep;
  424. } SQUISHPARAMS, *PSQUISHPARAMS;
  425.  
  426. typedef struct
  427. {
  428.    LONG  lSplitBar;
  429.    BOOL  bBrief;
  430. } LOOKUPOPTIONS;
  431.  
  432. typedef struct
  433. {
  434.    LONG lSplitBar;
  435.    BOOL bScroll;
  436.    BOOL keepinfront;
  437. } RESULTSOPTIONS;
  438.  
  439. typedef struct
  440. {
  441.    ULONG ulDummy;
  442.    ULONG ulDummy2;
  443.    LONG  lBackColor;
  444.    LONG  lNetAreaColor;
  445.    LONG  lEchoAreaColor;
  446.    LONG  lLocalAreaColor;
  447.    ULONG ulFlags;
  448.    WINPOS ListPos;
  449.    WINPOS SettingsPos;
  450.    WINPOS SelectPos;
  451.    LONG  lFolderFore;
  452.    LONG  lFolderBack;
  453. } AREALISTOPTIONS, *PAREALISTOPTIONS;
  454.  
  455. #define AREALISTFLAG_FOREGROUND 0x01UL
  456. #define AREALISTFLAG_SHOWTAGS   0x02UL
  457.  
  458. typedef struct
  459. {
  460.    char pchRemapString[25];
  461. } DRIVEREMAP, *PDRIVEREMAP;
  462.  
  463. /* Carbon Copy listen */
  464.  
  465. typedef struct _ccentry
  466. {
  467.    struct _ccentry *next;
  468.    struct _ccentry *prev;
  469.    char   pchName[LEN_USERNAME+1];
  470.    char   pchAddress[LEN_5DADDRESS+1];
  471.    char   pchFirstLine[LEN_FIRSTLINE+1];
  472.    ULONG  ulFlags;     /* siehe CCENTRY_* unten */
  473. } CCENTRY, *PCCENTRY;
  474.  
  475. #define CCENTRY_MENTION  0x00000001   /* Name in CC-Zeilen zeigen */
  476.  
  477. typedef struct _cclist
  478. {
  479.    struct _cclist *next;
  480.    struct _cclist *prev;
  481.    char     *pchListName;
  482.    PCCENTRY pEntries;
  483.    WINPOS   ListPos;
  484.    ULONG    ulListID;
  485.    ULONG    ulFlags;   /* siehe CCLIST_* unten */
  486.    BOOL     bDirty;
  487. } CCLIST, *PCCLIST;
  488.  
  489. #define CCLIST_KILLSENT   0x00000001  /* Messages 2..n mit Kill/Sent */
  490.  
  491. typedef struct
  492. {
  493.    PCCLIST pLists;
  494.    ULONG   ulNumLists;
  495.    WINPOS  FolderPos;
  496.    BOOL    bDirty;
  497.    ULONG   ulFlags;
  498. } CCANCHOR, *PCCANCHOR;
  499.  
  500. #define CCANCHOR_FOREGROUND     0x01UL
  501.  
  502.  
  503. /* Rexx-Scripts */
  504.  
  505. typedef struct rxscript
  506. {
  507.    struct rxscript *next;
  508.    struct rxscript *prev;
  509.    char   *pchScriptName;
  510.    char   pchPathName[LEN_PATHNAME+1];
  511.    WINPOS SettingsPos;
  512.    WINPOS MonitorPos;
  513.    ULONG  ulScriptID;
  514.    ULONG  ulFlags;
  515.    BOOL   bDirty;
  516. } RXSCRIPT, *PRXSCRIPT;
  517.  
  518. #define REXXFLAG_NOMONITOR        0x00000001
  519. #define REXXFLAG_AUTOCLOSE        0x00000002
  520. #define REXXFLAG_QUICKACCESS      0x00000004
  521.  
  522. typedef struct scriptlist
  523. {
  524.    PRXSCRIPT pScripts;
  525.    ULONG     ulNumScripts;
  526.    WINPOS    FolderPos;
  527.    WINPOS    FolderSettingsPos;
  528.    BOOL      bDirty;
  529.    ULONG     ulFlags;
  530. } SCRIPTLIST, *PSCRIPTLIST;
  531.  
  532. #define SCRIPTS_FOREGROUND     0x01UL
  533.  
  534. typedef struct
  535. {
  536.    ULONG    ulExitID;
  537.    ULONG    ulPreSaveID;
  538. } REXXHOOKS, *PREXXHOOKS;
  539.  
  540. typedef struct
  541. {
  542.    USHORT cb;
  543.    ULONG  ulView;
  544. } BOOKMARKSOPEN, *PBOOKMARKSOPEN;
  545.  
  546.  
  547. typedef struct
  548. {
  549.    ULONG ulToolbarPos;
  550.    BOOL  bSmallToolbar;
  551. } TOOLBAROPTIONS, *PTOOLBAROPTIONS;
  552.  
  553. #define TOOLBARPOS_TOP       0
  554. #define TOOLBARPOS_BOTTOM    1
  555. #define TOOLBARPOS_LEFT      2
  556. #define TOOLBARPOS_RIGHT     3
  557.  
  558. /* File-Requests */
  559.  
  560. typedef struct requestlist
  561. {
  562.    struct requestlist *next;
  563.    char pchFileName[LEN_REQFILE+1];  /* Filename 8.3 */
  564.    char pchPassword[LEN_PASSWORD+1]; /* "" für 'kein Password' */
  565. } REQUESTLIST, *PREQUESTLIST;
  566.  
  567. /* offene Fenster */
  568.  
  569. typedef struct
  570. {
  571.    ULONG ulOpenWindows;
  572.    ULONG ulForceClose;
  573.    ULONG ulForceOpen;
  574. } OPENWIN, *POPENWIN;
  575.  
  576. #define OPENWIN_AREA            1UL
  577. #define OPENWIN_MSGL            2UL
  578. #define OPENWIN_THRL            4UL
  579. #define OPENWIN_BOOKMARKS       8UL
  580. #define OPENWIN_KLUDGES        16UL
  581. #define OPENWIN_CCLISTS        32UL
  582. #define OPENWIN_TPL            64UL
  583. #define OPENWIN_REXX          128UL
  584. #define OPENWIN_BROWSER       256UL
  585.  
  586.  
  587. #pragma pack()
  588.