Improved RTF export.
[wine] / dlls / riched20 / rtf.h
1 #ifndef _RTF
2 #define _RTF
3
4 #include <stdarg.h>
5 #include <stdio.h>
6
7 #include "windef.h"
8 #include "winbase.h"
9 #include "wingdi.h"
10 #include "winuser.h"
11 #include "richedit.h"
12
13
14 /* The following defines are automatically generated.  Do not edit. */
15
16
17 /* These must be sequential beginning from zero */
18
19 #define rtfSC_nothing   0
20 #define rtfSC_space     1
21 #define rtfSC_exclam    2
22 #define rtfSC_quotedbl  3
23 #define rtfSC_numbersign        4
24 #define rtfSC_dollar    5
25 #define rtfSC_percent   6
26 #define rtfSC_ampersand 7
27 #define rtfSC_quoteright        8
28 #define rtfSC_parenleft 9
29 #define rtfSC_parenright        10
30 #define rtfSC_asterisk  11
31 #define rtfSC_plus      12
32 #define rtfSC_comma     13
33 #define rtfSC_hyphen    14
34 #define rtfSC_period    15
35 #define rtfSC_slash     16
36 #define rtfSC_zero      17
37 #define rtfSC_one       18
38 #define rtfSC_two       19
39 #define rtfSC_three     20
40 #define rtfSC_four      21
41 #define rtfSC_five      22
42 #define rtfSC_six       23
43 #define rtfSC_seven     24
44 #define rtfSC_eight     25
45 #define rtfSC_nine      26
46 #define rtfSC_colon     27
47 #define rtfSC_semicolon 28
48 #define rtfSC_less      29
49 #define rtfSC_equal     30
50 #define rtfSC_greater   31
51 #define rtfSC_question  32
52 #define rtfSC_at        33
53 #define rtfSC_A 34
54 #define rtfSC_B 35
55 #define rtfSC_C 36
56 #define rtfSC_D 37
57 #define rtfSC_E 38
58 #define rtfSC_F 39
59 #define rtfSC_G 40
60 #define rtfSC_H 41
61 #define rtfSC_I 42
62 #define rtfSC_J 43
63 #define rtfSC_K 44
64 #define rtfSC_L 45
65 #define rtfSC_M 46
66 #define rtfSC_N 47
67 #define rtfSC_O 48
68 #define rtfSC_P 49
69 #define rtfSC_Q 50
70 #define rtfSC_R 51
71 #define rtfSC_S 52
72 #define rtfSC_T 53
73 #define rtfSC_U 54
74 #define rtfSC_V 55
75 #define rtfSC_W 56
76 #define rtfSC_X 57
77 #define rtfSC_Y 58
78 #define rtfSC_Z 59
79 #define rtfSC_bracketleft       60
80 #define rtfSC_backslash 61
81 #define rtfSC_bracketright      62
82 #define rtfSC_asciicircum       63
83 #define rtfSC_underscore        64
84 #define rtfSC_quoteleft 65
85 #define rtfSC_a 66
86 #define rtfSC_b 67
87 #define rtfSC_c 68
88 #define rtfSC_d 69
89 #define rtfSC_e 70
90 #define rtfSC_f 71
91 #define rtfSC_g 72
92 #define rtfSC_h 73
93 #define rtfSC_i 74
94 #define rtfSC_j 75
95 #define rtfSC_k 76
96 #define rtfSC_l 77
97 #define rtfSC_m 78
98 #define rtfSC_n 79
99 #define rtfSC_o 80
100 #define rtfSC_p 81
101 #define rtfSC_q 82
102 #define rtfSC_r 83
103 #define rtfSC_s 84
104 #define rtfSC_t 85
105 #define rtfSC_u 86
106 #define rtfSC_v 87
107 #define rtfSC_w 88
108 #define rtfSC_x 89
109 #define rtfSC_y 90
110 #define rtfSC_z 91
111 #define rtfSC_braceleft 92
112 #define rtfSC_bar       93
113 #define rtfSC_braceright        94
114 #define rtfSC_asciitilde        95
115 #define rtfSC_exclamdown        96
116 #define rtfSC_cent      97
117 #define rtfSC_sterling  98
118 #define rtfSC_fraction  99
119 #define rtfSC_yen       100
120 #define rtfSC_florin    101
121 #define rtfSC_section   102
122 #define rtfSC_currency  103
123 #define rtfSC_quotedblleft      104
124 #define rtfSC_guillemotleft     105
125 #define rtfSC_guilsinglleft     106
126 #define rtfSC_guilsinglright    107
127 #define rtfSC_fi        108
128 #define rtfSC_fl        109
129 #define rtfSC_endash    110
130 #define rtfSC_dagger    111
131 #define rtfSC_daggerdbl 112
132 #define rtfSC_periodcentered    113
133 #define rtfSC_paragraph 114
134 #define rtfSC_bullet    115
135 #define rtfSC_quotesinglbase    116
136 #define rtfSC_quotedblbase      117
137 #define rtfSC_quotedblright     118
138 #define rtfSC_guillemotright    119
139 #define rtfSC_ellipsis  120
140 #define rtfSC_perthousand       121
141 #define rtfSC_questiondown      122
142 #define rtfSC_grave     123
143 #define rtfSC_acute     124
144 #define rtfSC_circumflex        125
145 #define rtfSC_tilde     126
146 #define rtfSC_macron    127
147 #define rtfSC_breve     128
148 #define rtfSC_dotaccent 129
149 #define rtfSC_dieresis  130
150 #define rtfSC_ring      131
151 #define rtfSC_cedilla   132
152 #define rtfSC_hungarumlaut      133
153 #define rtfSC_ogonek    134
154 #define rtfSC_caron     135
155 #define rtfSC_emdash    136
156 #define rtfSC_AE        137
157 #define rtfSC_ordfeminine       138
158 #define rtfSC_Lslash    139
159 #define rtfSC_Oslash    140
160 #define rtfSC_OE        141
161 #define rtfSC_ordmasculine      142
162 #define rtfSC_ae        143
163 #define rtfSC_dotlessi  144
164 #define rtfSC_lslash    145
165 #define rtfSC_oslash    146
166 #define rtfSC_oe        147
167 #define rtfSC_germandbls        148
168 #define rtfSC_Aacute    149
169 #define rtfSC_Acircumflex       150
170 #define rtfSC_Adieresis 151
171 #define rtfSC_Agrave    152
172 #define rtfSC_Aring     153
173 #define rtfSC_Atilde    154
174 #define rtfSC_Ccedilla  155
175 #define rtfSC_Eacute    156
176 #define rtfSC_Ecircumflex       157
177 #define rtfSC_Edieresis 158
178 #define rtfSC_Egrave    159
179 #define rtfSC_Eth       160
180 #define rtfSC_Iacute    161
181 #define rtfSC_Icircumflex       162
182 #define rtfSC_Idieresis 163
183 #define rtfSC_Igrave    164
184 #define rtfSC_Ntilde    165
185 #define rtfSC_Oacute    166
186 #define rtfSC_Ocircumflex       167
187 #define rtfSC_Odieresis 168
188 #define rtfSC_Ograve    169
189 #define rtfSC_Otilde    170
190 #define rtfSC_Scaron    171
191 #define rtfSC_Thorn     172
192 #define rtfSC_Uacute    173
193 #define rtfSC_Ucircumflex       174
194 #define rtfSC_Udieresis 175
195 #define rtfSC_Ugrave    176
196 #define rtfSC_Yacute    177
197 #define rtfSC_Ydieresis 178
198 #define rtfSC_aacute    179
199 #define rtfSC_acircumflex       180
200 #define rtfSC_adieresis 181
201 #define rtfSC_agrave    182
202 #define rtfSC_aring     183
203 #define rtfSC_atilde    184
204 #define rtfSC_brokenbar 185
205 #define rtfSC_ccedilla  186
206 #define rtfSC_copyright 187
207 #define rtfSC_degree    188
208 #define rtfSC_divide    189
209 #define rtfSC_eacute    190
210 #define rtfSC_ecircumflex       191
211 #define rtfSC_edieresis 192
212 #define rtfSC_egrave    193
213 #define rtfSC_eth       194
214 #define rtfSC_iacute    195
215 #define rtfSC_icircumflex       196
216 #define rtfSC_idieresis 197
217 #define rtfSC_igrave    198
218 #define rtfSC_logicalnot        199
219 #define rtfSC_minus     200
220 #define rtfSC_multiply  201
221 #define rtfSC_ntilde    202
222 #define rtfSC_oacute    203
223 #define rtfSC_ocircumflex       204
224 #define rtfSC_odieresis 205
225 #define rtfSC_ograve    206
226 #define rtfSC_onehalf   207
227 #define rtfSC_onequarter        208
228 #define rtfSC_onesuperior       209
229 #define rtfSC_otilde    210
230 #define rtfSC_plusminus 211
231 #define rtfSC_registered        212
232 #define rtfSC_thorn     213
233 #define rtfSC_threequarters     214
234 #define rtfSC_threesuperior     215
235 #define rtfSC_trademark 216
236 #define rtfSC_twosuperior       217
237 #define rtfSC_uacute    218
238 #define rtfSC_ucircumflex       219
239 #define rtfSC_udieresis 220
240 #define rtfSC_ugrave    221
241 #define rtfSC_yacute    222
242 #define rtfSC_ydieresis 223
243 #define rtfSC_Alpha     224
244 #define rtfSC_Beta      225
245 #define rtfSC_Chi       226
246 #define rtfSC_Delta     227
247 #define rtfSC_Epsilon   228
248 #define rtfSC_Phi       229
249 #define rtfSC_Gamma     230
250 #define rtfSC_Eta       231
251 #define rtfSC_Iota      232
252 #define rtfSC_Kappa     233
253 #define rtfSC_Lambda    234
254 #define rtfSC_Mu        235
255 #define rtfSC_Nu        236
256 #define rtfSC_Omicron   237
257 #define rtfSC_Pi        238
258 #define rtfSC_Theta     239
259 #define rtfSC_Rho       240
260 #define rtfSC_Sigma     241
261 #define rtfSC_Tau       242
262 #define rtfSC_Upsilon   243
263 #define rtfSC_varUpsilon        244
264 #define rtfSC_Omega     245
265 #define rtfSC_Xi        246
266 #define rtfSC_Psi       247
267 #define rtfSC_Zeta      248
268 #define rtfSC_alpha     249
269 #define rtfSC_beta      250
270 #define rtfSC_chi       251
271 #define rtfSC_delta     252
272 #define rtfSC_epsilon   253
273 #define rtfSC_phi       254
274 #define rtfSC_varphi    255
275 #define rtfSC_gamma     256
276 #define rtfSC_eta       257
277 #define rtfSC_iota      258
278 #define rtfSC_kappa     259
279 #define rtfSC_lambda    260
280 #define rtfSC_mu        261
281 #define rtfSC_nu        262
282 #define rtfSC_omicron   263
283 #define rtfSC_pi        264
284 #define rtfSC_varpi     265
285 #define rtfSC_theta     266
286 #define rtfSC_vartheta  267
287 #define rtfSC_rho       268
288 #define rtfSC_sigma     269
289 #define rtfSC_varsigma  270
290 #define rtfSC_tau       271
291 #define rtfSC_upsilon   272
292 #define rtfSC_omega     273
293 #define rtfSC_xi        274
294 #define rtfSC_psi       275
295 #define rtfSC_zeta      276
296 #define rtfSC_nobrkspace        277
297 #define rtfSC_nobrkhyphen       278
298 #define rtfSC_lessequal 279
299 #define rtfSC_greaterequal      280
300 #define rtfSC_infinity  281
301 #define rtfSC_integral  282
302 #define rtfSC_notequal  283
303 #define rtfSC_radical   284
304 #define rtfSC_radicalex 285
305 #define rtfSC_approxequal       286
306 #define rtfSC_apple     287
307 #define rtfSC_partialdiff       288
308 #define rtfSC_opthyphen 289
309 #define rtfSC_formula   290
310 #define rtfSC_lozenge   291
311 #define rtfSC_universal 292
312 #define rtfSC_existential       293
313 #define rtfSC_suchthat  294
314 #define rtfSC_congruent 295
315 #define rtfSC_therefore 296
316 #define rtfSC_perpendicular     297
317 #define rtfSC_minute    298
318 #define rtfSC_club      299
319 #define rtfSC_diamond   300
320 #define rtfSC_heart     301
321 #define rtfSC_spade     302
322 #define rtfSC_arrowboth 303
323 #define rtfSC_arrowleft 304
324 #define rtfSC_arrowup   305
325 #define rtfSC_arrowright        306
326 #define rtfSC_arrowdown 307
327 #define rtfSC_second    308
328 #define rtfSC_proportional      309
329 #define rtfSC_equivalence       310
330 #define rtfSC_arrowvertex       311
331 #define rtfSC_arrowhorizex      312
332 #define rtfSC_carriagereturn    313
333 #define rtfSC_aleph     314
334 #define rtfSC_Ifraktur  315
335 #define rtfSC_Rfraktur  316
336 #define rtfSC_weierstrass       317
337 #define rtfSC_circlemultiply    318
338 #define rtfSC_circleplus        319
339 #define rtfSC_emptyset  320
340 #define rtfSC_intersection      321
341 #define rtfSC_union     322
342 #define rtfSC_propersuperset    323
343 #define rtfSC_reflexsuperset    324
344 #define rtfSC_notsubset 325
345 #define rtfSC_propersubset      326
346 #define rtfSC_reflexsubset      327
347 #define rtfSC_element   328
348 #define rtfSC_notelement        329
349 #define rtfSC_angle     330
350 #define rtfSC_gradient  331
351 #define rtfSC_product   332
352 #define rtfSC_logicaland        333
353 #define rtfSC_logicalor 334
354 #define rtfSC_arrowdblboth      335
355 #define rtfSC_arrowdblleft      336
356 #define rtfSC_arrowdblup        337
357 #define rtfSC_arrowdblright     338
358 #define rtfSC_arrowdbldown      339
359 #define rtfSC_angleleft 340
360 #define rtfSC_registersans      341
361 #define rtfSC_copyrightsans     342
362 #define rtfSC_trademarksans     343
363 #define rtfSC_angleright        344
364 #define rtfSC_mathplus  345
365 #define rtfSC_mathminus 346
366 #define rtfSC_mathasterisk      347
367 #define rtfSC_mathnumbersign    348
368 #define rtfSC_dotmath   349
369 #define rtfSC_mathequal 350
370 #define rtfSC_mathtilde 351
371
372 #define rtfSC_MaxChar   352
373 /*
374  * rtf.h - RTF document processing stuff.  Release 1.10.
375  */
376
377
378 /*
379  * Twentieths of a point (twips) per inch (Many RTF measurements
380  * are in twips per inch (tpi) units).  Assumes 72 points/inch.
381  */
382
383 # define        rtfTpi          1440
384
385 /*
386  * RTF buffer size (avoids BUFSIZ, which differs across systems)
387  */
388
389 # define        rtfBufSiz       1024
390
391 /*
392  * Tokens are associated with up to three classification numbers:
393  *
394  * Class number: Broadest (least detailed) breakdown.  For programs
395  *      that only care about gross token distinctions.
396  * Major/minor numbers: Within their class, tokens have a major
397  *      number, and may also have a minor number to further
398  *      distinquish tokens with the same major number.
399  *
400  *      *** Class, major and minor token numbers are all >= 0 ***
401  *
402  * Tokens that can't be classified are put in the "unknown" class.
403  * For such, the major and minor numbers are meaningless, although
404  * rtfTextBuf may be of interest then.
405  *
406  * Text tokens are a single character, and the major number indicates
407  * the character value (note: can be non-ascii, i.e., greater than 127).
408  * There is no minor number.
409  *
410  * Control symbols may have a parameter value, which will be found in
411  * rtfParam.  If no parameter was given, rtfParam = rtfNoParam.
412  *
413  * RTFGetToken() return value is the class number, but it sets all the
414  * global token vars.
415  *
416  * rtfEOF is a fake token used by the reader; the writer never sees
417  * it (except in the token reader hook, if it installs one).
418  */
419
420
421 # ifdef THINK_C
422 # define        rtfNoParam      (-32768)        /* 16-bit max. neg. value */
423 # endif
424 # ifndef rtfNoParam
425 # define        rtfNoParam      (-1000000)
426 # endif
427
428
429
430
431 /*
432  * For some reason, the no-style number is 222
433  */
434
435 # define        rtfNoStyleNum           222
436 # define        rtfNormalStyleNum       0
437
438
439 /*
440  * Token classes (must be zero-based and sequential)
441  */
442
443 # define        rtfUnknown      0
444 # define        rtfGroup        1
445 # define        rtfText         2
446 # define        rtfControl      3
447 # define        rtfEOF          4
448 # define        rtfMaxClass     5       /* highest class + 1 */
449
450 /*
451  * Group class major numbers
452  */
453
454 # define        rtfBeginGroup   0
455 # define        rtfEndGroup     1
456
457 /*
458  * Control class major and minor numbers.
459  */
460
461 # define        rtfVersion      0
462
463 # define        rtfDefFont      1
464
465 # define        rtfCharSet      2
466 # define                rtfAnsiCharSet          0
467 # define                rtfMacCharSet           1
468 # define                rtfPcCharSet            2
469 # define                rtfPcaCharSet           3
470
471
472 /* destination minor numbers should be zero-based and sequential */
473
474 # define        rtfDestination  3
475 # define                rtfFontTbl              0
476 # define                rtfFontAltName          1       /* new in 1.10 */
477 # define                rtfEmbeddedFont         2       /* new in 1.10 */
478 # define                rtfFontFile             3       /* new in 1.10 */
479 # define                rtfFileTbl              4       /* new in 1.10 */
480 # define                rtfFileInfo             5       /* new in 1.10 */
481 # define                rtfColorTbl             6
482 # define                rtfStyleSheet           7
483 # define                rtfKeyCode              8
484 # define                rtfRevisionTbl          9       /* new in 1.10 */
485 # define                rtfInfo                 10
486 # define                rtfITitle               11
487 # define                rtfISubject             12
488 # define                rtfIAuthor              13
489 # define                rtfIOperator            14
490 # define                rtfIKeywords            15
491 # define                rtfIComment             16
492 # define                rtfIVersion             17
493 # define                rtfIDoccomm             18
494 # define                rtfIVerscomm            19
495 # define                rtfNextFile             20      /* reclassified in 1.10 */
496 # define                rtfTemplate             21      /* reclassified in 1.10 */
497 # define                rtfFNSep                22
498 # define                rtfFNContSep            23
499 # define                rtfFNContNotice         24
500 # define                rtfENSep                25      /* new in 1.10 */
501 # define                rtfENContSep            26      /* new in 1.10 */
502 # define                rtfENContNotice         27      /* new in 1.10 */
503 # define                rtfPageNumLevel         28      /* new in 1.10 */
504 # define                rtfParNumLevelStyle     29      /* new in 1.10 */
505 # define                rtfHeader               30
506 # define                rtfFooter               31
507 # define                rtfHeaderLeft           32
508 # define                rtfHeaderRight          33
509 # define                rtfHeaderFirst          34
510 # define                rtfFooterLeft           35
511 # define                rtfFooterRight          36
512 # define                rtfFooterFirst          37
513 # define                rtfParNumText           38      /* new in 1.10 */
514 # define                rtfParNumbering         39      /* new in 1.10 */
515 # define                rtfParNumTextAfter      40      /* new in 1.10 */
516 # define                rtfParNumTextBefore     41      /* new in 1.10 */
517 # define                rtfBookmarkStart        42
518 # define                rtfBookmarkEnd          43
519 # define                rtfPict                 44
520 # define                rtfObject               45
521 # define                rtfObjClass             46
522 # define                rtfObjName              47
523 # define                rtfObjTime              48      /* new in 1.10 */
524 # define                rtfObjData              49
525 # define                rtfObjAlias             50
526 # define                rtfObjSection           51
527 # define                rtfObjResult            52
528 # define                rtfObjItem              53      /* new in 1.10 */
529 # define                rtfObjTopic             54      /* new in 1.10 */
530 # define                rtfDrawObject           55      /* new in 1.10 */
531 # define                rtfFootnote             56
532 # define                rtfAnnotRefStart        57      /* new in 1.10 */
533 # define                rtfAnnotRefEnd          58      /* new in 1.10 */
534 # define                rtfAnnotID              59      /* reclassified in 1.10 */
535 # define                rtfAnnotAuthor          60      /* new in 1.10 */
536 # define                rtfAnnotation           61      /* reclassified in 1.10 */
537 # define                rtfAnnotRef             62      /* new in 1.10 */
538 # define                rtfAnnotTime            63      /* new in 1.10 */
539 # define                rtfAnnotIcon            64      /* new in 1.10 */
540 # define                rtfField                65
541 # define                rtfFieldInst            66
542 # define                rtfFieldResult          67
543 # define                rtfDataField            68      /* new in 1.10 */
544 # define                rtfIndex                69
545 # define                rtfIndexText            70
546 # define                rtfIndexRange           71
547 # define                rtfTOC                  72
548 # define                rtfNeXTGraphic          73
549 # define                rtfGenerator            74
550 # define                rtfMaxDestination       75      /* highest dest + 1 */
551
552 # define        rtfFontFamily   4
553 # define                rtfFFNil                0
554 # define                rtfFFRoman              1
555 # define                rtfFFSwiss              2
556 # define                rtfFFModern             3
557 # define                rtfFFScript             4
558 # define                rtfFFDecor              5
559 # define                rtfFFTech               6
560 # define                rtfFFBidirectional      7       /* new in 1.10 */
561
562 # define        rtfColorName    5
563 # define                rtfRed                  0
564 # define                rtfGreen                1
565 # define                rtfBlue                 2
566
567 # define        rtfSpecialChar  6
568         /* special chars seen in \info destination */
569 # define                rtfIIntVersion          0
570 # define                rtfICreateTime          1
571 # define                rtfIRevisionTime        2
572 # define                rtfIPrintTime           3
573 # define                rtfIBackupTime          4
574 # define                rtfIEditTime            5
575 # define                rtfIYear                6
576 # define                rtfIMonth               7
577 # define                rtfIDay                 8
578 # define                rtfIHour                9
579 # define                rtfIMinute              10
580 # define                rtfISecond              11      /* new in 1.10 */
581 # define                rtfINPages              12
582 # define                rtfINWords              13
583 # define                rtfINChars              14
584 # define                rtfIIntID               15
585         /* other special chars */
586 # define                rtfCurHeadDate          16
587 # define                rtfCurHeadDateLong      17
588 # define                rtfCurHeadDateAbbrev    18
589 # define                rtfCurHeadTime          19
590 # define                rtfCurHeadPage          20
591 # define                rtfSectNum              21      /* new in 1.10 */
592 # define                rtfCurFNote             22
593 # define                rtfCurAnnotRef          23
594 # define                rtfFNoteSep             24
595 # define                rtfFNoteCont            25
596 # define                rtfCell                 26
597 # define                rtfRow                  27
598 # define                rtfPar                  28
599 # define                rtfSect                 29
600 # define                rtfPage                 30
601 # define                rtfColumn               31
602 # define                rtfLine                 32
603 # define                rtfSoftPage             33      /* new in 1.10 */
604 # define                rtfSoftColumn           34      /* new in 1.10 */
605 # define                rtfSoftLine             35      /* new in 1.10 */
606 # define                rtfSoftLineHt           36      /* new in 1.10 */
607 # define                rtfTab                  37
608 # define                rtfEmDash               38
609 # define                rtfEnDash               39
610 # define                rtfEmSpace              40      /* new in 1.10 */
611 # define                rtfEnSpace              41      /* new in 1.10 */
612 # define                rtfBullet               42
613 # define                rtfLQuote               43
614 # define                rtfRQuote               44
615 # define                rtfLDblQuote            45
616 # define                rtfRDblQuote            46
617 # define                rtfFormula              47
618 # define                rtfNoBrkSpace           49
619 # define                rtfNoReqHyphen          50
620 # define                rtfNoBrkHyphen          51
621 # define                rtfOptDest              52
622 # define                rtfLTRMark              53      /* new in 1.10 */
623 # define                rtfRTLMark              54      /* new in 1.10 */
624 # define                rtfNoWidthJoiner        55      /* new in 1.10 */
625 # define                rtfNoWidthNonJoiner     56      /* new in 1.10 */
626 # define                rtfCurHeadPict          57      /* valid? */
627 /*# define              rtfCurAnnot             58*/    /* apparently not used */
628
629 # define        rtfStyleAttr    7
630 # define                rtfAdditive             0       /* new in 1.10 */
631 # define                rtfBasedOn              1
632 # define                rtfNext                 2
633
634 # define        rtfDocAttr      8
635 # define                rtfDefTab               0
636 # define                rtfHyphHotZone          1
637 # define                rtfHyphConsecLines      2       /* new in 1.10 */
638 # define                rtfHyphCaps             3       /* new in 1.10 */
639 # define                rtfHyphAuto             4       /* new in 1.10 */
640 # define                rtfLineStart            5
641 # define                rtfFracWidth            6
642 # define                rtfMakeBackup           7
643 # define                rtfRTFDefault           8
644 # define                rtfPSOverlay            9
645 # define                rtfDocTemplate          10      /* new in 1.10 */
646 # define                rtfDefLanguage          11
647 # define                rtfFENoteType           12      /* new in 1.10 */
648 # define                rtfFNoteEndSect         13
649 # define                rtfFNoteEndDoc          14
650 # define                rtfFNoteText            15
651 # define                rtfFNoteBottom          16
652 # define                rtfENoteEndSect         17      /* new in 1.10 */
653 # define                rtfENoteEndDoc          18      /* new in 1.10 */
654 # define                rtfENoteText            19      /* new in 1.10 */
655 # define                rtfENoteBottom          20      /* new in 1.10 */
656 # define                rtfFNoteStart           21
657 # define                rtfENoteStart           22      /* new in 1.10 */
658 # define                rtfFNoteRestartPage     23      /* new in 1.10 */
659 # define                rtfFNoteRestart         24
660 # define                rtfFNoteRestartCont     25      /* new in 1.10 */
661 # define                rtfENoteRestart         26      /* new in 1.10 */
662 # define                rtfENoteRestartCont     27      /* new in 1.10 */
663 # define                rtfFNoteNumArabic       28      /* new in 1.10 */
664 # define                rtfFNoteNumLLetter      29      /* new in 1.10 */
665 # define                rtfFNoteNumULetter      30      /* new in 1.10 */
666 # define                rtfFNoteNumLRoman       31      /* new in 1.10 */
667 # define                rtfFNoteNumURoman       32      /* new in 1.10 */
668 # define                rtfFNoteNumChicago      33      /* new in 1.10 */
669 # define                rtfENoteNumArabic       34      /* new in 1.10 */
670 # define                rtfENoteNumLLetter      35      /* new in 1.10 */
671 # define                rtfENoteNumULetter      36      /* new in 1.10 */
672 # define                rtfENoteNumLRoman       37      /* new in 1.10 */
673 # define                rtfENoteNumURoman       38      /* new in 1.10 */
674 # define                rtfENoteNumChicago      39      /* new in 1.10 */
675 # define                rtfPaperWidth           40
676 # define                rtfPaperHeight          41
677 # define                rtfPaperSize            42      /* new in 1.10 */
678 # define                rtfLeftMargin           43
679 # define                rtfRightMargin          44
680 # define                rtfTopMargin            45
681 # define                rtfBottomMargin         46
682 # define                rtfFacingPage           47
683 # define                rtfGutterWid            48
684 # define                rtfMirrorMargin         49
685 # define                rtfLandscape            50
686 # define                rtfPageStart            51
687 # define                rtfWidowCtrl            52
688 # define                rtfLinkStyles           53      /* new in 1.10 */
689 # define                rtfNoAutoTabIndent      54      /* new in 1.10 */
690 # define                rtfWrapSpaces           55      /* new in 1.10 */
691 # define                rtfPrintColorsBlack     56      /* new in 1.10 */
692 # define                rtfNoExtraSpaceRL       57      /* new in 1.10 */
693 # define                rtfNoColumnBalance      58      /* new in 1.10 */
694 # define                rtfCvtMailMergeQuote    59      /* new in 1.10 */
695 # define                rtfSuppressTopSpace     60      /* new in 1.10 */
696 # define                rtfSuppressPreParSpace  61      /* new in 1.10 */
697 # define                rtfCombineTblBorders    62      /* new in 1.10 */
698 # define                rtfTranspMetafiles      63      /* new in 1.10 */
699 # define                rtfSwapBorders          64      /* new in 1.10 */
700 # define                rtfShowHardBreaks       65      /* new in 1.10 */
701 # define                rtfFormProtected        66      /* new in 1.10 */
702 # define                rtfAllProtected         67      /* new in 1.10 */
703 # define                rtfFormShading          68      /* new in 1.10 */
704 # define                rtfFormDisplay          69      /* new in 1.10 */
705 # define                rtfPrintData            70      /* new in 1.10 */
706 # define                rtfRevProtected         71      /* new in 1.10 */
707 # define                rtfRevisions            72
708 # define                rtfRevDisplay           73
709 # define                rtfRevBar               74
710 # define                rtfAnnotProtected       75      /* new in 1.10 */
711 # define                rtfRTLDoc               76      /* new in 1.10 */
712 # define                rtfLTRDoc               77      /* new in 1.10 */
713
714 # define        rtfSectAttr     9
715 # define                rtfSectDef              0
716 # define                rtfENoteHere            1
717 # define                rtfPrtBinFirst          2
718 # define                rtfPrtBin               3
719 # define                rtfSectStyleNum         4       /* new in 1.10 */
720 # define                rtfNoBreak              5
721 # define                rtfColBreak             6
722 # define                rtfPageBreak            7
723 # define                rtfEvenBreak            8
724 # define                rtfOddBreak             9
725 # define                rtfColumns              10
726 # define                rtfColumnSpace          11
727 # define                rtfColumnNumber         12      /* new in 1.10 */
728 # define                rtfColumnSpRight        13      /* new in 1.10 */
729 # define                rtfColumnWidth          14      /* new in 1.10 */
730 # define                rtfColumnLine           15
731 # define                rtfLineModulus          16
732 # define                rtfLineDist             17
733 # define                rtfLineStarts           18
734 # define                rtfLineRestart          19
735 # define                rtfLineRestartPg        20
736 # define                rtfLineCont             21
737 # define                rtfSectPageWid          22
738 # define                rtfSectPageHt           23
739 # define                rtfSectMarginLeft       24
740 # define                rtfSectMarginRight      25
741 # define                rtfSectMarginTop        26
742 # define                rtfSectMarginBottom     27
743 # define                rtfSectMarginGutter     28
744 # define                rtfSectLandscape        29
745 # define                rtfTitleSpecial         30
746 # define                rtfHeaderY              31
747 # define                rtfFooterY              32
748 # define                rtfPageStarts           33
749 # define                rtfPageCont             34
750 # define                rtfPageRestart          35
751 # define                rtfPageNumRight         36      /* renamed in 1.10 */
752 # define                rtfPageNumTop           37
753 # define                rtfPageDecimal          38
754 # define                rtfPageURoman           39
755 # define                rtfPageLRoman           40
756 # define                rtfPageULetter          41
757 # define                rtfPageLLetter          42
758 # define                rtfPageNumHyphSep       43      /* new in 1.10 */
759 # define                rtfPageNumSpaceSep      44      /* new in 1.10 */
760 # define                rtfPageNumColonSep      45      /* new in 1.10 */
761 # define                rtfPageNumEmdashSep     46      /* new in 1.10 */
762 # define                rtfPageNumEndashSep     47      /* new in 1.10 */
763 # define                rtfTopVAlign            48
764 # define                rtfBottomVAlign         49
765 # define                rtfCenterVAlign         50
766 # define                rtfJustVAlign           51
767 # define                rtfRTLSect              52      /* new in 1.10 */
768 # define                rtfLTRSect              53      /* new in 1.10 */
769
770 # define        rtfTblAttr      10
771 # define                rtfRowDef               0
772 # define                rtfRowGapH              1
773 # define                rtfCellPos              2
774 # define                rtfMergeRngFirst        3
775 # define                rtfMergePrevious        4
776 # define                rtfRowLeft              5
777 # define                rtfRowRight             6
778 # define                rtfRowCenter            7
779 # define                rtfRowLeftEdge          8
780 # define                rtfRowHt                9
781 # define                rtfRowHeader            10      /* new in 1.10 */
782 # define                rtfRowKeep              11      /* new in 1.10 */
783 # define                rtfRTLRow               12      /* new in 1.10 */
784 # define                rtfLTRRow               13      /* new in 1.10 */
785 # define                rtfRowBordTop           14      /* new in 1.10 */
786 # define                rtfRowBordLeft          15      /* new in 1.10 */
787 # define                rtfRowBordBottom        16      /* new in 1.10 */
788 # define                rtfRowBordRight         17      /* new in 1.10 */
789 # define                rtfRowBordHoriz         18      /* new in 1.10 */
790 # define                rtfRowBordVert          19      /* new in 1.10 */
791 # define                rtfCellBordBottom       20
792 # define                rtfCellBordTop          21
793 # define                rtfCellBordLeft         22
794 # define                rtfCellBordRight        23
795 # define                rtfCellShading          24
796 # define                rtfCellBgPatH           25
797 # define                rtfCellBgPatV           26
798 # define                rtfCellFwdDiagBgPat     27
799 # define                rtfCellBwdDiagBgPat     28
800 # define                rtfCellHatchBgPat       29
801 # define                rtfCellDiagHatchBgPat   30
802 # define                rtfCellDarkBgPatH       31
803 # define                rtfCellDarkBgPatV       32
804 # define                rtfCellFwdDarkBgPat     33
805 # define                rtfCellBwdDarkBgPat     34
806 # define                rtfCellDarkHatchBgPat   35
807 # define                rtfCellDarkDiagHatchBgPat 36
808 # define                rtfCellBgPatLineColor   37
809 # define                rtfCellBgPatColor       38
810
811 # define        rtfParAttr      11
812 # define                rtfParDef               0
813 # define                rtfStyleNum             1
814 # define                rtfHyphenate            2       /* new in 1.10 */
815 # define                rtfInTable              3
816 # define                rtfKeep                 4
817 # define                rtfNoWidowControl       5       /* new in 1.10 */
818 # define                rtfKeepNext             6
819 # define                rtfOutlineLevel         7       /* new in 1.10 */
820 # define                rtfNoLineNum            8
821 # define                rtfPBBefore             9
822 # define                rtfSideBySide           10
823 # define                rtfQuadLeft             11
824 # define                rtfQuadRight            12
825 # define                rtfQuadJust             13
826 # define                rtfQuadCenter           14
827 # define                rtfFirstIndent          15
828 # define                rtfLeftIndent           16
829 # define                rtfRightIndent          17
830 # define                rtfSpaceBefore          18
831 # define                rtfSpaceAfter           19
832 # define                rtfSpaceBetween         20
833 # define                rtfSpaceMultiply        21      /* new in 1.10 */
834 # define                rtfSubDocument          22      /* new in 1.10 */
835 # define                rtfRTLPar               23      /* new in 1.10 */
836 # define                rtfLTRPar               24      /* new in 1.10 */
837 # define                rtfTabPos               25
838 # define                rtfTabLeft              26      /* new in 1.10 */
839 # define                rtfTabRight             27
840 # define                rtfTabCenter            28
841 # define                rtfTabDecimal           29
842 # define                rtfTabBar               30
843 # define                rtfLeaderDot            31
844 # define                rtfLeaderHyphen         32
845 # define                rtfLeaderUnder          33
846 # define                rtfLeaderThick          34
847 # define                rtfLeaderEqual          35
848 # define                rtfParLevel             36      /* new in 1.10 */
849 # define                rtfParBullet            37      /* new in 1.10 */
850 # define                rtfParSimple            38      /* new in 1.10 */
851 # define                rtfParNumCont           39      /* new in 1.10 */
852 # define                rtfParNumOnce           40      /* new in 1.10 */
853 # define                rtfParNumAcross         41      /* new in 1.10 */
854 # define                rtfParHangIndent        42      /* new in 1.10 */
855 # define                rtfParNumRestart        43      /* new in 1.10 */
856 # define                rtfParNumCardinal       44      /* new in 1.10 */
857 # define                rtfParNumDecimal        45      /* new in 1.10 */
858 # define                rtfParNumULetter        46      /* new in 1.10 */
859 # define                rtfParNumURoman         47      /* new in 1.10 */
860 # define                rtfParNumLLetter        48      /* new in 1.10 */
861 # define                rtfParNumLRoman         49      /* new in 1.10 */
862 # define                rtfParNumOrdinal        50      /* new in 1.10 */
863 # define                rtfParNumOrdinalText    51      /* new in 1.10 */
864 # define                rtfParNumBold           52      /* new in 1.10 */
865 # define                rtfParNumItalic         53      /* new in 1.10 */
866 # define                rtfParNumAllCaps        54      /* new in 1.10 */
867 # define                rtfParNumSmallCaps      55      /* new in 1.10 */
868 # define                rtfParNumUnder          56      /* new in 1.10 */
869 # define                rtfParNumDotUnder       57      /* new in 1.10 */
870 # define                rtfParNumDbUnder        58      /* new in 1.10 */
871 # define                rtfParNumNoUnder        59      /* new in 1.10 */
872 # define                rtfParNumWordUnder      60      /* new in 1.10 */
873 # define                rtfParNumStrikethru     61      /* new in 1.10 */
874 # define                rtfParNumForeColor      62      /* new in 1.10 */
875 # define                rtfParNumFont           63      /* new in 1.10 */
876 # define                rtfParNumFontSize       64      /* new in 1.10 */
877 # define                rtfParNumIndent         65      /* new in 1.10 */
878 # define                rtfParNumSpacing        66      /* new in 1.10 */
879 # define                rtfParNumInclPrev       67      /* new in 1.10 */
880 # define                rtfParNumCenter         68      /* new in 1.10 */
881 # define                rtfParNumLeft           69      /* new in 1.10 */
882 # define                rtfParNumRight          70      /* new in 1.10 */
883 # define                rtfParNumStartAt        71      /* new in 1.10 */
884 # define                rtfBorderTop            72
885 # define                rtfBorderBottom         73
886 # define                rtfBorderLeft           74
887 # define                rtfBorderRight          75
888 # define                rtfBorderBetween        76
889 # define                rtfBorderBar            77
890 # define                rtfBorderBox            78
891 # define                rtfBorderSingle         79
892 # define                rtfBorderThick          80
893 # define                rtfBorderShadow         81
894 # define                rtfBorderDouble         82
895 # define                rtfBorderDot            83
896 # define                rtfBorderDash           84      /* new in 1.10 */
897 # define                rtfBorderHair           85
898 # define                rtfBorderWidth          86
899 # define                rtfBorderColor          87
900 # define                rtfBorderSpace          88
901 # define                rtfShading              89
902 # define                rtfBgPatH               90
903 # define                rtfBgPatV               91
904 # define                rtfFwdDiagBgPat         92
905 # define                rtfBwdDiagBgPat         93
906 # define                rtfHatchBgPat           94
907 # define                rtfDiagHatchBgPat       95
908 # define                rtfDarkBgPatH           96
909 # define                rtfDarkBgPatV           97
910 # define                rtfFwdDarkBgPat         98
911 # define                rtfBwdDarkBgPat         99
912 # define                rtfDarkHatchBgPat       100
913 # define                rtfDarkDiagHatchBgPat   101
914 # define                rtfBgPatLineColor       102
915 # define                rtfBgPatColor           103
916
917 # define        rtfCharAttr     12
918 # define                rtfPlain                0
919 # define                rtfBold                 1
920 # define                rtfAllCaps              2
921 # define                rtfDeleted              3
922 # define                rtfSubScript            4
923 # define                rtfSubScrShrink         5       /* new in 1.10 */
924 # define                rtfNoSuperSub           6       /* new in 1.10 */
925 # define                rtfExpand               7
926 # define                rtfExpandTwips          8       /* new in 1.10 */
927 # define                rtfKerning              9       /* new in 1.10 */
928 # define                rtfFontNum              10
929 # define                rtfFontSize             11
930 # define                rtfItalic               12
931 # define                rtfOutline              13
932 # define                rtfRevised              14
933 # define                rtfRevAuthor            15      /* new in 1.10 */
934 # define                rtfRevDTTM              16      /* new in 1.10 */
935 # define                rtfSmallCaps            17
936 # define                rtfShadow               18
937 # define                rtfStrikeThru           19
938 # define                rtfUnderline            20
939 # define                rtfDotUnderline         21      /* renamed in 1.10 */
940 # define                rtfDbUnderline          22
941 # define                rtfNoUnderline          23
942 # define                rtfWordUnderline        24      /* renamed in 1.10 */
943 # define                rtfSuperScript          25
944 # define                rtfSuperScrShrink       26      /* new in 1.10 */
945 # define                rtfInvisible            27
946 # define                rtfForeColor            28
947 # define                rtfBackColor            29
948 # define                rtfRTLChar              30      /* new in 1.10 */
949 # define                rtfLTRChar              31      /* new in 1.10 */
950 # define                rtfCharStyleNum         32      /* new in 1.10 */
951 # define                rtfCharCharSet          33      /* new in 1.10 */
952 # define                rtfLanguage             34
953 # define                rtfGray                 35
954
955 # define        rtfPictAttr     13
956 # define                rtfMacQD                0
957 # define                rtfPMMetafile           1
958 # define                rtfWinMetafile          2
959 # define                rtfDevIndBitmap         3
960 # define                rtfWinBitmap            4
961 # define                rtfPixelBits            5
962 # define                rtfBitmapPlanes         6
963 # define                rtfBitmapWid            7
964 # define                rtfPicWid               8
965 # define                rtfPicHt                9
966 # define                rtfPicGoalWid           10
967 # define                rtfPicGoalHt            11
968 # define                rtfPicScaleX            12
969 # define                rtfPicScaleY            13
970 # define                rtfPicScaled            14
971 # define                rtfPicCropTop           15
972 # define                rtfPicCropBottom        16
973 # define                rtfPicCropLeft          17
974 # define                rtfPicCropRight         18
975 # define                rtfPicMFHasBitmap       19      /* new in 1.10 */
976 # define                rtfPicMFBitsPerPixel    20      /* new in 1.10 */
977 # define                rtfPicBinary            21
978
979 # define        rtfBookmarkAttr 14
980 # define                rtfBookmarkFirstCol     0
981 # define                rtfBookmarkLastCol      1
982
983 # define        rtfNeXTGrAttr   15
984 # define                rtfNeXTGWidth           0
985 # define                rtfNeXTGHeight          1
986
987 # define        rtfFieldAttr    16
988 # define                rtfFieldDirty           0
989 # define                rtfFieldEdited          1
990 # define                rtfFieldLocked          2
991 # define                rtfFieldPrivate         3
992 # define                rtfFieldAlt             4       /* new in 1.10 */
993
994 # define        rtfTOCAttr      17
995 # define                rtfTOCType              0
996 # define                rtfTOCLevel             1
997
998 # define        rtfPosAttr      18
999 # define                rtfAbsWid               0
1000 # define                rtfAbsHt                1
1001 # define                rtfRPosMargH            2
1002 # define                rtfRPosPageH            3
1003 # define                rtfRPosColH             4
1004 # define                rtfPosX                 5
1005 # define                rtfPosNegX              6       /* new in 1.10 */
1006 # define                rtfPosXCenter           7
1007 # define                rtfPosXInside           8
1008 # define                rtfPosXOutSide          9
1009 # define                rtfPosXRight            10
1010 # define                rtfPosXLeft             11
1011 # define                rtfRPosMargV            12
1012 # define                rtfRPosPageV            13
1013 # define                rtfRPosParaV            14
1014 # define                rtfPosY                 15
1015 # define                rtfPosNegY              16      /* new in 1.10 */
1016 # define                rtfPosYInline           17
1017 # define                rtfPosYTop              18
1018 # define                rtfPosYCenter           19
1019 # define                rtfPosYBottom           20
1020 # define                rtfNoWrap               21
1021 # define                rtfDistFromTextAll      22      /* renamed in 1.10 */
1022 # define                rtfDistFromTextX        23      /* new in 1.10 */
1023 # define                rtfDistFromTextY        24      /* new in 1.10 */
1024 # define                rtfTextDistY            25
1025 # define                rtfDropCapLines         26      /* new in 1.10 */
1026 # define                rtfDropCapType          27      /* new in 1.10 */
1027
1028 # define        rtfObjAttr      19
1029 # define                rtfObjEmb               0
1030 # define                rtfObjLink              1
1031 # define                rtfObjAutoLink          2
1032 # define                rtfObjSubscriber        3
1033 # define                rtfObjPublisher         4       /* new in 1.10 */
1034 # define                rtfObjICEmb             5
1035 # define                rtfObjLinkSelf          6
1036 # define                rtfObjLock              7
1037 # define                rtfObjUpdate            8       /* new in 1.10 */
1038 # define                rtfObjHt                9
1039 # define                rtfObjWid               10
1040 # define                rtfObjSetSize           11
1041 # define                rtfObjAlign             12      /* new in 1.10 */
1042 # define                rtfObjTransposeY        13
1043 # define                rtfObjCropTop           14
1044 # define                rtfObjCropBottom        15
1045 # define                rtfObjCropLeft          16
1046 # define                rtfObjCropRight         17
1047 # define                rtfObjScaleX            18
1048 # define                rtfObjScaleY            19
1049 # define                rtfObjResRTF            20
1050 # define                rtfObjResPict           21
1051 # define                rtfObjResBitmap         22
1052 # define                rtfObjResText           23
1053 # define                rtfObjResMerge          24
1054 # define                rtfObjBookmarkPubObj    25
1055 # define                rtfObjPubAutoUpdate     26
1056
1057 # define        rtfFNoteAttr    20                      /* new in 1.10 */
1058 # define                rtfFNAlt                0       /* new in 1.10 */
1059
1060 # define        rtfKeyCodeAttr  21                      /* new in 1.10 */
1061 # define                rtfAltKey               0       /* new in 1.10 */
1062 # define                rtfShiftKey             1       /* new in 1.10 */
1063 # define                rtfControlKey           2       /* new in 1.10 */
1064 # define                rtfFunctionKey          3       /* new in 1.10 */
1065
1066 # define        rtfACharAttr    22                      /* new in 1.10 */
1067 # define                rtfACBold               0       /* new in 1.10 */
1068 # define                rtfACAllCaps            1       /* new in 1.10 */
1069 # define                rtfACForeColor          2       /* new in 1.10 */
1070 # define                rtfACSubScript          3       /* new in 1.10 */
1071 # define                rtfACExpand             4       /* new in 1.10 */
1072 # define                rtfACFontNum            5       /* new in 1.10 */
1073 # define                rtfACFontSize           6       /* new in 1.10 */
1074 # define                rtfACItalic             7       /* new in 1.10 */
1075 # define                rtfACLanguage           8       /* new in 1.10 */
1076 # define                rtfACOutline            9       /* new in 1.10 */
1077 # define                rtfACSmallCaps          10      /* new in 1.10 */
1078 # define                rtfACShadow             11      /* new in 1.10 */
1079 # define                rtfACStrikeThru         12      /* new in 1.10 */
1080 # define                rtfACUnderline          13      /* new in 1.10 */
1081 # define                rtfACDotUnderline       14      /* new in 1.10 */
1082 # define                rtfACDbUnderline        15      /* new in 1.10 */
1083 # define                rtfACNoUnderline        16      /* new in 1.10 */
1084 # define                rtfACWordUnderline      17      /* new in 1.10 */
1085 # define                rtfACSuperScript        18      /* new in 1.10 */
1086
1087 # define        rtfFontAttr     23                      /* new in 1.10 */
1088 # define                rtfFontCharSet          0       /* new in 1.10 */
1089 # define                rtfFontPitch            1       /* new in 1.10 */
1090 # define                rtfFontCodePage         2       /* new in 1.10 */
1091 # define                rtfFTypeNil             3       /* new in 1.10 */
1092 # define                rtfFTypeTrueType        4       /* new in 1.10 */
1093
1094 # define        rtfFileAttr     24                      /* new in 1.10 */
1095 # define                rtfFileNum              0       /* new in 1.10 */
1096 # define                rtfFileRelPath          1       /* new in 1.10 */
1097 # define                rtfFileOSNum            2       /* new in 1.10 */
1098
1099 # define        rtfFileSource   25                      /* new in 1.10 */
1100 # define                rtfSrcMacintosh         0       /* new in 1.10 */
1101 # define                rtfSrcDOS               1       /* new in 1.10 */
1102 # define                rtfSrcNTFS              2       /* new in 1.10 */
1103 # define                rtfSrcHPFS              3       /* new in 1.10 */
1104 # define                rtfSrcNetwork           4       /* new in 1.10 */
1105
1106 /*
1107  * Drawing attributes
1108  */
1109
1110 # define        rtfDrawAttr     26                      /* new in 1.10 */
1111 # define                rtfDrawLock             0       /* new in 1.10 */
1112 # define                rtfDrawPageRelX         1       /* new in 1.10 */
1113 # define                rtfDrawColumnRelX       2       /* new in 1.10 */
1114 # define                rtfDrawMarginRelX       3       /* new in 1.10 */
1115 # define                rtfDrawPageRelY         4       /* new in 1.10 */
1116 # define                rtfDrawColumnRelY       5       /* new in 1.10 */
1117 # define                rtfDrawMarginRelY       6       /* new in 1.10 */
1118 # define                rtfDrawHeight           7       /* new in 1.10 */
1119
1120 # define                rtfDrawBeginGroup       8       /* new in 1.10 */
1121 # define                rtfDrawGroupCount       9       /* new in 1.10 */
1122 # define                rtfDrawEndGroup         10      /* new in 1.10 */
1123 # define                rtfDrawArc              11      /* new in 1.10 */
1124 # define                rtfDrawCallout          12      /* new in 1.10 */
1125 # define                rtfDrawEllipse          13      /* new in 1.10 */
1126 # define                rtfDrawLine             14      /* new in 1.10 */
1127 # define                rtfDrawPolygon          15      /* new in 1.10 */
1128 # define                rtfDrawPolyLine         16      /* new in 1.10 */
1129 # define                rtfDrawRect             17      /* new in 1.10 */
1130 # define                rtfDrawTextBox          18      /* new in 1.10 */
1131
1132 # define                rtfDrawOffsetX          19      /* new in 1.10 */
1133 # define                rtfDrawSizeX            20      /* new in 1.10 */
1134 # define                rtfDrawOffsetY          21      /* new in 1.10 */
1135 # define                rtfDrawSizeY            22      /* new in 1.10 */
1136
1137 # define                rtfCOAngle              23      /* new in 1.10 */
1138 # define                rtfCOAccentBar          24      /* new in 1.10 */
1139 # define                rtfCOBestFit            25      /* new in 1.10 */
1140 # define                rtfCOBorder             26      /* new in 1.10 */
1141 # define                rtfCOAttachAbsDist      27      /* new in 1.10 */
1142 # define                rtfCOAttachBottom       28      /* new in 1.10 */
1143 # define                rtfCOAttachCenter       29      /* new in 1.10 */
1144 # define                rtfCOAttachTop          30      /* new in 1.10 */
1145 # define                rtfCOLength             31      /* new in 1.10 */
1146 # define                rtfCONegXQuadrant       32      /* new in 1.10 */
1147 # define                rtfCONegYQuadrant       33      /* new in 1.10 */
1148 # define                rtfCOOffset             34      /* new in 1.10 */
1149 # define                rtfCOAttachSmart        35      /* new in 1.10 */
1150 # define                rtfCODoubleLine         36      /* new in 1.10 */
1151 # define                rtfCORightAngle         37      /* new in 1.10 */
1152 # define                rtfCOSingleLine         38      /* new in 1.10 */
1153 # define                rtfCOTripleLine         39      /* new in 1.10 */
1154
1155 # define                rtfDrawTextBoxMargin    40      /* new in 1.10 */
1156 # define                rtfDrawTextBoxText      41      /* new in 1.10 */
1157 # define                rtfDrawRoundRect        42      /* new in 1.10 */
1158
1159 # define                rtfDrawPointX           43      /* new in 1.10 */
1160 # define                rtfDrawPointY           44      /* new in 1.10 */
1161 # define                rtfDrawPolyCount        45      /* new in 1.10 */
1162
1163 # define                rtfDrawArcFlipX         46      /* new in 1.10 */
1164 # define                rtfDrawArcFlipY         47      /* new in 1.10 */
1165
1166 # define                rtfDrawLineBlue         48      /* new in 1.10 */
1167 # define                rtfDrawLineGreen        49      /* new in 1.10 */
1168 # define                rtfDrawLineRed          50      /* new in 1.10 */
1169 # define                rtfDrawLinePalette      51      /* new in 1.10 */
1170 # define                rtfDrawLineDashDot      52      /* new in 1.10 */
1171 # define                rtfDrawLineDashDotDot   53      /* new in 1.10 */
1172 # define                rtfDrawLineDash         54      /* new in 1.10 */
1173 # define                rtfDrawLineDot          55      /* new in 1.10 */
1174 # define                rtfDrawLineGray         56      /* new in 1.10 */
1175 # define                rtfDrawLineHollow       57      /* new in 1.10 */
1176 # define                rtfDrawLineSolid        58      /* new in 1.10 */
1177 # define                rtfDrawLineWidth        59      /* new in 1.10 */
1178
1179 # define                rtfDrawHollowEndArrow   60      /* new in 1.10 */
1180 # define                rtfDrawEndArrowLength   61      /* new in 1.10 */
1181 # define                rtfDrawSolidEndArrow    62      /* new in 1.10 */
1182 # define                rtfDrawEndArrowWidth    63      /* new in 1.10 */
1183 # define                rtfDrawHollowStartArrow 64      /* new in 1.10 */
1184 # define                rtfDrawStartArrowLength 65      /* new in 1.10 */
1185 # define                rtfDrawSolidStartArrow  66      /* new in 1.10 */
1186 # define                rtfDrawStartArrowWidth  67      /* new in 1.10 */
1187
1188 # define                rtfDrawBgFillBlue       68      /* new in 1.10 */
1189 # define                rtfDrawBgFillGreen      69      /* new in 1.10 */
1190 # define                rtfDrawBgFillRed        70      /* new in 1.10 */
1191 # define                rtfDrawBgFillPalette    71      /* new in 1.10 */
1192 # define                rtfDrawBgFillGray       72      /* new in 1.10 */
1193 # define                rtfDrawFgFillBlue       73      /* new in 1.10 */
1194 # define                rtfDrawFgFillGreen      74      /* new in 1.10 */
1195 # define                rtfDrawFgFillRed        75      /* new in 1.10 */
1196 # define                rtfDrawFgFillPalette    76      /* new in 1.10 */
1197 # define                rtfDrawFgFillGray       77      /* new in 1.10 */
1198 # define                rtfDrawFillPatIndex     78      /* new in 1.10 */
1199
1200 # define                rtfDrawShadow           79      /* new in 1.10 */
1201 # define                rtfDrawShadowXOffset    80      /* new in 1.10 */
1202 # define                rtfDrawShadowYOffset    81      /* new in 1.10 */
1203
1204 /*
1205  * index entry attributes
1206  */
1207
1208 # define        rtfIndexAttr    27                      /* new in 1.10 */
1209 # define                rtfIndexNumber          0       /* new in 1.10 */
1210 # define                rtfIndexBold            1       /* reclassified in 1.10 */
1211 # define                rtfIndexItalic          2       /* reclassified in 1.10 */
1212
1213
1214 /*
1215  * \wmetafile argument values
1216  */
1217
1218 # define        rtfWmMmText             1
1219 # define        rtfWmMmLometric         2
1220 # define        rtfWmMmHimetric         3
1221 # define        rtfWmMmLoenglish        4
1222 # define        rtfWmMmHienglish        5
1223 # define        rtfWmMmTwips            6
1224 # define        rtfWmMmIsotropic        7
1225 # define        rtfWmMmAnisotropic      8
1226
1227 /*
1228  * \pmmetafile argument values
1229  */
1230
1231 # define        rtfPmPuArbitrary        4
1232 # define        rtfPmPuPels             8
1233 # define        rtfPmPuLometric         12
1234 # define        rtfPmPuHimetric         16
1235 # define        rtfPmPuLoenglish        20
1236 # define        rtfPmPuHienglish        24
1237 # define        rtfPmPuTwips            28
1238
1239 /*
1240  * \lang argument values
1241  */
1242
1243 # define        rtfLangNoLang                   0x0400
1244 # define        rtfLangAlbanian                 0x041c
1245 # define        rtfLangArabic                   0x0401
1246 # define        rtfLangBahasa                   0x0421
1247 # define        rtfLangBelgianDutch             0x0813
1248 # define        rtfLangBelgianFrench            0x080c
1249 # define        rtfLangBrazilianPortuguese      0x0416
1250 # define        rtfLangBulgarian                0x0402
1251 # define        rtfLangCatalan                  0x0403
1252 # define        rtfLangLatinCroatoSerbian       0x041a
1253 # define        rtfLangCzech                    0x0405
1254 # define        rtfLangDanish                   0x0406
1255 # define        rtfLangDutch                    0x0413
1256 # define        rtfLangAustralianEnglish        0x0c09
1257 # define        rtfLangUKEnglish                0x0809
1258 # define        rtfLangUSEnglish                0x0409
1259 # define        rtfLangFinnish                  0x040b
1260 # define        rtfLangFrench                   0x040c
1261 # define        rtfLangCanadianFrench           0x0c0c
1262 # define        rtfLangGerman                   0x0407
1263 # define        rtfLangGreek                    0x0408
1264 # define        rtfLangHebrew                   0x040d
1265 # define        rtfLangHungarian                0x040e
1266 # define        rtfLangIcelandic                0x040f
1267 # define        rtfLangItalian                  0x0410
1268 # define        rtfLangJapanese                 0x0411
1269 # define        rtfLangKorean                   0x0412
1270 # define        rtfLangBokmalNorwegian          0x0414
1271 # define        rtfLangNynorskNorwegian         0x0814
1272 # define        rtfLangPolish                   0x0415
1273 # define        rtfLangPortuguese               0x0816
1274 # define        rtfLangRhaetoRomanic            0x0417
1275 # define        rtfLangRomanian                 0x0418
1276 # define        rtfLangRussian                  0x0419
1277 # define        rtfLangCyrillicSerboCroatian    0x081a
1278 # define        rtfLangSimplifiedChinese        0x0804
1279 # define        rtfLangSlovak                   0x041b
1280 # define        rtfLangCastilianSpanish         0x040a
1281 # define        rtfLangMexicanSpanish           0x080a
1282 # define        rtfLangSwedish                  0x041d
1283 # define        rtfLangSwissFrench              0x100c
1284 # define        rtfLangSwissGerman              0x0807
1285 # define        rtfLangSwissItalian             0x0810
1286 # define        rtfLangThai                     0x041e
1287 # define        rtfLangTraditionalChinese       0x0404
1288 # define        rtfLangTurkish                  0x041f
1289 # define        rtfLangUrdu                     0x0420
1290
1291 /*
1292  * CharSet indices
1293  */
1294
1295 # define        rtfCSGeneral    0       /* general (default) charset */
1296 # define        rtfCSSymbol     1       /* symbol charset */
1297
1298 /*
1299  * Flags for auto-charset-processing.  Both are on by default.
1300  */
1301
1302 # define        rtfReadCharSet          0x01    /* auto-read charset files */
1303 # define        rtfSwitchCharSet        0x02    /* auto-switch charset maps */
1304
1305 /*
1306  * Style types
1307  */
1308
1309 # define        rtfParStyle     0       /* the default */
1310 # define        rtfCharStyle    1
1311 # define        rtfSectStyle    2
1312
1313 /*
1314  * RTF font, color and style structures.  Used for font table,
1315  * color table, and stylesheet processing.
1316  */
1317
1318 typedef struct RTFFont          RTFFont;
1319 typedef struct RTFColor         RTFColor;
1320 typedef struct RTFStyle         RTFStyle;
1321 typedef struct RTFStyleElt      RTFStyleElt;
1322
1323
1324 struct RTFFont
1325 {
1326         char    *rtfFName;              /* font name */
1327         char    *rtfFAltName;           /* font alternate name */
1328         int     rtfFNum;                /* font number */
1329         int     rtfFFamily;             /* font family */
1330         int     rtfFCharSet;            /* font charset */
1331         int     rtfFPitch;              /* font pitch */
1332         int     rtfFType;               /* font type */
1333         int     rtfFCodePage;           /* font code page */
1334         RTFFont *rtfNextFont;           /* next font in list */
1335 };
1336
1337
1338 /*
1339  * Color values are -1 if the default color for the the color
1340  * number should be used.  The default color is writer-dependent.
1341  */
1342
1343 struct RTFColor
1344 {
1345         int             rtfCNum;        /* color number */
1346         int             rtfCRed;        /* red value */
1347         int             rtfCGreen;      /* green value */
1348         int             rtfCBlue;       /* blue value */
1349         RTFColor        *rtfNextColor;  /* next color in list */
1350 };
1351
1352
1353 struct RTFStyle
1354 {
1355         char            *rtfSName;      /* style name */
1356         int             rtfSType;       /* style type */
1357         int             rtfSAdditive;   /* whether or not style is additive */
1358         int             rtfSNum;        /* style number */
1359         int             rtfSBasedOn;    /* style this one's based on */
1360         int             rtfSNextPar;    /* style next paragraph style */
1361         RTFStyleElt     *rtfSSEList;    /* list of style words */
1362         int             rtfExpanding;   /* non-zero = being expanded */
1363         RTFStyle        *rtfNextStyle;  /* next style in style list */
1364 };
1365
1366
1367 struct RTFStyleElt
1368 {
1369         int             rtfSEClass;     /* token class */
1370         int             rtfSEMajor;     /* token major number */
1371         int             rtfSEMinor;     /* token minor number */
1372         int             rtfSEParam;     /* control symbol parameter */
1373         char            *rtfSEText;     /* text of symbol */
1374         RTFStyleElt     *rtfNextSE;     /* next element in style */
1375 };
1376
1377
1378 /*
1379  * Return pointer to new element of type t, or NULL
1380  * if no memory available.
1381  */
1382
1383 # define        New(t)  ((t *) RTFAlloc ((int) sizeof (t)))
1384
1385 /* maximum number of character values representable in a byte */
1386
1387 # define        charSetSize             256
1388
1389 /* charset stack size */
1390
1391 # define        maxCSStack              10
1392
1393 /* character format stack size */
1394
1395 # define        maxCharFormatStack      32
1396
1397 struct _RTF_Info;
1398 typedef struct _RTF_Info RTF_Info;
1399
1400 typedef void (*RTFFuncPtr) (RTF_Info *);                /* generic function pointer */
1401
1402 struct _RTF_Info {
1403     /*
1404      * Public variables (listed in rtf.h)
1405      */
1406
1407     /*
1408      * Information pertaining to last token read by RTFToken.  The
1409      * text is exactly as it occurs in the input file, e.g., "\{"
1410      * will be found in rtfTextBuf as "\{", even though it means "{".
1411      * These variables are also set when styles are reprocessed.
1412      */
1413
1414     int rtfClass;
1415     int rtfMajor;
1416     int rtfMinor;
1417     int rtfParam;
1418     int rtfFormat;
1419     char *rtfTextBuf;
1420     int rtfTextLen;
1421
1422     long rtfLineNum;
1423     int rtfLinePos;
1424
1425
1426     /*
1427      * Private stuff
1428      */
1429
1430     int pushedChar;     /* pushback char if read too far */
1431
1432     int pushedClass;    /* pushed token info for RTFUngetToken() */
1433     int pushedMajor;
1434     int pushedMinor;
1435     int pushedParam;
1436     char *pushedTextBuf;
1437
1438     int prevChar;
1439     int bumpLine;
1440
1441     RTFFont     *fontList;      /* these lists MUST be */
1442     RTFColor    *colorList;     /* initialized to NULL */
1443     RTFStyle    *styleList;
1444
1445     char *inputName;
1446     char *outputName;
1447
1448     EDITSTREAM editstream;
1449     char InputBuffer[0x1000];
1450     DWORD dwInputSize;
1451     DWORD dwInputUsed;
1452
1453     /* edit window to output to */
1454     HWND hwndEdit;
1455
1456     /*
1457      * These arrays are used to map RTF input character values onto the standard
1458      * character names represented by the values.  Input character values are
1459      * used as indices into the arrays to produce standard character codes.
1460      */
1461
1462
1463     char *genCharSetFile ;
1464     int genCharCode[charSetSize];       /* general */
1465     int haveGenCharSet;
1466
1467     char *symCharSetFile;
1468     int symCharCode[charSetSize];       /* symbol */
1469     int haveSymCharSet;
1470
1471     int curCharSet;
1472     int *curCharCode;
1473
1474     /*
1475      * By default, the reader is configured to handle charset mapping invisibly,
1476      * including reading the charset files and switching charset maps as necessary
1477      * for Symbol font.
1478      */
1479
1480     int autoCharSetFlags;
1481
1482     /*
1483      * Stack for keeping track of charset map on group begin/end.  This is
1484      * necessary because group termination reverts the font to the previous
1485      * value, which may implicitly change it.
1486      */
1487
1488     int csStack[maxCSStack];
1489     int csTop;
1490
1491     RTFFuncPtr       ccb[rtfMaxClass];               /* class callbacks */
1492
1493     RTFFuncPtr       dcb[rtfMaxDestination]; /* destination callbacks */
1494
1495     RTFFuncPtr       readHook;
1496
1497     RTFFuncPtr       panicProc;
1498
1499     FILE     *(*libFileOpen) ();
1500
1501     char     *outMap[rtfSC_MaxChar];
1502
1503     DWORD    dwOutputCount;
1504     char     OutputBuffer[0x1000];
1505
1506     CHARFORMAT2W     formatStack[maxCharFormatStack];
1507     int              formatStackTop;
1508 };
1509
1510
1511 /*
1512  * Public RTF reader routines
1513  */
1514
1515 void            RTFInit (RTF_Info *);
1516 void            RTFSetInputName (RTF_Info *, char *);
1517 char            *RTFGetInputName (RTF_Info *);
1518 void            RTFSetOutputName (RTF_Info *, char *);
1519 char            *RTFGetOutputName (RTF_Info *);
1520 void            RTFSetClassCallback (RTF_Info *, int, RTFFuncPtr);
1521 RTFFuncPtr      RTFGetClassCallback (RTF_Info *, int);
1522 void            RTFSetDestinationCallback (RTF_Info *, int, RTFFuncPtr);
1523 RTFFuncPtr      RTFGetDestinationCallback (RTF_Info *, int);
1524 void            RTFRead (RTF_Info *);
1525 int             RTFGetToken (RTF_Info *);       /* writer should rarely need this */
1526 void            RTFUngetToken (RTF_Info *);
1527 int             RTFPeekToken (RTF_Info *);
1528 void            RTFSetToken (RTF_Info *, int, int, int, int, const char *);
1529 void            RTFSetReadHook (RTF_Info *, RTFFuncPtr);
1530 RTFFuncPtr      RTFGetReadHook (RTF_Info *);
1531 void            RTFRouteToken (RTF_Info *);
1532 void            RTFSkipGroup (RTF_Info *);
1533 void            RTFExpandStyle (RTF_Info *, int);
1534 int             RTFCheckCM (RTF_Info *, int, int);
1535 int             RTFCheckCMM (RTF_Info *, int, int, int);
1536 int             RTFCheckMM (RTF_Info *, int, int);
1537 RTFFont         *RTFGetFont (RTF_Info *, int);
1538 RTFColor        *RTFGetColor (RTF_Info *, int);
1539 RTFStyle        *RTFGetStyle (RTF_Info *, int);
1540 # define        RTFAlloc(size)  _RTFAlloc ((int) size)
1541 char            *_RTFAlloc (int);
1542 char            *RTFReAlloc(char *ptr, int size);
1543 char            *RTFStrSave (char *);
1544 void            RTFFree (char *);
1545 int             RTFCharToHex ( char);
1546 int             RTFHexToChar ( int );
1547 void            RTFSetMsgProc ( RTFFuncPtr );
1548 void            RTFSetPanicProc ( RTF_Info *, RTFFuncPtr);
1549
1550 /*
1551  * The following messing around is used to allow RTFMsg() and RTFPanic()
1552  * to be variable-argument functions that are declared publicly but
1553  * without generating prototype-mismatch errors on systems that have
1554  * stdarg.h.
1555  */
1556
1557 void    RTFMsg (RTF_Info *, const char *fmt, ...);
1558 void    RTFPanic (RTF_Info *, const char *fmt, ...);
1559
1560 int             RTFReadOutputMap ( RTF_Info *, char *[], int);
1561 int             RTFReadCharSetMap ( RTF_Info *, int);
1562 void            RTFSetCharSetMap ( RTF_Info *, char *, int);
1563 int             RTFStdCharCode ( RTF_Info *, const char *);
1564 const char      *RTFStdCharName ( RTF_Info *, int);
1565 int             RTFMapChar ( RTF_Info *, int);
1566 int             RTFGetCharSet( RTF_Info * );
1567 void            RTFSetCharSet( RTF_Info *, int);
1568
1569 void    RTFSetOpenLibFileProc ( RTF_Info *, FILE *(*)());
1570 FILE    *RTFOpenLibFile ( RTF_Info *, char *, char *);
1571
1572 void    RTFFlushOutputBuffer( RTF_Info *info );
1573 void    RTFSetEditStream(RTF_Info *, EDITSTREAM *es);
1574
1575 void    WriterInit (RTF_Info *);
1576 int     BeginFile (RTF_Info *);
1577
1578 #endif