master
   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
  18extern "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