return -1;\r
}\r
\r
- CXkeymacsDll::Set106Keyboard(CProfile::Is106Keyboard());\r
-\r
// init notify icon data\r
NOTIFYICONDATA notifyIconData[MAX_ICON_TYPE] = {\r
{ sizeof(NOTIFYICONDATA), m_hWnd, MAIN_ICON, NIF_MESSAGE | NIF_ICON | NIF_TIP, WM_USER_NTFYICON,\r
break;\r
if (!pThis->m_bPollIconMessage)\r
break;\r
- for (DWORD i = 0; i < read / sizeof(ICONMSG); i++) {\r
+ for (DWORD i = 0; i < read / sizeof(ICONMSG); ++i) {\r
pThis->m_stNtfyIcon[msg[i].nType].hIcon = pThis->m_hIcon[msg[i].nType][msg[i].nState];\r
if (msg[i].nType == MX_ICON && msg[i].szTip[0] != 0)\r
memcpy(pThis->m_stNtfyIcon[MX_ICON].szTip, msg[i].szTip, 128);\r
// stop/start keyboard hook\r
void CMainFrame::OnDisable() \r
{\r
- if (CXkeymacsDll::IsKeyboardHook()) {\r
- CXkeymacsDll::SetKeyboardHookFlag(FALSE);\r
- } else {\r
- CXkeymacsDll::SetKeyboardHookFlag(TRUE);\r
- }\r
+ CXkeymacsDll::ToggleKeyboardHookState();\r
}\r
\r
// Close the Dialog if it is opened.\r
\r
CXkeymacsDll::ReleaseHooks();\r
TerminatePollThread();\r
+ static_cast<CXkeymacsApp *>(AfxGetApp())->SendIPCMessage(XKEYMACS_EXIT);\r
DeleteAllShell_NotifyIcon();\r
\r
PostQuitMessage(0);\r
\r
void CMainFrame::OnReset() \r
{\r
- CXkeymacsDll::ReleaseHooks();\r
- CXkeymacsDll::SetHooks();\r
TerminatePollThread();\r
+ CXkeymacsDll::ResetHooks();\r
StartPollThread();\r
+ CXkeymacsApp *pApp = static_cast<CXkeymacsApp *>(AfxGetApp());\r
+ if (!pApp->SendIPCMessage(XKEYMACS_RESET))\r
+ pApp->Create64bitProcess(); // try to restart 64bit app\r
}\r
\r
void CMainFrame::OnHelpFinder() \r
{\r
TCHAR szPath[MAX_PATH] = {'\0'};\r
const TCHAR szExt[] = _T("txt");\r
- _tmakepath(szPath, NULL, NULL, CString(MAKEINTRESOURCE(IDS_README)), szExt);\r
+ _tmakepath_s(szPath, NULL, NULL, CString(MAKEINTRESOURCE(IDS_README)), szExt);\r
\r
TCHAR szModuleFileName[MAX_PATH] = {'\0'};\r
if (GetModuleFileName(NULL, szModuleFileName, sizeof(szModuleFileName))) {\r
TCHAR szDrive[_MAX_DRIVE] = {'\0'};\r
TCHAR szDir[_MAX_DIR] = {'\0'};\r
- _tsplitpath(szModuleFileName, szDrive, szDir, NULL, NULL);\r
- _tmakepath(szPath, szDrive, szDir, CString(MAKEINTRESOURCE(IDS_README)), szExt);\r
+ _tsplitpath_s(szModuleFileName, szDrive, _MAX_DRIVE, szDir, _MAX_DIR, NULL, 0, NULL, 0);\r
+ _tmakepath_s(szPath, szDrive, szDir, CString(MAKEINTRESOURCE(IDS_README)), szExt);\r
}\r
\r
ShellExecute(NULL, NULL, szPath, NULL, NULL, SW_SHOWNORMAL);\r