Source code of Windows XP (NT5)
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

662 lines
22 KiB

  1. /*
  2. * Windows Calendar
  3. * Copyright (c) 1985 by Microsoft Corporation, all rights reserved.
  4. * Written by Mark L. Chamberlin, consultant to Microsoft.
  5. *
  6. ****** cal.h
  7. *
  8. */
  9. /* Get rid of some stuff from windows.h. */
  10. #define NOGDICAPMASKS
  11. #define NOATOM
  12. #define NOWH
  13. #define NOSOUND
  14. #define NOATOM
  15. #define NOCOMM
  16. #define NOMETAFILE
  17. #define NOREGION
  18. #define NOKANJI
  19. #include <stdlib.h> /* Get declaration for errno. */
  20. #include <windows.h>
  21. #ifndef RC_INVOKED
  22. #include <port1632.h>
  23. #endif
  24. #include <commdlg.h>
  25. #define LSTRING
  26. #include "..\\common\\date.h" /* Common date/time stuff */
  27. #include <io.h> /* Get I/O function declarations. */
  28. #include <errno.h> /* Get definitions of error codes. */
  29. typedef short SINT;
  30. /* Note - I have avoided using frequently occuring sequences of letters
  31. for data types. While the loss of mnemonic value is regrettable,
  32. it is less important than being able to easily search for occurences of
  33. the data type. For example, an appointment record is QR instead of AR,
  34. because searching for "ar" doesn't work well (char, far, and all sorts
  35. of English words in comments).
  36. */
  37. typedef WORD DT; /*** DT - date packed into 2 bytes - the number
  38. of days since January 1, 1980. */
  39. #define PT_LEN 50
  40. #define DTNIL (DT)0xFFFF /* An impossible DT. Note that by making this
  41. the largest possible value, it can safely
  42. be used in vftAlarmFirst.dt and
  43. vftAlarmNext.dt and have comparisons work
  44. properly. For example, if vftAlarmNext.dt
  45. == DTNIL, there is no next alarm, and
  46. the current FT will never look greater or
  47. equal, so the alarm can't go off.
  48. */
  49. #define DTFIRST (DT)0 /* The DT for January 1, 1980. */
  50. #define DTLAST (DT)0xAB35 /* The DT for December 31, 2099. */
  51. typedef SINT OBK; /*** Offset in Blocks within a file -
  52. From 0 through 32765, so it
  53. uses only 15 bits and does not include
  54. DLNIL or DLNOCHANGE.
  55. */
  56. typedef WORD DL; /*** DL - Date Location. Bit 15 is 0
  57. if the date is in the original file,
  58. 1 if it's in the change file. Bits
  59. 0 through 14 contain the OBK.
  60. If the date is in neither file, the
  61. DL is DLNIL.
  62. */
  63. #define DLNIL (DL)0xFFFF /* An impossible DL - it means the date is
  64. not in a file.
  65. */
  66. #define DLNOCHANGE (DL)0xFFFE /* An impossible DL that means don't change
  67. the old DL.
  68. */
  69. #define DLSPECIALLOW (DL)0xFFFE /* The lowest special DL. */
  70. #define DLFCHANGEFILEMASK (DL)0x8000 /* Mask for getting at the change file
  71. flag in a DL.
  72. */
  73. #define DLOBKMASK (DL)0x7FFF /* Mask for getting at the OBK in a DL. */
  74. #define BLOCKWRITE 0x0010 /* mask for disallowing other copies of
  75. calendar from writing the same file */
  76. typedef struct
  77. {
  78. DT dt; /* Date */
  79. SINT fMarked; /* appropriate bit is set if
  80. date is marked. */
  81. SINT cAlarms; /* Count of alarms set. */
  82. DL dl; /* Where the date is stored. */
  83. WORD idr; /* The index into vrghlmDr if
  84. the date is in memory. If not
  85. in memory, this is IDRNIL.
  86. */
  87. DL dlSave; /* Used to hold the previous DL
  88. during a Save operation. This
  89. is used for error recovery.
  90. */
  91. } DD; /*** DD - Date Descriptor */
  92. typedef struct /*** D3 - date in three parts */
  93. {
  94. WORD wMonth; /* 0 through 11 */
  95. WORD wDay; /* 0 through 30 */
  96. WORD wYear; /* 0 (1980) through 119 (2099) */
  97. } D3;
  98. #define MONTHJAN 0 /* Representation of January in a D3.wMonth */
  99. #define MONTHFEB 1 /* Representation of February in a D3.wMonth */
  100. #define MONTHDEC 11 /* Representation of December in a D3.wMonth */
  101. #define YEAR1980 0 /* Representation of 1980 in a D3.wYear */
  102. #define YEAR2099 119 /* Representation of 2099 in a D3.wYear */
  103. typedef SINT TM; /*** - Time packed into an int - the number of
  104. minutes since midnight.
  105. */
  106. #define TMLAST (TM)(24 * 60 - 1)
  107. #define TMNILHIGH (TM)(TMLAST + 1)
  108. #define TMNILLOW (TM)-1
  109. #define TMNOON (TM)(12 * 60)
  110. typedef struct
  111. {
  112. DT dt; /* Date */
  113. TM tm; /* Time */
  114. } FT; /*** FT - Full Time (date and time) */
  115. #define OTQRNIL 0xFFFF
  116. #ifndef RC_INVOKED
  117. #pragma pack(1)
  118. typedef struct
  119. {
  120. SINT cb : 8; /* Count of bytes in this QR. */
  121. SINT fAlarm : 1; /* TRUE if alarm set. */
  122. SINT fSpecial : 1; /* TRUE if special time. */
  123. SINT reserved : 6; /* Reserved for future use - 0 filled. */
  124. TM tm; /* Appointment Time. */
  125. CHAR qd [1]; /*** - QD - Appointment Description. Up to
  126. CCHQDMAX + 1 chars but declared as a
  127. single char here since storage is
  128. dynamically allocated. Not AD since
  129. we want to be able to search for this
  130. data type.
  131. */
  132. } QR;
  133. typedef QR UNALIGNED *PQR; /*** QR - Appointment Record - not AR since
  134. we want to be able to search for this data type.
  135. */
  136. #pragma pack()
  137. #endif /* RC_INVOKED */
  138. /* Count of bytes in a QR header (everything except the QD). */
  139. #define CBQRHEAD (sizeof (QR) - sizeof (char))
  140. /* !!! WARNING - If CCHQDMAX is changed, be sure to adjust the ACKALARM
  141. dialog in CALENDAR.RC (since the resource compiler can't multiply or
  142. divide, and it also seems that it doesn't support the use of symbolic
  143. constants for specifying the positions or sizes of controls. Note
  144. that this value also affects the forced word-wrap in calprint.c!
  145. */
  146. #define CCHQDMAX 80 /* Maximum number of text characters in
  147. an appointment description (does not
  148. include the zero byte terminator).
  149. */
  150. #define PAGENUMMAX 4 /* max num. digits of page number displayable
  151. in header or footer */
  152. #define CCHJUST 3 /* size of array containing justified
  153. header/footer info */
  154. #define CCHNONJUST 10 /* size of array containing non-justified
  155. header/footer info */
  156. /* !!! WARNING END */
  157. #define CBNOTESMAX 400 /* Maximum length of notes including unformatted
  158. text, soft line breaks, and 0 terminator.
  159. */
  160. #define CLNNOTES 3 /* The number of lines of notes. */
  161. /* A soft line break takes 3 characters <CR,CR,LF>. All but the last line
  162. of the notes area can end with a soft line break. This is the count
  163. of bytes needed to accomodate that case.
  164. */
  165. #define CBSOFTBREAKSMAX (3 * (CLNNOTES - 1))
  166. /* The maximum length of the unformatted text of the notes (reserve
  167. space for 0 terminator and soft line breaks).
  168. */
  169. #define CBNOTESTEXTMAX (CBNOTESMAX - 1 - CBSOFTBREAKSMAX)
  170. typedef struct
  171. {
  172. TM tm; /* Appointment time. */
  173. WORD otqr; /* Offset into tqr. */
  174. } LD; /*** - Line Descriptor. */
  175. #define CBBK 64 /*** BK - disk block. The size of a disk block
  176. (Calendar's fundamental unit of allocation).
  177. */
  178. /* !!! WARNING - Be sure to adjust CDRHEAD when when modifying the
  179. definition of a DR. Also note that except for the dt member,
  180. all members can be initialized to 0 (dt must be set to DTNIL).
  181. */
  182. /* The maximum size of a DR. Must be a multiple of CBBK. */
  183. #define CBKDRMAX 32
  184. #define CBDRMAX (CBKDRMAX * CBBK)
  185. /* The size of the header. */
  186. #define CBDRHEAD (sizeof (SINT) + sizeof (DT) + sizeof (SINT) + sizeof (SINT) + sizeof (SINT))
  187. /* The count of bytes allocatable for the notes and the tqr. */
  188. #define CBDRDATAMAX (CBDRMAX - CBDRHEAD)
  189. /* The count of bytes available for the tqr. */
  190. #define CBTQRMAX (CBDRDATAMAX - CBNOTESMAX)
  191. typedef struct
  192. {
  193. SINT wReserved; /* Reserved for future use - written out
  194. as 0.
  195. */
  196. DT dt; /* The associated dt. DTNIL means this
  197. DR is not in use.
  198. */
  199. SINT fDirty; /* TRUE if modifications have been made. */
  200. WORD cbNotes; /* Length of notes. */
  201. WORD cbTqr; /* Length of tqr. */
  202. BYTE rgbData [CBDRDATAMAX]; /* Room for the notes and the tqr. */
  203. } DR; /*** DR - Date Record */
  204. /* !!! WARNING END */
  205. #define CDR 3 /* The number of DRs in memory. */
  206. #define IDRNIL (WORD)0xFFFF /* An inpossible idr. */
  207. /* The maximum length of a file specification in DOS 3.0, including
  208. the device, directories, filename, and extension.
  209. */
  210. #define CCHFILESPECMAX 128
  211. #define CCHFILTERMAX 64 /* max. length of filter string for Fileopen */
  212. /* Filename (8) plus period (1) plus extension (3). */
  213. #define CCHFILENAMEANDEXTMAX 12
  214. /* Enough room for "Calendar - filename.cal" plus the terminator (which
  215. is included in CCHSZCALENDARDASH).
  216. */
  217. #define CCHSZWINDOWTEXTMAX (CCHSZCALENDARDASH + CCHFILENAMEANDEXTMAX)
  218. /* The sizes of the items in the header BK. */
  219. #define CBMAGIC 8
  220. #define CBCDD sizeof (SINT)
  221. #define CBMINEARLYRING sizeof (SINT)
  222. #define CBFSOUND sizeof (SINT)
  223. #define CBMDINTERVAL sizeof (SINT)
  224. #define CBMININTERVAL sizeof (SINT)
  225. #define CBFHOUR24 sizeof (SINT)
  226. #define CBTMSTART sizeof (TM)
  227. /* Offsets into the file header BK. */
  228. #define OBMAGIC 0
  229. #define OBCDD (OBMAGIC + CBMAGIC)
  230. #define OBMINEARLYRING (OBCDD + CBCDD)
  231. #define OBFSOUND (OBMINEARLYRING + CBMINEARLYRING)
  232. #define OBMDINTERVAL (OBFSOUND + CBFSOUND)
  233. #define OBMININTERVAL (OBMDINTERVAL + CBMDINTERVAL)
  234. #define OBFHOUR24 (OBMININTERVAL + CBMININTERVAL)
  235. #define OBTMSTART (OBFHOUR24 + CBFHOUR24)
  236. #define CBMONTHARRAY 56 /* Number of bytes in the month array. was 49 */
  237. #define GRAYOUT (DWORD)0x00FA0089 /* dest = dest OR pattern */
  238. #define CCHMONTH 20 /* The longest month name. */
  239. #define CCHYEAR 4 /* Chars in a year (e.g., 1985). */
  240. #define CCHTIMESZ 12 /* Absolute maximum number of chars in a zero
  241. terminated time string, taking into account
  242. international formats. 4 plus space plus
  243. 6 CHAR AM/PM string plus 0 at end.
  244. */
  245. #define SAMPLETIME 600 /* arbitrary time used for calculating
  246. length of a time string in daymode */
  247. #define CCHDATEDISP 64 /* The number of characters in a zero
  248. terminated ASCII date string.
  249. 30 is large enough for US style
  250. strings, so 64 ought to do it for all
  251. else.
  252. */
  253. #define CCHBUFMAX 256
  254. #define LRMARGINMAX 30 /* max. allowable left+right margin */
  255. #define TBMARGINMAX 15 /* max. allowabe top+bottom margin */
  256. #define CCHDASHDATE 11 /* Maximum length of zero terminated
  257. dashed date string. For example,
  258. "10-28-1985" (10 + zero byte).
  259. */
  260. #define MAXHDRFTRLENGTH 80 /* maximum length of header/footer */
  261. #define MARK_BOX 128 /* Bit indicating the date is marked. */
  262. #define MARK_PARENTHESES 256 /* Bit indicating the date is marked. */
  263. #define MARK_CIRCLE 512 /* Bit indicating the date is marked. */
  264. #define MARK_CROSS 1024 /* Bit indicating the date is marked. */
  265. #define MARK_UNDERSCORE 2048 /* Bit indicating the date is marked. */
  266. #define TODAY 64 /* Bit indicating the date is today. */
  267. #define CLEARMARKEDBITS 127 /* bit mask for clearing marked bits */
  268. #define SCROLLMONTHLAST 1439 /* Can scroll from 0 to SCROLLMONTHLAST while
  269. in month mode. (2099 - 1980 + 1) * 12 - 1.
  270. */
  271. #define TWELVEHOURS 720 /* number of minutes in half a day */
  272. #define MDINTERVAL15 0 /* Interval is 15 minutes. */
  273. #define MDINTERVAL30 1 /* Interval is 30 minutes. */
  274. #define MDINTERVAL60 2 /* Interval is 60 minutes. */
  275. #define LNNIL (LN)-1 /* An invalid ln. */
  276. #define ALARMBEEP 0 /* Value sent to MessageBeep. */
  277. #define CALARMBEEPS 4 /* The total number of beeps in an alarm. */
  278. /* Menu command ids. */
  279. #define IDCM_NEW 0
  280. #define IDCM_OPEN 1
  281. #define IDCM_SAVE 2
  282. #define IDCM_SAVEAS 3
  283. #define IDCM_PRINT 4
  284. #define IDCM_REMOVE 5
  285. #define IDCM_CUT 6
  286. #define IDCM_COPY 7
  287. #define IDCM_PASTE 8
  288. #define IDCM_DAY 9
  289. #define IDCM_MONTH 10
  290. #define IDCM_TODAY 11
  291. #define IDCM_PREVIOUS 12
  292. #define IDCM_NEXT 13
  293. #define IDCM_DATE 14
  294. #define IDCM_SET 15
  295. #define IDCM_CONTROLS 16
  296. #define IDCM_MARK 17
  297. #define IDCM_SPECIALTIME 18
  298. #define IDCM_DAYSETTINGS 19
  299. #define IDCM_ABOUT 20
  300. #define IDCM_DEL 21
  301. #define IDCM_EXIT 22
  302. /* 26-Mar-1987 */
  303. #define IDCM_START 23
  304. #define IDCM_START12 24
  305. /* 18-Nov-88 page setup and help menu ids */
  306. #define IDCM_PAGESETUP 132
  307. #define IDCM_PRINTERSETUP 100
  308. #define IDCM_ACTIVEWINDOW 134
  309. /* Standard IDS */
  310. #define IDCM_SEARCH 33
  311. #define IDCM_USINGHELP 40
  312. #define IDCM_HELP 41
  313. /* Dialog ids.
  314. !!! WARNING - The dialog ids are also used to index vrglpfnDialog
  315. so they must be consecutive integers starting at 1, and must match
  316. the entries in vrglpfnDialog. Apparently a dialog id of 0 is unacceptable,
  317. so they begin with 1, and we subtract 1 to get the index into
  318. vrglpfnDialog.
  319. */
  320. #define CIDD 10 /* The number of dialog ids in
  321. vrglpfnDialog. Changed from 9 to
  322. 10 on 11/8/88 on adding new dialog
  323. box for multiple symbol day marking.
  324. */
  325. #define IDD_SAVEAS 1
  326. #define IDD_PRINT 2
  327. #define IDD_REMOVE 3
  328. #define IDD_DATE 4
  329. #define IDD_CONTROLS 5
  330. #define IDD_SPECIALTIME 6
  331. #define IDD_DAYSETTINGS 7
  332. #define IDD_ABOUT 8
  333. #define IDD_ACKALARMS 9
  334. #define IDD_PAGESETUP 10 /* for the new Page Setup Dialog */
  335. #define IDD_OPEN 11 /* The open dialog is not included in
  336. * vrglpfnDialog since it is taken
  337. * care of by dlgopen.c.
  338. */
  339. #define IDD_MARK 12 /* putting this in vrglpfnDialog and
  340. increasing CIDD did not work */
  341. #define IDD_ABORTPRINT 14 /* The abort print dialog is not included
  342. in vrglpfnDialog.
  343. */
  344. /* !!! WARNING END */
  345. /* Control ids */
  346. #define IDCN_IGNORE -1
  347. /* IDOK is 1, and IDCANCEL is 2 from windows.h */
  348. #define IDCN_EDIT 3
  349. #define IDCN_LISTBOX 4
  350. #define IDCN_PATH 5
  351. #define IDCN_FROMDATE 6
  352. #define IDCN_TODATE 7
  353. #define IDCN_EARLYRING 8
  354. #define IDCN_SOUND 9
  355. #define IDCN_INSERT 10
  356. #define IDCN_DELETE 11
  357. #define IDCN_MIN15 12
  358. #define IDCN_MIN30 13
  359. #define IDCN_MIN60 14
  360. #define IDCN_HOUR12 15
  361. #define IDCN_HOUR24 16
  362. #define IDCN_STARTINGTIME 17
  363. /* foll ids added 11/8/88 for multiple-symbol marking */
  364. #define IDCN_MARKBOX 18
  365. #define IDCN_MARKPARENTHESES 19
  366. #define IDCN_MARKCIRCLE 20
  367. #define IDCN_MARKCROSS 21
  368. #define IDCN_MARKUNDERSCORE 22
  369. #define IDCN_AM 23
  370. #define IDCN_PM 24
  371. #define IDCN_LISTBOXDIR 25 /* for the new Open File Dialog */
  372. #define IDCN_TEXT 26 /* for new Open File Dialog */
  373. #define IDCN_READONLY 27 /* for new Open File Dialog */
  374. /* Keep these in sequence. */
  375. /* for Page Setup Dialog */
  376. #define IDCN_EDITHEADER 28
  377. #define IDCN_EDITFOOTER 29
  378. #define IDCN_EDITMARGINLEFT 30
  379. #define IDCN_EDITMARGINRIGHT 31
  380. #define IDCN_EDITMARGINTOP 32
  381. #define IDCN_EDITMARGINBOT 33
  382. #define IDECQD 100 /* ID of appointment description
  383. edit control.
  384. */
  385. #define IDECNOTES 101 /* ID of notes area edit control. */
  386. #ifndef BUG_8560
  387. /* The Child window Id for the scrollbar control */
  388. #define IDHORZSCROLL 201
  389. #endif
  390. /* File ids.
  391. !!! WARNING - if the order of these is changed, the GIVEME string IDS must
  392. also be changed.
  393. */
  394. #define IDFILEORIGINAL 0
  395. #define IDFILECHANGE 1
  396. #define IDFILENEW 2
  397. #define CFILE 3 /* Number of files. */
  398. /* !!! WARNING END */
  399. #define CCHSZCALENDARDASH 50 /* Length of string "Calendar - ",
  400. including the termintor. If the
  401. string is changed in the .RC file,
  402. this must be changed accordingly.
  403. */
  404. /* String ids. */
  405. #define IDS_UNTITLED 0
  406. #define IDS_CALENDAR 1
  407. #define IDS_BADDATE 2
  408. #define IDS_BADDATERANGE 3
  409. #define IDS_BADTIME 4
  410. #define IDS_NOCREATECHANGEFILE 5
  411. #define IDS_NOCHANGEFILE 6
  412. #define IDS_ERRORWRITINGCHANGES 7
  413. #define IDS_ERRORREADINGDATE 8
  414. #define IDS_TIMETOSAVE 9
  415. #define IDS_OUTOFMEMORY 10
  416. #define IDS_RENAMEFAILED 11
  417. #define IDS_SAVEFAILED 12
  418. #define IDS_DISKFULL 13
  419. #define IDS_FILEEXISTS 14
  420. #define IDS_SAVECHANGES 15
  421. #define IDS_FILENOTFOUND 16
  422. #define IDS_NOTCALFILE 17
  423. #define IDS_CANNOTREADFILE 18
  424. #define IDS_BADEARLYRING 19
  425. #define IDS_NOTSPECIALTIME 20
  426. #define IDS_NOSUCHTIME 21
  427. #define IDS_TIMEALREADYINUSE 22
  428. #define IDS_CANNOTPRINT 23
  429. #define IDS_CALENDARDASH 24
  430. #define IDS_TOOMANYDATES 25
  431. #define IDS_DATEISFULL 26
  432. #define IDS_TEXTTRUNCATED 27
  433. /* The GIVEME strings must be ordered according to the order of the
  434. IDFILEs (which are defined earlier in this file).
  435. */
  436. #define IDS_GIVEMEFIRST 28
  437. #define IDS_GIVEMEORIGINAL 28
  438. #define IDS_GIVEMECHANGEFILE 29
  439. #define IDS_GIVEMENEW 30
  440. #define IDS_BADFILENAME 31
  441. #define IDS_NEDSTP 32
  442. #define IDS_NEMTP 33
  443. #define IDS_ALARMSYNC 34
  444. #define IDS_NOTIMER 35
  445. #define IDS_DATERANGE 36
  446. #define IDS_DATESUBRANGE 37
  447. #define IDS_TIMESUBRANGE 38
  448. #define IDS_NOCREATE 39
  449. #define IDS_MERGE1 40
  450. #define IDS_FILEEXTENSION 41
  451. #define IDS_FILEREADONLY 42 /* string id for Read Only error msg */
  452. #define IDS_BLANK 43 /* " " " a blank character */
  453. #define IDS_MARKCIRCLE 44 /* " " " a "o" mark symbol */
  454. #define IDS_MARKLEFTPAREN 45 /* " " " a "(" mark symbol */
  455. #define IDS_MARKRIGHTPAREN 46 /* " " " a ")" mark symbol */
  456. #define IDS_MARKCROSS 47 /* " " " a "*" mark symbol */
  457. #define IDS_PNAMEPREFIX 48 /* " " " "\\*" string */
  458. #define IDS_BLANKSTRING 49 /* string composed of blank characters */
  459. #define IDS_HELPFILE 50 /* Help filename */
  460. #define IDS_INCORRECTSYNTAX 51
  461. #define IDS_LETTERS 52 /* letters used in Page Setup */
  462. #define IDS_FILTERTEXT 53 /* Filter text for File/Open dialog */
  463. #define IDS_ALLFILES 54 /* more Filter text */
  464. #define IDS_OPENCAPTION 55 /* caption text for fileopen dlg */
  465. #define IDS_SAVEASCAPTION 56 /* caption text for saveas dlg */
  466. #define IDS_HEADER 100 /* Page Setup stuff. */
  467. #define IDS_FOOTER 101
  468. #define IDS_LEFT 102
  469. #define IDS_RIGHT 103
  470. #define IDS_TOP 104
  471. #define IDS_BOTTOM 105
  472. #define CSTRINGS 56 /* The number of strings loaded from the
  473. resource file.
  474. */
  475. #define CCHSTRINGSMAX 3500 /* The total length of all loaded strings
  476. must be less than or equal to this.
  477. If this is exceeded, CalInit will fail,
  478. preventing Calendar from running. If
  479. this should occur, CCHSTRINGSMAX should
  480. be increased as necessary and the initial
  481. heap size in CALENDAR.DEF should also
  482. be increased accordingly. was 2048
  483. */
  484. /* Message posted to self upon receiving activate message */
  485. #define CM_PROCALARMS WM_USER+100
  486. #ifndef RESOURCE
  487. /* Abbreviations for referencing the loaded strings. */
  488. #define vszUntitled vrgsz [IDS_UNTITLED]
  489. #define vszCalendar vrgsz [IDS_CALENDAR]
  490. #define vszBadDate vrgsz [IDS_BADDATE]
  491. #define vszBadDateRange vrgsz [IDS_BADDATERANGE]
  492. #define vszBadTime vrgsz [IDS_BADTIME]
  493. #define vszNoCreateChangeFile vrgsz [IDS_NOCREATECHANGEFILE]
  494. #define vszNoChangeFile vrgsz [IDS_NOCHANGEFILE]
  495. #define vszErrorWritingChanges vrgsz [IDS_ERRORWRITINGCHANGES]
  496. #define vszErrorReadingDate vrgsz [IDS_ERRORREADINGDATE]
  497. #define vszTimeToSave vrgsz [IDS_TIMETOSAVE]
  498. #define vszOutOfMemory vrgsz [IDS_OUTOFMEMORY]
  499. #define vszRenameFailed vrgsz [IDS_RENAMEFAILED]
  500. #define vszFileExtension vrgsz [IDS_FILEEXTENSION]
  501. #define vszSaveFailed vrgsz [IDS_SAVEFAILED]
  502. #define vszDiskFull vrgsz [IDS_DISKFULL]
  503. #define vszFileExists vrgsz [IDS_FILEEXISTS]
  504. #define vszSaveChanges vrgsz [IDS_SAVECHANGES]
  505. #define vszFileNotFound vrgsz [IDS_FILENOTFOUND]
  506. #define vszNotCalFile vrgsz [IDS_NOTCALFILE]
  507. #define vszCannotReadFile vrgsz [IDS_CANNOTREADFILE]
  508. #define vszBadEarlyRing vrgsz [IDS_BADEARLYRING]
  509. #define vszNotSpecialTime vrgsz [IDS_NOTSPECIALTIME]
  510. #define vszNoSuchTime vrgsz [IDS_NOSUCHTIME]
  511. #define vszTimeAlreadyInUse vrgsz [IDS_TIMEALREADYINUSE]
  512. #define vszCannotPrint vrgsz [IDS_CANNOTPRINT]
  513. #define vszCalendarDash vrgsz [IDS_CALENDARDASH]
  514. #define vszTooManyDates vrgsz [IDS_TOOMANYDATES]
  515. #define vszDateIsFull vrgsz [IDS_DATEISFULL]
  516. #define vszTextTruncated vrgsz [IDS_TEXTTRUNCATED]
  517. #define vszBadFileName vrgsz [IDS_BADFILENAME]
  518. #define vszAlarmSync vrgsz [IDS_ALARMSYNC]
  519. #define vszFileReadOnly vrgsz [IDS_FILEREADONLY]
  520. #define vszBlank vrgsz [IDS_BLANK]
  521. #define vszPathnamePrefix vrgsz [IDS_PNAMEPREFIX]
  522. #define vszMarkLeftParen vrgsz [IDS_MARKLEFTPAREN]
  523. #define vszMarkRightParen vrgsz [IDS_MARKRIGHTPAREN]
  524. #define vszMarkCircle vrgsz [IDS_MARKCIRCLE]
  525. #define vszMarkCross vrgsz [IDS_MARKCROSS]
  526. #define vszBlankString vrgsz [IDS_BLANKSTRING]
  527. #define vszHelpFile vrgsz [IDS_HELPFILE]
  528. #define vszIncorrectSyntax vrgsz [IDS_INCORRECTSYNTAX]
  529. #define vszTooManyDates vrgsz [IDS_TOOMANYDATES]
  530. #define vszDateIsFull vrgsz [IDS_DATEISFULL]
  531. #define vszTextTruncated vrgsz [IDS_TEXTTRUNCATED]
  532. #define vszFilterText vrgsz [IDS_FILTERTEXT]
  533. #define vszAllFiles vrgsz [IDS_ALLFILES]
  534. #define vszOpenCaption vrgsz [IDS_OPENCAPTION]
  535. #define vszSaveasCaption vrgsz [IDS_SAVEASCAPTION]
  536. /* This must go at the end since it may use typedefs from cal.h */
  537. #include "declare.h"
  538. #include "..\\common\\common.h"
  539. #endif