1 /**
2  * This file has no copyright assigned and is placed in the Public Domain.
3  * This file is part of the mingw-w64 runtime package.
4  * No warranty is given; refer to the file DISCLAIMER.PD within this package.
5  */
6 #ifndef _INC_PENWIN
7 #define _INC_PENWIN
8 
9 #ifndef NOJAPAN
10 #ifndef JAPAN
11 #define JAPAN
12 #endif
13 #endif
14 
15 #include <windows.h>
16 
17 #ifdef __cplusplus
18 extern "C" {
19 #endif
20 
21 #ifndef PENVER
22 #define PENVER 0x0200
23 #endif
24 
25 #define NOPENAPPS
26 #define NOPENDICT
27 #define NOPENRC1
28 #define NOPENVIRTEVENT
29 #define NOPENAPIFUN
30 
31 #ifndef NOPENAPPS
32 #ifndef RC_INVOKED
33 #include <skbapi.h>
34 #endif
35 #endif
36 
37 #ifdef NOPENCTL
38 #define NOPENBEDIT
39 #define NOPENIEDIT
40 #endif
41 
42 #ifdef NOPENRES
43 #define NOPENBMP
44 #define NOPENCURS
45 #endif
46 
47 #ifndef NOPENALC
48 
49 #define ALC_DEFAULT __MSABI_LONG(0x00000000)
50 #define ALC_LCALPHA __MSABI_LONG(0x00000001)
51 #define ALC_UCALPHA __MSABI_LONG(0x00000002)
52 #define ALC_NUMERIC __MSABI_LONG(0x00000004)
53 #define ALC_PUNC __MSABI_LONG(0x00000008)
54 #define ALC_MATH __MSABI_LONG(0x00000010)
55 #define ALC_MONETARY __MSABI_LONG(0x00000020)
56 #define ALC_OTHER __MSABI_LONG(0x00000040)
57 #define ALC_ASCII __MSABI_LONG(0x00000080)
58 #define ALC_WHITE __MSABI_LONG(0x00000100)
59 #define ALC_NONPRINT __MSABI_LONG(0x00000200)
60 #define ALC_DBCS __MSABI_LONG(0x00000400)
61 #define ALC_JIS1 __MSABI_LONG(0x00000800)
62 #define ALC_GESTURE __MSABI_LONG(0x00004000)
63 #define ALC_USEBITMAP __MSABI_LONG(0x00008000)
64 #define ALC_HIRAGANA __MSABI_LONG(0x00010000)
65 #define ALC_KATAKANA __MSABI_LONG(0x00020000)
66 #define ALC_KANJI __MSABI_LONG(0x00040000)
67 #define ALC_GLOBALPRIORITY __MSABI_LONG(0x10000000)
68 #define ALC_OEM __MSABI_LONG(0x0FF80000)
69 #define ALC_RESERVED __MSABI_LONG(0xE0003000)
70 #define ALC_NOPRIORITY __MSABI_LONG(0x00000000)
71 
72 #define ALC_ALPHA (ALC_LCALPHA | ALC_UCALPHA)
73 #define ALC_ALPHANUMERIC (ALC_ALPHA | ALC_NUMERIC)
74 #define ALC_SYSMINIMUM (ALC_ALPHANUMERIC | ALC_PUNC | ALC_WHITE | ALC_GESTURE)
75 #define ALC_ALL (ALC_SYSMINIMUM | ALC_MATH | ALC_MONETARY | ALC_OTHER | ALC_NONPRINT)
76 #define ALC_KANJISYSMINIMUM (ALC_SYSMINIMUM | ALC_HIRAGANA | ALC_KATAKANA | ALC_JIS1)
77 #define ALC_KANJIALL (ALC_ALL | ALC_HIRAGANA | ALC_KATAKANA | ALC_KANJI)
78 #endif
79 
80 #ifndef NOPENBEDIT
81 
82 #define BXS_NONE 0x0000U
83 #define BXS_RECT 0x0001U
84 #define BXS_BOXCROSS 0x0004U
85 #ifdef JAPAN
86 #define BXS_NOWRITING 0x0008U
87 #endif
88 #endif
89 
90 #ifndef NOPENBMP
91 
92 #define OBM_SKBBTNUP 32767
93 #define OBM_SKBBTNDOWN 32766
94 #define OBM_SKBBTNDISABLED 32765
95 
96 #define OBM_ZENBTNUP 32764
97 #define OBM_ZENBTNDOWN 32763
98 #define OBM_ZENBTNDISABLED 32762
99 
100 #define OBM_HANBTNUP 32761
101 #define OBM_HANBTNDOWN 32760
102 #define OBM_HANBTNDISABLED 32759
103 
104 #define OBM_KKCBTNUP 32758
105 #define OBM_KKCBTNDOWN 32757
106 #define OBM_KKCBTNDISABLED 32756
107 
108 #define OBM_SIPBTNUP 32755
109 #define OBM_SIPBTNDOWN 32754
110 #define OBM_SIPBTNDISABLED 32753
111 
112 #define OBM_PTYBTNUP 32752
113 #define OBM_PTYBTNDOWN 32751
114 #define OBM_PTYBTNDISABLED 32750
115 #endif
116 
117 #ifndef NOPENCURS
118 
119 #define IDC_PEN MAKEINTRESOURCE(32631)
120 
121 #define IDC_ALTSELECT MAKEINTRESOURCE(32501)
122 #endif
123 
124 #ifndef NOPENHRC
125 
126 #define SYV_NULL __MSABI_LONG(0x00000000)
127 #define SYV_UNKNOWN __MSABI_LONG(0x00000001)
128 #define SYV_EMPTY __MSABI_LONG(0x00000003)
129 #define SYV_BEGINOR __MSABI_LONG(0x00000010)
130 #define SYV_ENDOR __MSABI_LONG(0x00000011)
131 #define SYV_OR __MSABI_LONG(0x00000012)
132 #define SYV_SOFTNEWLINE __MSABI_LONG(0x00000020)
133 #define SYV_SPACENULL __MSABI_LONG(0x00010000)
134 
135 #define SYV_SELECTFIRST __MSABI_LONG(0x0002FFC0)
136 #define SYV_LASSO __MSABI_LONG(0x0002FFC1)
137 #define SYV_SELECTLEFT __MSABI_LONG(0x0002FFC2)
138 #define SYV_SELECTRIGHT __MSABI_LONG(0x0002FFC3)
139 #define SYV_SELECTLAST __MSABI_LONG(0x0002FFCF)
140 
141 #define SYV_CLEARCHAR __MSABI_LONG(0x0002FFD2)
142 #define SYV_HELP __MSABI_LONG(0x0002FFD3)
143 #define SYV_KKCONVERT __MSABI_LONG(0x0002FFD4)
144 #define SYV_CLEAR __MSABI_LONG(0x0002FFD5)
145 #define SYV_INSERT __MSABI_LONG(0x0002FFD6)
146 #define SYV_CONTEXT __MSABI_LONG(0x0002FFD7)
147 #define SYV_EXTENDSELECT __MSABI_LONG(0x0002FFD8)
148 #define SYV_UNDO __MSABI_LONG(0x0002FFD9)
149 #define SYV_COPY __MSABI_LONG(0x0002FFDA)
150 #define SYV_CUT __MSABI_LONG(0x0002FFDB)
151 #define SYV_PASTE __MSABI_LONG(0x0002FFDC)
152 #define SYV_CLEARWORD __MSABI_LONG(0x0002FFDD)
153 #define SYV_USER __MSABI_LONG(0x0002FFDE)
154 #define SYV_CORRECT __MSABI_LONG(0x0002FFDF)
155 
156 #define SYV_BACKSPACE __MSABI_LONG(0x00020008)
157 #define SYV_TAB __MSABI_LONG(0x00020009)
158 #define SYV_RETURN __MSABI_LONG(0x0002000D)
159 #define SYV_SPACE __MSABI_LONG(0x00020020)
160 
161 #define SYV_APPGESTUREMASK __MSABI_LONG(0x00020000)
162 #define SYV_CIRCLEUPA __MSABI_LONG(0x000224B6)
163 #define SYV_CIRCLEUPZ __MSABI_LONG(0x000224CF)
164 #define SYV_CIRCLELOA __MSABI_LONG(0x000224D0)
165 #define SYV_CIRCLELOZ __MSABI_LONG(0x000224E9)
166 
167 #define SYV_SHAPELINE __MSABI_LONG(0x00040001)
168 #define SYV_SHAPEELLIPSE __MSABI_LONG(0x00040002)
169 #define SYV_SHAPERECT __MSABI_LONG(0x00040003)
170 #define SYV_SHAPEMIN SYV_SHAPELINE
171 #define SYV_SHAPEMAX SYV_SHAPERECT
172 
173 #define SYVHI_SPECIAL 0
174 #define SYVHI_ANSI 1
175 #define SYVHI_GESTURE 2
176 #define SYVHI_KANJI 3
177 #define SYVHI_SHAPE 4
178 #define SYVHI_UNICODE 5
179 #define SYVHI_VKEY 6
180 #endif
181 
182 #ifndef NOPENIEDIT
183 
184 #define IEM_UNDO 1
185 #define IEM_CUT 2
186 #define IEM_COPY 3
187 #define IEM_PASTE 4
188 #define IEM_CLEAR 5
189 #define IEM_SELECTALL 6
190 #define IEM_ERASE 7
191 #define IEM_PROPERTIES 8
192 #define IEM_LASSO 9
193 #define IEM_RESIZE 10
194 
195 #define IEM_USER 100
196 
197 #define IES_BORDER 0x0001
198 #define IES_HSCROLL 0x0002
199 #define IES_VSCROLL 0x0004
200 #define IES_OWNERDRAW 0x0008
201 #endif
202 
203 #ifndef RC_INVOKED
204 
205 #ifndef NOPENDATA
206 
207 #define AI_CBSTROKE 0xFFFF
208 
209 #define AI_SKIPUPSTROKES 0x0001
210 
211 #define CMPD_COMPRESS 0x0001
212 #define CMPD_DECOMPRESS 0x0002
213 
214 #define CPDR_BOX 1
215 #define CPDR_LASSO 2
216 
217 #define CPD_DEFAULT 0x047F
218 #define CPD_USERBYTE 0x0100
219 #define CPD_USERWORD 0x0200
220 #define CPD_USERDWORD 0x0300
221 #define CPD_TIME 0x0400
222 
223 #define DPD_HDCPEN 0x0001
224 #define DPD_DRAWSEL 0x0002
225 
226 #define EPDP_REMOVE 0x0001
227 
228 #define EPDS_SELECT 1
229 #define EPDS_STROKEINDEX 2
230 #define EPDS_USER 3
231 #define EPDS_PENTIP 4
232 #define EPDS_TIPCOLOR 5
233 #define EPDS_TIPWIDTH 6
234 #define EPDS_TIPNIB 7
235 #define EPDS_INKSET 8
236 
237 #define EPDS_EQ 0x0000
238 #define EPDS_LT 0x0010
239 #define EPDS_GT 0x0020
240 #define EPDS_NOT 0x0040
241 #define EPDS_NE 0x0040
242 #define EPDS_GTE 0x0050
243 #define EPDS_LTE 0x0060
244 
245 #define EPDS_REMOVE 0x8000
246 
247 #define GPA_MAXLEN 1
248 #define GPA_POINTS 2
249 #define GPA_PDTS 3
250 #define GPA_RATE 4
251 #define GPA_RECTBOUND 5
252 #define GPA_RECTBOUNDINK 6
253 #define GPA_SIZE 7
254 #define GPA_STROKES 8
255 #define GPA_TIME 9
256 #define GPA_USER 10
257 #define GPA_VERSION 11
258 
259 #define GSA_PENTIP 1
260 #define GSA_PENTIPCLASS 2
261 #define GSA_USER 3
262 #define GSA_USERCLASS 4
263 #define GSA_TIME 5
264 #define GSA_SIZE 6
265 #define GSA_SELECT 7
266 #define GSA_DOWN 8
267 #define GSA_RECTBOUND 9
268 
269 #define GSA_PENTIPTABLE 10
270 #define GSA_SIZETABLE 11
271 #define GSA_USERTABLE 12
272 
273 #ifndef IX_END
274 #define IX_END 0xFFFF
275 #endif
276 
277 #define PENTIP_NIBDEFAULT ((BYTE)0)
278 #define PENTIP_HEIGHTDEFAULT ((BYTE)0)
279 #define PENTIP_OPAQUE ((BYTE)0xFF)
280 #define PENTIP_HILITE ((BYTE)0x80)
281 #define PENTIP_TRANSPARENT ((BYTE)0)
282 
283 #define PDR_NOHIT 3
284 #define PDR_HIT 2
285 #define PDR_OK 1
286 #define PDR_CANCEL 0
287 
288 #define PDR_ERROR (-1)
289 #define PDR_PNDTERR (-2)
290 #define PDR_VERSIONERR (-3)
291 #define PDR_COMPRESSED (-4)
292 #define PDR_STRKINDEXERR (-5)
293 #define PDR_PNTINDEXERR (-6)
294 #define PDR_MEMERR (-7)
295 #define PDR_INKSETERR (-8)
296 #define PDR_ABORT (-9)
297 #define PDR_NA (-10)
298 
299 #define PDR_USERDATAERR (-16)
300 #define PDR_SCALINGERR (-17)
301 #define PDR_TIMESTAMPERR (-18)
302 #define PDR_OEMDATAERR (-19)
303 #define PDR_SCTERR (-20)
304 
305 #define PDTS_LOMETRIC 0
306 #define PDTS_HIMETRIC 1
307 #define PDTS_HIENGLISH 2
308 #define PDTS_STANDARDSCALE 2
309 #define PDTS_DISPLAY 3
310 #define PDTS_ARBITRARY 4
311 #define PDTS_SCALEMASK 0x000F
312 
313 #define PDTT_DEFAULT 0x0000
314 #define PDTT_PENINFO 0x0100
315 #define PDTT_UPPOINTS 0x0200
316 #define PDTT_OEMDATA 0x0400
317 #define PDTT_COLLINEAR 0x0800
318 #define PDTT_COLINEAR 0x0800
319 #define PDTT_DECOMPRESS 0x4000
320 #define PDTT_COMPRESS 0x8000
321 #define PDTT_ALL 0x0F00
322 
323 #define PHW_NONE 0x0000
324 #define PHW_PRESSURE 0x0001
325 #define PHW_HEIGHT 0x0002
326 #define PHW_ANGLEXY 0x0004
327 #define PHW_ANGLEZ 0x0008
328 #define PHW_BARRELROTATION 0x0010
329 #define PHW_OEMSPECIFIC 0x0020
330 #define PHW_PDK 0x0040
331 #define PHW_ALL 0x007F
332 
333 #define PDTS_COMPRESS2NDDERIV 0x0010
334 #define PDTS_COMPRESSMETHOD 0x00F0
335 #define PDTS_NOPENINFO 0x0100
336 #define PDTS_NOUPPOINTS 0x0200
337 #define PDTS_NOOEMDATA 0x0400
338 #define PDTS_NOCOLLINEAR 0x0800
339 #define PDTS_NOCOLINEAR 0x0800
340 #define PDTS_NOTICK 0x1000
341 #define PDTS_NOUSER 0x2000
342 #define PDTS_NOEMPTYSTROKES 0x4000
343 #define PDTS_COMPRESSED 0x8000
344 
345 #define SSA_PENTIP 1
346 #define SSA_PENTIPCLASS 2
347 #define SSA_USER 3
348 #define SSA_USERCLASS 4
349 #define SSA_TIME 5
350 #define SSA_SELECT 6
351 #define SSA_DOWN 7
352 
353 #define SSA_PENTIPTABLE 8
354 #define SSA_USERTABLE 9
355 
356 #define TIP_ERASECOLOR 1
357 
358 #define TPD_RECALCSIZE 0x0000
359 #define TPD_USER 0x0080
360 #define TPD_TIME 0x0100
361 #define TPD_UPPOINTS 0x0200
362 #define TPD_COLLINEAR 0x0400
363 #define TPD_COLINEAR 0x0400
364 #define TPD_PENINFO 0x0800
365 #define TPD_PHW 0x1000
366 #define TPD_OEMDATA 0x1000
367 #define TPD_EMPTYSTROKES 0x2000
368 #define TPD_EVERYTHING 0x3FFF
369 #endif
370 
371 #ifndef NOPENDICT
372 
373 #define cbDictPathMax 255
374 #define DIRQ_QUERY 1
375 #define DIRQ_DESCRIPTION 2
376 #define DIRQ_CONFIGURE 3
377 #define DIRQ_OPEN 4
378 #define DIRQ_CLOSE 5
379 #define DIRQ_SETWORDLISTS 6
380 #define DIRQ_STRING 7
381 #define DIRQ_SUGGEST 8
382 #define DIRQ_ADD 9
383 #define DIRQ_DELETE 10
384 #define DIRQ_FLUSH 11
385 #define DIRQ_RCCHANGE 12
386 #define DIRQ_SYMBOLGRAPH 13
387 #define DIRQ_INIT 14
388 #define DIRQ_CLEANUP 15
389 #define DIRQ_COPYRIGHT 16
390 #define DIRQ_USER 4096
391 #endif
392 
393 #ifndef NOPENDRIVER
394 
395 #define BITPENUP 0x8000
396 
397 #define DRV_SetPenDriverEntryPoints DRV_RESERVED+1
398 #define DRV_SetEntryPoints DRV_RESERVED+1
399 #define DRV_RemovePenDriverEntryPoints DRV_RESERVED+2
400 #define DRV_RemoveEntryPoints DRV_RESERVED+2
401 #define DRV_SetPenSamplingRate DRV_RESERVED+3
402 #define DRV_SetPenSamplingDist DRV_RESERVED+4
403 #define DRV_GetName DRV_RESERVED+5
404 #define DRV_GetVersion DRV_RESERVED+6
405 #define DRV_GetPenInfo DRV_RESERVED+7
406 #define DRV_PenPlayStart DRV_RESERVED+8
407 #define DRV_PenPlayBack DRV_RESERVED+9
408 #define DRV_PenPlayStop DRV_RESERVED+10
409 #define DRV_GetCalibration DRV_RESERVED+11
410 #define DRV_SetCalibration DRV_RESERVED+12
411 #define DRV_Reserved1 DRV_RESERVED+13
412 #define DRV_Reserved2 DRV_RESERVED+14
413 #define DRV_Query DRV_RESERVED+15
414 #define DRV_GetPenSamplingRate DRV_RESERVED+16
415 #define DRV_Calibrate DRV_RESERVED+17
416 
417 #define PLAY_VERSION_10_DATA 0
418 #define PLAY_VERSION_20_DATA 1
419 
420 #define DRV_FAILURE 0x00000000
421 #define DRV_SUCCESS 0x00000001
422 #define DRV_BADPARAM1 0xFFFFFFFF
423 #define DRV_BADPARAM2 0xFFFFFFFE
424 #define DRV_BADSTRUCT 0xFFFFFFFD
425 
426 #define PENREG_DEFAULT 0x00000002
427 #define PENREG_WILLHANDLEMOUSE 0x00000001
428 
429 #define MAXOEMDATAWORDS 6
430 
431 #define PCM_PENUP __MSABI_LONG(0x00000001)
432 #define PCM_RANGE __MSABI_LONG(0x00000002)
433 #define PCM_INVERT __MSABI_LONG(0x00000020)
434 #define PCM_RECTEXCLUDE __MSABI_LONG(0x00002000)
435 #define PCM_RECTBOUND __MSABI_LONG(0x00004000)
436 #define PCM_TIMEOUT __MSABI_LONG(0x00008000)
437 
438 #define PCM_RGNBOUND __MSABI_LONG(0x00010000)
439 #define PCM_RGNEXCLUDE __MSABI_LONG(0x00020000)
440 #define PCM_DOPOLLING __MSABI_LONG(0x00040000)
441 #define PCM_TAPNHOLD __MSABI_LONG(0x00080000)
442 #define PCM_ADDDEFAULTS RC_LDEFAULTFLAGS
443 
444 #define PDC_INTEGRATED __MSABI_LONG(0x00000001)
445 #define PDC_PROXIMITY __MSABI_LONG(0x00000002)
446 #define PDC_RANGE __MSABI_LONG(0x00000004)
447 #define PDC_INVERT __MSABI_LONG(0x00000008)
448 #define PDC_RELATIVE __MSABI_LONG(0x00000010)
449 #define PDC_BARREL1 __MSABI_LONG(0x00000020)
450 #define PDC_BARREL2 __MSABI_LONG(0x00000040)
451 #define PDC_BARREL3 __MSABI_LONG(0x00000080)
452 
453 #define PDK_NULL 0x0000
454 #define PDK_UP 0x0000
455 #define PDK_DOWN 0x0001
456 #define PDK_BARREL1 0x0002
457 #define PDK_BARREL2 0x0004
458 #define PDK_BARREL3 0x0008
459 #define PDK_SWITCHES 0x000f
460 #define PDK_TRANSITION 0x0010
461 #define PDK_UNUSED10 0x0020
462 #define PDK_UNUSED20 0x0040
463 #define PDK_INVERTED 0x0080
464 #define PDK_PENIDMASK 0x0F00
465 #define PDK_UNUSED1000 0x1000
466 #define PDK_INKSTOPPED 0x2000
467 #define PDK_OUTOFRANGE 0x4000
468 #define PDK_DRIVER 0x8000
469 
470 #define PDK_TIPMASK 0x0001
471 
472 #define PDT_NULL 0
473 #define PDT_PRESSURE 1
474 #define PDT_HEIGHT 2
475 #define PDT_ANGLEXY 3
476 #define PDT_ANGLEZ 4
477 #define PDT_BARRELROTATION 5
478 #define PDT_OEMSPECIFIC 16
479 
480 #define PID_CURRENT (UINT)(-1)
481 
482 #define REC_OEM (-1024)
483 #define REC_LANGUAGE (-48)
484 #define REC_GUIDE (-47)
485 #define REC_PARAMERROR (-46)
486 #define REC_INVALIDREF (-45)
487 #define REC_RECTEXCLUDE (-44)
488 #define REC_RECTBOUND (-43)
489 #define REC_PCM (-42)
490 #define REC_RESULTMODE (-41)
491 #define REC_HWND (-40)
492 #define REC_ALC (-39)
493 #define REC_ERRORLEVEL (-38)
494 #define REC_CLVERIFY (-37)
495 #define REC_DICT (-36)
496 #define REC_HREC (-35)
497 #define REC_BADEVENTREF (-33)
498 #define REC_NOCOLLECTION (-32)
499 #define REC_DEBUG (-32)
500 #define REC_POINTEREVENT (-31)
501 #define REC_BADHPENDATA (-9)
502 #define REC_OOM (-8)
503 #define REC_NOINPUT (-7)
504 #define REC_NOTABLET (-6)
505 #define REC_BUSY (-5)
506 #define REC_BUFFERTOOSMALL (-4)
507 #define REC_ABORT (-3)
508 #define REC_NA (-2)
509 #define REC_OVERFLOW (-1)
510 #define REC_OK 0
511 #define REC_TERMBOUND 1
512 #define REC_TERMEX 2
513 #define REC_TERMPENUP 3
514 #define REC_TERMRANGE 4
515 #define REC_TERMTIMEOUT 5
516 #define REC_DONE 6
517 #define REC_TERMOEM 512
518 #endif
519 
520 #ifndef NOPENHRC
521 
522 #define GRH_ALL 0
523 #define GRH_GESTURE 1
524 #define GRH_NONGESTURE 2
525 
526 #ifdef JAPAN
527 #define GST_SEL __MSABI_LONG(0x00000001)
528 #define GST_CLIP __MSABI_LONG(0x00000002)
529 #define GST_WHITE __MSABI_LONG(0x00000004)
530 #define GST_KKCONVERT __MSABI_LONG(0x00000008)
531 #define GST_EDIT __MSABI_LONG(0x00000010)
532 #define GST_SYS __MSABI_LONG(0x0000001F)
533 #define GST_CIRCLELO __MSABI_LONG(0x00000100)
534 #define GST_CIRCLEUP __MSABI_LONG(0x00000200)
535 #define GST_CIRCLE __MSABI_LONG(0x00000300)
536 #define GST_ALL __MSABI_LONG(0x0000031F)
537 #else
538 #define GST_SEL __MSABI_LONG(0x00000001)
539 #define GST_CLIP __MSABI_LONG(0x00000002)
540 #define GST_WHITE __MSABI_LONG(0x00000004)
541 #define GST_EDIT __MSABI_LONG(0x00000010)
542 #define GST_SYS __MSABI_LONG(0x00000017)
543 #define GST_CIRCLELO __MSABI_LONG(0x00000100)
544 #define GST_CIRCLEUP __MSABI_LONG(0x00000200)
545 #define GST_CIRCLE __MSABI_LONG(0x00000300)
546 #define GST_ALL __MSABI_LONG(0x00000317)
547 #endif
548 
549 #define HRCR_NORESULTS 4
550 #define HRCR_COMPLETE 3
551 #define HRCR_GESTURE 2
552 #define HRCR_OK 1
553 #define HRCR_INCOMPLETE 0
554 #define HRCR_ERROR (-1)
555 #define HRCR_MEMERR (-2)
556 #define HRCR_INVALIDGUIDE (-3)
557 #define HRCR_INVALIDPNDT (-4)
558 #define HRCR_UNSUPPORTED (-5)
559 #define HRCR_CONFLICT (-6)
560 #define HRCR_HOOKED (-8)
561 
562 #define HWL_SYSTEM ((HWL)1)
563 
564 #define ISR_ERROR (-1)
565 #define ISR_BADINKSET (-2)
566 #define ISR_BADINDEX (-3)
567 
568 #ifndef IX_END
569 #define IX_END 0xFFFF
570 #endif
571 
572 #define MAXHOTSPOT 8
573 
574 #define PH_MAX __MSABI_LONG(0xFFFFFFFF)
575 #define PH_DEFAULT __MSABI_LONG(0xFFFFFFFE)
576 #define PH_MIN __MSABI_LONG(0xFFFFFFFD)
577 
578 #define RHH_STD 0
579 #define RHH_BOX 1
580 
581 #define SCH_NONE 0
582 #define SCH_ADVISE 1
583 #define SCH_FORCE 2
584 
585 #define SCIM_INSERT 0
586 #define SCIM_OVERWRITE 1
587 
588 #define SRH_HOOKALL (HREC)1
589 
590 #define SSH_RD 1
591 #define SSH_RU 2
592 #define SSH_LD 3
593 #define SSH_LU 4
594 #define SSH_DL 5
595 #define SSH_DR 6
596 #define SSH_UL 7
597 #define SSH_UR 8
598 
599 #define SIH_ALLANSICHAR 1
600 
601 #define TH_QUERY 0
602 #define TH_FORCE 1
603 #define TH_SUGGEST 2
604 
605 #define TRAIN_NONE 0x0000
606 #define TRAIN_DEFAULT 0x0001
607 #define TRAIN_CUSTOM 0x0002
608 #define TRAIN_BOTH (TRAIN_DEFAULT | TRAIN_CUSTOM)
609 
610 #define TRAIN_SAVE 0
611 #define TRAIN_REVERT 1
612 #define TRAIN_RESET 2
613 
614 #define WCR_RECOGNAME 0
615 #define WCR_QUERY 1
616 #define WCR_CONFIGDIALOG 2
617 #define WCR_DEFAULT 3
618 #define WCR_RCCHANGE 4
619 #define WCR_VERSION 5
620 #define WCR_TRAIN 6
621 #define WCR_TRAINSAVE 7
622 #define WCR_TRAINMAX 8
623 #define WCR_TRAINDIRTY 9
624 #define WCR_TRAINCUSTOM 10
625 #define WCR_QUERYLANGUAGE 11
626 #define WCR_USERCHANGE 12
627 
628 #define WCR_PWVERSION 13
629 #define WCR_GETALCPRIORITY 14
630 #define WCR_SETALCPRIORITY 15
631 #define WCR_GETANSISTATE 16
632 #define WCR_SETANSISTATE 17
633 #define WCR_GETHAND 18
634 #define WCR_SETHAND 19
635 #define WCR_GETDIRECTION 20
636 #define WCR_SETDIRECTION 21
637 #define WCR_INITRECOGNIZER 22
638 #define WCR_CLOSERECOGNIZER 23
639 
640 #define WCR_PRIVATE 1024
641 
642 #define CRUC_NOTIFY 0
643 #define CRUC_REMOVE 1
644 
645 #define WLT_STRING 0
646 #define WLT_STRINGTABLE 1
647 #define WLT_EMPTY 2
648 #define WLT_WORDLIST 3
649 #endif
650 
651 #ifndef NOPENIEDIT
652 
653 #define IEB_DEFAULT 0
654 #define IEB_BRUSH 1
655 #define IEB_BIT_UL 2
656 #define IEB_BIT_CENTER 3
657 #define IEB_BIT_TILE 4
658 #define IEB_BIT_STRETCH 5
659 #define IEB_OWNERDRAW 6
660 
661 #define IEDO_NONE 0x0000
662 #define IEDO_FAST 0x0001
663 #define IEDO_SAVEUPSTROKES 0x0002
664 #define IEDO_RESERVED 0xFFFC
665 
666 #define IEI_MOVE 0x0001
667 #define IEI_RESIZE 0x0002
668 #define IEI_CROP 0x0004
669 #define IEI_DISCARD 0x0008
670 #define IEI_RESERVED 0xFFF0
671 
672 #define IEGI_ALL 0x0000
673 #define IEGI_SELECTION 0x0001
674 
675 #define IEMODE_READY 0
676 #define IEMODE_ERASE 1
677 #define IEMODE_LASSO 2
678 
679 #define IEN_NULL 0x0000
680 #define IEN_PDEVENT 0x0001
681 #define IEN_PAINT 0x0002
682 #define IEN_FOCUS 0x0004
683 #define IEN_SCROLL 0x0008
684 #define IEN_EDIT 0x0010
685 #define IEN_PROPERTIES 0x0020
686 #define IEN_RESERVED 0xFF80
687 
688 #define IER_OK 0
689 #define IER_NO 0
690 #define IER_YES 1
691 #define IER_ERROR (-1)
692 #define IER_PARAMERR (-2)
693 #define IER_OWNERDRAW (-3)
694 #define IER_SECURITY (-4)
695 #define IER_SELECTION (-5)
696 #define IER_SCALE (-6)
697 #define IER_MEMERR (-7)
698 #define IER_NOCOMMAND (-8)
699 #define IER_NOGESTURE (-9)
700 #define IER_NOPDEVENT (-10)
701 #define IER_NOTINPAINT (-11)
702 #define IER_PENDATA (-12)
703 
704 #define IEREC_NONE 0x0000
705 #define IEREC_GESTURE 0x0001
706 #define IEREC_ALL (IEREC_GESTURE)
707 #define IEREC_RESERVED 0xFFFE
708 
709 #define IESEC_NOCOPY 0x0001
710 #define IESEC_NOCUT 0x0002
711 #define IESEC_NOPASTE 0x0004
712 #define IESEC_NOUNDO 0x0008
713 #define IESEC_NOINK 0x0010
714 #define IESEC_NOERASE 0x0020
715 #define IESEC_NOGET 0x0040
716 #define IESEC_NOSET 0x0080
717 #define IESEC_RESERVED 0xFF00
718 
719 #define IESF_ALL 0x0001
720 #define IESF_SELECTION 0x0002
721 #define IESF_STROKE 0x0004
722 
723 #define IESF_TIPCOLOR 0x0008
724 #define IESF_TIPWIDTH 0x0010
725 #define IESF_PENTIP (IESF_TIPCOLOR|IESF_TIPWIDTH)
726 
727 #define IESI_REPLACE 0x0000
728 #define IESI_APPEND 0x0001
729 
730 #define IN_PDEVENT ((IEN_PDEVENT<<8)|0)
731 #define IN_ERASEBKGND ((IEN_NULL<<8)|1)
732 #define IN_PREPAINT ((IEN_PAINT<<8)|2)
733 #define IN_PAINT ((IEN_NULL<<8)|3)
734 #define IN_POSTPAINT ((IEN_PAINT<<8)|4)
735 #define IN_MODECHANGED ((IEN_EDIT<<8)|5)
736 #define IN_CHANGE ((IEN_EDIT<<8)|6)
737 #define IN_UPDATE ((IEN_EDIT<<8)|7)
738 #define IN_SETFOCUS ((IEN_FOCUS<<8)|8)
739 #define IN_KILLFOCUS ((IEN_FOCUS<<8)|9)
740 #define IN_MEMERR ((IEN_NULL<<8)|10)
741 #define IN_HSCROLL ((IEN_SCROLL<<8)|11)
742 #define IN_VSCROLL ((IEN_SCROLL<<8)|12)
743 #define IN_GESTURE ((IEN_EDIT<<8)|13)
744 #define IN_COMMAND ((IEN_EDIT<<8)|14)
745 #define IN_CLOSE ((IEN_NULL<<8)|15)
746 #define IN_PROPERTIES ((IEN_PROPERTIES<<8)|16)
747 #endif
748 
749 #ifndef NOPENINKPUT
750 
751 #define LRET_DONE __MSABI_LONG(1)
752 #define LRET_ABORT (__MSABI_LONG(-1))
753 #define LRET_HRC (__MSABI_LONG(-2))
754 #define LRET_HPENDATA (__MSABI_LONG(-3))
755 #define LRET_PRIVATE (__MSABI_LONG(-4))
756 
757 #define PCMR_OK 0
758 #define PCMR_ALREADYCOLLECTING (-1)
759 #define PCMR_INVALIDCOLLECTION (-2)
760 #define PCMR_EVENTLOCK (-3)
761 #define PCMR_INVALID_PACKETID (-4)
762 #define PCMR_TERMTIMEOUT (-5)
763 #define PCMR_TERMRANGE (-6)
764 #define PCMR_TERMPENUP (-7)
765 #define PCMR_TERMEX (-8)
766 #define PCMR_TERMBOUND (-9)
767 #define PCMR_APPTERMINATED (-10)
768 #define PCMR_TAP (-11)
769 #define PCMR_SELECT (-12)
770 #define PCMR_OVERFLOW (-13)
771 #define PCMR_ERROR (-14)
772 #define PCMR_DISPLAYERR (-15)
773 #define PCMR_TERMINVERT (-16)
774 
775 #define PII_INKCLIPRECT 0x0001
776 #define PII_INKSTOPRECT 0x0002
777 #define PII_INKCLIPRGN 0x0004
778 #define PII_INKSTOPRGN 0x0008
779 #define PII_INKPENTIP 0x0010
780 #define PII_SAVEBACKGROUND 0x0020
781 #define PII_CLIPSTOP 0x0040
782 
783 #define PIT_RGNBOUND 0x0001
784 #define PIT_RGNEXCLUDE 0x0002
785 #define PIT_TIMEOUT 0x0004
786 #define PIT_TAPNHOLD 0x0008
787 #endif
788 
789 #ifndef NOPENMISC
790 
791 #define CL_NULL 0
792 #define CL_MINIMUM 1
793 #define CL_MAXIMUM 100
794 #define cwRcReservedMax 8
795 #define ENUM_MINIMUM 1
796 #define ENUM_MAXIMUM 4096
797 
798 #define HKP_SETHOOK 0
799 #define HKP_UNHOOK 0xFFFF
800 
801 #define HWR_RESULTS 0
802 #define HWR_APPWIDE 1
803 
804 #define iSycNull (-1)
805 #define LPDFNULL ((LPDF)NULL)
806 #define MAXDICTIONARIES 16
807 #define wPntAll (UINT)0xFFFF
808 #define cbRcLanguageMax 44
809 #define cbRcUserMax 32
810 #define cbRcrgbfAlcMax 32
811 #define RC_WDEFAULT 0xffff
812 #define RC_LDEFAULT __MSABI_LONG(0xffffffff)
813 #define RC_WDEFAULTFLAGS 0x8000
814 #define RC_LDEFAULTFLAGS __MSABI_LONG(0x80000000)
815 
816 #define CWR_REPLACECR 0x0001
817 #define CWR_STRIPCR CWR_REPLACECR
818 #define CWR_STRIPLF 0x0002
819 #define CWR_REPLACETAB 0x0004
820 #define CWR_STRIPTAB CWR_REPLACETAB
821 #define CWR_SINGLELINEEDIT (CWR_REPLACECR|CWR_STRIPLF|CWR_REPLACETAB)
822 #define CWR_INSERT 0x0008
823 #define CWR_TITLE 0x0010
824 #define CWR_SIMPLE 0x0040
825 #define CWR_HEDIT 0x0080
826 #define CWR_KEYBOARD 0x0100
827 #define CWR_BOXES 0x0200
828 
829 #define CWRK_DEFAULT 0
830 #define CWRK_BASIC 1
831 #define CWRK_FULL 2
832 #define CWRK_NUMPAD 3
833 #define CWRK_TELPAD 4
834 
835 #ifdef JAPAN
836 
837 #define CBCAPTIONCWX 256
838 #define CKBCWX 6
839 #define XCWX 20
840 #define YCWX 20
841 #define CXCWX 300
842 #define CYCWX 200
843 
844 #define CWX_TOPMOST __MSABI_LONG(0x00000001)
845 #define CWX_NOTOOLTIPS __MSABI_LONG(0x00000002)
846 #define CWX_EPERIOD __MSABI_LONG(0x00000004)
847 #define CWX_ECOMMA __MSABI_LONG(0x00000008)
848 #define CWX_DEFAULT __MSABI_LONG(0x00000000)
849 
850 #define CWXA_CONTEXT 0x0001
851 #define CWXA_KBD 0x0002
852 #define CWXA_STATE 0x0004
853 #define CWXA_PTUL 0x0008
854 #define CWXA_SIZE 0x0010
855 #define CWXA_NOUPDATEMRU 0x0020
856 
857 #define CWXK_HW 0
858 #define CWXK_FIRST 0x0100
859 #define CWXK_50 0x0100
860 #define CWXK_QWERTY 0x0101
861 #define CWXK_NUM 0x0102
862 #define CWXK_KANJI 0x0103
863 #define CWXK_CODE 0x0104
864 #define CWXK_YOMI 0x0105
865 
866 #define CWXKS_DEFAULT 0xffff
867 #define CWXKS_ZEN 0
868 #define CWXKS_HAN 1
869 #define CWXKS_ROMAZEN 2
870 #define CWXKS_ROMAHAN 3
871 #define CWXKS_HIRAZEN 4
872 #define CWXKS_KATAZEN 5
873 #define CWXKS_KATAHAN 6
874 
875 #define CWXR_ERROR -1
876 #define CWXR_UNMODIFIED 0
877 #define CWXR_MODIFIED 1
878 #endif
879 
880 #ifdef JAPAN
881 #define GPMI_OK __MSABI_LONG(0)
882 #define GPMI_INVALIDPMI __MSABI_LONG(0x8000)
883 #endif
884 
885 #define INKWIDTH_MINIMUM 0
886 #define INKWIDTH_MAXIMUM 15
887 
888 #define PMI_RCCHANGE 0
889 
890 #define PMI_BEDIT 1
891 #define PMI_CXTABLET 3
892 #define PMI_CYTABLET 4
893 #define PMI_PENTIP 6
894 #define PMI_ENABLEFLAGS 7
895 #define PMI_TIMEOUT 8
896 #define PMI_TIMEOUTGEST 9
897 #define PMI_TIMEOUTSEL 10
898 #define PMI_SYSFLAGS 11
899 #define PMI_INDEXFROMRGB 12
900 #define PMI_RGBFROMINDEX 13
901 #define PMI_SYSREC 14
902 #define PMI_TICKREF 15
903 
904 #define PMI_SAVE 0x1000
905 
906 #ifdef JAPAN
907 
908 #define GPR_CURSPEN 1
909 #define GPR_CURSCOPY 2
910 #define GPR_CURSUNKNOWN 3
911 #define GPR_CURSERASE 4
912 
913 #define GPR_BMCRMONO 5
914 #define GPR_BMLFMONO 6
915 #define GPR_BMTABMONO 7
916 #define GPR_BMDELETE 8
917 #define GPR_BMLENSBTN 9
918 
919 #ifdef JAPAN
920 #define GPR_BMHSPMONO 10
921 #define GPR_BMZSPMONO 11
922 #endif
923 #endif
924 
925 #define PWE_AUTOWRITE 0x0001
926 #define PWE_ACTIONHANDLES 0x0002
927 #define PWE_INPUTCURSOR 0x0004
928 #define PWE_LENS 0x0008
929 
930 #define PWF_RC1 0x0001
931 #define PWF_PEN 0x0004
932 #define PWF_INKDISPLAY 0x0008
933 #define PWF_RECOGNIZER 0x0010
934 #define PWF_BEDIT 0x0100
935 #define PWF_HEDIT 0x0200
936 #define PWF_IEDIT 0x0400
937 #define PWF_ENHANCED 0x1000
938 #define PWF_FULL PWF_RC1|PWF_PEN|PWF_INKDISPLAY|PWF_RECOGNIZER| PWF_BEDIT|PWF_HEDIT |PWF_IEDIT|PWF_ENHANCED
939 
940 #define RPA_DEFAULT 0x0001
941 #define RPA_HEDIT 0x0001
942 #define RPA_KANJIFIXEDBEDIT 0x0002
943 #define RPA_DBCSPRIORITY 0x0004
944 #define RPA_SBCSPRIORITY 0x0008
945 
946 #define PMIR_OK __MSABI_LONG(0)
947 #define PMIR_INDEX (__MSABI_LONG(-1))
948 #define PMIR_VALUE (__MSABI_LONG(-2))
949 #define PMIR_INVALIDBOXEDITINFO (__MSABI_LONG(-3))
950 #define PMIR_INIERROR (__MSABI_LONG(-4))
951 #define PMIR_ERROR (__MSABI_LONG(-5))
952 #define PMIR_NA (__MSABI_LONG(-6))
953 
954 #ifdef JAPAN
955 #define SPMI_OK __MSABI_LONG(0)
956 #define SPMI_INVALIDBOXEDITINFO __MSABI_LONG(1)
957 #define SPMI_INIERROR __MSABI_LONG(2)
958 #define SPMI_INVALIDPMI __MSABI_LONG(0x8000)
959 #endif
960 #endif
961 
962 #ifndef NOPENRC1
963 
964 #define GGRC_OK 0
965 #define GGRC_DICTBUFTOOSMALL 1
966 #define GGRC_PARAMERROR 2
967 #define GGRC_NA 3
968 
969 #define RCD_DEFAULT 0
970 #define RCD_LR 1
971 #define RCD_RL 2
972 #define RCD_TB 3
973 #define RCD_BT 4
974 
975 #define RCIP_ALLANSICHAR 0x0001
976 #define RCIP_MASK 0x0001
977 
978 #define RCO_NOPOINTEREVENT __MSABI_LONG(0x00000001)
979 #define RCO_SAVEALLDATA __MSABI_LONG(0x00000002)
980 #define RCO_SAVEHPENDATA __MSABI_LONG(0x00000004)
981 #define RCO_NOFLASHUNKNOWN __MSABI_LONG(0x00000008)
982 #define RCO_TABLETCOORD __MSABI_LONG(0x00000010)
983 #define RCO_NOSPACEBREAK __MSABI_LONG(0x00000020)
984 #define RCO_NOHIDECURSOR __MSABI_LONG(0x00000040)
985 #define RCO_NOHOOK __MSABI_LONG(0x00000080)
986 #define RCO_BOXED __MSABI_LONG(0x00000100)
987 #define RCO_SUGGEST __MSABI_LONG(0x00000200)
988 #define RCO_DISABLEGESMAP __MSABI_LONG(0x00000400)
989 #define RCO_NOFLASHCURSOR __MSABI_LONG(0x00000800)
990 #define RCO_BOXCROSS __MSABI_LONG(0x00001000)
991 #define RCO_COLDRECOG __MSABI_LONG(0x00008000)
992 #define RCO_SAVEBACKGROUND __MSABI_LONG(0x00010000)
993 #define RCO_DODEFAULT __MSABI_LONG(0x00020000)
994 
995 #define RCOR_NORMAL 1
996 #define RCOR_RIGHT 2
997 #define RCOR_UPSIDEDOWN 3
998 #define RCOR_LEFT 4
999 
1000 #define RCP_LEFTHAND 0x0001
1001 #define RCP_MAPCHAR 0x0004
1002 
1003 #define RCRT_DEFAULT 0x0000
1004 #define RCRT_UNIDENTIFIED 0x0001
1005 #define RCRT_GESTURE 0x0002
1006 #define RCRT_NOSYMBOLMATCH 0x0004
1007 #define RCRT_PRIVATE 0x4000
1008 #define RCRT_NORECOG 0x8000
1009 #define RCRT_ALREADYPROCESSED 0x0008
1010 #define RCRT_GESTURETRANSLATED 0x0010
1011 #define RCRT_GESTURETOKEYS 0x0020
1012 
1013 #define RRM_STROKE 0
1014 #define RRM_SYMBOL 1
1015 #define RRM_WORD 2
1016 #define RRM_NEWLINE 3
1017 #define RRM_COMPLETE 16
1018 
1019 #define SGRC_OK 0x0000
1020 #define SGRC_USER 0x0001
1021 #define SGRC_PARAMERROR 0x0002
1022 #define SGRC_RC 0x0004
1023 #define SGRC_RECOGNIZER 0x0008
1024 #define SGRC_DICTIONARY 0x0010
1025 #define SGRC_INIFILE 0x0020
1026 #define SGRC_NA 0x8000
1027 #endif
1028 
1029 #ifndef NOPENTARGET
1030 
1031 #define TPT_CLOSEST 0x0001
1032 #define TPT_INTERSECTINK 0x0002
1033 #define TPT_TEXTUAL 0x0004
1034 #define TPT_DEFAULT (TPT_TEXTUAL | TPT_INTERSECTINK | TPT_CLOSEST)
1035 #endif
1036 
1037 #ifndef NOPENVIRTEVENT
1038 
1039 #define VWM_MOUSEMOVE 0x0001
1040 #define VWM_MOUSELEFTDOWN 0x0002
1041 #define VWM_MOUSELEFTUP 0x0004
1042 #define VWM_MOUSERIGHTDOWN 0x0008
1043 #define VWM_MOUSERIGHTUP 0x0010
1044 #endif
1045 #endif
1046 
1047 #ifndef NOPENMSGS
1048 
1049 #ifndef NOPENRC1
1050 #define WM_RCRESULT (WM_PENWINFIRST+1)
1051 #define WM_HOOKRCRESULT (WM_PENWINFIRST+2)
1052 #endif
1053 
1054 #define WM_PENMISCINFO (WM_PENWINFIRST+3)
1055 #define WM_GLOBALRCCHANGE (WM_PENWINFIRST+3)
1056 
1057 #ifndef NOPENAPPS
1058 #define WM_SKB (WM_PENWINFIRST+4)
1059 #endif
1060 
1061 #define WM_PENCTL (WM_PENWINFIRST+5)
1062 #define WM_HEDITCTL (WM_PENWINFIRST+5)
1063 
1064 #define HE_GETUNDERLINE 7
1065 #define HE_SETUNDERLINE 8
1066 #define HE_GETINKHANDLE 9
1067 #define HE_SETINKMODE 10
1068 #define HE_STOPINKMODE 11
1069 #define HE_DEFAULTFONT 13
1070 #define HE_CHARPOSITION 14
1071 #define HE_CHAROFFSET 15
1072 #define HE_GETBOXLAYOUT 20
1073 #define HE_SETBOXLAYOUT 21
1074 #ifdef JAPAN
1075 #define HE_KKCONVERT 30
1076 #define HE_GETKKCONVERT 31
1077 #define HE_CANCELKKCONVERT 32
1078 #define HE_FIXKKCONVERT 33
1079 #define HE_GETKKSTATUS 34
1080 #define HE_SETCONVERTRANGE 35
1081 #define HE_GETCONVERTRANGE 36
1082 #define HE_PUTCONVERTCHAR 37
1083 #endif
1084 #define HE_ENABLEALTLIST 40
1085 #define HE_SHOWALTLIST 41
1086 #define HE_HIDEALTLIST 42
1087 #ifndef JAPAN
1088 #define HE_GETLENSTYPE 43
1089 #define HE_SETLENSTYPE 44
1090 #endif
1091 
1092 #ifdef JAPAN
1093 
1094 #define HEKK_DEFAULT 0
1095 #define HEKK_CONVERT 1
1096 #define HEKK_CANDIDATE 2
1097 #define HEKK_DBCSCHAR 3
1098 #define HEKK_SBCSCHAR 4
1099 #define HEKK_HIRAGANA 5
1100 #define HEKK_KATAKANA 6
1101 
1102 #define HEKKR_NOCONVERT 0
1103 #define HEKKR_PRECONVERT 1
1104 #define HEKKR_CONVERT 2
1105 #endif
1106 
1107 #define HEP_NORECOG 0
1108 #define HEP_RECOG 1
1109 #define HEP_WAITFORTAP 2
1110 
1111 #define HN_ENDREC 4
1112 #define HN_DELAYEDRECOGFAIL 5
1113 #define HN_RESULT 20
1114 #ifdef JAPAN
1115 #define HN_ENDKKCONVERT 30
1116 #endif
1117 #define HN_BEGINDIALOG 40
1118 
1119 #define HN_ENDDIALOG 41
1120 
1121 #ifndef NOPENIEDIT
1122 
1123 #define IE_GETMODIFY (EM_GETMODIFY)
1124 #define IE_SETMODIFY (EM_SETMODIFY)
1125 #define IE_CANUNDO (EM_CANUNDO)
1126 #define IE_UNDO (EM_UNDO)
1127 #define IE_EMPTYUNDOBUFFER (EM_EMPTYUNDOBUFFER)
1128 
1129 #define IE_MSGFIRST (WM_USER+150)
1130 
1131 #define IE_GETINK (IE_MSGFIRST+0)
1132 #define IE_SETINK (IE_MSGFIRST+1)
1133 #define IE_GETPENTIP (IE_MSGFIRST+2)
1134 #define IE_SETPENTIP (IE_MSGFIRST+3)
1135 #define IE_GETERASERTIP (IE_MSGFIRST+4)
1136 #define IE_SETERASERTIP (IE_MSGFIRST+5)
1137 #define IE_GETBKGND (IE_MSGFIRST+6)
1138 #define IE_SETBKGND (IE_MSGFIRST+7)
1139 #define IE_GETGRIDORIGIN (IE_MSGFIRST+8)
1140 #define IE_SETGRIDORIGIN (IE_MSGFIRST+9)
1141 #define IE_GETGRIDPEN (IE_MSGFIRST+10)
1142 #define IE_SETGRIDPEN (IE_MSGFIRST+11)
1143 #define IE_GETGRIDSIZE (IE_MSGFIRST+12)
1144 #define IE_SETGRIDSIZE (IE_MSGFIRST+13)
1145 #define IE_GETMODE (IE_MSGFIRST+14)
1146 #define IE_SETMODE (IE_MSGFIRST+15)
1147 #define IE_GETINKRECT (IE_MSGFIRST+16)
1148 
1149 #define IE_GETAPPDATA (IE_MSGFIRST+34)
1150 #define IE_SETAPPDATA (IE_MSGFIRST+35)
1151 #define IE_GETDRAWOPTS (IE_MSGFIRST+36)
1152 #define IE_SETDRAWOPTS (IE_MSGFIRST+37)
1153 #define IE_GETFORMAT (IE_MSGFIRST+38)
1154 #define IE_SETFORMAT (IE_MSGFIRST+39)
1155 #define IE_GETINKINPUT (IE_MSGFIRST+40)
1156 #define IE_SETINKINPUT (IE_MSGFIRST+41)
1157 #define IE_GETNOTIFY (IE_MSGFIRST+42)
1158 #define IE_SETNOTIFY (IE_MSGFIRST+43)
1159 #define IE_GETRECOG (IE_MSGFIRST+44)
1160 #define IE_SETRECOG (IE_MSGFIRST+45)
1161 #define IE_GETSECURITY (IE_MSGFIRST+46)
1162 #define IE_SETSECURITY (IE_MSGFIRST+47)
1163 #define IE_GETSEL (IE_MSGFIRST+48)
1164 #define IE_SETSEL (IE_MSGFIRST+49)
1165 #define IE_DOCOMMAND (IE_MSGFIRST+50)
1166 #define IE_GETCOMMAND (IE_MSGFIRST+51)
1167 #define IE_GETCOUNT (IE_MSGFIRST+52)
1168 #define IE_GETGESTURE (IE_MSGFIRST+53)
1169 #define IE_GETMENU (IE_MSGFIRST+54)
1170 #define IE_GETPAINTDC (IE_MSGFIRST+55)
1171 #define IE_GETPDEVENT (IE_MSGFIRST+56)
1172 #define IE_GETSELCOUNT (IE_MSGFIRST+57)
1173 #define IE_GETSELITEMS (IE_MSGFIRST+58)
1174 #define IE_GETSTYLE (IE_MSGFIRST+59)
1175 #endif
1176 
1177 #ifndef NOPENHEDIT
1178 
1179 #define CIH_NOGDMSG 0x0001
1180 #define CIH_NOACTIONHANDLE 0x0002
1181 #define CIH_NOEDITTEXT 0x0004
1182 #define CIH_NOFLASHCURSOR 0x0008
1183 #endif
1184 
1185 #ifndef NOPENBEDIT
1186 
1187 #define HEAL_DEFAULT __MSABI_LONG(-1)
1188 
1189 #define BEI_FACESIZE 32
1190 #define BEIF_BOXCROSS 0x0001
1191 
1192 #define BESC_DEFAULT 0
1193 #define BESC_ROMANFIXED 1
1194 #define BESC_KANJIFIXED 2
1195 #define BESC_USERDEFINED 3
1196 
1197 #define CIB_NOGDMSG 0x0001
1198 #define CIB_NOACTIONHANDLE 0x0002
1199 #define CIB_NOFLASHCURSOR 0x0004
1200 #ifdef JAPAN
1201 #define CIB_NOWRITING 0x0010
1202 #endif
1203 
1204 #define BXD_CELLWIDTH 12
1205 #define BXD_CELLHEIGHT 16
1206 #define BXD_BASEHEIGHT 13
1207 #define BXD_BASEHORZ 0
1208 #define BXD_MIDFROMBASE 0
1209 #define BXD_CUSPHEIGHT 2
1210 #define BXD_ENDCUSPHEIGHT 4
1211 
1212 #define BXDK_CELLWIDTH 32
1213 #define BXDK_CELLHEIGHT 32
1214 #define BXDK_BASEHEIGHT 28
1215 #define BXDK_BASEHORZ 0
1216 #define BXDK_MIDFROMBASE 0
1217 #define BXDK_CUSPHEIGHT 28
1218 #define BXDK_ENDCUSPHEIGHT 10
1219 #endif
1220 
1221 #define WM_PENMISC (WM_PENWINFIRST+6)
1222 
1223 #define PMSC_BEDITCHANGE 1
1224 #define PMSC_GETPCMINFO 5
1225 #define PMSC_SETPCMINFO 6
1226 #define PMSC_GETINKINGINFO 7
1227 #define PMSC_SETINKINGINFO 8
1228 #define PMSC_GETHRC 9
1229 #define PMSC_SETHRC 10
1230 #define PMSC_GETSYMBOLCOUNT 11
1231 #define PMSC_GETSYMBOLS 12
1232 #define PMSC_SETSYMBOLS 13
1233 #define PMSC_LOADPW 15
1234 #define PMSC_INKSTOP 16
1235 
1236 #define PMSCL_UNLOADED __MSABI_LONG(0)
1237 #define PMSCL_LOADED __MSABI_LONG(1)
1238 #define PMSCL_UNLOADING __MSABI_LONG(2)
1239 
1240 #define WM_CTLINIT (WM_PENWINFIRST+7)
1241 
1242 #define CTLINIT_HEDIT 1
1243 #define CTLINIT_BEDIT 7
1244 #define CTLINIT_IEDIT 9
1245 #define CTLINIT_MAX 10
1246 
1247 #define WM_PENEVENT (WM_PENWINFIRST+8)
1248 
1249 #define PE_PENDOWN 1
1250 #define PE_PENUP 2
1251 #define PE_PENMOVE 3
1252 #define PE_TERMINATING 4
1253 #define PE_TERMINATED 5
1254 #define PE_BUFFERWARNING 6
1255 #define PE_BEGININPUT 7
1256 #define PE_SETTARGETS 8
1257 #define PE_BEGINDATA 9
1258 #define PE_MOREDATA 10
1259 #define PE_ENDDATA 11
1260 #define PE_GETPCMINFO 12
1261 #define PE_GETINKINGINFO 13
1262 #define PE_ENDINPUT 14
1263 
1264 #define PE_RESULT 15
1265 #endif
1266 
1267 #ifndef RC_INVOKED
1268 
1269 #ifndef NOPENDRIVER
1270 
1271 #define FPenUpX(x) ((WINBOOL)(((x) & BITPENUP)!=0))
1272 #define GetWEventRef() (LOWORD(GetMessageExtraInfo()))
1273 #endif
1274 
1275 #ifndef NOPENALC
1276 
1277 #define MpAlcB(lprc,i) ((lprc)->rgbfAlc[((i) & 0xff) >> 3])
1278 #define MpIbf(i) ((BYTE)(1 << ((i) & 7)))
1279 #define SetAlcBitAnsi(lprc,i) do {MpAlcB(lprc,i) |= MpIbf(i);} while (0)
1280 #define ResetAlcBitAnsi(lprc,i) do {MpAlcB(lprc,i) &= ~MpIbf(i);} while (0)
1281 #define IsAlcBitAnsi(lprc,i) ((MpAlcB(lprc,i) & MpIbf(i))!=0)
1282 #endif
1283 
1284 #ifndef NOPENDATA
1285 
1286 #define DrawPenDataFmt(hdc,lprect,hpndt) DrawPenDataEx(hdc,lprect,hpndt,0,IX_END,0,IX_END,NULL,NULL,0)
1287 #endif
1288 
1289 #ifndef NOPENHRC
1290 
1291 #define dwDiffAT(at1,at2) (1000*((at2).sec - (at1).sec) - (DWORD)(at1).ms + (DWORD)(at2).ms)
1292 #define FLTAbsTime(at1,at2) ((at1).sec < (at2).sec || ((at1).sec==(at2).sec && (at1).ms < (at2).ms))
1293 #define FLTEAbsTime(at1,at2) ((at1).sec < (at2).sec || ((at1).sec==(at2).sec && (at1).ms <= (at2).ms))
1294 #define FEQAbsTime(at1,at2) ((at1).sec==(at2).sec && (at1).ms==(at2).ms)
1295 #define FAbsTimeInInterval(at,lpi) (FLTEAbsTime((lpi)->atBegin,at) && FLTEAbsTime(at,(lpi)->atEnd))
1296 #define FIntervalInInterval(lpiT,lpiS) (FLTEAbsTime((lpiS)->atBegin,(lpiT)->atBegin) && FLTEAbsTime((lpiT)->atEnd,(lpiS)->atEnd))
1297 #define FIntervalXInterval(lpiT,lpiS) (!(FLTAbsTime((lpiT)->atEnd,(lpiS)->atBegin) || FLTAbsTime((lpiS)->atEnd,(lpiT)->atBegin)))
1298 #define dwDurInterval(lpi) dwDiffAT((lpi)->atBegin,(lpi)->atEnd)
1299 #define MakeAbsTime(lpat,sec,ms) do { (lpat)->sec = sec + ((ms) / 1000); (lpat)->ms = (ms) % 1000; } while (0)
1300 
1301 #define FIsSpecial(syv) (HIWORD((syv))==SYVHI_SPECIAL)
1302 #define FIsAnsi(syv) (HIWORD((syv))==SYVHI_ANSI)
1303 #define FIsGesture(syv) (HIWORD((syv))==SYVHI_GESTURE)
1304 #define FIsKanji(syv) (HIWORD((syv))==SYVHI_KANJI)
1305 #define FIsShape(syv) (HIWORD((syv))==SYVHI_SHAPE)
1306 #define FIsUniCode(syv) (HIWORD((syv))==SYVHI_UNICODE)
1307 #define FIsVKey(syv) (HIWORD((syv))==SYVHI_VKEY)
1308 
1309 #define ChSyvToAnsi(syv) ((BYTE) (LOBYTE(LOWORD((syv)))))
1310 #define WSyvToKanji(syv) ((WORD) (LOWORD((syv))))
1311 #define SyvCharacterToSymbol(c) ((LONG)(unsigned char)(c) | 0x00010000)
1312 #define SyvKanjiToSymbol(c) ((LONG)(UINT)(c) | 0x00030000)
1313 
1314 #define FIsSelectGesture(syv) ((syv) >= SYVSELECTFIRST && (syv) <= SYVSELECTLAST)
1315 
1316 #define FIsStdGesture(syv) (FIsSelectGesture(syv) || (syv)==SYV_CLEAR || (syv)==SYV_HELP || (syv)==SYV_EXTENDSELECT || (syv)==SYV_UNDO || (syv)==SYV_COPY || (syv)==SYV_CUT || (syv)==SYV_PASTE || (syv)==SYV_CLEARWORD || (syv)==SYV_KKCONVERT || (syv)==SYV_USER || (syv)==SYV_CORRECT)
1317 
1318 #define FIsAnsiGesture(syv) ((syv)==SYV_BACKSPACE || (syv)==SYV_TAB || (syv)==SYV_RETURN || (syv)==SYV_SPACE)
1319 #endif
1320 
1321 #ifndef NOPENINKPUT
1322 #define SubPenMsgFromWpLp(wp,lp) (LOWORD(wp))
1323 #define EventRefFromWpLp(wp,lp) (HIWORD(wp))
1324 #define TerminationFromWpLp(wp,lp) ((int)HIWORD(wp))
1325 #define HpcmFromWpLp(wp,lp) ((HPCM)(lp))
1326 #endif
1327 
1328 #ifndef NOPENTARGET
1329 #define HwndFromHtrg(htrg) ((HWND)(DWORD)(htrg))
1330 #define HtrgFromHwnd(hwnd) ((HTRG)(UINT)(hwnd))
1331 #endif
1332 
1333   typedef LONG ALC;
1334   typedef int CL;
1335   typedef UINT HKP;
1336   typedef int REC;
1337   typedef LONG SYV;
1338 
1339 #ifndef DECLARE_HANDLE32
1340 #define DECLARE_HANDLE32(name) struct name##__ { int unused; }; typedef const struct name##__ *name
1341 #endif
1342 
1343   DECLARE_HANDLE32(HTRG);
1344   DECLARE_HANDLE(HPCM);
1345   DECLARE_HANDLE(HPENDATA);
1346   DECLARE_HANDLE(HREC);
1347 
1348   typedef ALC *LPALC;
1349   typedef LPVOID LPOEM;
1350   typedef SYV *LPSYV;
1351   typedef HPENDATA *LPHPENDATA;
1352 
1353   typedef int (CALLBACK *ENUMPROC)(LPSYV,int,VOID *);
1354   typedef int (CALLBACK *LPDF)(int,LPVOID,LPVOID,int,DWORD,DWORD);
1355   typedef WINBOOL (CALLBACK *RCYIELDPROC)(VOID);
1356 
1357   typedef struct tagABSTIME {
1358     DWORD sec;
1359     UINT ms;
1360   } ABSTIME,*LPABSTIME;
1361 
1362 #ifndef NOPENHEDIT
1363   typedef struct tagCTLINITHEDIT {
1364     DWORD cbSize;
1365     HWND hwnd;
1366     int id;
1367     DWORD dwFlags;
1368     DWORD dwReserved;
1369   } CTLINITHEDIT,*LPCTLINITHEDIT;
1370 #endif
1371 
1372 #ifndef NOPENBEDIT
1373 
1374   typedef struct tagBOXLAYOUT {
1375     int cyCusp;
1376     int cyEndCusp;
1377     UINT style;
1378     DWORD dwReserved1;
1379     DWORD dwReserved2;
1380     DWORD dwReserved3;
1381   } BOXLAYOUT,*LPBOXLAYOUT;
1382 
1383   typedef struct tagCTLINITBEDIT {
1384     DWORD cbSize;
1385     HWND hwnd;
1386     int id;
1387     WORD wSizeCategory;
1388     WORD wFlags;
1389     DWORD dwReserved;
1390   } CTLINITBEDIT,*LPCTLINITBEDIT;
1391 
1392   typedef struct tagBOXEDITINFO {
1393     int cxBox;
1394     int cyBox;
1395     int cxBase;
1396     int cyBase;
1397     int cyMid;
1398     BOXLAYOUT boxlayout;
1399     UINT wFlags;
1400     BYTE szFaceName[BEI_FACESIZE];
1401     UINT wFontHeight;
1402     UINT rgwReserved[8];
1403   } BOXEDITINFO,*LPBOXEDITINFO;
1404 #endif
1405 
1406 #ifndef NOPENCTL
1407 
1408   typedef struct tagRECTOFS {
1409     int dLeft;
1410     int dTop;
1411     int dRight;
1412     int dBottom;
1413   } RECTOFS,*LPRECTOFS;
1414 #endif
1415 
1416 #ifndef NOPENDATA
1417   typedef struct tagPENDATAHEADER {
1418     UINT wVersion;
1419     UINT cbSizeUsed;
1420     UINT cStrokes;
1421     UINT cPnt;
1422     UINT cPntStrokeMax;
1423     RECT rectBound;
1424     UINT wPndts;
1425     int nInkWidth;
1426     DWORD rgbInk;
1427   } PENDATAHEADER,*LPPENDATAHEADER,*LPPENDATA;
1428 
1429   typedef struct tagSTROKEINFO {
1430     UINT cPnt;
1431     UINT cbPnts;
1432     UINT wPdk;
1433     DWORD dwTick;
1434   } STROKEINFO,*LPSTROKEINFO;
1435 
1436   typedef struct tagPENTIP {
1437     DWORD cbSize;
1438     BYTE btype;
1439     BYTE bwidth;
1440     BYTE bheight;
1441     BYTE bOpacity;
1442     COLORREF rgb;
1443     DWORD dwFlags;
1444     DWORD dwReserved;
1445   } PENTIP,*LPPENTIP;
1446 
1447   typedef WINBOOL (CALLBACK *ANIMATEPROC)(HPENDATA,UINT,UINT,UINT *,LPARAM);
1448 
1449   typedef struct tagANIMATEINFO {
1450     DWORD cbSize;
1451     UINT uSpeedPct;
1452     UINT uPeriodCB;
1453     UINT fuFlags;
1454     LPARAM lParam;
1455     DWORD dwReserved;
1456   } ANIMATEINFO,*LPANIMATEINFO;
1457 #endif
1458 
1459 #ifndef NOPENDRIVER
1460   typedef struct tagOEMPENINFO {
1461     UINT wPdt;
1462     UINT wValueMax;
1463     UINT wDistinct;
1464   } OEMPENINFO,*LPOEMPENINFO;
1465 
1466   typedef struct tagPENPACKET {
1467     UINT wTabletX;
1468     UINT wTabletY;
1469     UINT wPDK;
1470     UINT rgwOemData[MAXOEMDATAWORDS];
1471   } PENPACKET,*LPPENPACKET;
1472 
1473   typedef struct tagOEM_PENPACKET {
1474     UINT wTabletX;
1475     UINT wTabletY;
1476     UINT wPDK;
1477     UINT rgwOemData[MAXOEMDATAWORDS];
1478     DWORD dwTime;
1479   } OEM_PENPACKET,*LPOEM_PENPACKET;
1480 
1481   typedef struct tagPENINFO {
1482     UINT cxRawWidth;
1483     UINT cyRawHeight;
1484     UINT wDistinctWidth;
1485     UINT wDistinctHeight;
1486     int nSamplingRate;
1487     int nSamplingDist;
1488     LONG lPdc;
1489     int cPens;
1490     int cbOemData;
1491     OEMPENINFO rgoempeninfo[MAXOEMDATAWORDS];
1492     UINT rgwReserved[7];
1493     UINT fuOEM;
1494   } PENINFO,*LPPENINFO;
1495 
1496   typedef struct tagCALBSTRUCT {
1497     int wOffsetX;
1498     int wOffsetY;
1499     int wDistinctWidth;
1500     int wDistinctHeight;
1501   } CALBSTRUCT,*LPCALBSTRUCT;
1502 
1503   typedef WINBOOL (CALLBACK *LPFNRAWHOOK)(LPPENPACKET);
1504 #endif
1505 
1506 #ifndef NOPENHRC
1507   DECLARE_HANDLE32(HRC);
1508   DECLARE_HANDLE32(HRCRESULT);
1509   DECLARE_HANDLE32(HWL);
1510   DECLARE_HANDLE32(HRECHOOK);
1511 
1512   typedef HRC *LPHRC;
1513   typedef HRCRESULT *LPHRCRESULT;
1514   typedef HWL *LPHWL;
1515 
1516   typedef WINBOOL (CALLBACK *HRCRESULTHOOKPROC)(HREC,HRC,UINT,UINT,UINT,LPVOID);
1517 
1518   DECLARE_HANDLE(HINKSET);
1519   typedef HINKSET *LPHINKSET;
1520 
1521   typedef struct tagINTERVAL {
1522     ABSTIME atBegin;
1523     ABSTIME atEnd;
1524   } INTERVAL,*LPINTERVAL;
1525 
1526   typedef struct tagBOXRESULTS {
1527     UINT indxBox;
1528     HINKSET hinksetBox;
1529     SYV rgSyv[1];
1530   } BOXRESULTS,*LPBOXRESULTS;
1531 
1532   typedef struct tagGUIDE {
1533     int xOrigin;
1534     int yOrigin;
1535     int cxBox;
1536     int cyBox;
1537     int cxBase;
1538     int cyBase;
1539     int cHorzBox;
1540     int cVertBox;
1541     int cyMid;
1542   } GUIDE,*LPGUIDE;
1543 #endif
1544 
1545 #ifndef NOPENIEDIT
1546   typedef struct tagCTLINITIEDIT {
1547     DWORD cbSize;
1548     HWND hwnd;
1549     int id;
1550     WORD ieb;
1551     WORD iedo;
1552     WORD iei;
1553     WORD ien;
1554     WORD ierec;
1555     WORD ies;
1556     WORD iesec;
1557     WORD pdts;
1558     HPENDATA hpndt;
1559     HGDIOBJ hgdiobj;
1560     HPEN hpenGrid;
1561     POINT ptOrgGrid;
1562     WORD wVGrid;
1563     WORD wHGrid;
1564     DWORD dwApp;
1565     DWORD dwReserved;
1566   } CTLINITIEDIT,*LPCTLINITIEDIT;
1567 
1568   typedef struct tagPDEVENT {
1569     DWORD cbSize;
1570     HWND hwnd;
1571     UINT wm;
1572     WPARAM wParam;
1573     LPARAM lParam;
1574     POINT pt;
1575     WINBOOL fPen;
1576     LONG lExInfo;
1577     DWORD dwReserved;
1578   } PDEVENT,*LPPDEVENT;
1579 
1580   typedef struct tagSTRKFMT {
1581     DWORD cbSize;
1582     UINT iesf;
1583     UINT iStrk;
1584     PENTIP tip;
1585     DWORD dwUser;
1586     DWORD dwReserved;
1587   } STRKFMT,*LPSTRKFMT;
1588 #endif
1589 
1590 #ifndef NOPENINKPUT
1591 
1592   typedef struct tagPCMINFO {
1593     DWORD cbSize;
1594     DWORD dwPcm;
1595     RECT rectBound;
1596     RECT rectExclude;
1597     HRGN hrgnBound;
1598     HRGN hrgnExclude;
1599     DWORD dwTimeout;
1600   } PCMINFO,*LPPCMINFO;
1601 
1602   typedef struct tagINKINGINFO {
1603     DWORD cbSize;
1604     UINT wFlags;
1605     PENTIP tip;
1606     RECT rectClip;
1607     RECT rectInkStop;
1608     HRGN hrgnClip;
1609     HRGN hrgnInkStop;
1610   } INKINGINFO,*LPINKINGINFO;
1611 #endif
1612 
1613 #ifndef NOPENRC1
1614 
1615   typedef struct tagSYC {
1616     UINT wStrokeFirst;
1617     UINT wPntFirst;
1618     UINT wStrokeLast;
1619     UINT wPntLast;
1620     WINBOOL fLastSyc;
1621   } SYC,*LPSYC;
1622 
1623   typedef struct tagSYE {
1624     SYV syv;
1625     LONG lRecogVal;
1626     CL cl;
1627     int iSyc;
1628   } SYE,*LPSYE;
1629 
1630   typedef struct tagSYG {
1631     POINT rgpntHotSpots[MAXHOTSPOT];
1632     int cHotSpot;
1633     int nFirstBox;
1634     LONG lRecogVal;
1635     LPSYE lpsye;
1636     int cSye;
1637     LPSYC lpsyc;
1638     int cSyc;
1639   } SYG,*LPSYG;
1640 
1641   typedef struct tagRC {
1642     HREC hrec;
1643     HWND hwnd;
1644     UINT wEventRef;
1645     UINT wRcPreferences;
1646     LONG lRcOptions;
1647     RCYIELDPROC lpfnYield;
1648     BYTE lpUser[cbRcUserMax];
1649     UINT wCountry;
1650     UINT wIntlPreferences;
1651     char lpLanguage[cbRcLanguageMax];
1652     LPDF rglpdf[MAXDICTIONARIES];
1653     UINT wTryDictionary;
1654     CL clErrorLevel;
1655     ALC alc;
1656     ALC alcPriority;
1657     BYTE rgbfAlc[cbRcrgbfAlcMax];
1658     UINT wResultMode;
1659     UINT wTimeOut;
1660     LONG lPcm;
1661     RECT rectBound;
1662     RECT rectExclude;
1663     GUIDE guide;
1664     UINT wRcOrient;
1665     UINT wRcDirect;
1666     int nInkWidth;
1667     COLORREF rgbInk;
1668     DWORD dwAppParam;
1669     DWORD dwDictParam;
1670     DWORD dwRecognizer;
1671     UINT rgwReserved[cwRcReservedMax];
1672   } RC,*LPRC;
1673 
1674   typedef struct tagRCRESULT {
1675     SYG syg;
1676     UINT wResultsType;
1677     int cSyv;
1678     LPSYV lpsyv;
1679     HANDLE hSyv;
1680     int nBaseLine;
1681     int nMidLine;
1682     HPENDATA hpendata;
1683     RECT rectBoundInk;
1684     POINT pntEnd;
1685     LPRC lprc;
1686   } RCRESULT,*LPRCRESULT;
1687 
1688   typedef int (CALLBACK *LPFUNCRESULTS)(LPRCRESULT,REC);
1689 #endif
1690 
1691 #ifndef NOPENTARGET
1692 
1693   typedef struct tagTARGET {
1694     DWORD dwFlags;
1695     DWORD idTarget;
1696     HTRG htrgTarget;
1697     RECTL rectBound;
1698     DWORD dwData;
1699     RECTL rectBoundInk;
1700     RECTL rectBoundLastInk;
1701   } TARGET,*LPTARGET;
1702 
1703   typedef struct tagTARGINFO {
1704     DWORD cbSize;
1705     DWORD dwFlags;
1706     HTRG htrgOwner;
1707     WORD cTargets;
1708     WORD iTargetLast;
1709     TARGET rgTarget[1];
1710   } TARGINFO,*LPTARGINFO;
1711 
1712   typedef struct tagINPPARAMS {
1713     DWORD cbSize;
1714     DWORD dwFlags;
1715     HPENDATA hpndt;
1716     TARGET target;
1717   } INPPARAMS,*LPINPPARAMS;
1718 #endif
1719 
1720 #ifdef JAPAN
1721   typedef struct tagCWX {
1722     DWORD cbSize;
1723     WORD wApplyFlags;
1724     HWND hwndText;
1725     HRC hrc;
1726     char szCaption[CBCAPTIONCWX];
1727     DWORD dwEditStyle;
1728     DWORD dwSel;
1729     DWORD dwFlags;
1730     WORD ixkb;
1731     WORD rgState[CKBCWX];
1732     POINT ptUL;
1733     SIZE sizeHW;
1734   } CWX,*LPCWX;
1735 #endif
1736 
1737   LRESULT CALLBACK DefPenWindowProc(HWND,UINT,WPARAM,LPARAM);
1738 
1739 #ifndef NOPENAPPS
1740   WINBOOL WINAPI ShowKeyboard(HWND,UINT,LPPOINT,LPSKBINFO);
1741 #endif
1742 
1743 #ifndef NOPENDATA
1744 
1745 #ifndef NOPENAPIFUN
1746   LPPENDATA WINAPI BeginEnumStrokes(HPENDATA);
1747   LPPENDATA WINAPI EndEnumStrokes(HPENDATA);
1748   HPENDATA WINAPI CompactPenData(HPENDATA,UINT);
1749   HPENDATA WINAPI CreatePenData(LPPENINFO,int,UINT,UINT);
1750   VOID WINAPI DrawPenData(HDC,LPRECT,HPENDATA);
1751   WINBOOL WINAPI GetPenDataStroke(LPPENDATA,UINT,LPPOINT *,LPVOID *,LPSTROKEINFO);
1752 #endif
1753   HPENDATA WINAPI AddPointsPenData(HPENDATA,LPPOINT,LPVOID,LPSTROKEINFO);
1754   int WINAPI CompressPenData(HPENDATA,UINT,DWORD);
1755   HPENDATA WINAPI CreatePenDataEx(LPPENINFO,UINT,UINT,UINT);
1756   HRGN WINAPI CreatePenDataRegion(HPENDATA,UINT);
1757   WINBOOL WINAPI DestroyPenData(HPENDATA);
1758   int WINAPI DrawPenDataEx(HDC,LPRECT,HPENDATA,UINT,UINT,UINT,UINT,ANIMATEPROC,LPANIMATEINFO,UINT);
1759   HPENDATA WINAPI DuplicatePenData(HPENDATA,UINT);
1760   int WINAPI ExtractPenDataPoints(HPENDATA,UINT,UINT,UINT,LPPOINT,LPVOID,UINT);
1761   int WINAPI ExtractPenDataStrokes(HPENDATA,UINT,LPARAM,LPHPENDATA,UINT);
1762   int WINAPI GetPenDataAttributes(HPENDATA,LPVOID,UINT);
1763   WINBOOL WINAPI GetPenDataInfo(HPENDATA,LPPENDATAHEADER,LPPENINFO,DWORD);
1764   WINBOOL WINAPI GetPointsFromPenData(HPENDATA,UINT,UINT,UINT,LPPOINT);
1765   int WINAPI GetStrokeAttributes(HPENDATA,UINT,LPVOID,UINT);
1766   int WINAPI GetStrokeTableAttributes(HPENDATA,UINT,LPVOID,UINT);
1767   int WINAPI HitTestPenData(HPENDATA,LPPOINT,UINT,UINT *,UINT *);
1768   int WINAPI InsertPenData(HPENDATA,HPENDATA,UINT);
1769   int WINAPI InsertPenDataPoints(HPENDATA,UINT,UINT,UINT,LPPOINT,LPVOID);
1770   int WINAPI InsertPenDataStroke(HPENDATA,UINT,LPPOINT,LPVOID,LPSTROKEINFO);
1771   WINBOOL WINAPI MetricScalePenData(HPENDATA,UINT);
1772   WINBOOL WINAPI OffsetPenData(HPENDATA,int,int);
1773   LONG WINAPI PenDataFromBuffer(LPHPENDATA,UINT,LPBYTE,LONG,LPDWORD);
1774   LONG WINAPI PenDataToBuffer(HPENDATA,LPBYTE,LONG,LPDWORD);
1775   WINBOOL WINAPI RedisplayPenData(HDC,HPENDATA,LPPOINT,LPPOINT,int,DWORD);
1776   int WINAPI RemovePenDataStrokes(HPENDATA,UINT,UINT);
1777   WINBOOL WINAPI ResizePenData(HPENDATA,LPRECT);
1778   int WINAPI SetStrokeAttributes(HPENDATA,UINT,LPARAM,UINT);
1779   int WINAPI SetStrokeTableAttributes(HPENDATA,UINT,LPARAM,UINT);
1780   int WINAPI TrimPenData(HPENDATA,DWORD,DWORD);
1781 #endif
1782 
1783 #ifndef NOPENDICT
1784   WINBOOL WINAPI DictionarySearch(LPRC,LPSYE,int,LPSYV,int);
1785 #endif
1786 
1787 #ifndef NOPENDRIVER
1788 
1789 #ifndef NOPENAPIFUN
1790   WINBOOL WINAPI EndPenCollection(REC);
1791   REC WINAPI GetPenHwData(LPPOINT,LPVOID,int,UINT,LPSTROKEINFO);
1792   REC WINAPI GetPenHwEventData(UINT,UINT,LPPOINT,LPVOID,int,LPSTROKEINFO);
1793   WINBOOL WINAPI SetPenHook(HKP,LPFNRAWHOOK);
1794   VOID WINAPI UpdatePenInfo(LPPENINFO);
1795 #endif
1796   WINBOOL WINAPI GetPenAsyncState(UINT);
1797   WINBOOL WINAPI IsPenEvent(UINT,LONG);
1798 #endif
1799 
1800 #ifndef NOPENHRC
1801   int WINAPI AddPenDataHRC(HRC,HPENDATA);
1802   int WINAPI AddPenInputHRC(HRC,LPPOINT,LPVOID,UINT,LPSTROKEINFO);
1803   int WINAPI AddWordsHWL(HWL,LPSTR,UINT);
1804   int WINAPI ConfigHREC(HREC,UINT,WPARAM,LPARAM);
1805   HRC WINAPI CreateCompatibleHRC(HRC,HREC);
1806   HWL WINAPI CreateHWL(HREC,LPSTR,UINT,DWORD);
1807   HINKSET WINAPI CreateInksetHRCRESULT(HRCRESULT,UINT,UINT);
1808   HPENDATA WINAPI CreatePenDataHRC(HRC);
1809   int WINAPI DestroyHRC(HRC);
1810   int WINAPI DestroyHRCRESULT(HRCRESULT);
1811   int WINAPI DestroyHWL(HWL);
1812   int WINAPI EnableGestureSetHRC(HRC,SYV,WINBOOL);
1813   int WINAPI EnableSystemDictionaryHRC(HRC,WINBOOL);
1814   int WINAPI EndPenInputHRC(HRC);
1815   int WINAPI GetAlphabetHRC(HRC,LPALC,LPBYTE);
1816   int WINAPI GetAlphabetPriorityHRC(HRC,LPALC,LPBYTE);
1817   int WINAPI GetAlternateWordsHRCRESULT(HRCRESULT,UINT,UINT,LPHRCRESULT,UINT);
1818   int WINAPI GetBoxMappingHRCRESULT(HRCRESULT,UINT,UINT,UINT *);
1819   int WINAPI GetBoxResultsHRC(HRC,UINT,UINT,UINT,LPBOXRESULTS,WINBOOL);
1820   int WINAPI GetGuideHRC(HRC,LPGUIDE,UINT *);
1821   int WINAPI GetHotspotsHRCRESULT(HRCRESULT,UINT,LPPOINT,UINT);
1822   HREC WINAPI GetHRECFromHRC(HRC);
1823   int WINAPI GetInternationalHRC(HRC,UINT *,LPSTR,UINT *,UINT *);
1824   int WINAPI GetMaxResultsHRC(HRC);
1825   int WINAPI GetResultsHRC(HRC,UINT,LPHRCRESULT,UINT);
1826   int WINAPI GetSymbolCountHRCRESULT(HRCRESULT);
1827   int WINAPI GetSymbolsHRCRESULT(HRCRESULT,UINT,LPSYV,UINT);
1828   int WINAPI GetWordlistHRC(HRC,LPHWL);
1829   int WINAPI GetWordlistCoercionHRC(HRC);
1830   int WINAPI ProcessHRC(HRC,DWORD);
1831   int WINAPI ReadHWL(HWL,HFILE);
1832   int WINAPI SetAlphabetHRC(HRC,ALC,LPBYTE);
1833   int WINAPI SetAlphabetPriorityHRC(HRC,ALC,LPBYTE);
1834   int WINAPI SetBoxAlphabetHRC(HRC,LPALC,UINT);
1835   int WINAPI SetGuideHRC(HRC,LPGUIDE,UINT);
1836   int WINAPI SetInternationalHRC(HRC,UINT,LPCSTR,UINT,UINT);
1837   int WINAPI SetMaxResultsHRC(HRC,UINT);
1838   HRECHOOK WINAPI SetResultsHookHREC(HREC,HRCRESULTHOOKPROC);
1839   int WINAPI SetWordlistCoercionHRC(HRC,UINT);
1840   int WINAPI SetWordlistHRC(HRC,HWL);
1841   int WINAPI TrainHREC(HREC,LPSYV,UINT,HPENDATA,UINT);
1842   int WINAPI UnhookResultsHookHREC(HREC,HRECHOOK);
1843   int WINAPI WriteHWL(HWL,HFILE);
1844   HREC WINAPI InstallRecognizer(LPSTR);
1845   VOID WINAPI UninstallRecognizer(HREC);
1846   WINBOOL WINAPI AddInksetInterval(HINKSET,LPINTERVAL);
1847   HINKSET WINAPI CreateInkset(UINT);
1848   WINBOOL WINAPI DestroyInkset(HINKSET);
1849   int WINAPI GetInksetInterval(HINKSET,UINT,LPINTERVAL);
1850   int WINAPI GetInksetIntervalCount(HINKSET);
1851   int WINAPI CharacterToSymbol(LPSTR,int,LPSYV);
1852   WINBOOL WINAPI SymbolToCharacter(LPSYV,int,LPSTR,LPINT);
1853 #endif
1854 
1855 #ifndef NOPENINKPUT
1856   int WINAPI DoDefaultPenInput(HWND,UINT);
1857   int WINAPI GetPenInput(HPCM,LPPOINT,LPVOID,UINT,UINT,LPSTROKEINFO);
1858   int WINAPI PeekPenInput(HPCM,UINT,LPPOINT,LPVOID,UINT);
1859   int WINAPI StartInking(HPCM,UINT,LPINKINGINFO);
1860   HPCM WINAPI StartPenInput(HWND,UINT,LPPCMINFO,LPINT);
1861   int WINAPI StopInking(HPCM);
1862   int WINAPI StopPenInput(HPCM,UINT,int);
1863 #endif
1864 
1865 #ifndef NOPENMISC
1866   VOID WINAPI BoundingRectFromPoints(LPPOINT,UINT,LPRECT);
1867   WINBOOL WINAPI DPtoTP(LPPOINT,int);
1868   UINT WINAPI GetPenAppFlags(VOID);
1869   VOID WINAPI SetPenAppFlags(UINT,UINT);
1870   LONG WINAPI GetPenMiscInfo(WPARAM,LPARAM);
1871   UINT WINAPI GetVersionPenWin(VOID);
1872   LONG WINAPI SetPenMiscInfo(WPARAM,LPARAM);
1873   WINBOOL WINAPI TPtoDP(LPPOINT,int);
1874   WINBOOL WINAPI CorrectWriting(HWND,LPSTR,UINT,LPVOID,DWORD,DWORD);
1875 #ifdef JAPAN
1876   int WINAPI CorrectWritingEx(HWND,LPSTR,UINT,LPCWX);
1877 #endif
1878 #ifdef JAPAN
1879   HANDLE WINAPI GetPenResource(WPARAM);
1880 #endif
1881 #endif
1882 
1883 #ifndef NOPENRC1
1884   VOID WINAPI EmulatePen(WINBOOL);
1885   UINT WINAPI EnumSymbols(LPSYG,UINT,ENUMPROC,LPVOID);
1886   WINBOOL WINAPI ExecuteGesture(HWND,SYV,LPRCRESULT);
1887   VOID WINAPI FirstSymbolFromGraph(LPSYG,LPSYV,int,LPINT);
1888   UINT WINAPI GetGlobalRC(LPRC,LPSTR,LPSTR,int);
1889   int WINAPI GetSymbolCount(LPSYG);
1890   int WINAPI GetSymbolMaxLength(LPSYG);
1891   VOID WINAPI InitRC(HWND,LPRC);
1892   REC WINAPI ProcessWriting(HWND,LPRC);
1893   REC WINAPI Recognize(LPRC);
1894   REC WINAPI RecognizeData(LPRC,HPENDATA);
1895   UINT WINAPI SetGlobalRC(LPRC,LPSTR,LPSTR);
1896   WINBOOL WINAPI SetRecogHook(UINT,UINT,HWND);
1897   WINBOOL WINAPI TrainContext(LPRCRESULT,LPSYE,int,LPSYC,int);
1898   WINBOOL WINAPI TrainInk(LPRC,HPENDATA,LPSYV);
1899 
1900   VOID WINAPI CloseRecognizer(VOID);
1901   UINT WINAPI ConfigRecognizer(UINT,WPARAM,LPARAM);
1902   WINBOOL WINAPI InitRecognizer(LPRC);
1903   REC WINAPI RecognizeDataInternal(LPRC,HPENDATA,LPFUNCRESULTS);
1904   REC WINAPI RecognizeInternal(LPRC,LPFUNCRESULTS);
1905   WINBOOL WINAPI TrainContextInternal(LPRCRESULT,LPSYE,int,LPSYC,int);
1906   WINBOOL WINAPI TrainInkInternal(LPRC,HPENDATA,LPSYV);
1907 #endif
1908 
1909 #ifndef NOPENTARGET
1910   int WINAPI TargetPoints(LPTARGINFO,LPPOINT,DWORD,UINT,LPSTROKEINFO);
1911 #endif
1912 
1913 #ifndef NOPENVIRTEVENT
1914 
1915   VOID WINAPI AtomicVirtualEvent(WINBOOL);
1916   VOID WINAPI PostVirtualKeyEvent(UINT,WINBOOL);
1917   VOID WINAPI PostVirtualMouseEvent(UINT,int,int);
1918 #endif
1919 
1920 #ifdef JAPAN
1921   WINBOOL WINAPI KKConvert(HWND hwndConvert,HWND hwndCaller,LPSTR lpBuf,UINT cbBuf,LPPOINT lpPnt);
1922 #endif
1923 #endif
1924 
1925 #ifdef __cplusplus
1926 }
1927 #endif
1928 
1929 #endif
1930