OSDN Git Service

Give main roles to 32bit version and simplify 64bit version.
[xkeymacs/xkeymacs.git] / xkeymacsdll / xkeymacsdll.h
index 51c567c..6b30e3e 100644 (file)
@@ -35,171 +35,51 @@ enum { EXTENDED_KEY = 0x01000000 };
 enum { REPEATED_KEY = 0x40000000 };\r
 enum { BEING_RELEASED = 0x80000000 };\r
 \r
-typedef struct KeyBind\r
+#include "ipc.h"\r
+\r
+struct KeyBind\r
 {\r
        int nCommandType;\r
        BYTE bVk;\r
        int nControlID;\r
-} KeyBind_t;\r
-\r
-typedef struct KbdMacro\r
-{\r
-       int nCode;\r
-       WPARAM wParam;\r
-       LPARAM lParam;\r
-       BOOL bOriginal;\r
-} KbdMacro_t;\r
-\r
-typedef struct Modifier {\r
-       LPCTSTR name;\r
-       int id;\r
-} Modifier_t;\r
-\r
-static const Modifier_t Modifiers[] = {\r
-//     { _T("A-"), ALT },\r
-       { _T("C-"), CONTROL},\r
-//     { _T("H-"), HYPER },\r
-       { _T("M-"), META },\r
-       { _T("S-"), SHIFT },\r
-//     { _T("s-"), SUPER },\r
-       { _T("Ctrl+"), WIN_CTRL },\r
-       { _T("Alt+"), WIN_ALT },\r
-       { _T("Win+"), WIN_WIN },\r
 };\r
 \r
-typedef struct KeyName\r
+struct KeyName\r
 {\r
        BYTE bVk;\r
        LPCTSTR name;\r
-} KeyName_t;\r
-\r
-static const KeyName_t ControlCharacters[] = {\r
-//     { VK_LBUTTON,           _T("mouse-1") },                                // does not work well\r
-//     { VK_RBUTTON,           _T("mouse-3") },                                // does not work well\r
-       { VK_CANCEL,            _T("break") },\r
-//     { VK_MBUTTON,           _T("mouse-2") },                                // does not work well\r
-       { VK_BACK,                      _T("backspace") },\r
-       { VK_TAB,                       _T("tab") },\r
-       { VK_RETURN,            _T("return") },\r
-       { VK_CAPITAL,           _T("capslock") },\r
-       { VK_KANA,                      _T("kana") },\r
-       { VK_KANJI,                     _T("kanji") },\r
-       { VK_ESCAPE,            _T("escape") },\r
-       { VK_CONVERT,           _T("convert") },\r
-       { VK_NONCONVERT,        _T("nonconvert") },\r
-//     { VK_SPACE,                     _T("SPC") },                                    // [? ]\r
-       { VK_PRIOR,                     _T("prior") },\r
-       { VK_NEXT,                      _T("next") },\r
-       { VK_END,                       _T("end") },\r
-       { VK_HOME,                      _T("home") },\r
-       { VK_LEFT,                      _T("left") },\r
-       { VK_UP,                        _T("up") },\r
-       { VK_RIGHT,                     _T("right") },\r
-       { VK_DOWN,                      _T("down") },\r
-       { VK_SELECT,            _T("select") },\r
-       { VK_PRINT,                     _T("print") },\r
-       { VK_EXECUTE,           _T("execute") },\r
-       { VK_SNAPSHOT,          _T("printscreen") },                    // work as print\r
-       { VK_INSERT,            _T("insert") },\r
-       { VK_DELETE,            _T("delete") },\r
-       { VK_LWIN,                      _T("lwindow") },\r
-       { VK_RWIN,                      _T("rwindow") },\r
-       { VK_APPS,                      _T("apps") },\r
-       { VK_SLEEP,                     _T("sleep") },\r
-       { VK_NUMPAD0,           _T("kp-0") },\r
-       { VK_NUMPAD1,           _T("kp-1") },\r
-       { VK_NUMPAD2,           _T("kp-2") },\r
-       { VK_NUMPAD3,           _T("kp-3") },\r
-       { VK_NUMPAD4,           _T("kp-4") },\r
-       { VK_NUMPAD5,           _T("kp-5") },\r
-       { VK_NUMPAD6,           _T("kp-6") },\r
-       { VK_NUMPAD7,           _T("kp-7") },\r
-       { VK_NUMPAD8,           _T("kp-8") },\r
-       { VK_NUMPAD9,           _T("kp-9") },\r
-       { VK_MULTIPLY,          _T("kp-multiply") },\r
-       { VK_ADD,                       _T("kp-add") },\r
-       { VK_SUBTRACT,          _T("kp-subtract") },\r
-       { VK_DECIMAL,           _T("kp-decimal") },\r
-       { VK_DIVIDE,            _T("kp-divide") },\r
-//     { VK_F1,                        _T("f1") },                                             // FIXME\r
-//     { VK_F2,                        _T("f2") },                                             // Move at the end of definition of funcgtion keys to keep away confliction f1/f2 and f1?/f2? by _tcsncmp() i.e. strncmp()\r
-       { VK_F3,                        _T("f3") },\r
-       { VK_F4,                        _T("f4") },\r
-       { VK_F5,                        _T("f5") },\r
-       { VK_F6,                        _T("f6") },\r
-       { VK_F7,                        _T("f7") },\r
-       { VK_F8,                        _T("f8") },\r
-       { VK_F9,                        _T("f9") },\r
-       { VK_F10,                       _T("f10") },\r
-       { VK_F11,                       _T("f11") },\r
-       { VK_F12,                       _T("f12") },\r
-       { VK_F13,                       _T("f13") },\r
-       { VK_F14,                       _T("f14") },\r
-       { VK_F15,                       _T("f15") },\r
-       { VK_F16,                       _T("f16") },\r
-       { VK_F17,                       _T("f17") },\r
-       { VK_F18,                       _T("f18") },\r
-       { VK_F19,                       _T("f19") },\r
-       { VK_F20,                       _T("f20") },\r
-       { VK_F21,                       _T("f21") },\r
-       { VK_F22,                       _T("f22") },\r
-       { VK_F23,                       _T("f23") },\r
-       { VK_F24,                       _T("f24") },\r
-       { VK_F1,                        _T("f1") },\r
-       { VK_F2,                        _T("f2") },\r
-       { VK_NUMLOCK,           _T("kp-numlock") },\r
-       { VK_SCROLL,            _T("scroll") },\r
-       { 0xa6,                         _T("browser-back") },                   // VK_BROWSER_BACK\r
-       { 0xa7,                         _T("browser-forward") },                // VK_BROWSER_FORWARD\r
-       { 0xa8,                         _T("browser-refresh") },                // VK_BROWSER_REFRESH\r
-       { 0xa9,                         _T("browser-stop") },                   // VK_BROWSER_STOP\r
-       { 0xaa,                         _T("browser-search") },                 // VK_BROWSER_SEARCH\r
-       { 0xab,                         _T("browser-favorites") },              // VK_BROWSER_FAVORITES\r
-       { 0xac,                         _T("browser-home") },                   // VK_BROWSER_HOME\r
-       { 0xad,                         _T("volume-mute") },                    // VK_VOLUME_MUTE\r
-       { 0xae,                         _T("volume-down") },                    // VK_VOLUME_DOWN\r
-       { 0xaf,                         _T("volume-up") },                              // VK_VOLUME_UP\r
-       { 0xb0,                         _T("media-next-track") },               // VK_MEDIA_NEXT_TRACK\r
-       { 0xb1,                         _T("media-prev-track") },               // VK_MEDIA_PREV_TRACK\r
-       { 0xb2,                         _T("media-stop") },                             // VK_MEDIA_STOP\r
-       { 0xb3,                         _T("media-play-pause") },               // VK_MEDIA_PLAY_PAUSE\r
-       { 0xb4,                         _T("launch-mail") },                    // VK_LAUNCH_MAIL\r
-       { 0xb5,                         _T("launch-media-select") },    // VK_LAUNCH_MEDIA_SELECT\r
-       { 0xb6,                         _T("launch-1") },                               // VK_LAUNCH_APP1\r
-       { 0xb7,                         _T("launch-2") },                               // VK_LAUNCH_APP2\r
 };\r
 \r
 class AFX_EXT_CLASS CXkeymacsDll  \r
 {\r
 public:\r
-       static void ModifyM_xTip(const TCHAR *const szPath);\r
+       static BOOL SaveConfig();\r
+       static BOOL LoadConfig();\r
+       static void SetM_xTip(const TCHAR *const szPath);\r
        static BOOL Get326Compatible();\r
-       void Set326Compatible(int nApplicationID, BOOL b326Compatible);\r
-       void SetCursorData(HCURSOR hEnable, HCURSOR hDisableTMP, HCURSOR hDisableWOCQ, HICON hDisable, BOOL bEnable);\r
+       static void Set326Compatible(int nApplicationID, BOOL b326Compatible);\r
+       static void SetCursorData(HCURSOR hEnable, HCURSOR hDisableTMP, HCURSOR hDisableWOCQ, HICON hDisable, BOOL bEnable);\r
        static unsigned int GetMaxKeyInterval(void);\r
        static void SetKeyboardSpeed(int nKeyboardSpeed);\r
        static int GetAccelerate(void);\r
        static void SetAccelerate(int nAccelerate);\r
-       void SetWindowText(int nApplicationID, CString szWindowText);\r
-//     static int m_nPassThrough;\r
-       void AddAllShell_NotifyIcon();\r
-       void DeleteAllShell_NotifyIcon();\r
-       void SetKillRingMax(int nApplicationID, int nKillRingMax);\r
-       void CXkeymacsDll::EnableShell_NotifyIcon(ICON_TYPE icon, BOOL bEnable);\r
-       void SetNotifyIconData(ICON_TYPE icon, NOTIFYICONDATA stNtfyIcon, HICON hEnable, HICON hDisableTMP, HICON hDisableWOCQ, HICON hDisable, BOOL bEnable);\r
-       void SetNotifyIconData(ICON_TYPE icon, NOTIFYICONDATA stNtfyIcon, HICON hOn, HICON hOff, BOOL bEnable);\r
-       void Clear(int nApplicationID);\r
-       BOOL IsKeyboardHook();\r
-       void SetCommandID(int nApplicationID, int nCommandType, int nKey, int nCommandID);\r
-       void SetAtIbeamCursorOnly(int nApplicationID, int nCommandType, int nKey, BOOL bAtIbeamCursorOnly);\r
-       void SetApplicationName(int nApplicationID, CString szApplicationName);\r
-       static BOOL ReleaseKeyboardHook();\r
-       void SetEnableCUA(int nApplicationID, BOOL bEnableCUA);\r
-       void SetIgnoreUndefinedC_x(int nApplicationID, BOOL bIgnoreUndefinedC_x);\r
-       void SetIgnoreUndefinedMetaCtrl(int nApplicationID, BOOL bIgnoreUndefinedMetaCtrl);\r
-       static BOOL SetKeyboardHook();\r
-       void SetSettingStyle(int nApplicationID, int nSettingStyle);\r
-       void SetUseDialogSetting(int nApplicationID, BOOL bUseDialogSetting);\r
+       static void SetWindowText(int nApplicationID, CString szWindowText);\r
+       static void SetKillRingMax(int nApplicationID, int nKillRingMax);\r
+       static void Clear(int nApplicationID);\r
+       static BOOL IsKeyboardHook();\r
+       static void SetCommandID(int nApplicationID, int nCommandType, int nKey, int nCommandID);\r
+       static void SetAtIbeamCursorOnly(int nApplicationID, int nCommandType, int nKey, BOOL bAtIbeamCursorOnly);\r
+       static void SetApplicationName(int nApplicationID, CString szApplicationName);\r
+       static void ReleaseHooks();\r
+       static void ReleaseKeyboardHook();\r
+       static void SetEnableCUA(int nApplicationID, BOOL bEnableCUA);\r
+       static void SetIgnoreUndefinedC_x(int nApplicationID, BOOL bIgnoreUndefinedC_x);\r
+       static void SetIgnoreUndefinedMetaCtrl(int nApplicationID, BOOL bIgnoreUndefinedMetaCtrl);\r
+       static void SetHooks();\r
+       static void EnableKeyboardHook();\r
+       static void SetKeyboardHook();\r
+       static void SetSettingStyle(int nApplicationID, int nSettingStyle);\r
+       static void SetUseDialogSetting(int nApplicationID, BOOL bUseDialogSetting);\r
        static void AddKillRing(BOOL bNewData = TRUE);\r
        static void CallMacro();\r
        static void ClearFunctionDefinition();\r
@@ -210,17 +90,19 @@ public:
        static void IncreaseKillRingIndex(int nKillRing = 1);\r
        static BOOL IsDown(BYTE bVk, BOOL bPhysicalKey = TRUE);\r
        static void Kdu(BYTE bVk, DWORD n = 1, BOOL bOriginal = TRUE);\r
-       static int ModifyShell_NotifyIcon(ICON_TYPE icon, BOOL bNewStatus, BOOL bForce = TRUE);\r
        static void ReleaseKey(BYTE bVk);\r
        static void SetFunctionDefinition(int nFunctionID, CString szDefinition);\r
        static void SetFunctionKey(int nFunctionID, int nApplicationID, int nCommandType, int nKey);\r
        static void SetKeyboardHookFlag();\r
        static void SetKeyboardHookFlag(BOOL bFlag);\r
+       static BOOL Is106Keyboard();\r
+       static void Set106Keyboard(BOOL b106Keyboard);\r
+       static BOOL SendIconMessage(ICONMSG *pMsg, DWORD num);\r
        CXkeymacsDll();\r
        virtual ~CXkeymacsDll();\r
 private:\r
+       static TCHAR m_M_xTip[128];\r
        static void InvokeM_x(const TCHAR* const szPath);\r
-       static BOOL m_b326Compatible[MAX_APP];\r
        static void LogCallWndProcMessage(WPARAM wParam, LPARAM lParam);\r
        static void DoSetCursor();\r
        static HCURSOR m_hCurrentCursor;\r
@@ -231,30 +113,23 @@ private:
        static HHOOK m_hHookCallWndRet;\r
        static LRESULT CALLBACK CallWndRetProc(int nCode, WPARAM wParam, LPARAM lParam);\r
        static BOOL IsMatchWindowText(CString szWindowText);\r
-       static TCHAR m_szWindowText[MAX_APP][WINDOW_TEXT_LENGTH];\r
-       static HHOOK m_hHookKeyboard;\r
+       static BOOL m_bEnableKeyboardHook;\r
        static HHOOK m_hHookCallWnd;\r
        static HHOOK m_hHookGetMessage;\r
        static HHOOK m_hHookShell;\r
-       static void AddShell_NotifyIcon(ICON_TYPE icon);\r
-       void DeleteShell_NotifyIcon(ICON_TYPE icon);\r
        static BOOL DefiningMacro();\r
        static BOOL IsControl();\r
        static BOOL IsMeta();\r
+       static void SetModifierIcons();\r
        static void DoKeybd_event(BYTE bVk, DWORD dwFlags);\r
        static LRESULT CALLBACK KeyboardProc(int nCode, WPARAM wParam, LPARAM lParam);\r
        static LRESULT CALLBACK CallWndProc(int nCode, WPARAM wParam, LPARAM lParam);\r
        static LRESULT CALLBACK GetMsgProc(int nCode, WPARAM wParam, LPARAM lParam);\r
        static LRESULT CALLBACK ShellProc(int nCode, WPARAM wParam, LPARAM lParam);\r
-       static KeyBind_t ParseKey(const int nFunctionID, unsigned int &i);\r
+       static KeyBind ParseKey(const int nFunctionID, unsigned int &i);\r
        static BYTE a2v(TCHAR nAscii);\r
        static BOOL IsShift(TCHAR nAscii);\r
-       static TCHAR m_szFunctionDefinition[MAX_FUNCTION][MAX_DEFINITION];\r
        static void CallFunction(int nFunctionID);\r
-       static int m_nFunctionID[MAX_APP][MAX_COMMAND_TYPE][MAX_KEY];\r
-       static BOOL m_bEnableCUA[MAX_APP];\r
-       static TCHAR m_szOldApplicationName[MAX_PATH];\r
-       static TCHAR m_szApplicationName[MAX_PATH];\r
        static int IsPassThrough(BYTE nKey);\r
        static BOOL IsDepressedShiftKeyOnly(BYTE nKey);\r
        static BOOL IsDepressedModifier(int Modifier(), BOOL bPhysicalKey = TRUE);\r
@@ -263,90 +138,17 @@ private:
        static BOOL m_bDefiningMacro;\r
        static void Original(int nCommandType, BYTE bVk, int nOriginal);\r
        static int Original(int nCommandType, BYTE bVk);\r
-       static HICON m_hIcon[MAX_ICON_TYPE][MAX_STATUS];\r
-       static BOOL m_bUseDialogSetting[MAX_APP];\r
        static void InitKeyboardProc(BOOL bImeComposition);\r
-       static BOOL m_bIgnoreUndefinedC_x[MAX_APP];\r
-       static BOOL m_bIgnoreUndefinedMetaCtrl[MAX_APP];\r
-       static int m_nSettingStyle[MAX_APP];\r
        static int m_nApplicationID;\r
        static int m_nOriginal[MAX_COMMAND_TYPE][MAX_KEY];\r
        static int m_nKillRing;\r
        static CList<CClipboardSnap *, CClipboardSnap *> m_oKillRing;\r
-       static int m_nKillRingMax[MAX_APP];\r
        static int GetMickey(int nDifferential, int nThreshold1, int nThreshold2, int nAcceleration, int nSpeed);\r
-       static BOOL DoShell_NotifyIcon(ICON_TYPE icon, DWORD dwMessage);\r
-       static BOOL m_bIcon[MAX_ICON_TYPE];\r
-       static DWORD m_dwOldMessage[MAX_ICON_TYPE];\r
-       static NOTIFYICONDATA m_stNtfyIcon[MAX_ICON_TYPE];\r
-       static NOTIFYICONDATA m_stOldNtfyIcon[MAX_ICON_TYPE];\r
        static BOOL m_bHook;\r
        static BOOL m_bRightShift;\r
        static BOOL m_bRightAlt;\r
        static BOOL m_bRightControl;\r
-       static TCHAR m_szSpecialApp[MAX_APP][CLASS_NAME_LENGTH];\r
-       static int m_nCommandID[MAX_APP][MAX_COMMAND_TYPE][MAX_KEY];\r
-       static BOOL m_bAtIbeamCursorOnly[MAX_APP][MAX_COMMAND_TYPE][MAX_KEY];\r
-};\r
-\r
-\r
-class AFX_EXT_CLASS CXkeymacsData  \r
-{\r
-public:\r
-       void Set326Compatible(BOOL b326Compatible);\r
-       BOOL Get326Compatible();\r
-       int GetWindowTextType();\r
-       void SetWindowTextType(int nWindowTextType);\r
-       CString GetWindowText();\r
-       void SetWindowText(LPCTSTR lpszWindowText);\r
-       static BOOL Is106Keyboard();\r
-       static void Set106Keyboard(BOOL b106Keyboard);\r
-       static int GetToolTipID(int nCommandID);\r
-       static int GetDescriptionID(int nCommandID);\r
-       void SetUseDialogSetting(BOOL bUseDialogSetting);\r
-       BOOL GetUseDialogSetting();\r
-       BOOL GetEnableCUA();\r
-       void SetEnableCUA(BOOL bEnableCUA);\r
-       BOOL GetIgnoreUndefinedC_x();\r
-       void SetIgnoreUndefinedC_x(BOOL bIgnoreUndefinedC_x);\r
-       BOOL GetIgnoreUndefinedMetaCtrl();\r
-       void SetIgnoreUndefinedMetaCtrl(BOOL bIgnoreUndefinedMetaCtrl);\r
-       static int GetCategoryID(int nCommandID);\r
-       void SetSettingStyle(int nSettingStyle);\r
-       int GetSettingStyle();\r
-       static int GetDefaultControlID(int nCommandID, int nIndex);\r
-       static int GetDefaultCommandKey(int nCommandID, int nIndex);\r
-       static int GetDefaultCommandType(int nCommandID, int nIndex);\r
-       static CString GetCommandName(int nCommandID);\r
-       void SetKillRingMax(int nKillRingMax);\r
-       int GetKillRingMax();\r
-       CString GetApplicationTitle();\r
-       void SetApplicationTitle(LPCTSTR lpszApplicationTitle);\r
-       void ClearAll();\r
-       int GetCommandID(int nCommandType, int nKey);\r
-       void SetCommandID(int nCommandType, int nKey, int nCommandID);\r
-       BOOL GetAtIbeamCursorOnly(int nCommandType, int nKey);\r
-       void SetAtIbeamCursorOnly(int nCommandType, int nKey, BOOL bAtIbeamCursorOnly);\r
-       CString GetApplicationName();\r
-       void SetApplicationName(LPCTSTR lpszApplicationName);\r
-       CXkeymacsData();\r
-       virtual ~CXkeymacsData();\r
-\r
-private:\r
-       BOOL m_b326Compatible;\r
-       int m_nWindowTextType;\r
-       CString m_strWindowText;\r
-       BOOL m_bEnableCUA;\r
-       static BOOL m_b106Keyboard;\r
-       BOOL m_bUseDialogSetting;\r
-       BOOL m_bIgnoreUndefinedC_x;\r
-       BOOL m_bIgnoreUndefinedMetaCtrl;\r
-       int m_nSettingStyle;\r
-       int m_nKillRingMax;\r
-       CString m_strApplicationTitle;\r
-       CString m_strApplicationName;\r
-       int m_nCommandID[MAX_COMMAND_TYPE][MAX_KEY];\r
-       BOOL m_bAtIbeamCursorOnly[MAX_COMMAND_TYPE][MAX_KEY];\r
+       static CONFIG m_Config;\r
 };\r
 \r
 #endif // !defined(AFX_XKEYMACS_H__88552DEC_1233_4A0A_BE62_9EF7BC618EC6__INCLUDED_)\r