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
13 #include "KbdMacro.h"
\r
14 #include "ClipboardSnap.h"
\r
19 const DWORD HOOK_ALT_LATER = 0x10000;
\r
21 class AFX_EXT_CLASS CXkeymacsDll
\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
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
105 #endif // !defined(AFX_XKEYMACS_H__88552DEC_1233_4A0A_BE62_9EF7BC618EC6__INCLUDED_)
\r