diff fuhtark_test/include/winapi/penwin.h @ 1500:91c8c3b7cbf0

add: futhark tests for generating vulkan api
author sam <sam@basx.dev>
date Wed, 26 Nov 2025 21:36:48 +0700
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/fuhtark_test/include/winapi/penwin.h	Wed Nov 26 21:36:48 2025 +0700
@@ -0,0 +1,1929 @@
+/**
+ * This file has no copyright assigned and is placed in the Public Domain.
+ * This file is part of the w64 mingw-runtime package.
+ * No warranty is given; refer to the file DISCLAIMER 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 0x00000000L
+#define ALC_LCALPHA 0x00000001L
+#define ALC_UCALPHA 0x00000002L
+#define ALC_NUMERIC 0x00000004L
+#define ALC_PUNC 0x00000008L
+#define ALC_MATH 0x00000010L
+#define ALC_MONETARY 0x00000020L
+#define ALC_OTHER 0x00000040L
+#define ALC_ASCII 0x00000080L
+#define ALC_WHITE 0x00000100L
+#define ALC_NONPRINT 0x00000200L
+#define ALC_DBCS 0x00000400L
+#define ALC_JIS1 0x00000800L
+#define ALC_GESTURE 0x00004000L
+#define ALC_USEBITMAP 0x00008000L
+#define ALC_HIRAGANA 0x00010000L
+#define ALC_KATAKANA 0x00020000L
+#define ALC_KANJI 0x00040000L
+#define ALC_GLOBALPRIORITY 0x10000000L
+#define ALC_OEM 0x0FF80000L
+#define ALC_RESERVED 0xE0003000L
+#define ALC_NOPRIORITY 0x00000000L
+
+#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 0x00000000L
+#define SYV_UNKNOWN 0x00000001L
+#define SYV_EMPTY 0x00000003L
+#define SYV_BEGINOR 0x00000010L
+#define SYV_ENDOR 0x00000011L
+#define SYV_OR 0x00000012L
+#define SYV_SOFTNEWLINE 0x00000020L
+#define SYV_SPACENULL 0x00010000L
+
+#define SYV_SELECTFIRST 0x0002FFC0L
+#define SYV_LASSO 0x0002FFC1L
+#define SYV_SELECTLEFT 0x0002FFC2L
+#define SYV_SELECTRIGHT 0x0002FFC3L
+#define SYV_SELECTLAST 0x0002FFCFL
+
+#define SYV_CLEARCHAR 0x0002FFD2L
+#define SYV_HELP 0x0002FFD3L
+#define SYV_KKCONVERT 0x0002FFD4L
+#define SYV_CLEAR 0x0002FFD5L
+#define SYV_INSERT 0x0002FFD6L
+#define SYV_CONTEXT 0x0002FFD7L
+#define SYV_EXTENDSELECT 0x0002FFD8L
+#define SYV_UNDO 0x0002FFD9L
+#define SYV_COPY 0x0002FFDAL
+#define SYV_CUT 0x0002FFDBL
+#define SYV_PASTE 0x0002FFDCL
+#define SYV_CLEARWORD 0x0002FFDDL
+#define SYV_USER 0x0002FFDEL
+#define SYV_CORRECT 0x0002FFDFL
+
+#define SYV_BACKSPACE 0x00020008L
+#define SYV_TAB 0x00020009L
+#define SYV_RETURN 0x0002000DL
+#define SYV_SPACE 0x00020020L
+
+#define SYV_APPGESTUREMASK 0x00020000L
+#define SYV_CIRCLEUPA 0x000224B6L
+#define SYV_CIRCLEUPZ 0x000224CFL
+#define SYV_CIRCLELOA 0x000224D0L
+#define SYV_CIRCLELOZ 0x000224E9L
+
+#define SYV_SHAPELINE 0x00040001L
+#define SYV_SHAPEELLIPSE 0x00040002L
+#define SYV_SHAPERECT 0x00040003L
+#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 0x00000001L
+#define PCM_RANGE 0x00000002L
+#define PCM_INVERT 0x00000020L
+#define PCM_RECTEXCLUDE 0x00002000L
+#define PCM_RECTBOUND 0x00004000L
+#define PCM_TIMEOUT 0x00008000L
+
+#define PCM_RGNBOUND 0x00010000L
+#define PCM_RGNEXCLUDE 0x00020000L
+#define PCM_DOPOLLING 0x00040000L
+#define PCM_TAPNHOLD 0x00080000L
+#define PCM_ADDDEFAULTS RC_LDEFAULTFLAGS
+
+#define PDC_INTEGRATED 0x00000001L
+#define PDC_PROXIMITY 0x00000002L
+#define PDC_RANGE 0x00000004L
+#define PDC_INVERT 0x00000008L
+#define PDC_RELATIVE 0x00000010L
+#define PDC_BARREL1 0x00000020L
+#define PDC_BARREL2 0x00000040L
+#define PDC_BARREL3 0x00000080L
+
+#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 0x00000001L
+#define GST_CLIP 0x00000002L
+#define GST_WHITE 0x00000004L
+#define GST_KKCONVERT 0x00000008L
+#define GST_EDIT 0x00000010L
+#define GST_SYS 0x0000001FL
+#define GST_CIRCLELO 0x00000100L
+#define GST_CIRCLEUP 0x00000200L
+#define GST_CIRCLE 0x00000300L
+#define GST_ALL 0x0000031FL
+#else
+#define GST_SEL 0x00000001L
+#define GST_CLIP 0x00000002L
+#define GST_WHITE 0x00000004L
+#define GST_EDIT 0x00000010L
+#define GST_SYS 0x00000017L
+#define GST_CIRCLELO 0x00000100L
+#define GST_CIRCLEUP 0x00000200L
+#define GST_CIRCLE 0x00000300L
+#define GST_ALL 0x00000317L
+#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 0xFFFFFFFFL
+#define PH_DEFAULT 0xFFFFFFFEL
+#define PH_MIN 0xFFFFFFFDL
+
+#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 1L
+#define LRET_ABORT (-1L)
+#define LRET_HRC (-2L)
+#define LRET_HPENDATA (-3L)
+#define LRET_PRIVATE (-4L)
+
+#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 0xffffffffL
+#define RC_WDEFAULTFLAGS 0x8000
+#define RC_LDEFAULTFLAGS 0x80000000L
+
+#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 0x00000001L
+#define CWX_NOTOOLTIPS 0x00000002L
+#define CWX_EPERIOD 0x00000004L
+#define CWX_ECOMMA 0x00000008L
+#define CWX_DEFAULT 0x00000000L
+
+#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 0L
+#define GPMI_INVALIDPMI 0x8000L
+#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 0L
+#define PMIR_INDEX (-1L)
+#define PMIR_VALUE (-2L)
+#define PMIR_INVALIDBOXEDITINFO (-3L)
+#define PMIR_INIERROR (-4L)
+#define PMIR_ERROR (-5L)
+#define PMIR_NA (-6L)
+
+#ifdef JAPAN
+#define SPMI_OK 0L
+#define SPMI_INVALIDBOXEDITINFO 1L
+#define SPMI_INIERROR 2L
+#define SPMI_INVALIDPMI 0x8000L
+#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 0x00000001L
+#define RCO_SAVEALLDATA 0x00000002L
+#define RCO_SAVEHPENDATA 0x00000004L
+#define RCO_NOFLASHUNKNOWN 0x00000008L
+#define RCO_TABLETCOORD 0x00000010L
+#define RCO_NOSPACEBREAK 0x00000020L
+#define RCO_NOHIDECURSOR 0x00000040L
+#define RCO_NOHOOK 0x00000080L
+#define RCO_BOXED 0x00000100L
+#define RCO_SUGGEST 0x00000200L
+#define RCO_DISABLEGESMAP 0x00000400L
+#define RCO_NOFLASHCURSOR 0x00000800L
+#define RCO_BOXCROSS 0x00001000L
+#define RCO_COLDRECOG 0x00008000L
+#define RCO_SAVEBACKGROUND 0x00010000L
+#define RCO_DODEFAULT 0x00020000L
+
+#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 -1L
+
+#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 0L
+#define PMSCL_LOADED 1L
+#define PMSCL_UNLOADING 2L
+
+#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) (1000L*((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