1 // xkeymacs.h: interface for the CXkeymacsDll class.
\r
3 //////////////////////////////////////////////////////////////////////
\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
10 #endif // _MSC_VER > 1000
\r
12 #include "KbdMacro.h"
\r
13 #include "ClipboardSnap.h"
\r
18 const DWORD HOOK_ALT_LATER = 0x10000;
\r
20 class AFX_EXT_CLASS CXkeymacsDll
\r
23 static BOOL SaveConfig();
\r
24 static BOOL LoadConfig();
\r
25 static void SetConfig(const Config& config);
\r
26 static void SetHooks();
\r
27 static void SetKeyboardHook(DWORD threadId = 0);
\r
28 static void ResetHooks();
\r
29 static void ReleaseHooks();
\r
30 static void ReleaseKeyboardHook();
\r
31 static void ToggleKeyboardHookState();
\r
32 static BOOL IsKeyboardHook();
\r
33 static void ShowKeyboardHookState();
\r
34 static void SetM_xTip(LPCTSTR szPath);
\r
35 static BOOL SendIconMessage(IconMsg *pMsg, DWORD num);
\r
36 static BOOL IsDown(BYTE bVk, BOOL bPhysicalKey = TRUE);
\r
37 static void Kdu(BYTE bVk, DWORD n = 1, BOOL bOriginal = TRUE);
\r
38 static void DepressKey(BYTE bVk, BOOL bOriginal = TRUE);
\r
39 static void ReleaseKey(BYTE bVk);
\r
40 static UINT GetModifierState(BOOL bPhysicalKey = TRUE);
\r
41 static void SetModifierState(UINT before, UINT after);
\r
42 static void AddKillRing(BOOL bNewData = TRUE);
\r
43 static CClipboardSnap* GetKillRing(CClipboardSnap *pSnap, BOOL bForce = TRUE);
\r
44 static void IncreaseKillRingIndex(int nKillRing = 1);
\r
45 static bool GetEnableCUA();
\r
46 static bool Get326Compatible();
\r
47 static bool Is106Keyboard();
\r
48 static void SetKbMacro(KbdMacro* kbdMacro);
\r
49 static int GetAccelerate(void);
\r
50 static void SetAccelerate(int nAccelerate);
\r
51 static void SetKeyboardSpeed(int nKeyboardSpeed);
\r
52 static unsigned int GetMaxKeyInterval(void);
\r
53 static void SetCursorData(HCURSOR hEnable, HCURSOR hDisableTMP, HCURSOR hDisableWOCQ, HICON hDisable, BOOL bEnable);
\r
56 static Config m_Config;
\r
57 static AppConfig* m_CurrentConfig;
\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 void InitKeyboardProc(bool imeState);
\r
70 static AppConfig* GetAppConfig(LPCTSTR szName, AppConfig* fallback);
\r
71 static BOOL m_bRightShift;
\r
72 static BOOL m_bRightControl;
\r
73 static BOOL m_bRightAlt;
\r
74 static LRESULT CALLBACK KeyboardProc(int nCode, WPARAM wParam, LPARAM lParam);
\r
75 static void CancelMarkWithShift(BYTE nKey, bool bRelease);
\r
76 static int IsPassThrough(BYTE nKey);
\r
77 static void InvokeM_x(LPCTSTR szPath);
\r
78 static TCHAR m_M_xTip[128];
\r
79 static void SetModifierIcons();
\r
80 static void DoKeybd_event(BYTE bVk, DWORD dwFlags);
\r
81 static void SetOriginal(UINT nType, BYTE bVk);
\r
82 static BYTE m_nOriginal[MAX_COMMAND_TYPE][MAX_KEY];
\r
83 static int CheckOriginal(UINT nType, BYTE bVk);
\r
84 static BOOL UpdateKeyboardState(BYTE bVK, BYTE bState);
\r
85 static BOOL IsControl();
\r
86 static BOOL IsMeta();
\r
87 static BOOL IsDepressedModifier(int Modifier(), BOOL bPhysicalKey = TRUE);
\r
88 static CList<CClipboardSnap *, CClipboardSnap *> m_oKillRing;
\r
89 static int m_nKillRing;
\r
90 static KbdMacro* m_kbdMacro;
\r
91 static void CallFunction(int nFuncID);
\r
92 static KeyBind ParseKey(LPCTSTR& def);
\r
93 static SHORT ConvVkey(SHORT in, int mode);
\r
94 static int m_nAccelerate;
\r
95 static int m_nKeyboardSpeed;
\r
96 static HCURSOR m_hCurrentCursor;
\r
97 static BOOL m_bCursor;
\r
98 static HCURSOR m_hCursor[MAX_STATUS];
\r
99 static void DoSetCursor();
\r
102 #endif // !defined(AFX_XKEYMACS_H__88552DEC_1233_4A0A_BE62_9EF7BC618EC6__INCLUDED_)
\r