Home | History | Annotate | Download | only in include
      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