\r
#include "resource.h" // main symbols\r
\r
-enum Instance\r
-{\r
- FirstInstance,\r
- SecondInstance,\r
-};\r
-\r
-\r
/////////////////////////////////////////////////////////////////////////////\r
// CXkeymacsApp:\r
// See xkeymacs.cpp for the implementation of this class\r
\r
// Implementation\r
//{{AFX_MSG(CXkeymacsApp)\r
- afx_msg void OnAppAbout();\r
// NOTE - the ClassWizard will add and remove member functions here.\r
// DO NOT EDIT what you see in these blocks of generated code !\r
//}}AFX_MSG\r
+ BOOL IsWow64();\r
+ BOOL SendIPCMessage(DWORD msg);\r
+ BOOL Create64bitProcess();\r
DECLARE_MESSAGE_MAP()\r
private:\r
- Instance m_Instance;\r
HANDLE m_hMutex;\r
+ BOOL m_bIsWow64;\r
};\r
\r
-/////////////////////////////////////////////////////////////////////////////\r
-// CAboutDlg dialog used for App About\r
-\r
-class CAboutDlg : public CDialog\r
-{\r
-public:\r
- CAboutDlg();\r
-\r
-// Dialog Data\r
- //{{AFX_DATA(CAboutDlg)\r
- enum { IDD = IDD_ABOUTBOX };\r
- CStatic m_cURL;\r
- CString m_szVersionInformation;\r
- CString m_szLegalCopyright;\r
- //}}AFX_DATA\r
-\r
- // ClassWizard generated virtual function overrides\r
- //{{AFX_VIRTUAL(CAboutDlg)\r
- protected:\r
- virtual void DoDataExchange(CDataExchange *pDX); // DDX/DDV support\r
- //}}AFX_VIRTUAL\r
-\r
-// Implementation\r
-protected:\r
- //{{AFX_MSG(CAboutDlg)\r
- virtual void OnOK();\r
- afx_msg void OnClose();\r
- afx_msg void OnUrl();\r
- afx_msg HBRUSH OnCtlColor(CDC *pDC, CWnd *pWnd, UINT nCtlColor);\r
- afx_msg BOOL OnSetCursor(CWnd *pWnd, UINT nHitTest, UINT message);\r
- //}}AFX_MSG\r
- DECLARE_MESSAGE_MAP()\r
-};\r
-\r
-/////////////////////////////////////////////////////////////////////////////\r
-\r
-static const KeyName_t KeyNames[] = {\r
- {0, _T("")},\r
- {VK_LBUTTON, _T("Left mouse button")},\r
- {VK_RBUTTON, _T("Right mouse button")},\r
- {VK_CANCEL, _T("Break")},\r
- {VK_MBUTTON, _T("Middle mouse button")},\r
- {0x05, _T("X1 mouse button")}, // VK_XBUTTON1\r
- {0x06, _T("X2 mouse button")}, // VK_XBUTTON2\r
- {0x07, _T("Undefined")},\r
- {VK_BACK, _T("Backspace")},\r
- {VK_TAB, _T("Tab")},\r
- {0x0a, _T("Reserved")},\r
- {0x0b, _T("Reserved")},\r
- {VK_CLEAR, _T("Clear")},\r
- {VK_RETURN, _T("Enter")},\r
- {0x0e, _T("Undefined")},\r
- {0x0f, _T("Undefined")},\r
- {VK_SHIFT, _T("Shift")},\r
- {VK_CONTROL, _T("Ctrl")},\r
- {VK_MENU, _T("Alt")},\r
- {VK_PAUSE, _T("Pause")},\r
- {VK_CAPITAL, _T("Caps Lock")},\r
- {VK_KANA, _T("Kana")}, // {VK_HANGUEL, "Hanguel"}, {VK_HANGUL, "Hangul"},\r
- {0x16, _T("Undefined")},\r
- {VK_JUNJA, _T("Junja")},\r
- {VK_FINAL, _T("Final")},\r
- {VK_KANJI, _T("Kanji")}, // {VK_HANJA, "Hanja"},\r
- {0x1a, _T("Undefined")},\r
- {VK_ESCAPE, _T("Esc")},\r
- {VK_CONVERT, _T("Convert")}, // \95Ï\8a·\r
- {VK_NONCONVERT, _T("Nonconvert")}, // \96³\95Ï\8a·\r
- {VK_ACCEPT, _T("Accept")},\r
- {VK_MODECHANGE, _T("Mode change")},\r
- {VK_SPACE, _T("Space")},\r
- {VK_PRIOR, _T("Page Up")},\r
- {VK_NEXT, _T("Page Down")},\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("Print Screen")},\r
- {VK_INSERT, _T("Ins")},\r
- {VK_DELETE, _T("Del")},\r
- {VK_HELP, _T("Help")},\r
- {'0', _T("0")},\r
- {'1', _T("1")},\r
- {'2', _T("2")},\r
- {'3', _T("3")},\r
- {'4', _T("4")},\r
- {'5', _T("5")},\r
- {'6', _T("6")},\r
- {'7', _T("7")},\r
- {'8', _T("8")},\r
- {'9', _T("9")},\r
- {0x3a, _T("Undefined")},\r
- {0x3b, _T("Undefined")},\r
- {0x3c, _T("Undefined")},\r
- {0x3d, _T("Undefined")},\r
- {0x3e, _T("Undefined")},\r
- {0x3f, _T("Undefined")},\r
- {0x40, _T("Undefined")},\r
- {'A', _T("A")},\r
- {'B', _T("B")},\r
- {'C', _T("C")},\r
- {'D', _T("D")},\r
- {'E', _T("E")},\r
- {'F', _T("F")},\r
- {'G', _T("G")},\r
- {'H', _T("H")},\r
- {'I', _T("I")},\r
- {'J', _T("J")},\r
- {'K', _T("K")},\r
- {'L', _T("L")},\r
- {'M', _T("M")},\r
- {'N', _T("N")},\r
- {'O', _T("O")},\r
- {'P', _T("P")},\r
- {'Q', _T("Q")},\r
- {'R', _T("R")},\r
- {'S', _T("S")},\r
- {'T', _T("T")},\r
- {'U', _T("U")},\r
- {'V', _T("V")},\r
- {'W', _T("W")},\r
- {'X', _T("X")},\r
- {'Y', _T("Y")},\r
- {'Z', _T("Z")},\r
- {VK_LWIN, _T("Left Windows")},\r
- {VK_RWIN, _T("Right Windows")},\r
- {VK_APPS, _T("Application")},\r
- {0x5e, _T("Reserved")},\r
- {0x5f, _T("Sleep")}, // VK_SLEEP\r
- {VK_NUMPAD0, _T("Num 0")},\r
- {VK_NUMPAD1, _T("Num 1")},\r
- {VK_NUMPAD2, _T("Num 2")},\r
- {VK_NUMPAD3, _T("Num 3")},\r
- {VK_NUMPAD4, _T("Num 4")},\r
- {VK_NUMPAD5, _T("Num 5")},\r
- {VK_NUMPAD6, _T("Num 6")},\r
- {VK_NUMPAD7, _T("Num 7")},\r
- {VK_NUMPAD8, _T("Num 8")},\r
- {VK_NUMPAD9, _T("Num 9")},\r
- {VK_MULTIPLY, _T("Num *")},\r
- {VK_ADD, _T("Num +")},\r
- {VK_SEPARATOR, _T("Separator")},\r
- {VK_SUBTRACT, _T("Num -")},\r
- {VK_DECIMAL, _T("Num .")},\r
- {VK_DIVIDE, _T("Num /")},\r
- {VK_F1, _T("F1")},\r
- {VK_F2, _T("F2")},\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
- {0x88, _T("Unassigned")},\r
- {0x89, _T("Unassigned")},\r
- {0x8a, _T("Unassigned")},\r
- {0x8b, _T("Unassigned")},\r
- {0x8c, _T("Unassigned")},\r
- {0x8d, _T("Unassigned")},\r
- {0x8e, _T("Unassigned")},\r
- {0x8f, _T("Unassigned")},\r
- {VK_NUMLOCK, _T("Num Lock")},\r
- {VK_SCROLL, _T("Scroll Lock")},\r
- {0x92, _T("OEM specific")},\r
- {0x93, _T("OEM specific")},\r
- {0x94, _T("OEM specific")},\r
- {0x95, _T("OEM specific")},\r
- {0x96, _T("OEM specific")},\r
- {0x97, _T("Unassigned")},\r
- {0x98, _T("Unassigned")},\r
- {0x99, _T("Unassigned")},\r
- {0x9a, _T("Unassigned")},\r
- {0x9b, _T("Unassigned")},\r
- {0x9c, _T("Unassigned")},\r
- {0x9d, _T("Unassigned")},\r
- {0x9e, _T("Unassigned")},\r
- {0x9f, _T("Unassigned")},\r
- {VK_LSHIFT, _T("Left Shift")},\r
- {VK_RSHIFT, _T("Right Shift")},\r
- {VK_LCONTROL, _T("Left Ctrl")},\r
- {VK_RCONTROL, _T("Right Ctrl")},\r
- {VK_LMENU, _T("Left Alt")},\r
- {VK_RMENU, _T("Right Alt")},\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 Start")}, // 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("Next Track")}, // VK_MEDIA_NEXT_TRACK\r
- {0xb1, _T("Previous Track")}, // VK_MEDIA_PREV_TRACK\r
- {0xb2, _T("Stop Media")}, // VK_MEDIA_STOP\r
- {0xb3, _T("Play/Pause Media")}, // VK_MEDIA_PLAY_PAUSE\r
- {0xb4, _T("Start Mail")}, // VK_LAUNCH_MAIL\r
- {0xb5, _T("Select Media")}, // VK_LAUNCH_MEDIA_SELECT\r
- {0xb6, _T("Start Application 1")}, // VK_LAUNCH_APP1\r
- {0xb7, _T("Start Application 2")}, // VK_LAUNCH_APP2\r
- {0xb8, _T("Reserved")},\r
- {0xb9, _T("Reserved")},\r
- {0xba, _T(";")}, // VK_OEM_1\r
-// {0xba, _T(":")}, // VK_OEM_1 // for Japanese keyboard\r
- {0xbb, _T("+")}, // VK_OEM_PLUS\r
-// {0xbb, _T(";")}, // VK_OEM_PLUS // for Japanese keyboard\r
- {0xbc, _T(",")}, // VK_OEM_COMMA\r
- {0xbd, _T("-")}, // VK_OEM_MINUS\r
- {0xbe, _T(".")}, // VK_OEM_PERIOD\r
- {0xbf, _T("/")}, // VK_OEM_2\r
- {0xc0, _T("`")}, // VK_OEM_3\r
-// {0xc0, _T("@")}, // VK_OEM_3 // for Japanese keyboard\r
- {0xc1, _T("Reserved")},\r
- {0xc2, _T("Reserved")},\r
- {0xc3, _T("Reserved")},\r
- {0xc4, _T("Reserved")},\r
- {0xc5, _T("Reserved")},\r
- {0xc6, _T("Reserved")},\r
- {0xc7, _T("Reserved")},\r
- {0xc8, _T("Reserved")},\r
- {0xc9, _T("Reserved")},\r
- {0xca, _T("Reserved")},\r
- {0xcb, _T("Reserved")},\r
- {0xcc, _T("Reserved")},\r
- {0xcd, _T("Reserved")},\r
- {0xce, _T("Reserved")},\r
- {0xcf, _T("Reserved")},\r
- {0xd0, _T("Reserved")},\r
- {0xd1, _T("Reserved")},\r
- {0xd2, _T("Reserved")},\r
- {0xd3, _T("Reserved")},\r
- {0xd4, _T("Reserved")},\r
- {0xd5, _T("Reserved")},\r
- {0xd6, _T("Reserved")},\r
- {0xd7, _T("Reserved")},\r
- {0xd8, _T("Unassigned")},\r
- {0xd9, _T("Unassigned")},\r
- {0xda, _T("Unassigned")},\r
- {0xdb, _T("[")}, // VK_OEM_4\r
- {0xdc, _T("Backslash")}, // VK_OEM_5\r
- {0xdd, _T("]")}, // VK_OEM_6\r
- {0xde, _T("'")}, // VK_OEM_7\r
- {0xdf, _T("OEM specific")}, // VK_OEM_8\r
- {0xe0, _T("Reserved")},\r
- {0xe1, _T("OEM specific")},\r
- {0xe2, _T("Backslash for 106 keyboard")}, // VK_OEM_102\r
- {0xe3, _T("OEM specific")},\r
- {0xe4, _T("OEM specific")},\r
- {0xe5, _T("Process")}, // VK_PROCESSKEY\r
- {0xe6, _T("OEM specific")},\r
- {0xe7, _T("Packet")}, // VK_PACKET\r
- {0xe8, _T("Unassigned")},\r
- {0xe9, _T("OEM specific")},\r
- {0xea, _T("OEM specific")},\r
- {0xeb, _T("OEM specific")},\r
- {0xec, _T("OEM specific")},\r
- {0xed, _T("OEM specific")},\r
- {0xee, _T("OEM specific")},\r
- {0xef, _T("OEM specific")},\r
- {0xf0, _T("Eisu")}, // \89p\90\94\r
- {0xf1, _T("OEM specific")},\r
- {0xf2, _T("Hiragana")}, // \82Ð\82ç\82ª\82È\r
- {0xf3, _T("Hankaku/Zenkaku 0xf3")}, // "\94¼\8ap/\91S\8ap"\r
- {0xf4, _T("Hankaku/Zenkaku 0xf4")}, // "\94¼\8ap/\91S\8ap"\r
- {0xf5, _T("OEM specific")},\r
- {VK_ATTN, _T("Attn")},\r
- {VK_CRSEL, _T("CrSel")},\r
- {VK_EXSEL, _T("ExSel")},\r
- {VK_EREOF, _T("Erace EOF")},\r
- {VK_PLAY, _T("Play")},\r
- {VK_ZOOM, _T("Zoom")},\r
- {VK_NONAME, _T("Noname")},\r
- {VK_PA1, _T("PA1")},\r
- {VK_OEM_CLEAR, _T("OEM Clear")},\r
- {0xff, _T("")},\r
-};\r
-\r
-typedef struct Translate {\r
- WORD wLanguage;\r
- WORD wCodePage;\r
-} Translate_t;\r
-\r
//{{AFX_INSERT_LOCATION}}\r
// Microsoft Visual C++ will insert additional declarations immediately before the previous line.\r
\r