📄 penwin.h
字号:
#define MAXHOTSPOT 8
typedef struct tagSYG
{
POINT rgpntHotSpots[MAXHOTSPOT];
int cHotSpot;
int nFirstBox;
LONG lRecogVal;
LPSYE lpsye;
int cSye;
LPSYC lpsyc;
int cSyc;
}
SYG, FAR *LPSYG;
typedef int (CALLBACK *ENUMPROC)(LPSYV, int, VOID FAR *);
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, FAR *LPRCRESULT;
#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 HKP_SETHOOK 0
#define HKP_UNHOOK 0xFFFF
#define HWR_RESULTS 0
#define HWR_APPWIDE 1
#define PEN_NOINKWIDTH 0
#define LPDFNULL ((LPDF)NULL)
#define RPA_DEFAULT 1
/* GetGlobalRC return codes */
#define GGRC_OK 0
#define GGRC_DICTBUFTOOSMALL 1
#define GGRC_PARAMERROR 2
/* SetGlobalRC return code flags */
#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 GetWEventRef() (LOWORD(GetMessageExtraInfo()))
HREC WINAPI InstallRecognizer(LPSTR);
VOID WINAPI UninstallRecognizer(HREC);
UINT WINAPI GetGlobalRC(LPRC, LPSTR, LPSTR, int);
UINT WINAPI SetGlobalRC(LPRC, LPSTR, LPSTR);
VOID WINAPI RegisterPenApp(UINT, BOOL);
UINT WINAPI IsPenAware(VOID);
BOOL WINAPI SetRecogHook(UINT, UINT, HWND);
VOID WINAPI InitRC(HWND, LPRC);
REC WINAPI Recognize(LPRC);
REC WINAPI RecognizeData(LPRC, HPENDATA);
BOOL WINAPI TrainInk(LPRC, HPENDATA, LPSYV);
BOOL WINAPI TrainContext(LPRCRESULT, LPSYE, int, LPSYC, int);
REC WINAPI ProcessWriting(HWND, LPRC);
BOOL WINAPI CorrectWriting(HWND, LPSTR, UINT, LPRC, DWORD, DWORD);
VOID WINAPI EmulatePen(BOOL);
int WINAPI GetSymbolMaxLength(LPSYG);
int WINAPI GetSymbolCount(LPSYG);
VOID WINAPI FirstSymbolFromGraph(LPSYG, LPSYV, int, int FAR *);
UINT WINAPI EnumSymbols(LPSYG, WORD, ENUMPROC, LPVOID);
/****** Miscellaneous Functions *********************************************/
BOOL WINAPI TPtoDP(LPPOINT, int);
BOOL WINAPI DPtoTP(LPPOINT, int);
VOID WINAPI BoundingRectFromPoints(LPPOINT, int, LPRECT);
BOOL WINAPI SymbolToCharacter(LPSYV, int, LPSTR, LPINT);
int WINAPI CharacterToSymbol(LPSTR, int, LPSYV);
UINT WINAPI GetVersionPenWin(VOID);
BOOL WINAPI ExecuteGesture(HWND, SYV, LPRCRESULT);
/****** RC Options and Flags ***********************************************/
#define ALC_ALL 0x000043FFL
#define ALC_DEFAULT 0x00000000L
#define ALC_LCALPHA 0x00000001L
#define ALC_UCALPHA 0x00000002L
#define ALC_ALPHA 0x00000003L
#define ALC_NUMERIC 0x00000004L
#define ALC_ALPHANUMERIC 0x00000007L
#define ALC_PUNC 0x00000008L
#define ALC_MATH 0x00000010L
#define ALC_MONETARY 0x00000020L
#define ALC_OTHER 0x00000040L
#define ALC_WHITE 0x00000100L
#define ALC_NONPRINT 0x00000200L
#define ALC_GESTURE 0x00004000L
#define ALC_USEBITMAP 0x00008000L
#define ALC_DBCS 0x00000400L
#define ALC_HIRAGANA 0x00010000L
#define ALC_KATAKANA 0x00020000L
#define ALC_KANJI 0x00040000L
#define ALC_OEM 0x0FF80000L
#define ALC_RESERVED 0xF0003800L
#define ALC_NOPRIORITY 0x00000000L
#define ALC_SYSMINIMUM (ALC_ALPHANUMERIC | ALC_PUNC | ALC_WHITE | ALC_GESTURE)
#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)
#define RCD_DEFAULT 0
#define RCD_LR 1
#define RCD_RL 2
#define RCD_TB 3
#define RCD_BT 4
#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_COLDRECOG 0x00008000L
#define RCP_LEFTHAND 0x0001
#define RCP_MAPCHAR 0x0004
#define RCOR_NORMAL 1
#define RCOR_RIGHT 2
#define RCOR_UPSIDEDOWN 3
#define RCOR_LEFT 4
#define RRM_STROKE 0
#define RRM_SYMBOL 1
#define RRM_WORD 2
#define RRM_NEWLINE 3
#define RRM_COMPLETE 16
#define RCIP_ALLANSICHAR 0x0001
#define RCIP_MASK 0x0001
#define CWR_STRIPCR 0x00000001L
#define CWR_STRIPLF 0x00000002L
#define CWR_STRIPTAB 0x00000004L
#define CWR_SINGLELINEEDIT 0x00000007L
#define CWR_TITLE 0x00000010L
#define CWR_KKCONVERT 0x00000020L
#define MAP_GESTOGES (RCRT_GESTURE|RCRT_GESTURETRANSLATED)
#define MAP_GESTOVKEYS (RCRT_GESTURETOKEYS|RCRT_ALREADYPROCESSED)
#define IsGestureToGesture(lprcresult) (((lprcresult)->wResultstype & MAP_GESTOGES \
) == MAP_GESTOGES)
#define IsGestureToVkeys(lprcresult) (((lprcresult)->wResultstype & MAP_GESTOVKEYS \
) == MAP_GESTOVKEYS)
#define SetAlreadyProcessed(lprcresult) ((lprcresult)->wResultsType = ((lprcresult)->wResultsType \
& ~RCRT_GESTURETOKEYS) | RCRT_ALREADYPROCESSED)
/****** Pen Data Type *******************************************************/
typedef struct tagPENDATAHEADER
{
UINT wVersion;
UINT cbSizeUsed;
UINT cStrokes;
UINT cPnt;
UINT cPntStrokeMax;
RECT rectBound;
UINT wPndts;
int nInkWidth;
DWORD rgbInk;
}
PENDATAHEADER, FAR *LPPENDATAHEADER, FAR *LPPENDATA;
#define PDTS_LOMETRIC 0x0000
#define PDTS_HIMETRIC 0x0001
#define PDTS_HIENGLISH 0x0002
#define PDTS_SCALEMAX 0x0003
#define PDTS_DISPLAY 0x0003
#define PDTS_ARBITRARY 0x0004
#define PDTS_SCALEMASK 0x000F
#define PDTS_STANDARDSCALE PDTS_HIENGLISH
#define PDTS_NOPENINFO 0x0100
#define PDTS_NOUPPOINTS 0x0200
#define PDTS_NOOEMDATA 0x0400
#define PDTS_NOCOLINEAR 0x0800
#define PDTS_COMPRESSED 0x8000
#define PDTS_COMPRESSMETHOD 0x00F0
#define PDTS_COMPRESS2NDDERIV 0x0010
#define PDTT_DEFAULT 0x0000
#define PDTT_PENINFO PDTS_NOPENINFO
#define PDTT_UPPOINTS PDTS_NOUPPOINTS
#define PDTT_OEMDATA PDTS_NOOEMDATA
#define PDTT_COLINEAR PDTS_NOCOLINEAR
#define PDTT_COMPRESS PDTS_COMPRESSED
#define PDTT_DECOMPRESS 0x4000
#define PDTT_ALL (PDTT_PENINFO|PDTT_UPPOINTS|PDTT_OEMDATA|PDTT_COLINEAR)
#define DestroyPenData(hpendata) (GlobalFree(hpendata)==NULL)
#define EndEnumStrokes(hpendata) GlobalUnlock(hpendata)
BOOL WINAPI IsPenEvent(UINT, LONG);
BOOL WINAPI GetPenAsyncState(UINT);
BOOL WINAPI GetPenDataInfo(HPENDATA, LPPENDATAHEADER, LPPENINFO, DWORD);
BOOL WINAPI GetPenDataStroke(LPPENDATA, UINT, LPPOINT FAR *, LPVOID FAR *, LPSTROKEINFO );
BOOL WINAPI GetPointsFromPenData(HPENDATA, UINT, UINT, UINT, LPPOINT);
VOID WINAPI DrawPenData(HDC, LPRECT, HPENDATA);
BOOL WINAPI MetricScalePenData(HPENDATA, UINT);
BOOL WINAPI ResizePenData(HPENDATA, LPRECT);
BOOL WINAPI OffsetPenData(HPENDATA, int, int);
BOOL WINAPI RedisplayPenData(HDC, HPENDATA, LPPOINT, LPPOINT, int, DWORD);
HPENDATA WINAPI CompactPenData(HPENDATA, UINT );
HPENDATA WINAPI DuplicatePenData(HPENDATA, UINT);
HPENDATA WINAPI CreatePenData(LPPENINFO, int, UINT, UINT);
HPENDATA WINAPI AddPointsPenData(HPENDATA, LPPOINT, LPVOID, LPSTROKEINFO);
LPPENDATA WINAPI BeginEnumStrokes(HPENDATA );
/****** New Windows Messages ************************************************/
#define WM_RCRESULT (WM_PENWINFIRST+1)
#define WM_HOOKRCRESULT (WM_PENWINFIRST+2)
#define WM_GLOBALRCCHANGE (WM_PENWINFIRST+3)
#define WM_SKB (WM_PENWINFIRST+4)
#define WM_HEDITCTL (WM_PENWINFIRST+5)
/****** Dictionary **********************************************************/
#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
BOOL WINAPI DictionarySearch(LPRC, LPSYE, int, LPSYV, int);
/****** Handwriting Edit Control ********************************************/
#define HE_GETRC 3
#define HE_SETRC 4
#define HE_GETINFLATE 5
#define HE_SETINFLATE 6
#define HE_GETUNDERLINE 7
#define HE_SETUNDERLINE 8
#define HE_GETINKHANDLE 9
#define HE_SETINKMODE 10
#define HE_STOPINKMODE 11
#define HE_GETRCRESULTCODE 12
#define HE_DEFAULTFONT 13
#define HE_CHARPOSITION 14
#define HE_CHAROFFSET 15
#define HE_GETRCRESULT 22
#define HE_KKCONVERT 30
#define HE_GETKKCONVERT 31
#define HE_CANCELKKCONVERT 32
#define HE_FIXKKCONVERT 33
#define HEKK_DEFAULT 0
#define HEKK_CONVERT 1
#define HEKK_CANDIDATE 2
#define HEP_NORECOG 0
#define HEP_RECOG 1
#define HEP_WAITFORTAP 2
#define HN_ENDREC 4
#define HN_DELAYEDRECOGFAIL 5
#define HN_RCRESULT 20
#define HN_ENDKKCONVERT 30
typedef struct tagRECTOFS
{
int dLeft;
int dTop;
int dRight;
int dBottom;
}
RECTOFS, FAR *LPRECTOFS;
/****** Boxed Edit Control **************************************************/
typedef struct tagBOXLAYOUT
{
int cyCusp;
int cyEndCusp;
UINT style;
DWORD rgbText;
DWORD rgbBox;
DWORD rgbSelect;
}
BOXLAYOUT, FAR *LPBOXLAYOUT;
#define BXS_NONE 0U
#define BXS_RECT 1U
#define BXS_ENDTEXTMARK 2U
#define BXS_MASK 3U
#define HE_GETBOXLAYOUT 20
#define HE_SETBOXLAYOUT 21
#define BXD_CELLWIDTH 12
#define BXD_CELLHEIGHT 16
#define BXD_BASEHEIGHT 13
#define BXD_BASEHORZ 0
#define BXD_CUSPHEIGHT 2
#define BXD_ENDCUSPHEIGHT 4
/****** Screen Keyboard *****************************************************/
typedef struct tagSKBINFO
{
HWND hwnd;
UINT nPad;
BOOL fVisible;
BOOL fMinimized;
RECT rect;
DWORD dwReserved;
}
SKBINFO, FAR *LPSKBINFO;
#define SKB_QUERY 0x0000
#define SKB_SHOW 0x0001
#define SKB_HIDE 0x0002
#define SKB_CENTER 0x0010
#define SKB_MOVE 0x0020
#define SKB_MINIMIZE 0x0040
#define SKB_FULL 0x0100
#define SKB_BASIC 0x0200
#define SKB_NUMPAD 0x0400
#define OBM_SKBBTNUP 32767
#define OBM_SKBBTNDOWN 32766
#define OBM_SKBBTNDISABLED 32765
#define SKN_CHANGED 1
#define SKN_POSCHANGED 1
#define SKN_PADCHANGED 2
#define SKN_MINCHANGED 4
#define SKN_VISCHANGED 8
#define SKN_TERMINATED 0xffff
BOOL WINAPI ShowKeyboard(HWND, UINT, LPPOINT, LPSKBINFO);
/****** New ComboBox Notifications *****************************************/
#define CBN_ENDREC 16
#define CBN_DELAYEDRECOGFAIL 17
#define CBN_RCRESULT 18
#ifdef __cplusplus
} /* End of extern "C" { */
#endif /* __cplusplus */
#ifndef RC_INVOKED
#pragma option -a. /* Revert to default packing */
#endif /* RC_INVOKED */
#endif /* __PENWIN_H */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -