home *** CD-ROM | disk | FTP | other *** search
/ Tricks of the Windows Gam…ming Gurus (2nd Edition) / Disc2.iso / msdn_vcb / samples / vc98 / sdk / sdktools / porttool / porttool.h < prev    next >
C/C++ Source or Header  |  1997-10-05  |  9KB  |  298 lines

  1.  
  2. /******************************************************************************\
  3. *       This is a part of the Microsoft Source Code Samples. 
  4. *       Copyright (C) 1993-1997 Microsoft Corporation.
  5. *       All rights reserved. 
  6. *       This source code is only intended as a supplement to 
  7. *       Microsoft Development Tools and/or WinHelp documentation.
  8. *       See these sources for detailed information regarding the 
  9. *       Microsoft samples programs.
  10. \******************************************************************************/
  11.  
  12. #include <windows.h>
  13. #include <commdlg.h>
  14. #include <string.h>
  15. #include <stdlib.h>
  16.  
  17. #define strncpy     My_mbsncpy
  18. #define strtok      My_mbstok
  19. unsigned char * _cdecl My_mbsncpy(
  20.                         unsigned char *, const unsigned char *, size_t);
  21. unsigned char * _cdecl My_mbstok(unsigned char *, unsigned char *);
  22.  
  23. #ifdef RC_INVOKED
  24. #define ID(id)             id
  25. #else
  26. #define ID(id)             MAKEINTRESOURCE(id)
  27. #endif
  28.  
  29. #undef EDIT_FIXED
  30.  
  31. // resource ID's
  32. #define IDPortTool         ID(1)
  33. #define IDBkPort         ID(2)
  34.  
  35. #define IDA_PORTTOOL         1
  36.  
  37. // edit control child window ID
  38. #define IDC_EDIT         1000
  39.  
  40. // max string lengths
  41. #define MAXSEARCHSTRING      80
  42. #define MAXPTRDEFINITION     200
  43. #define MAXPTRDEVICE         50
  44. #define MAXPTRDRIVER         50
  45. #define MAXPTRPORT         50
  46.  
  47. // extra byte window word and long definitions
  48. #define WL_HWNDEDIT         0
  49. #define WW_SCROLL         4
  50. #define WW_UNTITLED         6
  51. #define WW_SEARCHCASE         8
  52. #define WW_SEARCHDN         10
  53. #define WL_HPTRDEVNAMES      12
  54. #define CBWNDEXTRA         16
  55.  
  56. // menuitem IDs, file submenu
  57. #define IDM_FILENEW              1001
  58. #define IDM_FILEOPEN         1002
  59. #define IDM_FILESAVE         1003
  60. #define IDM_FILESAVEAS         1004
  61. #define IDM_FILEPRINT         1005
  62. #define IDM_FILESETUP         1006
  63. #define IDM_FILEEXIT         1007
  64. #define IDM_FILEABOUT         1008
  65. // edit submenu
  66. #define IDM_EDITUNDO         2000
  67. #define IDM_EDITCUT              2001
  68. #define IDM_EDITCOPY         2002
  69. #define IDM_EDITPASTE         2003
  70. #define IDM_EDITCLEAR         2004
  71. #define IDM_EDITSELECT         2005
  72. #define IDM_EDITWRAP         2006
  73. #define IDM_EDITSCROLL         2007
  74. #define IDM_EDITFONT         2008
  75. // search submenu
  76. #define IDM_SEARCHFIND         3001
  77. #define IDM_SEARCHNEXT         3002
  78. #define IDM_SEARCHPREV         3003
  79. // port submenu
  80. #define IDM_PORTCURFILE      4000
  81. #define IDM_PORTBKGND         4001
  82.  
  83. #define IDM_FUNCTION1         5000
  84. #define IDM_FUNCTION2         5001
  85. #define IDM_FUNCTION3         5002
  86. #define IDM_FUNCTION4         5003
  87. #define IDM_FUNCTION5         5004
  88.  
  89. // dialog & control IDs
  90.  
  91. // about dialog
  92. #define IDD_ABOUT         ID(300)
  93. #define IDC_SYSTEM       301
  94. #define IDC_APP          302
  95. #define IDC_VERSION      303
  96. #define IDC_COPYRIGHT    304
  97. #define IDC_OSVERSION    305
  98.  
  99. // cancel print dialog
  100. #define IDD_CANCELDLG         ID(400)
  101. #define IDC_PRINTDEVICE      401
  102. #define IDC_PRINTPORT         402
  103. #define IDC_PRINTTITLE         403
  104.  
  105. // port options dialog
  106. #define IDD_OPTIONSDLG         ID(500)
  107. #define IDC_NOAPIS         501
  108. #define IDC_NOMESSAGES         502
  109. #define IDC_NOSTRUCTURES     503
  110. #define IDC_NOMACROS         504
  111. #define IDC_NOCONSTANTS      505
  112. #define IDC_NOTYPES         506
  113. #define IDC_NOCUSTOM         507
  114. #define IDC_IGNORECASE         508
  115. #define IDC_CURTOKEN         509
  116. #define IDC_IGNORETOKEN      510
  117.  
  118. // port current file dialog
  119. #define IDD_PORTDIALOG         ID(600)
  120. #define IDC_SEARCHFOUND      601
  121. #define IDC_ISSUECNT         602
  122. #define IDC_LINENO         603
  123. #define IDC_LINE         604
  124. #define IDC_ISSUE         605
  125. #define IDC_CONTINUE         606
  126. #define IDC_SUGGESTION         608
  127. #define IDC_SUGGESTLABEL     609
  128. #define IDC_OPTIONS         610
  129. #define IDC_DONE         611
  130. #define IDC_HELPM         612
  131. #define IDC_RESTART         613
  132.  
  133. // background port status dialog
  134. #define IDD_BKPORTDIALOG     ID(700)
  135. #define IDC_BKNOAPIS         702
  136. #define IDC_BKNOMESSAGES     703
  137. #define IDC_BKNOSTRUCTURES     704
  138. #define IDC_BKNOMACROS         705
  139. #define IDC_BKNOCONSTANTS     706
  140. #define IDC_BKNOTYPES         707
  141. #define IDC_BKNOCUSTOM         708
  142. #define IDC_BKIGNORECASE     709
  143. #define IDC_CHANGEOPTIONS     710
  144. #define IDC_ADDFILE         711
  145. #define IDC_COMPLETE         712
  146. #define IDC_LINES         713
  147. #define IDC_ISSUES         714
  148. #define IDC_ABORTFILE         715
  149. #define IDC_FILEPATH         716
  150. #define IDC_FILELIST         717
  151. #define IDC_BKDONE         718
  152.  
  153.  
  154. // file I/O error stringtable entries
  155. #define IDS_OPENFAILED          WM_USER+101
  156. #define IDS_NOSIZE          WM_USER+102
  157. #define IDS_READFAILED          WM_USER+103
  158. #define IDS_REALLOCFAILED      WM_USER+104
  159. #define IDS_EDITWNDFAILED      WM_USER+105
  160. #define IDS_GETHANDLEFAILED      WM_USER+106
  161. #define IDS_WRITEOPENFAILED      WM_USER+107
  162. #define IDS_WRITEFAILED       WM_USER+108
  163. #define IDS_PTRCOMMDLGFAILED      WM_USER+109
  164. #define IDS_PRINTABORTED      WM_USER+110
  165. #define IDS_STARTDOCFAILED      WM_USER+111
  166. #define IDS_SETABORTPROCFAILED      WM_USER+112
  167. #define IDS_CANCELDLGFAILED      WM_USER+113
  168. #define IDS_PTRCONFIGFAILED      WM_USER+114
  169. #define IDS_NOFILETOPORT      WM_USER+115
  170. #define IDS_PORTINITFAILED      WM_USER+116
  171. #define IDS_MEMORYFAILED      WM_USER+117
  172. #define IDS_FONTFAILEDTOCREATE      WM_USER+118
  173. #define IDS_LOADPORTFAILED      WM_USER+119
  174. #define IDS_PROCADDRESSFAILED      WM_USER+120
  175. #define IDS_UNTITLED          WM_USER+201
  176. #define IDS_APPNAME          WM_USER+202
  177. #define IDS_PRINTJOB          WM_USER+203
  178. #define IDS_PRINTERROR          WM_USER+204
  179. #define IDS_DATACHANGED       WM_USER+205
  180. #define IDS_DEFAULTFILEEXT      WM_USER+206
  181. #define IDS_SAVEASTITLE       WM_USER+207
  182. #define IDS_FILEOPENTITLE      WM_USER+208
  183. #define IDS_STRINGNOTFOUND      WM_USER+209
  184. #define IDS_SEARCHDLGFAILED      WM_USER+210
  185. #define IDS_WINDOWSAPPNAME      WM_USER+211
  186. #define IDS_DEVICENAME          WM_USER+212
  187. #define IDS_PORTFILE          WM_USER+213
  188. #define IDS_SEARCHING          WM_USER+214
  189. #define IDS_FOUND          WM_USER+215
  190. #define IDS_NOMOREPORTISSUES      WM_USER+216
  191. #define IDS_INIFILE          WM_USER+217
  192. #define IDS_WINHELP          WM_USER+218
  193. #define IDS_NOTYETIMPLEMENTED      WM_USER+219
  194. #define IDS_NOT           WM_USER+220
  195. #define IDS_PORTDLLFILE       WM_USER+221
  196. #define IDS_CHECKSTRING       WM_USER+222
  197. #define IDS_BKPORTNEWLINE      WM_USER+223
  198. #define IDS_BKPORTHEADER      WM_USER+224
  199. #define IDS_BKPORTTOKEN       WM_USER+225
  200. #define IDS_BKPORTISSUE       WM_USER+226
  201. #define IDS_BKPORTSUGGEST      WM_USER+227
  202. #define IDS_BKPORTHELP          WM_USER+228
  203. #define IDS_BKPORTHELPFILE      WM_USER+229
  204. #define IDS_BKPORTEOL          WM_USER+230
  205. #define IDS_BKPORTABORT       WM_USER+231
  206. #define IDS_BKPORTSTATUS      WM_USER+232
  207. #define IDS_BKPORTCANCEL      WM_USER+233
  208. #define IDS_BKPORTSTARTFAILED      WM_USER+234
  209. #define IDS_CANTBUILDFILELIST      WM_USER+235
  210. #define IDS_PORTFILEBACKMSG      WM_USER+236
  211. #define IDS_DEFAULTPORTEXT    WM_USER+237
  212. #define IDS_PORTFILEOPENTITLE    WM_USER+238
  213. #define IDS_UNKNOWN_ERROR         WM_USER+239
  214. #define IDS_ERR_INVALID_THREADHND WM_USER+240
  215. #define IDS_CANCEL_BKGND_PROCESS  WM_USER+241
  216. #define IDS_ABORT_TITLE           WM_USER+242
  217. #define IDS_FILE_FILTER_SPEC1     WM_USER+243
  218. #define IDS_EXT_FILTER_SPEC1      WM_USER+244
  219. #define IDS_FILE_FILTER_SPEC2     WM_USER+245
  220. #define IDS_EXT_FILTER_SPEC2      WM_USER+246
  221. #define IDS_FILE_FILTER_SPEC3     WM_USER+247
  222. #define IDS_EXT_FILTER_SPEC3      WM_USER+248
  223. #define IDS_FILE_FILTER_SPEC4     WM_USER+249
  224. #define IDS_EXT_FILTER_SPEC4      WM_USER+250
  225. #define IDS_FILE_FILTER_SPEC5     WM_USER+251
  226. #define IDS_EXT_FILTER_SPEC5      WM_USER+252
  227.  
  228. // define background porting handle array indexes
  229. #define BKPORT_ABORT    0
  230. #define BKPORT_STATUS    1
  231. #define nBKPORTEVENTS    2
  232.  
  233. #define MAXBKTHREADS    20
  234.  
  235. // define structure used in background porting
  236. typedef struct tagBkPortFile
  237.     {
  238.     char    szFile[MAX_PATH];
  239.     char    szFilePath[MAX_PATH];
  240.     DWORD   dwPTFlags;
  241.     HANDLE  hThread;
  242.     HWND    hDlg;
  243.     }BKPORTFILESTRUCT, * LPBKPORTFILESTRUCT;
  244.  
  245.  
  246. // linked list structure defines background files being ported
  247. typedef struct _BKFILELIST
  248.     {
  249.     BKPORTFILESTRUCT    bkFile;
  250.     HANDLE        hEvents[nBKPORTEVENTS];
  251.     LPVOID        Next;
  252.     }BKFILELIST, * LPBKFILELIST;
  253.  
  254.  
  255. // function prototypes defined in PORTTOOL.C
  256. #define UM_SAVEFILE         WM_USER+1
  257. VOID    WINAPI ErrorNotify (HWND, int);
  258. LONG    WINAPI MainWndProc (HWND, UINT, UINT, LONG);
  259. BOOL    WINAPI AboutDlgProc (HWND, UINT, UINT, LONG);
  260.  
  261. // globals and function prototypes defined in PTFILE.C
  262. extern    char    lpszFilePath[MAX_PATH];
  263. BOOL    WINAPI GetFileName(HWND, char *, char *);
  264. BOOL    WINAPI GetFileFromPath (char *, char *);
  265. BOOL    WINAPI GetIniFile (char *);
  266. int    WINAPI SaveFile (HWND, char *);
  267. BOOL    WINAPI SaveAsFileName (HWND, char *, char *);
  268. int    WINAPI LoadFile (HWND, char *);
  269. BOOL WINAPI GetPortIniFileName ( HWND, char *, char *);
  270.  
  271. // globals and function prototypes defined in PTFIND.C
  272. extern    char    lpszSearch[MAXSEARCHSTRING+1];
  273. extern    HWND    hDlgSearch;
  274. BOOL    WINAPI FindDialog (HWND, WORD, WORD, char *);
  275. BOOL    WINAPI LocateText (HWND, WORD, WORD, char *);
  276.  
  277. // globals and function prototypes defined in PTPRINT.C
  278. #define UM_CANCELPRINT          WM_USER+2
  279. int    WINAPI PrintFile (HWND);
  280. int    WINAPI PrinterSetup (HWND);
  281. BOOL    WINAPI GetPrinterConfig (HWND);
  282.  
  283. // globals and function prototypes defined in PTDLGS.C
  284. BOOL    WINAPI OptionsDlgProc (HWND, UINT, UINT, LONG);
  285. BOOL    WINAPI PortDlgProc (HWND, UINT, UINT, LONG);
  286. BOOL    WINAPI BkPortDlgProc (HWND, UINT, UINT, LONG);
  287.  
  288. // globals and function prototypes defined in PTBKPORT.C
  289. #define UM_THREADCOMPLETE     WM_USER+2
  290. #define UM_STATUSUPDATE      WM_USER+3
  291. HANDLE    WINAPI StartBkPortThread (LPBKPORTFILESTRUCT);
  292. BOOL    WINAPI CreateEvents (HANDLE *, LPBKPORTFILESTRUCT);
  293. void    WINAPI DestroyEvents (HANDLE *);
  294.  
  295. BOOL WINAPI InitPortData(CHAR *);
  296.  
  297. CHAR                lpszPortIniFilePath[MAX_PATH];
  298.