home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: InfoMgt / InfoMgt.zip / code25.zip / FSP.H < prev    next >
Text File  |  1995-11-07  |  22KB  |  766 lines

  1. /***************************************************************************/
  2. /* Revisions                                                               */
  3. /***************************************************************************/
  4.  
  5. /* 2.5
  6. ** Tree:
  7. **   Intra-process Drag/Drop fixed
  8. */
  9.  
  10. /* 2.4
  11. ** Tree:
  12. **   Drag/Drop and Settings fixes
  13. ** Refr:
  14. **   Added
  15. */
  16.  
  17. /* 2.3
  18. ** All:
  19. **   Added F2 through F6 accelerators and functionality
  20. **   Columns title customization for Address books and Todo lists
  21. **   User-key registration
  22. */
  23.  
  24. /* 2.0
  25. **
  26. ** Tree:
  27. **   Re-Windowed tree & editors - No more MDI
  28. **   Added entry from clipboard
  29. **   Added drag drop support for tree view arranging
  30. **   Added drag drop support for tree view import
  31. **   Save, Close, Expand & Collapse all.
  32. **   Removed 2 Column List option.
  33. ** Settings notebook
  34. **   1 icon for all editors option
  35. **   Hide menus & stats for all ( except page )
  36. **   Default fonts & printing styles
  37. **   Tree view icons, lines
  38. **   Use file name or root title
  39. **   Add editors to task list
  40. ** All:
  41. **   Added drag drop support for editor entry order arranging ( except page )
  42. **   Added Search function
  43. **   Configure visible columns
  44. **   Save Scrapbook option on menu
  45. **   Printing
  46. **   Added Access to Tree window, Scrapbook save and Entry title to all editors.
  47. ** Address:
  48. **   Dial phone from address book
  49. ** Mini-Base:
  50. **   New editor !
  51. **   Old 2 Column Lists automatically converted
  52. ** ToDo:
  53. **   Added Priority to ToDo
  54. **   Added priority & task sort
  55. **   Completion date set on ToDo double click
  56. ** Text:
  57. **   Dropped multiple text icons
  58. **  
  59. */
  60.  
  61. /* 1.2
  62. **
  63. ** Added ability to choose icon
  64. ** Removed Delete hot-key tree bug/feature
  65. **
  66. */
  67.  
  68. /* 1.1
  69. **
  70. ** Added MID_PAGE_EXP function
  71. ** Fixed truncation problems in Page editor
  72. ** Added hot-keys for all container text edits (except list col heads)
  73. ** Fixed sporadic on-line help appearance
  74. ** Remembers tree icon/expand state
  75. ** Added accelerators for tree window
  76. **
  77. */
  78.  
  79. /***************************************************************************/
  80. /* Main #define's & #include's                                             */
  81. /***************************************************************************/
  82.  
  83. #define INCL_WIN
  84.  
  85. #define INCL_GPILCIDS
  86. #define INCL_GPIPRIMITIVES
  87. #define INCL_GPILOGCOLORTABLE
  88.  
  89. #define INCL_DOSERRORS
  90. #define INCL_DOSPROCESS
  91. #define INCL_DOSNLS
  92. #define INCL_DOSSEMAPHORES
  93.  
  94. #define INCL_SPL
  95. #define INCL_SPLDOSPRINT
  96.  
  97. #define INCL_DEV
  98.  
  99. //#define INCL_BITMAPS
  100.  
  101. #include <os2.h>
  102. #include <stdlib.h>
  103. #include <stdio.h>
  104. #include <string.h>
  105.  
  106. #include <pmlib.h>
  107.  
  108. #include "fspres.h"
  109.  
  110. /***************************************************************************/
  111. /* #define's                                                               */
  112. /***************************************************************************/
  113.  
  114. #define CMA_DATAWIDTH   0x0200
  115.  
  116. #define QNAME_LEN     256
  117.  
  118. #define TREE_KEY      "Tree"
  119. #define ADDR_KEY      "Addr"
  120. #define TODO_KEY      "ToDo"
  121. #define MINI_KEY      "Mini"
  122. #define TEXT_KEY      "Text"
  123. #define REFR_KEY      "Refr"
  124.  
  125. #define OPTS_KEY      "Options"
  126. #define PRTQ_KEY      "PrtQueue"
  127.  
  128. #define FONT_ALL_KEY  "DefAll"
  129. #define FONT_HED_KEY  "DefHeading"
  130. #define FONT_CNT_KEY  "DefContent"
  131.  
  132. #define MOD_POR_KEY   "ModemPort"
  133. #define MOD_SET_KEY   "ModemSetup"
  134. #define COL_LISTS     "Columns"
  135.  
  136. #define UNREGSTRD     TRUE
  137. #define UNREG_MAX     6
  138. #define UNREG_CODE    619193
  139. #define REGED_CODE    61919361
  140. #define REL_REV       200  //114
  141.                       
  142. #define ADDR_COLS     7
  143. #define TODO_COLS     6
  144.                       
  145. #define MINI_COLS     16
  146. #define MINI_SORTS    4
  147.                       
  148. #define MAX_COLS      MINI_COLS
  149.  
  150. #define FONTID_ALL    7
  151. #define FONTID_HED    8
  152. #define FONTID_CNT    9
  153.  
  154. #define UWM_PARAMS    WM_USER +  1
  155. #define UWM_SAVE      WM_USER +  2
  156. #define UWM_DETWIN    WM_USER +  3
  157. #define UWM_SEARCH    WM_USER +  4
  158. #define UWM_SETTING   WM_USER +  5
  159. #define UWM_STAT      WM_USER +  6
  160. #define UWM_DONE      WM_USER +  7
  161. #define UWM_ERROR     WM_USER +  8
  162. #define UWM_CONNECT   WM_USER +  9
  163. #define UWM_SETRECPTR WM_USER + 10
  164.  
  165. #define SCB_PARENT    0x00000001
  166. #define SCB_EXPAND    0x00000002
  167. #define SCB_OPENED    0x00000004
  168. #define SCB_ICONED    0x00000008
  169. #define SCB_DETAIL    0x00000010
  170. #define SCB_STATED    0x00000020
  171. #define SCB_MENUED    0x00000040
  172. #define SCB_TREELIN   0x00000080
  173. #define SCB_WINOWN    0x00000100
  174. #define SCB_CONVERT   0x00000200
  175. #define SCB_CASE      0x00000400
  176. #define SCB_NULL0     0x00000800
  177. #define SCB_TXTWRAP   0x00001000
  178. #define SCB_PRICOLR   0x00002000
  179. #define SCB_ENTDIAL   0x00004000
  180. #define SCB_SRCHALL   0x00008000
  181. #define SCB_PRTCONT   0x00010000
  182. #define SCB_PRTHEAD   0x00020000
  183. #define SCB_PRTPAGE   0x00040000
  184. #define SCB_TITFILE   0x00100000
  185. #define SCB_WINTASK   0x00200000
  186. #define SCB_DROPREFR  0x00400000
  187.  
  188. #define ADDR_NAME           0
  189. #define ADDR_AREA           1
  190. #define ADDR_FONE           2
  191. #define ADDR_EXTN           3
  192. #define ADDR_ADDR           4
  193. #define ADDR_NOTE           5
  194. #define ADDR_DATE           6
  195.  
  196. #define ADDR_STY_SHOWNAME   0x00000001
  197. #define ADDR_STY_SHOWAREA   0x00000002
  198. #define ADDR_STY_SHOWFONE   0x00000004
  199. #define ADDR_STY_SHOWEXTN   0x00000008
  200. #define ADDR_STY_SHOWADDR   0x00000010
  201. #define ADDR_STY_SHOWNOTE   0x00000020
  202. #define ADDR_STY_SHOWDATE   0x00000040
  203.  
  204. #define ADDR_COLTXT_NAME    "Name"
  205. #define ADDR_COLTXT_AREA    "Area\nCode"
  206. #define ADDR_COLTXT_FONE    "Phone\nNumber"
  207. #define ADDR_COLTXT_EXTN    "Ext."
  208. #define ADDR_COLTXT_ADDR    "Address"
  209. #define ADDR_COLTXT_NOTE    "Notes"
  210. #define ADDR_COLTXT_DATE    "Date"
  211. #define ADDR_COLLEN_NAME    28
  212. #define ADDR_COLLEN_AREA    7
  213. #define ADDR_COLLEN_FONE    18
  214. #define ADDR_COLLEN_EXTN    7
  215. #define ADDR_COLLEN_ADDR    0
  216. #define ADDR_COLLEN_NOTE    0
  217. #define ADDR_COLLEN_DATE    12
  218.  
  219. #define TODO_ENTR           0
  220. #define TODO_TARG           1
  221. #define TODO_DONE           2
  222. #define TODO_PRIO           3
  223. #define TODO_CHEK           4
  224. #define TODO_TASK           5
  225.  
  226. #define TODO_COLTXT_ENTR    "Entry\nDate"
  227. #define TODO_COLTXT_TARG    "Target\nDate"
  228. #define TODO_COLTXT_DONE    "Done\nDate"
  229. #define TODO_COLTXT_PRIO    "!"
  230. #define TODO_COLTXT_IDID    "?"
  231. #define TODO_COLTXT_TASK    "Task"
  232. #define TODO_COLTXT_NOTE    "Notes"
  233. #define TODO_COLLEN_ENTR    12
  234. #define TODO_COLLEN_TARG    12
  235. #define TODO_COLLEN_DONE    12
  236. #define TODO_COLLEN_PRIO    5
  237. #define TODO_COLLEN_IDID    5
  238. #define TODO_COLLEN_TASK    0
  239. #define TODO_COLLEN_NOTE    0
  240.  
  241. #define TODO_STY_SHOWENTR   0x00000001
  242. #define TODO_STY_SHOWTARG   0x00000002
  243. #define TODO_STY_SHOWDONE   0x00000004
  244. #define TODO_STY_SHOWPRIO   0x00000008
  245. #define TODO_STY_SHOWCHEK   0x00000010
  246. #define TODO_STY_SHOWTASK   0x00000020
  247.  
  248. #define SCB_TODO_DONE       0x00000010
  249. #define SCB_TODO_PRI5       0x00000000
  250. #define SCB_TODO_PRI4       0x00000001
  251. #define SCB_TODO_PRI3       0x00000002
  252. #define SCB_TODO_PRI2       0x00000004
  253. #define SCB_TODO_PRI1       0x00000008
  254.                             
  255. #define SCB_MINI_USED       0x00000001
  256. #define SCB_MINI_SPLT       0x00000002
  257. #define SCB_MINI_LEFT       0x00000004
  258. #define SCB_MINI_MLE        0x20000000
  259. #define SCB_MINI_DELT       0x80000000
  260. #define SCB_MINI_DESC       0x01
  261.                             
  262. #define SCB_REFR_DEFICON    0x00000001
  263. #define SCB_REFR_ISFILE     0x00000002
  264. #define SCB_REFR_ISPATH     0x00000004
  265.  
  266. #define SCB_BRANCH    -1L
  267. #define SCB_TREE       0L
  268. #define SCB_WRITE      1L
  269. #define SCB_FREE       2L
  270. #define SCB_ARRAY      3L
  271. #define SCB_SIZE       4L
  272. #define SCB_MEMORY     5L
  273. #define SCB_REFRESH    6L
  274. #define SCB_SETPAR     7L
  275. #define SCB_MENU       8L
  276. #define SCB_STAT       9L
  277. #define SCB_NODE      10L
  278. #define SCB_SEARCH    11L
  279. #define SCB_NULL1     12L
  280. #define SCB_CLOSE     13L
  281. #define SCB_EXPALL    14L
  282. #define SCB_COLALL    15L
  283. #define SCB_PRICOL    16L
  284. #define SCB_SAVE      17L
  285. #define SCB_UPDATED   18L
  286. #define SCB_HASOPEN   19L
  287.                       
  288. #define DRT_TREE      "DRT_PMSCRAPBOOK"
  289. #define DRM_TREE      "<DRM_PMSCRAPBOOK,DRF_TREE>,<DRM_DISCARD,DRF_TREE>"
  290.  
  291. #define DRM_ADDR      "<DRM_PMSCRAPBOOK,DRF_ADDR>,<DRM_DISCARD,DRF_ADDR>"
  292. #define DRM_TODO      "<DRM_PMSCRAPBOOK,DRF_TODO>,<DRM_DISCARD,DRF_TODO>"
  293. #define DRM_MINI      "<DRM_PMSCRAPBOOK,DRF_MINI>,<DRM_DISCARD,DRF_MINI>"
  294. #define DRM_REFR      "<DRM_PMSCRAPBOOK,DRF_REFR>,<DRM_DISCARD,DRF_REFR>"
  295.  
  296. //#define DRM_TREE    "(DRM_OS2FILE,DRM_PMSCRAPBOOK,DRM_DISCARD)x(DRF_TREE)"
  297. //#define DRM_TREE    "(DRM_PMSCRAPBOOK,DRM_DISCARD)x(DRF_UNKNOWN)"
  298. #define XFERMEM       "\\SHAREMEM\\DragXfer.mem"
  299.  
  300. /***************************************************************************/
  301. /* typedef's                                                               */
  302. /***************************************************************************/
  303.  
  304. typedef struct _SRCHREC 
  305. {
  306.    HWND        hwndS;
  307.    HWND        hwndE;
  308.    PSZ         pszFnd;
  309.    PSZ         pszChg;
  310.    BOOL        fbCase;
  311.    BOOL        fbWrap;
  312.    BOOL        fbIsCn;
  313.    BOOL        fbFirst;
  314.  
  315. }  SRCHREC, *PSRCHREC;
  316.  
  317. typedef struct _DATEREC 
  318. {
  319.    PSZ         pszTtl;
  320.    PCDATE      pcdate;
  321.  
  322. }  DATEREC, *PDATEREC;
  323.  
  324. typedef struct _CNRCTLREC 
  325. {
  326.    PFIELDINFO      pfinf;
  327.    BOOL            fbVisible;
  328.    ULONG           ulPels;
  329.    ULONG           ulShowMask;
  330.    //ULONG           ulPrntMask;
  331.  
  332. }  CNRCTLREC, *PCNRCTLREC;
  333.  
  334. typedef struct _DATREC 
  335. {
  336.    HWND        hwndD;
  337.    HWND        hwndE;
  338.    HWND        hwndM;
  339.    ULONG       ulRelRev;
  340.    PSZ         pszStat;
  341.    PVOID       pvWork;
  342.    PSRCHREC    psSrch;
  343.    PDATEREC    pdDate;
  344.    SWP         swp;
  345.    FATTRS      fat;
  346.    FIXED       fxPtSz;
  347.    FATTRS      fatPrt;
  348.    FIXED       fxPtSzPrt;
  349.    ULONG       ulXVS;
  350.    BOOL        fbModified;
  351.    BOOL        fbEditing;
  352.    ULONG       ulDEnt;
  353.    ULONG       ulDLen;
  354.    PVOID       pvDat;
  355.    ULONG       ulOpts;
  356.    ULONG       ulStyl;
  357.    ULONG       ulCntr;
  358.    PFIELDINFO  pfi;
  359.    ULONG       ulNBClr;
  360.    ULONG       ulNFClr;
  361.    ULONG       ulHBClr;
  362.    ULONG       ulHFClr;
  363.    ULONG       ulPrtPage;
  364.    CNRCTLREC   colInfo[MAX_COLS];
  365.  
  366. }  DATREC, *PDATREC;
  367.  
  368. typedef struct _USEREC 
  369. {
  370.    RECORDCORE  crecCore;
  371.    ULONG       ulType;
  372.    ULONG       ulOpts;
  373.    ULONG       ulReal;
  374.    CDATE       cdCre;
  375.    CTIME       ctCre;
  376.    CDATE       cdWri;
  377.    CTIME       ctWri;
  378.    CDATE       cdAcc;
  379.    CTIME       ctAcc;
  380.    PDATREC     pdr;
  381.    ULONG       ulKids;
  382.  
  383. }  USEREC, *PUSEREC;
  384.  
  385. typedef struct _TREEIO 
  386. {
  387.    HWND        hwndSource;
  388.    LONG        lLvl;
  389.    ULONG       ulType;
  390.    ULONG       ulOpts;
  391.    ULONG       ulReal;
  392.    CDATE       cdCre;
  393.    CTIME       ctCre;
  394.    CDATE       cdWri;
  395.    CTIME       ctWri;
  396.    CDATE       cdAcc;
  397.    CTIME       ctAcc;
  398.    ULONG       ulNLen;
  399.    ULONG       ulDLen;
  400.  
  401. }  TREEIO, *PTREEIO;
  402.  
  403. typedef struct _REFRREC
  404. {
  405.    RECORDCORE  crecCore;
  406.    PSZ         pszFileName;
  407.    PSZ         pszIconFile;
  408.    PSZ         pszSub;
  409.    PSZ         pszKey;
  410.    PSZ         pszCom;
  411.    CDATE       cdUpd;
  412.    ULONG       ulOpt;
  413.  
  414. }  REFRREC, *PREFRREC;
  415.  
  416. typedef struct _ADDRREC 
  417. {
  418.    RECORDCORE  crecCore;
  419.    PSZ         pszFN;
  420.    PSZ         pszAC;
  421.    PSZ         pszPN;
  422.    PSZ         pszEx;
  423.    PSZ         pszAd;
  424.    PSZ         pszNt;
  425.    CDATE       cdUpd;
  426.    ULONG       ulOpt;
  427.  
  428. }  ADDRREC, *PADDRREC;
  429.  
  430. typedef struct _TODOREC 
  431. {
  432.    RECORDCORE  crecCore;
  433.    CDATE       cdEnt;
  434.    CDATE       cdFin;
  435.    CDATE       cdTrg;
  436.    ULONG       ulOpt;
  437.    PSZ         pszPr;
  438.    PSZ         pszFn;
  439.    PSZ         pszDo;
  440.    ULONG       ulPri;
  441.  
  442. }  TODOREC, *PTODOREC;
  443.  
  444. typedef struct _LST2REC 
  445. {
  446.    RECORDCORE  crecCore;
  447.    CDATE       cdCur;
  448.    PSZ         psz1;
  449.    PSZ         psz2;
  450.  
  451. }  LST2REC, *PLST2REC;
  452.  
  453. typedef struct _MINIREC 
  454. {
  455.    RECORDCORE  crecCore;
  456.    PSZ         psz01;
  457.    PSZ         psz02;
  458.    PSZ         psz03;
  459.    PSZ         psz04;
  460.    PSZ         psz05;
  461.    PSZ         psz06;
  462.    PSZ         psz07;
  463.    PSZ         psz08;
  464.    PSZ         psz09;
  465.    PSZ         psz10;
  466.    PSZ         psz11;
  467.    PSZ         psz12;
  468.    PSZ         psz13;
  469.    PSZ         psz14;
  470.    PSZ         psz15;
  471.    PSZ         psz16;
  472.    CDATE       cdUpd;
  473.    ULONG       ulOpt;
  474.  
  475. }  MINIREC, *PMINIREC;
  476.  
  477. typedef struct _MCOLREC 
  478. {
  479.    ULONG       ulCHOpts;
  480.    ULONG       ulCDOpts;
  481.    ULONG       ulOffset;
  482.     
  483.    ULONG       ulOpts;
  484.    ULONG       ulStyl;
  485.     
  486.    ULONG       ulChrs;
  487.     
  488.    ULONG       ulX;
  489.     
  490.    PSZ         pszTitl;
  491.     
  492.    PFIELDINFO  pfi;
  493.  
  494. }  MCOLREC, *PMCOLREC;
  495.  
  496. typedef struct _MCTLREC 
  497. {
  498.    ULONG       ulCols;
  499.    ULONG       ulSplit;
  500.     
  501.    BYTE        abSort[MINI_SORTS];
  502.    BYTE        abSOpt[MINI_SORTS];
  503.     
  504.    MCOLREC     mcols[MINI_COLS];
  505.  
  506. }  MCTLREC, *PMCTLREC;
  507.  
  508. typedef struct _DATAIO 
  509. {
  510.    HWND        hwndD;
  511.    HWND        hwndE;
  512.    SWP         swp;
  513.    FATTRS      fat;
  514.    FIXED       fxPtSz;
  515.    FATTRS      fatPrt;
  516.    FIXED       fxPtSzPrt;
  517.    ULONG       ulRelRev;
  518.    ULONG       ulOpts;
  519.    ULONG       ulStyl;
  520.    ULONG       ulDEnt;
  521.    ULONG       ulXVS;
  522.    ULONG       ulNBClr;
  523.    ULONG       ulNFClr;
  524.    ULONG       ulHBClr;
  525.    ULONG       ulHFClr;
  526.  
  527. }  DATAIO, *PDATAIO;
  528.  
  529. typedef struct _COLSTRS
  530. {
  531.    ULONG       version;
  532.    ULONG       regCode;
  533.  
  534.    ULONG       ulAddrName;
  535.    PSZ         pszAddrName;
  536.    ULONG       ulAddrArea;
  537.    PSZ         pszAddrArea;
  538.    ULONG       ulAddrFone;
  539.    PSZ         pszAddrFone;
  540.    ULONG       ulAddrExtn;
  541.    PSZ         pszAddrExtn;
  542.    ULONG       ulAddrAddr;
  543.    PSZ         pszAddrAddr;
  544.    ULONG       ulAddrNote;
  545.    PSZ         pszAddrNote;
  546.    ULONG       ulAddrDate;
  547.    PSZ         pszAddrDate;
  548.  
  549.    ULONG       ulToDoEntr;
  550.    PSZ         pszToDoEntr;
  551.    ULONG       ulToDoTarg;
  552.    PSZ         pszToDoTarg;
  553.    ULONG       ulToDoDone;
  554.    PSZ         pszToDoDone;
  555.    ULONG       ulToDoPrio;
  556.    PSZ         pszToDoPrio;
  557.    ULONG       ulToDoIDid;
  558.    PSZ         pszToDoIDid;
  559.    ULONG       ulToDoTask;
  560.    PSZ         pszToDoTask;
  561.    ULONG       ulToDoNote;
  562.    PSZ         pszToDoNote;
  563.  
  564. }  COLSTRS, *PCOLSTRS;
  565.  
  566. typedef struct _DEFAULTREC
  567. {
  568.    FATTRS      fat;
  569.    FIXED       fxPtSz;
  570.    ULONG       ulOpts;
  571.    ULONG       ulStyl;
  572.    ULONG       ulNBClr;
  573.    ULONG       ulNFClr;
  574.    ULONG       ulHBClr;
  575.    ULONG       ulHFClr;
  576.  
  577. }  DEFAULTREC, *PDEFAULTREC;
  578.  
  579. typedef struct _PRINTCTL
  580. {
  581.    HWND        hwndPrtDlg;
  582.    PUSEREC     pPrtRec;
  583.    HPS         hpsPrinter;
  584.    BOOL        fbNewFont;
  585.    ULONG       ulPrtPage;
  586.    HCINFO      hci;
  587.    RECTL       rclPage;
  588.    RECTL       rclBody;
  589.    RECTL       rclFoot;
  590.    ULONG       ulOpts;
  591.    LONG        lHedLines;
  592.    DEFAULTREC  defPrtAll;
  593.    DEFAULTREC  defPrtHed;
  594.    DEFAULTREC  defPrtCnt;
  595.    DEFAULTREC  defPrtTmp;
  596.    FONTMETRICS fmAll;
  597.    FONTMETRICS fmHed;
  598.    FONTMETRICS fmCnt;
  599.  
  600.    SHORT       sVisCols;
  601.    LONG        alIds[MAX_COLS];       // Column Identifier
  602.    LONG        alFmt[MAX_COLS];       // Data Justification
  603.    LONG        alfinf[MAX_COLS];      // Column Pels Width
  604.    PSZ         apszfinf[MAX_COLS];    // Data Strings
  605.    RECTL       arclfinf[MAX_COLS];    // Column Rectangles
  606.    BOOL        abfinf[MAX_COLS];      // Need to Print Flag
  607.  
  608. }  PRINTCTL, *PPRINTCTL;
  609.  
  610. /***************************************************************************/
  611. /* Globals                                                                 */
  612. /***************************************************************************/
  613.  
  614. VAR_SCOPE PUSEREC         pRec;
  615. VAR_SCOPE PUSEREC         pRecFoc;
  616. VAR_SCOPE PUSEREC         pRecAll;
  617. VAR_SCOPE PUSEREC         pRecPrt;
  618. VAR_SCOPE PUSEREC         pRecDroppedOn;
  619.  
  620. VAR_SCOPE ATOM            atomTree;
  621. VAR_SCOPE ATOM            atomAddr;
  622. VAR_SCOPE ATOM            atomToDo;
  623. VAR_SCOPE ATOM            atomLst2;
  624. VAR_SCOPE ATOM            atomMini;
  625. VAR_SCOPE ATOM            atomRefr;
  626.  
  627. VAR_SCOPE BOOL            fbModified;
  628. VAR_SCOPE BOOL            fbEditing;
  629. VAR_SCOPE BOOL            fbSaving;
  630. VAR_SCOPE BOOL            fbPrinting;
  631. VAR_SCOPE BOOL            fbGotModem;
  632. VAR_SCOPE BOOL            fbDialing;
  633. VAR_SCOPE BOOL            fbReading;
  634. VAR_SCOPE BOOL            fbClosing;
  635. VAR_SCOPE BOOL            fbSftK;
  636. VAR_SCOPE BOOL            fbUnregistered;
  637.  
  638. VAR_SCOPE ULONG           ulRelRev;
  639.  
  640. VAR_SCOPE ULONG           ulTreeOpts;
  641. VAR_SCOPE ULONG           ulTextOpts;
  642. VAR_SCOPE ULONG           ulAddrOpts;
  643. VAR_SCOPE ULONG           ulToDoOpts;
  644. VAR_SCOPE ULONG           ulRefrOpts;
  645.  
  646. VAR_SCOPE ULONG           ulMiniOpts;
  647.  
  648. VAR_SCOPE HPOINTER        hptrMain;
  649. //VAR_SCOPE HPOINTER        hptrList;
  650. VAR_SCOPE HPOINTER        hptrAddr;
  651. VAR_SCOPE HPOINTER        hptrToDo;
  652. VAR_SCOPE HPOINTER        hptrText;
  653. VAR_SCOPE HPOINTER        hptrMini;
  654. VAR_SCOPE HPOINTER        hptrPrnt;
  655. VAR_SCOPE HPOINTER        hptrRefr;
  656.  
  657. VAR_SCOPE ULONG           ulMDefCols;
  658.  
  659. VAR_SCOPE PSZ             pszCurrFile;
  660.  
  661. VAR_SCOPE HWND            hwndM;
  662. VAR_SCOPE HWND            hwndH;
  663. VAR_SCOPE HWND            hwndC;
  664. VAR_SCOPE HWND            hwndS;
  665. VAR_SCOPE HWND            hwndFoc;
  666. VAR_SCOPE HWND            hwndOwn;
  667.  
  668. VAR_SCOPE HWND            hwndFrame;
  669. VAR_SCOPE HWND            hwndTreeMenu;
  670.  
  671. VAR_SCOPE HPOINTER        hptr;
  672.  
  673. VAR_SCOPE ULONG           ulCnt;
  674. VAR_SCOPE ULONG           ulEntryUpdates;
  675.  
  676. VAR_SCOPE PSZ             pszSearch;
  677. VAR_SCOPE BOOL            pszSearchFound;
  678.  
  679. VAR_SCOPE HFILE           hfilModem;
  680. VAR_SCOPE PSZ             pszDialNum;
  681. VAR_SCOPE CHAR            achComX[8];
  682. VAR_SCOPE CHAR            achComSet[80];
  683.  
  684. VAR_SCOPE USHORT          usLeftDvWnd;
  685. VAR_SCOPE USHORT          usRightDvWnd;
  686.  
  687. VAR_SCOPE PSZ             pszQueueName;
  688. VAR_SCOPE PRQINFO3        pqi;
  689.  
  690. VAR_SCOPE PPRINTCTL       pprtCtl;
  691. VAR_SCOPE HEV             evtThdDone;
  692.  
  693.  
  694. VAR_SCOPE COUNTRYCODE     ctrycode;
  695. VAR_SCOPE COUNTRYINFO     ci;
  696.  
  697. VAR_SCOPE COLSTRS         colStrs;
  698.  
  699. VAR_SCOPE BOOL            inSettingsInit;
  700.  
  701. /***************************************************************************/
  702. /* Prototypes                                                              */
  703. /***************************************************************************/
  704.  
  705. MRESULT EXPENTRY pfnwpMainWin     ( HWND, ULONG, MPARAM, MPARAM );
  706. MRESULT EXPENTRY pfnwpTextWin     ( HWND, ULONG, MPARAM, MPARAM );
  707. MRESULT EXPENTRY pfnwpAddrWin     ( HWND, ULONG, MPARAM, MPARAM );
  708. MRESULT EXPENTRY pfnwpToDoWin     ( HWND, ULONG, MPARAM, MPARAM );
  709. //MRESULT EXPENTRY pfnwpLst2Win     ( HWND, ULONG, MPARAM, MPARAM );
  710. MRESULT EXPENTRY pfnwpMiniWin     ( HWND, ULONG, MPARAM, MPARAM );
  711. MRESULT EXPENTRY pfndpRefrProps   ( HWND, ULONG, MPARAM, MPARAM );
  712.  
  713. MRESULT EXPENTRY pfndpStats       ( HWND, ULONG, MPARAM, MPARAM );
  714. MRESULT EXPENTRY pfndpSearch      ( HWND, ULONG, MPARAM, MPARAM );
  715. MRESULT EXPENTRY pfndpEditDate    ( HWND, ULONG, MPARAM, MPARAM );
  716. MRESULT EXPENTRY pfndpAbout       ( HWND, ULONG, MPARAM, MPARAM );
  717. MRESULT EXPENTRY pfndpRegInfo     ( HWND, ULONG, MPARAM, MPARAM );
  718. MRESULT EXPENTRY pfndpSettings    ( HWND, ULONG, MPARAM, MPARAM );
  719. MRESULT EXPENTRY pfndpSetIcon     ( HWND, ULONG, MPARAM, MPARAM );
  720. MRESULT EXPENTRY pfndpColors      ( HWND, ULONG, MPARAM, MPARAM );
  721. MRESULT EXPENTRY pfndpPrint       ( HWND, ULONG, MPARAM, MPARAM );
  722. MRESULT EXPENTRY pfndpSetTitle    ( HWND, ULONG, MPARAM, MPARAM );
  723. MRESULT EXPENTRY pfndpRegister    ( HWND, ULONG, MPARAM, MPARAM );
  724.  
  725. //SHORT   APIENTRY pfnLst2Sort      ( PRECORDCORE, PRECORDCORE, PVOID );
  726.  
  727. BOOL             pfnLst2MiniBase  ( PUSEREC );
  728.  
  729. BOOL             pfnRefrSave      ( PUSEREC, HWND, BOOL );
  730. BOOL             pfnRefrNewRec    ( PUSEREC, PSZ );
  731. BOOL             pfnRefrIcon      ( PUSEREC );
  732. PREFRREC         pfnRefrLoadEntry ( PUSEREC );
  733. VOID             pfnRefrFreeEntry ( PREFRREC );
  734.  
  735. BOOL             pfnSaveOpts      ( VOID );
  736. PUSEREC          pfnAllocRec      ( PUSEREC, ULONG, ULONG, BOOL, BOOL );
  737. VOID             pfnSetWhen       ( PCDATE, PCTIME );
  738. VOID             pfnSetWinPos     ( HWND, PDATREC );
  739. VOID             pfnGetWinPos     ( HWND, PDATREC );
  740.  
  741. BOOL             pfnNewBook       ( HWND, PSZ );
  742. USHORT           pfnMaybeSave     ( VOID );
  743. BOOL             pfnSaveFile      ( HWND, PSZ );
  744. BOOL             pfnReadFile      ( HWND, PSZ );
  745. BOOL             pfnReadBufr      ( HWND, PBYTE, PUSEREC, PUSEREC );
  746.  
  747. VOID             pfnTreeScan      ( PUSEREC, LONG, LONG, MPARAM );
  748. ULONG            pfnNodeScan      ( HWND, LONG, LONG, PBYTE );
  749. ULONG            pfnNodeUtil      ( PUSEREC, LONG, LONG, MPARAM );
  750. HWND             pfnEntryOpen     ( PUSEREC, PLONG );
  751. PUSEREC          pfnHaveAKid      ( PUSEREC, BOOL );
  752.  
  753. VOID             pfnNewPrintCtl   ( HWND );
  754. VOID             pfnPrintBounds   ( HWND );
  755.  
  756. VOID             pfnFixCnrCols    ( PUSEREC, USHORT, BOOL );
  757.  
  758. BOOL             pfnSetPresColors ( HWND, ULONG, ULONG, ULONG, ULONG );
  759. BOOL             pfnGetPresColors ( HWND, PULONG, PULONG, PULONG, PULONG );
  760.  
  761. BOOL             pfnFrameTitle    ( HWND, PSZ, PSZ );
  762.  
  763. PSZ              pfnStrSearch     ( PSZ, ULONG, PSZ, ULONG, BOOL );
  764. ULONG            pfnStrChrCnt     ( PSZ, ULONG, CHAR );
  765.  
  766.