/**
* This file has no copyright assigned and is placed in the Public Domain.
* This file is part of the mingw-w64 runtime package.
* No warranty is given; refer to the file DISCLAIMER.PD within this package.
*/
#ifndef _INC_PENWIN
#define _INC_PENWIN
#ifndef NOJAPAN
#ifndef JAPAN
#define JAPAN
#endif
#endif
#include <windows.h>
#ifdef __cplusplus
extern "C" {
#endif
#ifndef PENVER
#define PENVER 0x0200
#endif
#define NOPENAPPS
#define NOPENDICT
#define NOPENRC1
#define NOPENVIRTEVENT
#define NOPENAPIFUN
#ifndef NOPENAPPS
#ifndef RC_INVOKED
#include <skbapi.h>
#endif
#endif
#ifdef NOPENCTL
#define NOPENBEDIT
#define NOPENIEDIT
#endif
#ifdef NOPENRES
#define NOPENBMP
#define NOPENCURS
#endif
#ifndef NOPENALC
#define ALC_DEFAULT __MSABI_LONG(0x00000000)
#define ALC_LCALPHA __MSABI_LONG(0x00000001)
#define ALC_UCALPHA __MSABI_LONG(0x00000002)
#define ALC_NUMERIC __MSABI_LONG(0x00000004)
#define ALC_PUNC __MSABI_LONG(0x00000008)
#define ALC_MATH __MSABI_LONG(0x00000010)
#define ALC_MONETARY __MSABI_LONG(0x00000020)
#define ALC_OTHER __MSABI_LONG(0x00000040)
#define ALC_ASCII __MSABI_LONG(0x00000080)
#define ALC_WHITE __MSABI_LONG(0x00000100)
#define ALC_NONPRINT __MSABI_LONG(0x00000200)
#define ALC_DBCS __MSABI_LONG(0x00000400)
#define ALC_JIS1 __MSABI_LONG(0x00000800)
#define ALC_GESTURE __MSABI_LONG(0x00004000)
#define ALC_USEBITMAP __MSABI_LONG(0x00008000)
#define ALC_HIRAGANA __MSABI_LONG(0x00010000)
#define ALC_KATAKANA __MSABI_LONG(0x00020000)
#define ALC_KANJI __MSABI_LONG(0x00040000)
#define ALC_GLOBALPRIORITY __MSABI_LONG(0x10000000)
#define ALC_OEM __MSABI_LONG(0x0FF80000)
#define ALC_RESERVED __MSABI_LONG(0xE0003000)
#define ALC_NOPRIORITY __MSABI_LONG(0x00000000)
#define ALC_ALPHA (ALC_LCALPHA | ALC_UCALPHA)
#define ALC_ALPHANUMERIC (ALC_ALPHA | ALC_NUMERIC)
#define ALC_SYSMINIMUM (ALC_ALPHANUMERIC | ALC_PUNC | ALC_WHITE | ALC_GESTURE)
#define ALC_ALL (ALC_SYSMINIMUM | ALC_MATH | ALC_MONETARY | ALC_OTHER | ALC_NONPRINT)
#define ALC_KANJISYSMINIMUM (ALC_SYSMINIMUM | ALC_HIRAGANA | ALC_KATAKANA | ALC_JIS1)
#define ALC_KANJIALL (ALC_ALL | ALC_HIRAGANA | ALC_KATAKANA | ALC_KANJI)
#endif
#ifndef NOPENBEDIT
#define BXS_NONE 0x0000U
#define BXS_RECT 0x0001U
#define BXS_BOXCROSS 0x0004U
#ifdef JAPAN
#define BXS_NOWRITING 0x0008U
#endif
#endif
#ifndef NOPENBMP
#define OBM_SKBBTNUP 32767
#define OBM_SKBBTNDOWN 32766
#define OBM_SKBBTNDISABLED 32765
#define OBM_ZENBTNUP 32764
#define OBM_ZENBTNDOWN 32763
#define OBM_ZENBTNDISABLED 32762
#define OBM_HANBTNUP 32761
#define OBM_HANBTNDOWN 32760
#define OBM_HANBTNDISABLED 32759
#define OBM_KKCBTNUP 32758
#define OBM_KKCBTNDOWN 32757
#define OBM_KKCBTNDISABLED 32756
#define OBM_SIPBTNUP 32755
#define OBM_SIPBTNDOWN 32754
#define OBM_SIPBTNDISABLED 32753
#define OBM_PTYBTNUP 32752
#define OBM_PTYBTNDOWN 32751
#define OBM_PTYBTNDISABLED 32750
#endif
#ifndef NOPENCURS
#define IDC_PEN MAKEINTRESOURCE(32631)
#define IDC_ALTSELECT MAKEINTRESOURCE(32501)
#endif
#ifndef NOPENHRC
#define SYV_NULL __MSABI_LONG(0x00000000)
#define SYV_UNKNOWN __MSABI_LONG(0x00000001)
#define SYV_EMPTY __MSABI_LONG(0x00000003)
#define SYV_BEGINOR __MSABI_LONG(0x00000010)
#define SYV_ENDOR __MSABI_LONG(0x00000011)
#define SYV_OR __MSABI_LONG(0x00000012)
#define SYV_SOFTNEWLINE __MSABI_LONG(0x00000020)
#define SYV_SPACENULL __MSABI_LONG(0x00010000)
#define SYV_SELECTFIRST __MSABI_LONG(0x0002FFC0)
#define SYV_LASSO __MSABI_LONG(0x0002FFC1)
#define SYV_SELECTLEFT __MSABI_LONG(0x0002FFC2)
#define SYV_SELECTRIGHT __MSABI_LONG(0x0002FFC3)
#define SYV_SELECTLAST __MSABI_LONG(0x0002FFCF)
#define SYV_CLEARCHAR __MSABI_LONG(0x0002FFD2)
#define SYV_HELP __MSABI_LONG(0x0002FFD3)
#define SYV_KKCONVERT __MSABI_LONG(0x0002FFD4)
#define SYV_CLEAR __MSABI_LONG(0x0002FFD5)
#define SYV_INSERT __MSABI_LONG(0x0002FFD6)
#define SYV_CONTEXT __MSABI_LONG(0x0002FFD7)
#define SYV_EXTENDSELECT __MSABI_LONG(0x0002FFD8)
#define SYV_UNDO __MSABI_LONG(0x0002FFD9)
#define SYV_COPY __MSABI_LONG(0x0002FFDA)
#define SYV_CUT __MSABI_LONG(0x0002FFDB)
#define SYV_PASTE __MSABI_LONG(0x0002FFDC)
#define SYV_CLEARWORD __MSABI_LONG(0x0002FFDD)
#define SYV_USER __MSABI_LONG(0x0002FFDE)
#define SYV_CORRECT __MSABI_LONG(0x0002FFDF)
#define SYV_BACKSPACE __MSABI_LONG(0x00020008)
#define SYV_TAB __MSABI_LONG(0x00020009)
#define SYV_RETURN __MSABI_LONG(0x0002000D)
#define SYV_SPACE __MSABI_LONG(0x00020020)
#define SYV_APPGESTUREMASK __MSABI_LONG(0x00020000)
#define SYV_CIRCLEUPA __MSABI_LONG(0x000224B6)
#define SYV_CIRCLEUPZ __MSABI_LONG(0x000224CF)
#define SYV_CIRCLELOA __MSABI_LONG(0x000224D0)
#define SYV_CIRCLELOZ __MSABI_LONG(0x000224E9)
#define SYV_SHAPELINE __MSABI_LONG(0x00040001)
#define SYV_SHAPEELLIPSE __MSABI_LONG(0x00040002)
#define SYV_SHAPERECT __MSABI_LONG(0x00040003)
#define SYV_SHAPEMIN SYV_SHAPELINE
#define SYV_SHAPEMAX SYV_SHAPERECT
#define SYVHI_SPECIAL 0
#define SYVHI_ANSI 1
#define SYVHI_GESTURE 2
#define SYVHI_KANJI 3
#define SYVHI_SHAPE 4
#define SYVHI_UNICODE 5
#define SYVHI_VKEY 6
#endif
#ifndef NOPENIEDIT
#define IEM_UNDO 1
#define IEM_CUT 2
#define IEM_COPY 3
#define IEM_PASTE 4
#define IEM_CLEAR 5
#define IEM_SELECTALL 6
#define IEM_ERASE 7
#define IEM_PROPERTIES 8
#define IEM_LASSO 9
#define IEM_RESIZE 10
#define IEM_USER 100
#define IES_BORDER 0x0001
#define IES_HSCROLL 0x0002
#define IES_VSCROLL 0x0004
#define IES_OWNERDRAW 0x0008
#endif
#ifndef RC_INVOKED
#ifndef NOPENDATA
#define AI_CBSTROKE 0xFFFF
#define AI_SKIPUPSTROKES 0x0001
#define CMPD_COMPRESS 0x0001
#define CMPD_DECOMPRESS 0x0002
#define CPDR_BOX 1
#define CPDR_LASSO 2
#define CPD_DEFAULT 0x047F
#define CPD_USERBYTE 0x0100
#define CPD_USERWORD 0x0200
#define CPD_USERDWORD 0x0300
#define CPD_TIME 0x0400
#define DPD_HDCPEN 0x0001
#define DPD_DRAWSEL 0x0002
#define EPDP_REMOVE 0x0001
#define EPDS_SELECT 1
#define EPDS_STROKEINDEX 2
#define EPDS_USER 3
#define EPDS_PENTIP 4
#define EPDS_TIPCOLOR 5
#define EPDS_TIPWIDTH 6
#define EPDS_TIPNIB 7
#define EPDS_INKSET 8
#define EPDS_EQ 0x0000
#define EPDS_LT 0x0010
#define EPDS_GT 0x0020
#define EPDS_NOT 0x0040
#define EPDS_NE 0x0040
#define EPDS_GTE 0x0050
#define EPDS_LTE 0x0060
#define EPDS_REMOVE 0x8000
#define GPA_MAXLEN 1
#define GPA_POINTS 2
#define GPA_PDTS 3
#define GPA_RATE 4
#define GPA_RECTBOUND 5
#define GPA_RECTBOUNDINK 6
#define GPA_SIZE 7
#define GPA_STROKES 8
#define GPA_TIME 9
#define GPA_USER 10
#define GPA_VERSION 11
#define GSA_PENTIP 1
#define GSA_PENTIPCLASS 2
#define GSA_USER 3
#define GSA_USERCLASS 4
#define GSA_TIME 5
#define GSA_SIZE 6
#define GSA_SELECT 7
#define GSA_DOWN 8
#define GSA_RECTBOUND 9
#define GSA_PENTIPTABLE 10
#define GSA_SIZETABLE 11
#define GSA_USERTABLE 12
#ifndef IX_END
#define IX_END 0xFFFF
#endif
#define PENTIP_NIBDEFAULT ((BYTE)0)
#define PENTIP_HEIGHTDEFAULT ((BYTE)0)
#define PENTIP_OPAQUE ((BYTE)0xFF)
#define PENTIP_HILITE ((BYTE)0x80)
#define PENTIP_TRANSPARENT ((BYTE)0)
#define PDR_NOHIT 3
#define PDR_HIT 2
#define PDR_OK 1
#define PDR_CANCEL 0
#define PDR_ERROR (-1)
#define PDR_PNDTERR (-2)
#define PDR_VERSIONERR (-3)
#define PDR_COMPRESSED (-4)
#define PDR_STRKINDEXERR (-5)
#define PDR_PNTINDEXERR (-6)
#define PDR_MEMERR (-7)
#define PDR_INKSETERR (-8)
#define PDR_ABORT (-9)
#define PDR_NA (-10)
#define PDR_USERDATAERR (-16)
#define PDR_SCALINGERR (-17)
#define PDR_TIMESTAMPERR (-18)
#define PDR_OEMDATAERR (-19)
#define PDR_SCTERR (-20)
#define PDTS_LOMETRIC 0
#define PDTS_HIMETRIC 1
#define PDTS_HIENGLISH 2
#define PDTS_STANDARDSCALE 2
#define PDTS_DISPLAY 3
#define PDTS_ARBITRARY 4
#define PDTS_SCALEMASK 0x000F
#define PDTT_DEFAULT 0x0000
#define PDTT_PENINFO 0x0100
#define PDTT_UPPOINTS 0x0200
#define PDTT_OEMDATA 0x0400
#define PDTT_COLLINEAR 0x0800
#define PDTT_COLINEAR 0x0800
#define PDTT_DECOMPRESS 0x4000
#define PDTT_COMPRESS 0x8000
#define PDTT_ALL 0x0F00
#define PHW_NONE 0x0000
#define PHW_PRESSURE 0x0001
#define PHW_HEIGHT 0x0002
#define PHW_ANGLEXY 0x0004
#define PHW_ANGLEZ 0x0008
#define PHW_BARRELROTATION 0x0010
#define PHW_OEMSPECIFIC 0x0020
#define PHW_PDK 0x0040
#define PHW_ALL 0x007F
#define PDTS_COMPRESS2NDDERIV 0x0010
#define PDTS_COMPRESSMETHOD 0x00F0
#define PDTS_NOPENINFO 0x0100
#define PDTS_NOUPPOINTS 0x0200
#define PDTS_NOOEMDATA 0x0400
#define PDTS_NOCOLLINEAR 0x0800
#define PDTS_NOCOLINEAR 0x0800
#define PDTS_NOTICK 0x1000
#define PDTS_NOUSER 0x2000
#define PDTS_NOEMPTYSTROKES 0x4000
#define PDTS_COMPRESSED 0x8000
#define SSA_PENTIP 1
#define SSA_PENTIPCLASS 2
#define SSA_USER 3
#define SSA_USERCLASS 4
#define SSA_TIME 5
#define SSA_SELECT 6
#define SSA_DOWN 7
#define SSA_PENTIPTABLE 8
#define SSA_USERTABLE 9
#define TIP_ERASECOLOR 1
#define TPD_RECALCSIZE 0x0000
#define TPD_USER 0x0080
#define TPD_TIME 0x0100
#define TPD_UPPOINTS 0x0200
#define TPD_COLLINEAR 0x0400
#define TPD_COLINEAR 0x0400
#define TPD_PENINFO 0x0800
#define TPD_PHW 0x1000
#define TPD_OEMDATA 0x1000
#define TPD_EMPTYSTROKES 0x2000
#define TPD_EVERYTHING 0x3FFF
#endif
#ifndef NOPENDICT
#define cbDictPathMax 255
#define DIRQ_QUERY 1
#define DIRQ_DESCRIPTION 2
#define DIRQ_CONFIGURE 3
#define DIRQ_OPEN 4
#define DIRQ_CLOSE 5
#define DIRQ_SETWORDLISTS 6
#define DIRQ_STRING 7
#define DIRQ_SUGGEST 8
#define DIRQ_ADD 9
#define DIRQ_DELETE 10
#define DIRQ_FLUSH 11
#define DIRQ_RCCHANGE 12
#define DIRQ_SYMBOLGRAPH 13
#define DIRQ_INIT 14
#define DIRQ_CLEANUP 15
#define DIRQ_COPYRIGHT 16
#define DIRQ_USER 4096
#endif
#ifndef NOPENDRIVER
#define BITPENUP 0x8000
#define DRV_SetPenDriverEntryPoints DRV_RESERVED+1
#define DRV_SetEntryPoints DRV_RESERVED+1
#define DRV_RemovePenDriverEntryPoints DRV_RESERVED+2
#define DRV_RemoveEntryPoints DRV_RESERVED+2
#define DRV_SetPenSamplingRate DRV_RESERVED+3
#define DRV_SetPenSamplingDist DRV_RESERVED+4
#define DRV_GetName DRV_RESERVED+5
#define DRV_GetVersion DRV_RESERVED+6
#define DRV_GetPenInfo DRV_RESERVED+7
#define DRV_PenPlayStart DRV_RESERVED+8
#define DRV_PenPlayBack DRV_RESERVED+9
#define DRV_PenPlayStop DRV_RESERVED+10
#define DRV_GetCalibration DRV_RESERVED+11
#define DRV_SetCalibration DRV_RESERVED+12
#define DRV_Reserved1 DRV_RESERVED+13
#define DRV_Reserved2 DRV_RESERVED+14
#define DRV_Query DRV_RESERVED+15
#define DRV_GetPenSamplingRate DRV_RESERVED+16
#define DRV_Calibrate DRV_RESERVED+17
#define PLAY_VERSION_10_DATA 0
#define PLAY_VERSION_20_DATA 1
#define DRV_FAILURE 0x00000000
#define DRV_SUCCESS 0x00000001
#define DRV_BADPARAM1 0xFFFFFFFF
#define DRV_BADPARAM2 0xFFFFFFFE
#define DRV_BADSTRUCT 0xFFFFFFFD
#define PENREG_DEFAULT 0x00000002
#define PENREG_WILLHANDLEMOUSE 0x00000001
#define MAXOEMDATAWORDS 6
#define PCM_PENUP __MSABI_LONG(0x00000001)
#define PCM_RANGE __MSABI_LONG(0x00000002)
#define PCM_INVERT __MSABI_LONG(0x00000020)
#define PCM_RECTEXCLUDE __MSABI_LONG(0x00002000)
#define PCM_RECTBOUND __MSABI_LONG(0x00004000)
#define PCM_TIMEOUT __MSABI_LONG(0x00008000)
#define PCM_RGNBOUND __MSABI_LONG(0x00010000)
#define PCM_RGNEXCLUDE __MSABI_LONG(0x00020000)
#define PCM_DOPOLLING __MSABI_LONG(0x00040000)
#define PCM_TAPNHOLD __MSABI_LONG(0x00080000)
#define PCM_ADDDEFAULTS RC_LDEFAULTFLAGS
#define PDC_INTEGRATED __MSABI_LONG(0x00000001)
#define PDC_PROXIMITY __MSABI_LONG(0x00000002)
#define PDC_RANGE __MSABI_LONG(0x00000004)
#define PDC_INVERT __MSABI_LONG(0x00000008)
#define PDC_RELATIVE __MSABI_LONG(0x00000010)
#define PDC_BARREL1 __MSABI_LONG(0x00000020)
#define PDC_BARREL2 __MSABI_LONG(0x00000040)
#define PDC_BARREL3 __MSABI_LONG(0x00000080)
#define PDK_NULL 0x0000
#define PDK_UP 0x0000
#define PDK_DOWN 0x0001
#define PDK_BARREL1 0x0002
#define PDK_BARREL2 0x0004
#define PDK_BARREL3 0x0008
#define PDK_SWITCHES 0x000f
#define PDK_TRANSITION 0x0010
#define PDK_UNUSED10 0x0020
#define PDK_UNUSED20 0x0040
#define PDK_INVERTED 0x0080
#define PDK_PENIDMASK 0x0F00
#define PDK_UNUSED1000 0x1000
#define PDK_INKSTOPPED 0x2000
#define PDK_OUTOFRANGE 0x4000
#define PDK_DRIVER 0x8000
#define PDK_TIPMASK 0x0001
#define PDT_NULL 0
#define PDT_PRESSURE 1
#define PDT_HEIGHT 2
#define PDT_ANGLEXY 3
#define PDT_ANGLEZ 4
#define PDT_BARRELROTATION 5
#define PDT_OEMSPECIFIC 16
#define PID_CURRENT (UINT)(-1)
#define REC_OEM (-1024)
#define REC_LANGUAGE (-48)
#define REC_GUIDE (-47)
#define REC_PARAMERROR (-46)
#define REC_INVALIDREF (-45)
#define REC_RECTEXCLUDE (-44)
#define REC_RECTBOUND (-43)
#define REC_PCM (-42)
#define REC_RESULTMODE (-41)
#define REC_HWND (-40)
#define REC_ALC (-39)
#define REC_ERRORLEVEL (-38)
#define REC_CLVERIFY (-37)
#define REC_DICT (-36)
#define REC_HREC (-35)
#define REC_BADEVENTREF (-33)
#define REC_NOCOLLECTION (-32)
#define REC_DEBUG (-32)
#define REC_POINTEREVENT (-31)
#define REC_BADHPENDATA (-9)
#define REC_OOM (-8)
#define REC_NOINPUT (-7)
#define REC_NOTABLET (-6)
#define REC_BUSY (-5)
#define REC_BUFFERTOOSMALL (-4)
#define REC_ABORT (-3)
#define REC_NA (-2)
#define REC_OVERFLOW (-1)
#define REC_OK 0
#define REC_TERMBOUND 1
#define REC_TERMEX 2
#define REC_TERMPENUP 3
#define REC_TERMRANGE 4
#define REC_TERMTIMEOUT 5
#define REC_DONE 6
#define REC_TERMOEM 512
#endif
#ifndef NOPENHRC
#define GRH_ALL 0
#define GRH_GESTURE 1
#define GRH_NONGESTURE 2
#ifdef JAPAN
#define GST_SEL __MSABI_LONG(0x00000001)
#define GST_CLIP __MSABI_LONG(0x00000002)
#define GST_WHITE __MSABI_LONG(0x00000004)
#define GST_KKCONVERT __MSABI_LONG(0x00000008)
#define GST_EDIT __MSABI_LONG(0x00000010)
#define GST_SYS __MSABI_LONG(0x0000001F)
#define GST_CIRCLELO __MSABI_LONG(0x00000100)
#define GST_CIRCLEUP __MSABI_LONG(0x00000200)
#define GST_CIRCLE __MSABI_LONG(0x00000300)
#define GST_ALL __MSABI_LONG(0x0000031F)
#else
#define GST_SEL __MSABI_LONG(0x00000001)
#define GST_CLIP __MSABI_LONG(0x00000002)
#define GST_WHITE __MSABI_LONG(0x00000004)
#define GST_EDIT __MSABI_LONG(0x00000010)
#define GST_SYS __MSABI_LONG(0x00000017)
#define GST_CIRCLELO __MSABI_LONG(0x00000100)
#define GST_CIRCLEUP __MSABI_LONG(0x00000200)
#define GST_CIRCLE __MSABI_LONG(0x00000300)
#define GST_ALL __MSABI_LONG(0x00000317)
#endif
#define HRCR_NORESULTS 4
#define HRCR_COMPLETE 3
#define HRCR_GESTURE 2
#define HRCR_OK 1
#define HRCR_INCOMPLETE 0
#define HRCR_ERROR (-1)
#define HRCR_MEMERR (-2)
#define HRCR_INVALIDGUIDE (-3)
#define HRCR_INVALIDPNDT (-4)
#define HRCR_UNSUPPORTED (-5)
#define HRCR_CONFLICT (-6)
#define HRCR_HOOKED (-8)
#define HWL_SYSTEM ((HWL)1)
#define ISR_ERROR (-1)
#define ISR_BADINKSET (-2)
#define ISR_BADINDEX (-3)
#ifndef IX_END
#define IX_END 0xFFFF
#endif
#define MAXHOTSPOT 8
#define PH_MAX __MSABI_LONG(0xFFFFFFFF)
#define PH_DEFAULT __MSABI_LONG(0xFFFFFFFE)
#define PH_MIN __MSABI_LONG(0xFFFFFFFD)
#define RHH_STD 0
#define RHH_BOX 1
#define SCH_NONE 0
#define SCH_ADVISE 1
#define SCH_FORCE 2
#define SCIM_INSERT 0
#define SCIM_OVERWRITE 1
#define SRH_HOOKALL (HREC)1
#define SSH_RD 1
#define SSH_RU 2
#define SSH_LD 3
#define SSH_LU 4
#define SSH_DL 5
#define SSH_DR 6
#define SSH_UL 7
#define SSH_UR 8
#define SIH_ALLANSICHAR 1
#define TH_QUERY 0
#define TH_FORCE 1
#define TH_SUGGEST 2
#define TRAIN_NONE 0x0000
#define TRAIN_DEFAULT 0x0001
#define TRAIN_CUSTOM 0x0002
#define TRAIN_BOTH (TRAIN_DEFAULT | TRAIN_CUSTOM)
#define TRAIN_SAVE 0
#define TRAIN_REVERT 1
#define TRAIN_RESET 2
#define WCR_RECOGNAME 0
#define WCR_QUERY 1
#define WCR_CONFIGDIALOG 2
#define WCR_DEFAULT 3
#define WCR_RCCHANGE 4
#define WCR_VERSION 5
#define WCR_TRAIN 6
#define WCR_TRAINSAVE 7
#define WCR_TRAINMAX 8
#define WCR_TRAINDIRTY 9
#define WCR_TRAINCUSTOM 10
#define WCR_QUERYLANGUAGE 11
#define WCR_USERCHANGE 12
#define WCR_PWVERSION 13
#define WCR_GETALCPRIORITY 14
#define WCR_SETALCPRIORITY 15
#define WCR_GETANSISTATE 16
#define WCR_SETANSISTATE 17
#define WCR_GETHAND 18
#define WCR_SETHAND 19
#define WCR_GETDIRECTION 20
#define WCR_SETDIRECTION 21
#define WCR_INITRECOGNIZER 22
#define WCR_CLOSERECOGNIZER 23
#define WCR_PRIVATE 1024
#define CRUC_NOTIFY 0
#define CRUC_REMOVE 1
#define WLT_STRING 0
#define WLT_STRINGTABLE 1
#define WLT_EMPTY 2
#define WLT_WORDLIST 3
#endif
#ifndef NOPENIEDIT
#define IEB_DEFAULT 0
#define IEB_BRUSH 1
#define IEB_BIT_UL 2
#define IEB_BIT_CENTER 3
#define IEB_BIT_TILE 4
#define IEB_BIT_STRETCH 5
#define IEB_OWNERDRAW 6
#define IEDO_NONE 0x0000
#define IEDO_FAST 0x0001
#define IEDO_SAVEUPSTROKES 0x0002
#define IEDO_RESERVED 0xFFFC
#define IEI_MOVE 0x0001
#define IEI_RESIZE 0x0002
#define IEI_CROP 0x0004
#define IEI_DISCARD 0x0008
#define IEI_RESERVED 0xFFF0
#define IEGI_ALL 0x0000
#define IEGI_SELECTION 0x0001
#define IEMODE_READY 0
#define IEMODE_ERASE 1
#define IEMODE_LASSO 2
#define IEN_NULL 0x0000
#define IEN_PDEVENT 0x0001
#define IEN_PAINT 0x0002
#define IEN_FOCUS 0x0004
#define IEN_SCROLL 0x0008
#define IEN_EDIT 0x0010
#define IEN_PROPERTIES 0x0020
#define IEN_RESERVED 0xFF80
#define IER_OK 0
#define IER_NO 0
#define IER_YES 1
#define IER_ERROR (-1)
#define IER_PARAMERR (-2)
#define IER_OWNERDRAW (-3)
#define IER_SECURITY (-4)
#define IER_SELECTION (-5)
#define IER_SCALE (-6)
#define IER_MEMERR (-7)
#define IER_NOCOMMAND (-8)
#define IER_NOGESTURE (-9)
#define IER_NOPDEVENT (-10)
#define IER_NOTINPAINT (-11)
#define IER_PENDATA (-12)
#define IEREC_NONE 0x0000
#define IEREC_GESTURE 0x0001
#define IEREC_ALL (IEREC_GESTURE)
#define IEREC_RESERVED 0xFFFE
#define IESEC_NOCOPY 0x0001
#define IESEC_NOCUT 0x0002
#define IESEC_NOPASTE 0x0004
#define IESEC_NOUNDO 0x0008
#define IESEC_NOINK 0x0010
#define IESEC_NOERASE 0x0020
#define IESEC_NOGET 0x0040
#define IESEC_NOSET 0x0080
#define IESEC_RESERVED 0xFF00
#define IESF_ALL 0x0001
#define IESF_SELECTION 0x0002
#define IESF_STROKE 0x0004
#define IESF_TIPCOLOR 0x0008
#define IESF_TIPWIDTH 0x0010
#define IESF_PENTIP (IESF_TIPCOLOR|IESF_TIPWIDTH)
#define IESI_REPLACE 0x0000
#define IESI_APPEND 0x0001
#define IN_PDEVENT ((IEN_PDEVENT<<8)|0)
#define IN_ERASEBKGND ((IEN_NULL<<8)|1)
#define IN_PREPAINT ((IEN_PAINT<<8)|2)
#define IN_PAINT ((IEN_NULL<<8)|3)
#define IN_POSTPAINT ((IEN_PAINT<<8)|4)
#define IN_MODECHANGED ((IEN_EDIT<<8)|5)
#define IN_CHANGE ((IEN_EDIT<<8)|6)
#define IN_UPDATE ((IEN_EDIT<<8)|7)
#define IN_SETFOCUS ((IEN_FOCUS<<8)|8)
#define IN_KILLFOCUS ((IEN_FOCUS<<8)|9)
#define IN_MEMERR ((IEN_NULL<<8)|10)
#define IN_HSCROLL ((IEN_SCROLL<<8)|11)
#define IN_VSCROLL ((IEN_SCROLL<<8)|12)
#define IN_GESTURE ((IEN_EDIT<<8)|13)
#define IN_COMMAND ((IEN_EDIT<<8)|14)
#define IN_CLOSE ((IEN_NULL<<8)|15)
#define IN_PROPERTIES ((IEN_PROPERTIES<<8)|16)
#endif
#ifndef NOPENINKPUT
#define LRET_DONE __MSABI_LONG(1)
#define LRET_ABORT (__MSABI_LONG(-1))
#define LRET_HRC (__MSABI_LONG(-2))
#define LRET_HPENDATA (__MSABI_LONG(-3))
#define LRET_PRIVATE (__MSABI_LONG(-4))
#define PCMR_OK 0
#define PCMR_ALREADYCOLLECTING (-1)
#define PCMR_INVALIDCOLLECTION (-2)
#define PCMR_EVENTLOCK (-3)
#define PCMR_INVALID_PACKETID (-4)
#define PCMR_TERMTIMEOUT (-5)
#define PCMR_TERMRANGE (-6)
#define PCMR_TERMPENUP (-7)
#define PCMR_TERMEX (-8)
#define PCMR_TERMBOUND (-9)
#define PCMR_APPTERMINATED (-10)
#define PCMR_TAP (-11)
#define PCMR_SELECT (-12)
#define PCMR_OVERFLOW (-13)
#define PCMR_ERROR (-14)
#define PCMR_DISPLAYERR (-15)
#define PCMR_TERMINVERT (-16)
#define PII_INKCLIPRECT 0x0001
#define PII_INKSTOPRECT 0x0002
#define PII_INKCLIPRGN 0x0004
#define PII_INKSTOPRGN 0x0008
#define PII_INKPENTIP 0x0010
#define PII_SAVEBACKGROUND 0x0020
#define PII_CLIPSTOP 0x0040
#define PIT_RGNBOUND 0x0001
#define PIT_RGNEXCLUDE 0x0002
#define PIT_TIMEOUT 0x0004
#define PIT_TAPNHOLD 0x0008
#endif
#ifndef NOPENMISC
#define CL_NULL 0
#define CL_MINIMUM 1
#define CL_MAXIMUM 100
#define cwRcReservedMax 8
#define ENUM_MINIMUM 1
#define ENUM_MAXIMUM 4096
#define HKP_SETHOOK 0
#define HKP_UNHOOK 0xFFFF
#define HWR_RESULTS 0
#define HWR_APPWIDE 1
#define iSycNull (-1)
#define LPDFNULL ((LPDF)NULL)
#define MAXDICTIONARIES 16
#define wPntAll (UINT)0xFFFF
#define cbRcLanguageMax 44
#define cbRcUserMax 32
#define cbRcrgbfAlcMax 32
#define RC_WDEFAULT 0xffff
#define RC_LDEFAULT __MSABI_LONG(0xffffffff)
#define RC_WDEFAULTFLAGS 0x8000
#define RC_LDEFAULTFLAGS __MSABI_LONG(0x80000000)
#define CWR_REPLACECR 0x0001
#define CWR_STRIPCR CWR_REPLACECR
#define CWR_STRIPLF 0x0002
#define CWR_REPLACETAB 0x0004
#define CWR_STRIPTAB CWR_REPLACETAB
#define CWR_SINGLELINEEDIT (CWR_REPLACECR|CWR_STRIPLF|CWR_REPLACETAB)
#define CWR_INSERT 0x0008
#define CWR_TITLE 0x0010
#define CWR_SIMPLE 0x0040
#define CWR_HEDIT 0x0080
#define CWR_KEYBOARD 0x0100
#define CWR_BOXES 0x0200
#define CWRK_DEFAULT 0
#define CWRK_BASIC 1
#define CWRK_FULL 2
#define CWRK_NUMPAD 3
#define CWRK_TELPAD 4
#ifdef JAPAN
#define CBCAPTIONCWX 256
#define CKBCWX 6
#define XCWX 20
#define YCWX 20
#define CXCWX 300
#define CYCWX 200
#define CWX_TOPMOST __MSABI_LONG(0x00000001)
#define CWX_NOTOOLTIPS __MSABI_LONG(0x00000002)
#define CWX_EPERIOD __MSABI_LONG(0x00000004)
#define CWX_ECOMMA __MSABI_LONG(0x00000008)
#define CWX_DEFAULT __MSABI_LONG(0x00000000)
#define CWXA_CONTEXT 0x0001
#define CWXA_KBD 0x0002
#define CWXA_STATE 0x0004
#define CWXA_PTUL 0x0008
#define CWXA_SIZE 0x0010
#define CWXA_NOUPDATEMRU 0x0020
#define CWXK_HW 0
#define CWXK_FIRST 0x0100
#define CWXK_50 0x0100
#define CWXK_QWERTY 0x0101
#define CWXK_NUM 0x0102
#define CWXK_KANJI 0x0103
#define CWXK_CODE 0x0104
#define CWXK_YOMI 0x0105
#define CWXKS_DEFAULT 0xffff
#define CWXKS_ZEN 0
#define CWXKS_HAN 1
#define CWXKS_ROMAZEN 2
#define CWXKS_ROMAHAN 3
#define CWXKS_HIRAZEN 4
#define CWXKS_KATAZEN 5
#define CWXKS_KATAHAN 6
#define CWXR_ERROR -1
#define CWXR_UNMODIFIED 0
#define CWXR_MODIFIED 1
#endif
#ifdef JAPAN
#define GPMI_OK __MSABI_LONG(0)
#define GPMI_INVALIDPMI __MSABI_LONG(0x8000)
#endif
#define INKWIDTH_MINIMUM 0
#define INKWIDTH_MAXIMUM 15
#define PMI_RCCHANGE 0
#define PMI_BEDIT 1
#define PMI_CXTABLET 3
#define PMI_CYTABLET 4
#define PMI_PENTIP 6
#define PMI_ENABLEFLAGS 7
#define PMI_TIMEOUT 8
#define PMI_TIMEOUTGEST 9
#define PMI_TIMEOUTSEL 10
#define PMI_SYSFLAGS 11
#define PMI_INDEXFROMRGB 12
#define PMI_RGBFROMINDEX 13
#define PMI_SYSREC 14
#define PMI_TICKREF 15
#define PMI_SAVE 0x1000
#ifdef JAPAN
#define GPR_CURSPEN 1
#define GPR_CURSCOPY 2
#define GPR_CURSUNKNOWN 3
#define GPR_CURSERASE 4
#define GPR_BMCRMONO 5
#define GPR_BMLFMONO 6
#define GPR_BMTABMONO 7
#define GPR_BMDELETE 8
#define GPR_BMLENSBTN 9
#ifdef JAPAN
#define GPR_BMHSPMONO 10
#define GPR_BMZSPMONO 11
#endif
#endif
#define PWE_AUTOWRITE 0x0001
#define PWE_ACTIONHANDLES 0x0002
#define PWE_INPUTCURSOR 0x0004
#define PWE_LENS 0x0008
#define PWF_RC1 0x0001
#define PWF_PEN 0x0004
#define PWF_INKDISPLAY 0x0008
#define PWF_RECOGNIZER 0x0010
#define PWF_BEDIT 0x0100
#define PWF_HEDIT 0x0200
#define PWF_IEDIT 0x0400
#define PWF_ENHANCED 0x1000
#define PWF_FULL PWF_RC1|PWF_PEN|PWF_INKDISPLAY|PWF_RECOGNIZER| PWF_BEDIT|PWF_HEDIT |PWF_IEDIT|PWF_ENHANCED
#define RPA_DEFAULT 0x0001
#define RPA_HEDIT 0x0001
#define RPA_KANJIFIXEDBEDIT 0x0002
#define RPA_DBCSPRIORITY 0x0004
#define RPA_SBCSPRIORITY 0x0008
#define PMIR_OK __MSABI_LONG(0)
#define PMIR_INDEX (__MSABI_LONG(-1))
#define PMIR_VALUE (__MSABI_LONG(-2))
#define PMIR_INVALIDBOXEDITINFO (__MSABI_LONG(-3))
#define PMIR_INIERROR (__MSABI_LONG(-4))
#define PMIR_ERROR (__MSABI_LONG(-5))
#define PMIR_NA (__MSABI_LONG(-6))
#ifdef JAPAN
#define SPMI_OK __MSABI_LONG(0)
#define SPMI_INVALIDBOXEDITINFO __MSABI_LONG(1)
#define SPMI_INIERROR __MSABI_LONG(2)
#define SPMI_INVALIDPMI __MSABI_LONG(0x8000)
#endif
#endif
#ifndef NOPENRC1
#define GGRC_OK 0
#define GGRC_DICTBUFTOOSMALL 1
#define GGRC_PARAMERROR 2
#define GGRC_NA 3
#define RCD_DEFAULT 0
#define RCD_LR 1
#define RCD_RL 2
#define RCD_TB 3
#define RCD_BT 4
#define RCIP_ALLANSICHAR 0x0001
#define RCIP_MASK 0x0001
#define RCO_NOPOINTEREVENT __MSABI_LONG(0x00000001)
#define RCO_SAVEALLDATA __MSABI_LONG(0x00000002)
#define RCO_SAVEHPENDATA __MSABI_LONG(0x00000004)
#define RCO_NOFLASHUNKNOWN __MSABI_LONG(0x00000008)
#define RCO_TABLETCOORD __MSABI_LONG(0x00000010)
#define RCO_NOSPACEBREAK __MSABI_LONG(0x00000020)
#define RCO_NOHIDECURSOR __MSABI_LONG(0x00000040)
#define RCO_NOHOOK __MSABI_LONG(0x00000080)
#define RCO_BOXED __MSABI_LONG(0x00000100)
#define RCO_SUGGEST __MSABI_LONG(0x00000200)
#define RCO_DISABLEGESMAP __MSABI_LONG(0x00000400)
#define RCO_NOFLASHCURSOR __MSABI_LONG(0x00000800)
#define RCO_BOXCROSS __MSABI_LONG(0x00001000)
#define RCO_COLDRECOG __MSABI_LONG(0x00008000)
#define RCO_SAVEBACKGROUND __MSABI_LONG(0x00010000)
#define RCO_DODEFAULT __MSABI_LONG(0x00020000)
#define RCOR_NORMAL 1
#define RCOR_RIGHT 2
#define RCOR_UPSIDEDOWN 3
#define RCOR_LEFT 4
#define RCP_LEFTHAND 0x0001
#define RCP_MAPCHAR 0x0004
#define RCRT_DEFAULT 0x0000
#define RCRT_UNIDENTIFIED 0x0001
#define RCRT_GESTURE 0x0002
#define RCRT_NOSYMBOLMATCH 0x0004
#define RCRT_PRIVATE 0x4000
#define RCRT_NORECOG 0x8000
#define RCRT_ALREADYPROCESSED 0x0008
#define RCRT_GESTURETRANSLATED 0x0010
#define RCRT_GESTURETOKEYS 0x0020
#define RRM_STROKE 0
#define RRM_SYMBOL 1
#define RRM_WORD 2
#define RRM_NEWLINE 3
#define RRM_COMPLETE 16
#define SGRC_OK 0x0000
#define SGRC_USER 0x0001
#define SGRC_PARAMERROR 0x0002
#define SGRC_RC 0x0004
#define SGRC_RECOGNIZER 0x0008
#define SGRC_DICTIONARY 0x0010
#define SGRC_INIFILE 0x0020
#define SGRC_NA 0x8000
#endif
#ifndef NOPENTARGET
#define TPT_CLOSEST 0x0001
#define TPT_INTERSECTINK 0x0002
#define TPT_TEXTUAL 0x0004
#define TPT_DEFAULT (TPT_TEXTUAL | TPT_INTERSECTINK | TPT_CLOSEST)
#endif
#ifndef NOPENVIRTEVENT
#define VWM_MOUSEMOVE 0x0001
#define VWM_MOUSELEFTDOWN 0x0002
#define VWM_MOUSELEFTUP 0x0004
#define VWM_MOUSERIGHTDOWN 0x0008
#define VWM_MOUSERIGHTUP 0x0010
#endif
#endif
#ifndef NOPENMSGS
#ifndef NOPENRC1
#define WM_RCRESULT (WM_PENWINFIRST+1)
#define WM_HOOKRCRESULT (WM_PENWINFIRST+2)
#endif
#define WM_PENMISCINFO (WM_PENWINFIRST+3)
#define WM_GLOBALRCCHANGE (WM_PENWINFIRST+3)
#ifndef NOPENAPPS
#define WM_SKB (WM_PENWINFIRST+4)
#endif
#define WM_PENCTL (WM_PENWINFIRST+5)
#define WM_HEDITCTL (WM_PENWINFIRST+5)
#define HE_GETUNDERLINE 7
#define HE_SETUNDERLINE 8
#define HE_GETINKHANDLE 9
#define HE_SETINKMODE 10
#define HE_STOPINKMODE 11
#define HE_DEFAULTFONT 13
#define HE_CHARPOSITION 14
#define HE_CHAROFFSET 15
#define HE_GETBOXLAYOUT 20
#define HE_SETBOXLAYOUT 21
#ifdef JAPAN
#define HE_KKCONVERT 30
#define HE_GETKKCONVERT 31
#define HE_CANCELKKCONVERT 32
#define HE_FIXKKCONVERT 33
#define HE_GETKKSTATUS 34
#define HE_SETCONVERTRANGE 35
#define HE_GETCONVERTRANGE 36
#define HE_PUTCONVERTCHAR 37
#endif
#define HE_ENABLEALTLIST 40
#define HE_SHOWALTLIST 41
#define HE_HIDEALTLIST 42
#ifndef JAPAN
#define HE_GETLENSTYPE 43
#define HE_SETLENSTYPE 44
#endif
#ifdef JAPAN
#define HEKK_DEFAULT 0
#define HEKK_CONVERT 1
#define HEKK_CANDIDATE 2
#define HEKK_DBCSCHAR 3
#define HEKK_SBCSCHAR 4
#define HEKK_HIRAGANA 5
#define HEKK_KATAKANA 6
#define HEKKR_NOCONVERT 0
#define HEKKR_PRECONVERT 1
#define HEKKR_CONVERT 2
#endif
#define HEP_NORECOG 0
#define HEP_RECOG 1
#define HEP_WAITFORTAP 2
#define HN_ENDREC 4
#define HN_DELAYEDRECOGFAIL 5
#define HN_RESULT 20
#ifdef JAPAN
#define HN_ENDKKCONVERT 30
#endif
#define HN_BEGINDIALOG 40
#define HN_ENDDIALOG 41
#ifndef NOPENIEDIT
#define IE_GETMODIFY (EM_GETMODIFY)
#define IE_SETMODIFY (EM_SETMODIFY)
#define IE_CANUNDO (EM_CANUNDO)
#define IE_UNDO (EM_UNDO)
#define IE_EMPTYUNDOBUFFER (EM_EMPTYUNDOBUFFER)
#define IE_MSGFIRST (WM_USER+150)
#define IE_GETINK (IE_MSGFIRST+0)
#define IE_SETINK (IE_MSGFIRST+1)
#define IE_GETPENTIP (IE_MSGFIRST+2)
#define IE_SETPENTIP (IE_MSGFIRST+3)
#define IE_GETERASERTIP (IE_MSGFIRST+4)
#define IE_SETERASERTIP (IE_MSGFIRST+5)
#define IE_GETBKGND (IE_MSGFIRST+6)
#define IE_SETBKGND (IE_MSGFIRST+7)
#define IE_GETGRIDORIGIN (IE_MSGFIRST+8)
#define IE_SETGRIDORIGIN (IE_MSGFIRST+9)
#define IE_GETGRIDPEN (IE_MSGFIRST+10)
#define IE_SETGRIDPEN (IE_MSGFIRST+11)
#define IE_GETGRIDSIZE (IE_MSGFIRST+12)
#define IE_SETGRIDSIZE (IE_MSGFIRST+13)
#define IE_GETMODE (IE_MSGFIRST+14)
#define IE_SETMODE (IE_MSGFIRST+15)
#define IE_GETINKRECT (IE_MSGFIRST+16)
#define IE_GETAPPDATA (IE_MSGFIRST+34)
#define IE_SETAPPDATA (IE_MSGFIRST+35)
#define IE_GETDRAWOPTS (IE_MSGFIRST+36)
#define IE_SETDRAWOPTS (IE_MSGFIRST+37)
#define IE_GETFORMAT (IE_MSGFIRST+38)
#define IE_SETFORMAT (IE_MSGFIRST+39)
#define IE_GETINKINPUT (IE_MSGFIRST+40)
#define IE_SETINKINPUT (IE_MSGFIRST+41)
#define IE_GETNOTIFY (IE_MSGFIRST+42)
#define IE_SETNOTIFY (IE_MSGFIRST+43)
#define IE_GETRECOG (IE_MSGFIRST+44)
#define IE_SETRECOG (IE_MSGFIRST+45)
#define IE_GETSECURITY (IE_MSGFIRST+46)
#define IE_SETSECURITY (IE_MSGFIRST+47)
#define IE_GETSEL (IE_MSGFIRST+48)
#define IE_SETSEL (IE_MSGFIRST+49)
#define IE_DOCOMMAND (IE_MSGFIRST+50)
#define IE_GETCOMMAND (IE_MSGFIRST+51)
#define IE_GETCOUNT (IE_MSGFIRST+52)
#define IE_GETGESTURE (IE_MSGFIRST+53)
#define IE_GETMENU (IE_MSGFIRST+54)
#define IE_GETPAINTDC (IE_MSGFIRST+55)
#define IE_GETPDEVENT (IE_MSGFIRST+56)
#define IE_GETSELCOUNT (IE_MSGFIRST+57)
#define IE_GETSELITEMS (IE_MSGFIRST+58)
#define IE_GETSTYLE (IE_MSGFIRST+59)
#endif
#ifndef NOPENHEDIT
#define CIH_NOGDMSG 0x0001
#define CIH_NOACTIONHANDLE 0x0002
#define CIH_NOEDITTEXT 0x0004
#define CIH_NOFLASHCURSOR 0x0008
#endif
#ifndef NOPENBEDIT
#define HEAL_DEFAULT __MSABI_LONG(-1)
#define BEI_FACESIZE 32
#define BEIF_BOXCROSS 0x0001
#define BESC_DEFAULT 0
#define BESC_ROMANFIXED 1
#define BESC_KANJIFIXED 2
#define BESC_USERDEFINED 3
#define CIB_NOGDMSG 0x0001
#define CIB_NOACTIONHANDLE 0x0002
#define CIB_NOFLASHCURSOR 0x0004
#ifdef JAPAN
#define CIB_NOWRITING 0x0010
#endif
#define BXD_CELLWIDTH 12
#define BXD_CELLHEIGHT 16
#define BXD_BASEHEIGHT 13
#define BXD_BASEHORZ 0
#define BXD_MIDFROMBASE 0
#define BXD_CUSPHEIGHT 2
#define BXD_ENDCUSPHEIGHT 4
#define BXDK_CELLWIDTH 32
#define BXDK_CELLHEIGHT 32
#define BXDK_BASEHEIGHT 28
#define BXDK_BASEHORZ 0
#define BXDK_MIDFROMBASE 0
#define BXDK_CUSPHEIGHT 28
#define BXDK_ENDCUSPHEIGHT 10
#endif
#define WM_PENMISC (WM_PENWINFIRST+6)
#define PMSC_BEDITCHANGE 1
#define PMSC_GETPCMINFO 5
#define PMSC_SETPCMINFO 6
#define PMSC_GETINKINGINFO 7
#define PMSC_SETINKINGINFO 8
#define PMSC_GETHRC 9
#define PMSC_SETHRC 10
#define PMSC_GETSYMBOLCOUNT 11
#define PMSC_GETSYMBOLS 12
#define PMSC_SETSYMBOLS 13
#define PMSC_LOADPW 15
#define PMSC_INKSTOP 16
#define PMSCL_UNLOADED __MSABI_LONG(0)
#define PMSCL_LOADED __MSABI_LONG(1)
#define PMSCL_UNLOADING __MSABI_LONG(2)
#define WM_CTLINIT (WM_PENWINFIRST+7)
#define CTLINIT_HEDIT 1
#define CTLINIT_BEDIT 7
#define CTLINIT_IEDIT 9
#define CTLINIT_MAX 10
#define WM_PENEVENT (WM_PENWINFIRST+8)
#define PE_PENDOWN 1
#define PE_PENUP 2
#define PE_PENMOVE 3
#define PE_TERMINATING 4
#define PE_TERMINATED 5
#define PE_BUFFERWARNING 6
#define PE_BEGININPUT 7
#define PE_SETTARGETS 8
#define PE_BEGINDATA 9
#define PE_MOREDATA 10
#define PE_ENDDATA 11
#define PE_GETPCMINFO 12
#define PE_GETINKINGINFO 13
#define PE_ENDINPUT 14
#define PE_RESULT 15
#endif
#ifndef RC_INVOKED
#ifndef NOPENDRIVER
#define FPenUpX(x) ((WINBOOL)(((x) & BITPENUP)!=0))
#define GetWEventRef() (LOWORD(GetMessageExtraInfo()))
#endif
#ifndef NOPENALC
#define MpAlcB(lprc,i) ((lprc)->rgbfAlc[((i) & 0xff) >> 3])
#define MpIbf(i) ((BYTE)(1 << ((i) & 7)))
#define SetAlcBitAnsi(lprc,i) do {MpAlcB(lprc,i) |= MpIbf(i);} while (0)
#define ResetAlcBitAnsi(lprc,i) do {MpAlcB(lprc,i) &= ~MpIbf(i);} while (0)
#define IsAlcBitAnsi(lprc,i) ((MpAlcB(lprc,i) & MpIbf(i))!=0)
#endif
#ifndef NOPENDATA
#define DrawPenDataFmt(hdc,lprect,hpndt) DrawPenDataEx(hdc,lprect,hpndt,0,IX_END,0,IX_END,NULL,NULL,0)
#endif
#ifndef NOPENHRC
#define dwDiffAT(at1,at2) (1000*((at2).sec - (at1).sec) - (DWORD)(at1).ms + (DWORD)(at2).ms)
#define FLTAbsTime(at1,at2) ((at1).sec < (at2).sec || ((at1).sec==(at2).sec && (at1).ms < (at2).ms))
#define FLTEAbsTime(at1,at2) ((at1).sec < (at2).sec || ((at1).sec==(at2).sec && (at1).ms <= (at2).ms))
#define FEQAbsTime(at1,at2) ((at1).sec==(at2).sec && (at1).ms==(at2).ms)
#define FAbsTimeInInterval(at,lpi) (FLTEAbsTime((lpi)->atBegin,at) && FLTEAbsTime(at,(lpi)->atEnd))
#define FIntervalInInterval(lpiT,lpiS) (FLTEAbsTime((lpiS)->atBegin,(lpiT)->atBegin) && FLTEAbsTime((lpiT)->atEnd,(lpiS)->atEnd))
#define FIntervalXInterval(lpiT,lpiS) (!(FLTAbsTime((lpiT)->atEnd,(lpiS)->atBegin) || FLTAbsTime((lpiS)->atEnd,(lpiT)->atBegin)))
#define dwDurInterval(lpi) dwDiffAT((lpi)->atBegin,(lpi)->atEnd)
#define MakeAbsTime(lpat,sec,ms) do { (lpat)->sec = sec + ((ms) / 1000); (lpat)->ms = (ms) % 1000; } while (0)
#define FIsSpecial(syv) (HIWORD((syv))==SYVHI_SPECIAL)
#define FIsAnsi(syv) (HIWORD((syv))==SYVHI_ANSI)
#define FIsGesture(syv) (HIWORD((syv))==SYVHI_GESTURE)
#define FIsKanji(syv) (HIWORD((syv))==SYVHI_KANJI)
#define FIsShape(syv) (HIWORD((syv))==SYVHI_SHAPE)
#define FIsUniCode(syv) (HIWORD((syv))==SYVHI_UNICODE)
#define FIsVKey(syv) (HIWORD((syv))==SYVHI_VKEY)
#define ChSyvToAnsi(syv) ((BYTE) (LOBYTE(LOWORD((syv)))))
#define WSyvToKanji(syv) ((WORD) (LOWORD((syv))))
#define SyvCharacterToSymbol(c) ((LONG)(unsigned char)(c) | 0x00010000)
#define SyvKanjiToSymbol(c) ((LONG)(UINT)(c) | 0x00030000)
#define FIsSelectGesture(syv) ((syv) >= SYVSELECTFIRST && (syv) <= SYVSELECTLAST)
#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)
#define FIsAnsiGesture(syv) ((syv)==SYV_BACKSPACE || (syv)==SYV_TAB || (syv)==SYV_RETURN || (syv)==SYV_SPACE)
#endif
#ifndef NOPENINKPUT
#define SubPenMsgFromWpLp(wp,lp) (LOWORD(wp))
#define EventRefFromWpLp(wp,lp) (HIWORD(wp))
#define TerminationFromWpLp(wp,lp) ((int)HIWORD(wp))
#define HpcmFromWpLp(wp,lp) ((HPCM)(lp))
#endif
#ifndef NOPENTARGET
#define HwndFromHtrg(htrg) ((HWND)(DWORD)(htrg))
#define HtrgFromHwnd(hwnd) ((HTRG)(UINT)(hwnd))
#endif
typedef LONG ALC;
typedef int CL;
typedef UINT HKP;
typedef int REC;
typedef LONG SYV;
#ifndef DECLARE_HANDLE32
#define DECLARE_HANDLE32(name) struct name##__ { int unused; }; typedef const struct name##__ *name
#endif
DECLARE_HANDLE32(HTRG);
DECLARE_HANDLE(HPCM);
DECLARE_HANDLE(HPENDATA);
DECLARE_HANDLE(HREC);
typedef ALC *LPALC;
typedef LPVOID LPOEM;
typedef SYV *LPSYV;
typedef HPENDATA *LPHPENDATA;
typedef int (CALLBACK *ENUMPROC)(LPSYV,int,VOID *);
typedef int (CALLBACK *LPDF)(int,LPVOID,LPVOID,int,DWORD,DWORD);
typedef WINBOOL (CALLBACK *RCYIELDPROC)(VOID);
typedef struct tagABSTIME {
DWORD sec;
UINT ms;
} ABSTIME,*LPABSTIME;
#ifndef NOPENHEDIT
typedef struct tagCTLINITHEDIT {
DWORD cbSize;
HWND hwnd;
int id;
DWORD dwFlags;
DWORD dwReserved;
} CTLINITHEDIT,*LPCTLINITHEDIT;
#endif
#ifndef NOPENBEDIT
typedef struct tagBOXLAYOUT {
int cyCusp;
int cyEndCusp;
UINT style;
DWORD dwReserved1;
DWORD dwReserved2;
DWORD dwReserved3;
} BOXLAYOUT,*LPBOXLAYOUT;
typedef struct tagCTLINITBEDIT {
DWORD cbSize;
HWND hwnd;
int id;
WORD wSizeCategory;
WORD wFlags;
DWORD dwReserved;
} CTLINITBEDIT,*LPCTLINITBEDIT;
typedef struct tagBOXEDITINFO {
int cxBox;
int cyBox;
int cxBase;
int cyBase;
int cyMid;
BOXLAYOUT boxlayout;
UINT wFlags;
BYTE szFaceName[BEI_FACESIZE];
UINT wFontHeight;
UINT rgwReserved[8];
} BOXEDITINFO,*LPBOXEDITINFO;
#endif
#ifndef NOPENCTL
typedef struct tagRECTOFS {
int dLeft;
int dTop;
int dRight;
int dBottom;
} RECTOFS,*LPRECTOFS;
#endif
#ifndef NOPENDATA
typedef struct tagPENDATAHEADER {
UINT wVersion;
UINT cbSizeUsed;
UINT cStrokes;
UINT cPnt;
UINT cPntStrokeMax;
RECT rectBound;
UINT wPndts;
int nInkWidth;
DWORD rgbInk;
} PENDATAHEADER,*LPPENDATAHEADER,*LPPENDATA;
typedef struct tagSTROKEINFO {
UINT cPnt;
UINT cbPnts;
UINT wPdk;
DWORD dwTick;
} STROKEINFO,*LPSTROKEINFO;
typedef struct tagPENTIP {
DWORD cbSize;
BYTE btype;
BYTE bwidth;
BYTE bheight;
BYTE bOpacity;
COLORREF rgb;
DWORD dwFlags;
DWORD dwReserved;
} PENTIP,*LPPENTIP;
typedef WINBOOL (CALLBACK *ANIMATEPROC)(HPENDATA,UINT,UINT,UINT *,LPARAM);
typedef struct tagANIMATEINFO {
DWORD cbSize;
UINT uSpeedPct;
UINT uPeriodCB;
UINT fuFlags;
LPARAM lParam;
DWORD dwReserved;
} ANIMATEINFO,*LPANIMATEINFO;
#endif
#ifndef NOPENDRIVER
typedef struct tagOEMPENINFO {
UINT wPdt;
UINT wValueMax;
UINT wDistinct;
} OEMPENINFO,*LPOEMPENINFO;
typedef struct tagPENPACKET {
UINT wTabletX;
UINT wTabletY;
UINT wPDK;
UINT rgwOemData[MAXOEMDATAWORDS];
} PENPACKET,*LPPENPACKET;
typedef struct tagOEM_PENPACKET {
UINT wTabletX;
UINT wTabletY;
UINT wPDK;
UINT rgwOemData[MAXOEMDATAWORDS];
DWORD dwTime;
} OEM_PENPACKET,*LPOEM_PENPACKET;
typedef struct tagPENINFO {
UINT cxRawWidth;
UINT cyRawHeight;
UINT wDistinctWidth;
UINT wDistinctHeight;
int nSamplingRate;
int nSamplingDist;
LONG lPdc;
int cPens;
int cbOemData;
OEMPENINFO rgoempeninfo[MAXOEMDATAWORDS];
UINT rgwReserved[7];
UINT fuOEM;
} PENINFO,*LPPENINFO;
typedef struct tagCALBSTRUCT {
int wOffsetX;
int wOffsetY;
int wDistinctWidth;
int wDistinctHeight;
} CALBSTRUCT,*LPCALBSTRUCT;
typedef WINBOOL (CALLBACK *LPFNRAWHOOK)(LPPENPACKET);
#endif
#ifndef NOPENHRC
DECLARE_HANDLE32(HRC);
DECLARE_HANDLE32(HRCRESULT);
DECLARE_HANDLE32(HWL);
DECLARE_HANDLE32(HRECHOOK);
typedef HRC *LPHRC;
typedef HRCRESULT *LPHRCRESULT;
typedef HWL *LPHWL;
typedef WINBOOL (CALLBACK *HRCRESULTHOOKPROC)(HREC,HRC,UINT,UINT,UINT,LPVOID);
DECLARE_HANDLE(HINKSET);
typedef HINKSET *LPHINKSET;
typedef struct tagINTERVAL {
ABSTIME atBegin;
ABSTIME atEnd;
} INTERVAL,*LPINTERVAL;
typedef struct tagBOXRESULTS {
UINT indxBox;
HINKSET hinksetBox;
SYV rgSyv[1];
} BOXRESULTS,*LPBOXRESULTS;
typedef struct tagGUIDE {
int xOrigin;
int yOrigin;
int cxBox;
int cyBox;
int cxBase;
int cyBase;
int cHorzBox;
int cVertBox;
int cyMid;
} GUIDE,*LPGUIDE;
#endif
#ifndef NOPENIEDIT
typedef struct tagCTLINITIEDIT {
DWORD cbSize;
HWND hwnd;
int id;
WORD ieb;
WORD iedo;
WORD iei;
WORD ien;
WORD ierec;
WORD ies;
WORD iesec;
WORD pdts;
HPENDATA hpndt;
HGDIOBJ hgdiobj;
HPEN hpenGrid;
POINT ptOrgGrid;
WORD wVGrid;
WORD wHGrid;
DWORD dwApp;
DWORD dwReserved;
} CTLINITIEDIT,*LPCTLINITIEDIT;
typedef struct tagPDEVENT {
DWORD cbSize;
HWND hwnd;
UINT wm;
WPARAM wParam;
LPARAM lParam;
POINT pt;
WINBOOL fPen;
LONG lExInfo;
DWORD dwReserved;
} PDEVENT,*LPPDEVENT;
typedef struct tagSTRKFMT {
DWORD cbSize;
UINT iesf;
UINT iStrk;
PENTIP tip;
DWORD dwUser;
DWORD dwReserved;
} STRKFMT,*LPSTRKFMT;
#endif
#ifndef NOPENINKPUT
typedef struct tagPCMINFO {
DWORD cbSize;
DWORD dwPcm;
RECT rectBound;
RECT rectExclude;
HRGN hrgnBound;
HRGN hrgnExclude;
DWORD dwTimeout;
} PCMINFO,*LPPCMINFO;
typedef struct tagINKINGINFO {
DWORD cbSize;
UINT wFlags;
PENTIP tip;
RECT rectClip;
RECT rectInkStop;
HRGN hrgnClip;
HRGN hrgnInkStop;
} INKINGINFO,*LPINKINGINFO;
#endif
#ifndef NOPENRC1
typedef struct tagSYC {
UINT wStrokeFirst;
UINT wPntFirst;
UINT wStrokeLast;
UINT wPntLast;
WINBOOL fLastSyc;
} SYC,*LPSYC;
typedef struct tagSYE {
SYV syv;
LONG lRecogVal;
CL cl;
int iSyc;
} SYE,*LPSYE;
typedef struct tagSYG {
POINT rgpntHotSpots[MAXHOTSPOT];
int cHotSpot;
int nFirstBox;
LONG lRecogVal;
LPSYE lpsye;
int cSye;
LPSYC lpsyc;
int cSyc;
} SYG,*LPSYG;
typedef struct tagRC {
HREC hrec;
HWND hwnd;
UINT wEventRef;
UINT wRcPreferences;
LONG lRcOptions;
RCYIELDPROC lpfnYield;
BYTE lpUser[cbRcUserMax];
UINT wCountry;
UINT wIntlPreferences;
char lpLanguage[cbRcLanguageMax];
LPDF rglpdf[MAXDICTIONARIES];
UINT wTryDictionary;
CL clErrorLevel;
ALC alc;
ALC alcPriority;
BYTE rgbfAlc[cbRcrgbfAlcMax];
UINT wResultMode;
UINT wTimeOut;
LONG lPcm;
RECT rectBound;
RECT rectExclude;
GUIDE guide;
UINT wRcOrient;
UINT wRcDirect;
int nInkWidth;
COLORREF rgbInk;
DWORD dwAppParam;
DWORD dwDictParam;
DWORD dwRecognizer;
UINT rgwReserved[cwRcReservedMax];
} RC,*LPRC;
typedef struct tagRCRESULT {
SYG syg;
UINT wResultsType;
int cSyv;
LPSYV lpsyv;
HANDLE hSyv;
int nBaseLine;
int nMidLine;
HPENDATA hpendata;
RECT rectBoundInk;
POINT pntEnd;
LPRC lprc;
} RCRESULT,*LPRCRESULT;
typedef int (CALLBACK *LPFUNCRESULTS)(LPRCRESULT,REC);
#endif
#ifndef NOPENTARGET
typedef struct tagTARGET {
DWORD dwFlags;
DWORD idTarget;
HTRG htrgTarget;
RECTL rectBound;
DWORD dwData;
RECTL rectBoundInk;
RECTL rectBoundLastInk;
} TARGET,*LPTARGET;
typedef struct tagTARGINFO {
DWORD cbSize;
DWORD dwFlags;
HTRG htrgOwner;
WORD cTargets;
WORD iTargetLast;
TARGET rgTarget[1];
} TARGINFO,*LPTARGINFO;
typedef struct tagINPPARAMS {
DWORD cbSize;
DWORD dwFlags;
HPENDATA hpndt;
TARGET target;
} INPPARAMS,*LPINPPARAMS;
#endif
#ifdef JAPAN
typedef struct tagCWX {
DWORD cbSize;
WORD wApplyFlags;
HWND hwndText;
HRC hrc;
char szCaption[CBCAPTIONCWX];
DWORD dwEditStyle;
DWORD dwSel;
DWORD dwFlags;
WORD ixkb;
WORD rgState[CKBCWX];
POINT ptUL;
SIZE sizeHW;
} CWX,*LPCWX;
#endif
LRESULT CALLBACK DefPenWindowProc(HWND,UINT,WPARAM,LPARAM);
#ifndef NOPENAPPS
WINBOOL WINAPI ShowKeyboard(HWND,UINT,LPPOINT,LPSKBINFO);
#endif
#ifndef NOPENDATA
#ifndef NOPENAPIFUN
LPPENDATA WINAPI BeginEnumStrokes(HPENDATA);
LPPENDATA WINAPI EndEnumStrokes(HPENDATA);
HPENDATA WINAPI CompactPenData(HPENDATA,UINT);
HPENDATA WINAPI CreatePenData(LPPENINFO,int,UINT,UINT);
VOID WINAPI DrawPenData(HDC,LPRECT,HPENDATA);
WINBOOL WINAPI GetPenDataStroke(LPPENDATA,UINT,LPPOINT *,LPVOID *,LPSTROKEINFO);
#endif
HPENDATA WINAPI AddPointsPenData(HPENDATA,LPPOINT,LPVOID,LPSTROKEINFO);
int WINAPI CompressPenData(HPENDATA,UINT,DWORD);
HPENDATA WINAPI CreatePenDataEx(LPPENINFO,UINT,UINT,UINT);
HRGN WINAPI CreatePenDataRegion(HPENDATA,UINT);
WINBOOL WINAPI DestroyPenData(HPENDATA);
int WINAPI DrawPenDataEx(HDC,LPRECT,HPENDATA,UINT,UINT,UINT,UINT,ANIMATEPROC,LPANIMATEINFO,UINT);
HPENDATA WINAPI DuplicatePenData(HPENDATA,UINT);
int WINAPI ExtractPenDataPoints(HPENDATA,UINT,UINT,UINT,LPPOINT,LPVOID,UINT);
int WINAPI ExtractPenDataStrokes(HPENDATA,UINT,LPARAM,LPHPENDATA,UINT);
int WINAPI GetPenDataAttributes(HPENDATA,LPVOID,UINT);
WINBOOL WINAPI GetPenDataInfo(HPENDATA,LPPENDATAHEADER,LPPENINFO,DWORD);
WINBOOL WINAPI GetPointsFromPenData(HPENDATA,UINT,UINT,UINT,LPPOINT);
int WINAPI GetStrokeAttributes(HPENDATA,UINT,LPVOID,UINT);
int WINAPI GetStrokeTableAttributes(HPENDATA,UINT,LPVOID,UINT);
int WINAPI HitTestPenData(HPENDATA,LPPOINT,UINT,UINT *,UINT *);
int WINAPI InsertPenData(HPENDATA,HPENDATA,UINT);
int WINAPI InsertPenDataPoints(HPENDATA,UINT,UINT,UINT,LPPOINT,LPVOID);
int WINAPI InsertPenDataStroke(HPENDATA,UINT,LPPOINT,LPVOID,LPSTROKEINFO);
WINBOOL WINAPI MetricScalePenData(HPENDATA,UINT);
WINBOOL WINAPI OffsetPenData(HPENDATA,int,int);
LONG WINAPI PenDataFromBuffer(LPHPENDATA,UINT,LPBYTE,LONG,LPDWORD);
LONG WINAPI PenDataToBuffer(HPENDATA,LPBYTE,LONG,LPDWORD);
WINBOOL WINAPI RedisplayPenData(HDC,HPENDATA,LPPOINT,LPPOINT,int,DWORD);
int WINAPI RemovePenDataStrokes(HPENDATA,UINT,UINT);
WINBOOL WINAPI ResizePenData(HPENDATA,LPRECT);
int WINAPI SetStrokeAttributes(HPENDATA,UINT,LPARAM,UINT);
int WINAPI SetStrokeTableAttributes(HPENDATA,UINT,LPARAM,UINT);
int WINAPI TrimPenData(HPENDATA,DWORD,DWORD);
#endif
#ifndef NOPENDICT
WINBOOL WINAPI DictionarySearch(LPRC,LPSYE,int,LPSYV,int);
#endif
#ifndef NOPENDRIVER
#ifndef NOPENAPIFUN
WINBOOL WINAPI EndPenCollection(REC);
REC WINAPI GetPenHwData(LPPOINT,LPVOID,int,UINT,LPSTROKEINFO);
REC WINAPI GetPenHwEventData(UINT,UINT,LPPOINT,LPVOID,int,LPSTROKEINFO);
WINBOOL WINAPI SetPenHook(HKP,LPFNRAWHOOK);
VOID WINAPI UpdatePenInfo(LPPENINFO);
#endif
WINBOOL WINAPI GetPenAsyncState(UINT);
WINBOOL WINAPI IsPenEvent(UINT,LONG);
#endif
#ifndef NOPENHRC
int WINAPI AddPenDataHRC(HRC,HPENDATA);
int WINAPI AddPenInputHRC(HRC,LPPOINT,LPVOID,UINT,LPSTROKEINFO);
int WINAPI AddWordsHWL(HWL,LPSTR,UINT);
int WINAPI ConfigHREC(HREC,UINT,WPARAM,LPARAM);
HRC WINAPI CreateCompatibleHRC(HRC,HREC);
HWL WINAPI CreateHWL(HREC,LPSTR,UINT,DWORD);
HINKSET WINAPI CreateInksetHRCRESULT(HRCRESULT,UINT,UINT);
HPENDATA WINAPI CreatePenDataHRC(HRC);
int WINAPI DestroyHRC(HRC);
int WINAPI DestroyHRCRESULT(HRCRESULT);
int WINAPI DestroyHWL(HWL);
int WINAPI EnableGestureSetHRC(HRC,SYV,WINBOOL);
int WINAPI EnableSystemDictionaryHRC(HRC,WINBOOL);
int WINAPI EndPenInputHRC(HRC);
int WINAPI GetAlphabetHRC(HRC,LPALC,LPBYTE);
int WINAPI GetAlphabetPriorityHRC(HRC,LPALC,LPBYTE);
int WINAPI GetAlternateWordsHRCRESULT(HRCRESULT,UINT,UINT,LPHRCRESULT,UINT);
int WINAPI GetBoxMappingHRCRESULT(HRCRESULT,UINT,UINT,UINT *);
int WINAPI GetBoxResultsHRC(HRC,UINT,UINT,UINT,LPBOXRESULTS,WINBOOL);
int WINAPI GetGuideHRC(HRC,LPGUIDE,UINT *);
int WINAPI GetHotspotsHRCRESULT(HRCRESULT,UINT,LPPOINT,UINT);
HREC WINAPI GetHRECFromHRC(HRC);
int WINAPI GetInternationalHRC(HRC,UINT *,LPSTR,UINT *,UINT *);
int WINAPI GetMaxResultsHRC(HRC);
int WINAPI GetResultsHRC(HRC,UINT,LPHRCRESULT,UINT);
int WINAPI GetSymbolCountHRCRESULT(HRCRESULT);
int WINAPI GetSymbolsHRCRESULT(HRCRESULT,UINT,LPSYV,UINT);
int WINAPI GetWordlistHRC(HRC,LPHWL);
int WINAPI GetWordlistCoercionHRC(HRC);
int WINAPI ProcessHRC(HRC,DWORD);
int WINAPI ReadHWL(HWL,HFILE);
int WINAPI SetAlphabetHRC(HRC,ALC,LPBYTE);
int WINAPI SetAlphabetPriorityHRC(HRC,ALC,LPBYTE);
int WINAPI SetBoxAlphabetHRC(HRC,LPALC,UINT);
int WINAPI SetGuideHRC(HRC,LPGUIDE,UINT);
int WINAPI SetInternationalHRC(HRC,UINT,LPCSTR,UINT,UINT);
int WINAPI SetMaxResultsHRC(HRC,UINT);
HRECHOOK WINAPI SetResultsHookHREC(HREC,HRCRESULTHOOKPROC);
int WINAPI SetWordlistCoercionHRC(HRC,UINT);
int WINAPI SetWordlistHRC(HRC,HWL);
int WINAPI TrainHREC(HREC,LPSYV,UINT,HPENDATA,UINT);
int WINAPI UnhookResultsHookHREC(HREC,HRECHOOK);
int WINAPI WriteHWL(HWL,HFILE);
HREC WINAPI InstallRecognizer(LPSTR);
VOID WINAPI UninstallRecognizer(HREC);
WINBOOL WINAPI AddInksetInterval(HINKSET,LPINTERVAL);
HINKSET WINAPI CreateInkset(UINT);
WINBOOL WINAPI DestroyInkset(HINKSET);
int WINAPI GetInksetInterval(HINKSET,UINT,LPINTERVAL);
int WINAPI GetInksetIntervalCount(HINKSET);
int WINAPI CharacterToSymbol(LPSTR,int,LPSYV);
WINBOOL WINAPI SymbolToCharacter(LPSYV,int,LPSTR,LPINT);
#endif
#ifndef NOPENINKPUT
int WINAPI DoDefaultPenInput(HWND,UINT);
int WINAPI GetPenInput(HPCM,LPPOINT,LPVOID,UINT,UINT,LPSTROKEINFO);
int WINAPI PeekPenInput(HPCM,UINT,LPPOINT,LPVOID,UINT);
int WINAPI StartInking(HPCM,UINT,LPINKINGINFO);
HPCM WINAPI StartPenInput(HWND,UINT,LPPCMINFO,LPINT);
int WINAPI StopInking(HPCM);
int WINAPI StopPenInput(HPCM,UINT,int);
#endif
#ifndef NOPENMISC
VOID WINAPI BoundingRectFromPoints(LPPOINT,UINT,LPRECT);
WINBOOL WINAPI DPtoTP(LPPOINT,int);
UINT WINAPI GetPenAppFlags(VOID);
VOID WINAPI SetPenAppFlags(UINT,UINT);
LONG WINAPI GetPenMiscInfo(WPARAM,LPARAM);
UINT WINAPI GetVersionPenWin(VOID);
LONG WINAPI SetPenMiscInfo(WPARAM,LPARAM);
WINBOOL WINAPI TPtoDP(LPPOINT,int);
WINBOOL WINAPI CorrectWriting(HWND,LPSTR,UINT,LPVOID,DWORD,DWORD);
#ifdef JAPAN
int WINAPI CorrectWritingEx(HWND,LPSTR,UINT,LPCWX);
#endif
#ifdef JAPAN
HANDLE WINAPI GetPenResource(WPARAM);
#endif
#endif
#ifndef NOPENRC1
VOID WINAPI EmulatePen(WINBOOL);
UINT WINAPI EnumSymbols(LPSYG,UINT,ENUMPROC,LPVOID);
WINBOOL WINAPI ExecuteGesture(HWND,SYV,LPRCRESULT);
VOID WINAPI FirstSymbolFromGraph(LPSYG,LPSYV,int,LPINT);
UINT WINAPI GetGlobalRC(LPRC,LPSTR,LPSTR,int);
int WINAPI GetSymbolCount(LPSYG);
int WINAPI GetSymbolMaxLength(LPSYG);
VOID WINAPI InitRC(HWND,LPRC);
REC WINAPI ProcessWriting(HWND,LPRC);
REC WINAPI Recognize(LPRC);
REC WINAPI RecognizeData(LPRC,HPENDATA);
UINT WINAPI SetGlobalRC(LPRC,LPSTR,LPSTR);
WINBOOL WINAPI SetRecogHook(UINT,UINT,HWND);
WINBOOL WINAPI TrainContext(LPRCRESULT,LPSYE,int,LPSYC,int);
WINBOOL WINAPI TrainInk(LPRC,HPENDATA,LPSYV);
VOID WINAPI CloseRecognizer(VOID);
UINT WINAPI ConfigRecognizer(UINT,WPARAM,LPARAM);
WINBOOL WINAPI InitRecognizer(LPRC);
REC WINAPI RecognizeDataInternal(LPRC,HPENDATA,LPFUNCRESULTS);
REC WINAPI RecognizeInternal(LPRC,LPFUNCRESULTS);
WINBOOL WINAPI TrainContextInternal(LPRCRESULT,LPSYE,int,LPSYC,int);
WINBOOL WINAPI TrainInkInternal(LPRC,HPENDATA,LPSYV);
#endif
#ifndef NOPENTARGET
int WINAPI TargetPoints(LPTARGINFO,LPPOINT,DWORD,UINT,LPSTROKEINFO);
#endif
#ifndef NOPENVIRTEVENT
VOID WINAPI AtomicVirtualEvent(WINBOOL);
VOID WINAPI PostVirtualKeyEvent(UINT,WINBOOL);
VOID WINAPI PostVirtualMouseEvent(UINT,int,int);
#endif
#ifdef JAPAN
WINBOOL WINAPI KKConvert(HWND hwndConvert,HWND hwndCaller,LPSTR lpBuf,UINT cbBuf,LPPOINT lpPnt);
#endif
#endif
#ifdef __cplusplus
}
#endif
#endif