OSDN Git Service

Add KbdMacro class to record key strokes and remove members handling
[xkeymacs/xkeymacs.git] / xkeymacsdll / xkeymacsdll.h
1 // xkeymacs.h: interface for the CXkeymacsDll class.\r
2 //\r
3 //////////////////////////////////////////////////////////////////////\r
4 \r
5 #if !defined(AFX_XKEYMACS_H__88552DEC_1233_4A0A_BE62_9EF7BC618EC6__INCLUDED_)\r
6 #define AFX_XKEYMACS_H__88552DEC_1233_4A0A_BE62_9EF7BC618EC6__INCLUDED_\r
7 \r
8 #if _MSC_VER > 1000\r
9 #pragma once\r
10 #endif // _MSC_VER > 1000\r
11 \r
12 #include "StdAfx.h"\r
13 #include "KbdMacro.h"\r
14 #include "ClipboardSnap.h"\r
15 #include "defs.h"\r
16 #include "ipc.h"\r
17 #include <list>\r
18 \r
19 const DWORD HOOK_ALT_LATER = 0x10000;\r
20 \r
21 class AFX_EXT_CLASS CXkeymacsDll  \r
22 {\r
23 public:\r
24         static BOOL SaveConfig();\r
25         static BOOL LoadConfig();\r
26         static void SetConfig(const CONFIG& config);\r
27         static void SetHooks();\r
28         static void SetKeyboardHook();\r
29         static void ResetHooks();\r
30         static void ReleaseHooks();\r
31         static void ReleaseKeyboardHook();\r
32         static void ToggleKeyboardHookState();\r
33         static BOOL IsKeyboardHook();\r
34         static void ShowKeyboardHookState();\r
35         static void SetM_xTip(LPCTSTR szPath);\r
36         static BOOL SendIconMessage(ICONMSG *pMsg, DWORD num);\r
37         static BOOL IsDown(BYTE bVk, BOOL bPhysicalKey = TRUE);\r
38         static void Kdu(BYTE bVk, DWORD n = 1, BOOL bOriginal = TRUE);\r
39         static void DepressKey(BYTE bVk, BOOL bOriginal = TRUE);\r
40         static void ReleaseKey(BYTE bVk);\r
41         static UINT GetModifierState(BOOL bPhysicalKey = TRUE);\r
42         static void SetModifierState(UINT before, UINT after);\r
43         static void AddKillRing(BOOL bNewData = TRUE);\r
44         static CClipboardSnap* GetKillRing(CClipboardSnap *pSnap, BOOL bForce = TRUE);\r
45         static void IncreaseKillRingIndex(int nKillRing = 1);\r
46         static BOOL GetEnableCUA();\r
47         static BOOL Get326Compatible();\r
48         static BOOL Is106Keyboard();\r
49         static void SetKbMacro(KbdMacro* kbdMacro);\r
50         static int GetAccelerate(void);\r
51         static void SetAccelerate(int nAccelerate);\r
52         static void SetKeyboardSpeed(int nKeyboardSpeed);\r
53         static unsigned int GetMaxKeyInterval(void);\r
54         static void SetCursorData(HCURSOR hEnable, HCURSOR hDisableTMP, HCURSOR hDisableWOCQ, HICON hDisable, BOOL bEnable);\r
55 \r
56 private:\r
57         static CONFIG m_Config;\r
58         static HHOOK m_hHookCallWnd;\r
59         static HHOOK m_hHookCallWndRet;\r
60         static HHOOK m_hHookGetMessage;\r
61         static HHOOK m_hHookShell;\r
62         static bool m_bEnableKeyboardHook;\r
63         static BOOL m_bHook;\r
64         static DWORD m_nHookAltRelease;\r
65         static LRESULT CALLBACK CallWndProc(int nCode, WPARAM wParam, LPARAM lParam);\r
66         static LRESULT CALLBACK CallWndRetProc(int nCode, WPARAM wParam, LPARAM lParam);\r
67         static LRESULT CALLBACK GetMsgProc(int nCode, WPARAM wParam, LPARAM lParam);\r
68         static LRESULT CALLBACK ShellProc(int nCode, WPARAM wParam, LPARAM lParam);\r
69         static int m_nAppID;\r
70         static void InitKeyboardProc(BOOL bImeComposition);\r
71         static int GetAppID(LPCSTR szName, int fallback);\r
72         static BOOL m_bRightShift;\r
73         static BOOL m_bRightControl;\r
74         static BOOL m_bRightAlt;\r
75         static LRESULT CALLBACK KeyboardProc(int nCode, WPARAM wParam, LPARAM lParam);\r
76         static void CancelMarkWithShift(BYTE nKey, bool bRelease);\r
77         static int IsPassThrough(BYTE nKey);\r
78         static void InvokeM_x(LPCTSTR szPath);\r
79         static TCHAR m_M_xTip[128];\r
80         static void SetModifierIcons();\r
81         static void DoKeybd_event(BYTE bVk, DWORD dwFlags);\r
82         static void SetOriginal(UINT nType, BYTE bVk);\r
83         static BYTE m_nOriginal[MAX_COMMAND_TYPE][MAX_KEY];\r
84         static int CheckOriginal(UINT nType, BYTE bVk);\r
85         static BOOL UpdateKeyboardState(BYTE bVK, BYTE bState);\r
86         static BOOL IsControl();\r
87         static BOOL IsMeta();\r
88         static BOOL IsDepressedModifier(int Modifier(), BOOL bPhysicalKey = TRUE);\r
89         static CList<CClipboardSnap *, CClipboardSnap *> m_oKillRing;\r
90         static int m_nKillRing;\r
91         static KbdMacro* m_kbdMacro;\r
92         static void CallFunction(int nFuncID);\r
93         static KeyBind ParseKey(LPCTSTR& def);\r
94         static BOOL IsShift(TCHAR nAscii);\r
95         static BYTE a2v(TCHAR nAscii);\r
96         static BOOL IsMatchWindowText(CString szWindowText);\r
97         static int m_nAccelerate;\r
98         static int m_nKeyboardSpeed;\r
99         static HCURSOR m_hCurrentCursor;\r
100         static BOOL m_bCursor;\r
101         static HCURSOR m_hCursor[MAX_STATUS];\r
102         static void DoSetCursor();\r
103 };\r
104 \r
105 #endif // !defined(AFX_XKEYMACS_H__88552DEC_1233_4A0A_BE62_9EF7BC618EC6__INCLUDED_)\r