HHOOK CXkeymacsDll::m_hHookCallWndRet = NULL;\r
HHOOK CXkeymacsDll::m_hHookGetMessage = NULL;\r
HHOOK CXkeymacsDll::m_hHookShell = NULL;\r
- int CXkeymacsDll::m_nCommandID[MAX_APP][MAX_COMMAND_TYPE][MAX_KEY] = {'\0'};\r
- BOOL CXkeymacsDll::m_bAtIbeamCursorOnly[MAX_APP][MAX_COMMAND_TYPE][MAX_KEY] = {'\0'};\r
- int CXkeymacsDll::m_nFunctionID[MAX_APP][MAX_COMMAND_TYPE][MAX_KEY] = {'\0'};\r
- TCHAR CXkeymacsDll::m_szSpecialApp[MAX_APP][CLASS_NAME_LENGTH] = {'\0'};\r
- TCHAR CXkeymacsDll::m_szWindowText[MAX_APP][WINDOW_TEXT_LENGTH] = {'\0'};\r
BOOL CXkeymacsDll::m_bRightControl = FALSE;\r
BOOL CXkeymacsDll::m_bRightAlt = FALSE;\r
BOOL CXkeymacsDll::m_bRightShift = FALSE;\r
BOOL CXkeymacsDll::m_bHook = TRUE;\r
BOOL CXkeymacsDll::m_bDefiningMacro = FALSE;\r
- int CXkeymacsDll::m_nKillRingMax[MAX_APP] = {'\0'};\r
- BOOL CXkeymacsDll::m_bUseDialogSetting[MAX_APP] = {'\0'};\r
CList<CClipboardSnap *, CClipboardSnap *> CXkeymacsDll::m_oKillRing;\r
CObList CXkeymacsDll::m_Macro;\r
int CXkeymacsDll::m_nKillRing = 0;\r
int CXkeymacsDll::m_nOriginal[MAX_COMMAND_TYPE][MAX_KEY] = {'\0'};\r
int CXkeymacsDll::m_nApplicationID = 0;\r
- int CXkeymacsDll::m_nSettingStyle[MAX_APP] = {'\0'};\r
- BOOL CXkeymacsDll::m_bIgnoreUndefinedMetaCtrl[MAX_APP] = {'\0'};\r
- BOOL CXkeymacsDll::m_bIgnoreUndefinedC_x[MAX_APP] = {'\0'};\r
-// int CXkeymacsDll::m_nPassThrough = 0;\r
- TCHAR CXkeymacsDll::m_szApplicationName[MAX_PATH] = {'\0'};\r
- TCHAR CXkeymacsDll::m_szOldApplicationName[MAX_PATH] = {'\0'};\r
- BOOL CXkeymacsDll::m_bEnableCUA[MAX_APP] = {'\0'};\r
- TCHAR CXkeymacsDll::m_szFunctionDefinition[MAX_FUNCTION][MAX_DEFINITION] = {'\0'};\r
int CXkeymacsDll::m_nAccelerate = 0;\r
int CXkeymacsDll::m_nKeyboardSpeed = 31;\r
HCURSOR CXkeymacsDll::m_hCursor[MAX_STATUS] = {'\0'};\r
HCURSOR CXkeymacsDll::m_hCurrentCursor = NULL;\r
BOOL CXkeymacsDll::m_bCursor = FALSE;\r
- BOOL CXkeymacsDll::m_b326Compatible[MAX_APP] = {'\0'};\r
- BOOL CXkeymacsDll::m_b106Keyboard = FALSE;\r
TCHAR CXkeymacsDll::m_M_xTip[128] = "";\r
+ CONFIG CXkeymacsDll::m_Config = {0};\r
#pragma data_seg()\r
\r
//////////////////////////////////////////////////////////////////////\r
\r
}\r
\r
+BOOL CXkeymacsDll::SaveConfig()\r
+{\r
+ TCHAR szTmp[MAX_PATH];\r
+ if (!GetTempPath(MAX_PATH, szTmp))\r
+ return FALSE;\r
+ if (_tmakepath_s(szTmp, NULL, szTmp, _T("xkeymacs"), _T("tmp")))\r
+ return FALSE;\r
+ HANDLE hFile = CreateFile(szTmp, GENERIC_WRITE, 0, NULL, CREATE_ALWAYS, 0, NULL);\r
+ if (hFile == INVALID_HANDLE_VALUE)\r
+ return FALSE;\r
+ DWORD written;\r
+ BOOL res = WriteFile(hFile, &m_Config, sizeof(m_Config), &written, NULL) || written != sizeof(m_Config);\r
+ CloseHandle(hFile);\r
+ return res;\r
+}\r
+\r
+BOOL CXkeymacsDll::LoadConfig()\r
+{\r
+ TCHAR szTmp[MAX_PATH];\r
+ if (!GetTempPath(MAX_PATH, szTmp))\r
+ return FALSE;\r
+ if (_tmakepath_s(szTmp, NULL, szTmp, _T("xkeymacs"), _T("tmp")))\r
+ return FALSE;\r
+ HANDLE hFile = CreateFile(szTmp, GENERIC_READ, 0, NULL, OPEN_EXISTING, 0, NULL);\r
+ if (hFile == INVALID_HANDLE_VALUE)\r
+ return FALSE;\r
+ DWORD read;\r
+ BOOL res = ReadFile(hFile, &m_Config, sizeof(m_Config), &read, NULL) && read == sizeof(m_Config);\r
+ CloseHandle(hFile);\r
+ return res;\r
+}\r
+\r
// set hooks\r
void CXkeymacsDll::SetHooks()\r
{\r
- m_bEnableKeyboardHook = TRUE;\r
m_hHookCallWnd = SetWindowsHookEx(WH_CALLWNDPROC, (HOOKPROC)CallWndProc, g_hDllInst, 0);\r
m_hHookCallWndRet = SetWindowsHookEx(WH_CALLWNDPROCRET, (HOOKPROC)CallWndRetProc, g_hDllInst, 0);\r
m_hHookGetMessage = SetWindowsHookEx(WH_GETMESSAGE, (HOOKPROC)GetMsgProc, g_hDllInst, 0);\r
m_hHookShell = SetWindowsHookEx(WH_SHELL, (HOOKPROC)ShellProc, g_hDllInst, 0);\r
}\r
\r
+void CXkeymacsDll::EnableKeyboardHook()\r
+{\r
+ m_bEnableKeyboardHook = TRUE;\r
+}\r
+\r
void CXkeymacsDll::SetKeyboardHook()\r
{\r
if (!g_hHookKeyboard)\r
} else {\r
msg.nState = STATUS_DISABLE_WOCQ;\r
}\r
- if (m_nSettingStyle[m_nApplicationID] == SETTING_DISABLE\r
- || (!_tcsicmp(m_szSpecialApp[m_nApplicationID], _T("Default"))\r
+ if (m_Config.nSettingStyle[m_nApplicationID] == SETTING_DISABLE\r
+ || (!_tcsicmp(m_Config.szSpecialApp[m_nApplicationID], _T("Default"))\r
&& CUtils::IsDefaultIgnoreApplication())) {\r
msg.nState = STATUS_DISABLE;\r
m_hCurrentCursor = m_hCursor[STATUS_DISABLE];\r
\r
CUtils::SetApplicationName(bImeComposition);\r
\r
- if (_tcsnicmp(m_szSpecialApp[m_nApplicationID], CUtils::GetApplicationName(), 0xF) || !IsMatchWindowText(m_szWindowText[m_nApplicationID])) { // PROCESSENTRY32 has only 0xF bytes of Name\r
+ if (_tcsnicmp(m_Config.szSpecialApp[m_nApplicationID], CUtils::GetApplicationName(), 0xF) || !IsMatchWindowText(m_Config.szWindowText[m_nApplicationID])) { // PROCESSENTRY32 has only 0xF bytes of Name\r
m_nApplicationID = -1;\r
\r
for (int nApplicationID = 0; nApplicationID < MAX_APP; ++nApplicationID) {\r
- if (!_tcsnicmp(m_szSpecialApp[nApplicationID], CUtils::GetApplicationName(), 0xF) && IsMatchWindowText(m_szWindowText[nApplicationID])) {\r
+ if (!_tcsnicmp(m_Config.szSpecialApp[nApplicationID], CUtils::GetApplicationName(), 0xF) && IsMatchWindowText(m_Config.szWindowText[nApplicationID])) {\r
\r
if (m_nApplicationID < 0\r
- || CUtils::GetWindowTextType(m_szWindowText[m_nApplicationID]) < CUtils::GetWindowTextType(m_szWindowText[nApplicationID])\r
- || CUtils::GetWindowTextType(m_szWindowText[m_nApplicationID]) == CUtils::GetWindowTextType(m_szWindowText[nApplicationID])\r
- && _tcscmp(m_szWindowText[m_nApplicationID], m_szWindowText[nApplicationID]) <= 0) {\r
+ || CUtils::GetWindowTextType(m_Config.szWindowText[m_nApplicationID]) < CUtils::GetWindowTextType(m_Config.szWindowText[nApplicationID])\r
+ || CUtils::GetWindowTextType(m_Config.szWindowText[m_nApplicationID]) == CUtils::GetWindowTextType(m_Config.szWindowText[nApplicationID])\r
+ && _tcscmp(m_Config.szWindowText[m_nApplicationID], m_Config.szWindowText[nApplicationID]) <= 0) {\r
m_nApplicationID = nApplicationID;\r
}\r
}\r
\r
if (m_nApplicationID < 0) {\r
for (int nApplicationID = 0; nApplicationID < MAX_APP; ++nApplicationID) {\r
- if (!_tcsicmp(m_szSpecialApp[nApplicationID], _T("Default"))) {\r
+ if (!_tcsicmp(m_Config.szSpecialApp[nApplicationID], _T("Default"))) {\r
m_nApplicationID = nApplicationID;\r
break;\r
}\r
}\r
}\r
\r
- if (m_nSettingStyle[m_nApplicationID] != SETTING_DISABLE\r
- && (_tcsicmp(m_szSpecialApp[m_nApplicationID], _T("Default")) || !CUtils::IsDefaultIgnoreApplication())\r
+ if (m_Config.nSettingStyle[m_nApplicationID] != SETTING_DISABLE\r
+ && (_tcsicmp(m_Config.szSpecialApp[m_nApplicationID], _T("Default")) || !CUtils::IsDefaultIgnoreApplication())\r
&& !bImeComposition\r
&& CUtils::IsDialog()) {\r
// Use Dialog Setting\r
- if (m_bUseDialogSetting[m_nApplicationID]) {\r
+ if (m_Config.bUseDialogSetting[m_nApplicationID]) {\r
int nOriginalApplicationID = m_nApplicationID;\r
for (m_nApplicationID = 0; m_nApplicationID < MAX_APP; ++m_nApplicationID) {\r
- if (!_tcsicmp(m_szSpecialApp[m_nApplicationID], _T("Dialog"))) {\r
+ if (!_tcsicmp(m_Config.szSpecialApp[m_nApplicationID], _T("Dialog"))) {\r
break;\r
}\r
}\r
|| nKey == VK_LMENU\r
|| nKey == VK_RMENU) {\r
for (int i = 0; i < MAX_COMMAND_TYPE; ++i) {\r
- if (Commands[m_nCommandID[m_nApplicationID][i][nKey]].fCommand\r
- && (Commands[m_nCommandID[m_nApplicationID][i][nKey]].fCommand != CCommands::MetaAlt\r
+ if (Commands[m_Config.nCommandID[m_nApplicationID][i][nKey]].fCommand\r
+ && (Commands[m_Config.nCommandID[m_nApplicationID][i][nKey]].fCommand != CCommands::MetaAlt\r
|| nKey != VK_MENU && nKey != VK_LMENU && nKey != VK_RMENU)) {\r
goto HOOK;\r
}\r
goto DO_NOTHING;\r
}\r
\r
- if (m_nSettingStyle[m_nApplicationID] == SETTING_DISABLE) {\r
+ if (m_Config.nSettingStyle[m_nApplicationID] == SETTING_DISABLE) {\r
goto DO_NOTHING;\r
}\r
\r
// Do Nothing for Meadow, Mule for Win32, ... if those use default setting.\r
- if (!_tcsicmp(m_szSpecialApp[m_nApplicationID], _T("Default"))\r
+ if (!_tcsicmp(m_Config.szSpecialApp[m_nApplicationID], _T("Default"))\r
&& CUtils::IsDefaultIgnoreApplication()) {\r
goto DO_NOTHING;\r
}\r
\r
// Ignore undefined C-x ?\r
if (nCommandType & CONTROLX) {\r
- if (Commands[m_nCommandID[m_nApplicationID][nCommandType][nKey]].fCommand == NULL\r
- && m_nFunctionID[m_nApplicationID][nCommandType][nKey] < 0) {\r
- if (m_bIgnoreUndefinedC_x[m_nApplicationID]) {\r
+ if (Commands[m_Config.nCommandID[m_nApplicationID][nCommandType][nKey]].fCommand == NULL\r
+ && m_Config.nFunctionID[m_nApplicationID][nCommandType][nKey] < 0) {\r
+ if (m_Config.bIgnoreUndefinedC_x[m_nApplicationID]) {\r
CCommands::Reset(GOTO_HOOK);\r
goto HOOK;\r
}\r
\r
// Ignore undefined Meta Ctrl+?\r
if (CCommands::bM_() && (nCommandType & CONTROL)) {\r
- if (Commands[m_nCommandID[m_nApplicationID][nCommandType][nKey]].fCommand == NULL\r
- && m_nFunctionID[m_nApplicationID][nCommandType][nKey] < 0) {\r
- if (m_bIgnoreUndefinedMetaCtrl[m_nApplicationID]) {\r
+ if (Commands[m_Config.nCommandID[m_nApplicationID][nCommandType][nKey]].fCommand == NULL\r
+ && m_Config.nFunctionID[m_nApplicationID][nCommandType][nKey] < 0) {\r
+ if (m_Config.bIgnoreUndefinedMetaCtrl[m_nApplicationID]) {\r
if (Original(CONTROL, nKey)) {\r
Original(CONTROL, nKey, -1);\r
goto DO_NOTHING;\r
}\r
}\r
\r
- if (Commands[m_nCommandID[m_nApplicationID][nCommandType][nKey]].fCommand == CCommands::EnableOrDisableXKeymacs) {\r
+ if (Commands[m_Config.nCommandID[m_nApplicationID][nCommandType][nKey]].fCommand == CCommands::EnableOrDisableXKeymacs) {\r
SetKeyboardHookFlag(!m_bHook);\r
goto HOOK;\r
}\r
- if (Commands[m_nCommandID[m_nApplicationID][nCommandType][nKey]].fCommand == CCommands::EnableXKeymacs) {\r
+ if (Commands[m_Config.nCommandID[m_nApplicationID][nCommandType][nKey]].fCommand == CCommands::EnableXKeymacs) {\r
if (!m_bHook) {\r
SetKeyboardHookFlag(!m_bHook);\r
}\r
goto HOOK;\r
}\r
- if (Commands[m_nCommandID[m_nApplicationID][nCommandType][nKey]].fCommand == CCommands::DisableXKeymacs) {\r
+ if (Commands[m_Config.nCommandID[m_nApplicationID][nCommandType][nKey]].fCommand == CCommands::DisableXKeymacs) {\r
if (m_bHook) {\r
SetKeyboardHookFlag(!m_bHook);\r
}\r
\r
if (lParam & BEING_RELEASED) {\r
// ignore\r
- } else if (Commands[m_nCommandID[m_nApplicationID][nCommandType][nKey]].fCommand == CCommands::BackwardChar) {\r
+ } else if (Commands[m_Config.nCommandID[m_nApplicationID][nCommandType][nKey]].fCommand == CCommands::BackwardChar) {\r
if (index) {\r
--index;\r
}\r
goto HOOKX;\r
- } else if (Commands[m_nCommandID[m_nApplicationID][nCommandType][nKey]].fCommand == CCommands::BeginningOfLine) {\r
+ } else if (Commands[m_Config.nCommandID[m_nApplicationID][nCommandType][nKey]].fCommand == CCommands::BeginningOfLine) {\r
index = 0;\r
goto HOOKX;\r
- } else if (Commands[m_nCommandID[m_nApplicationID][nCommandType][nKey]].fCommand == CCommands::DeleteBackwardChar) {\r
+ } else if (Commands[m_Config.nCommandID[m_nApplicationID][nCommandType][nKey]].fCommand == CCommands::DeleteBackwardChar) {\r
if (index) {\r
--index;\r
memmove(&szPath[index], &szPath[index + 1], _tcslen(szPath) - index);\r
SetM_xTip(szPath);\r
}\r
goto HOOKX;\r
- } else if (Commands[m_nCommandID[m_nApplicationID][nCommandType][nKey]].fCommand == CCommands::DeleteChar) {\r
+ } else if (Commands[m_Config.nCommandID[m_nApplicationID][nCommandType][nKey]].fCommand == CCommands::DeleteChar) {\r
if (index < _tcslen(szPath)) {\r
memmove(&szPath[index], &szPath[index + 1], _tcslen(szPath) - index);\r
SetM_xTip(szPath);\r
}\r
goto HOOKX;\r
- } else if (Commands[m_nCommandID[m_nApplicationID][nCommandType][nKey]].fCommand == CCommands::EndOfLine) {\r
+ } else if (Commands[m_Config.nCommandID[m_nApplicationID][nCommandType][nKey]].fCommand == CCommands::EndOfLine) {\r
index = _tcslen(szPath);\r
goto HOOKX;\r
- } else if (Commands[m_nCommandID[m_nApplicationID][nCommandType][nKey]].fCommand == CCommands::ForwardChar) {\r
+ } else if (Commands[m_Config.nCommandID[m_nApplicationID][nCommandType][nKey]].fCommand == CCommands::ForwardChar) {\r
if (index < _tcslen(szPath)) {\r
++index;\r
}\r
goto HOOKX;\r
- } else if (Commands[m_nCommandID[m_nApplicationID][nCommandType][nKey]].fCommand == CCommands::KeyboardQuit) {\r
+ } else if (Commands[m_Config.nCommandID[m_nApplicationID][nCommandType][nKey]].fCommand == CCommands::KeyboardQuit) {\r
CCommands::bM_x(FALSE);\r
index = 0;\r
memset(szPath, 0, sizeof(szPath));\r
goto HOOK;\r
} else if (nKey == VK_RETURN\r
- || Commands[m_nCommandID[m_nApplicationID][nCommandType][nKey]].fCommand == CCommands::Newline) {\r
+ || Commands[m_Config.nCommandID[m_nApplicationID][nCommandType][nKey]].fCommand == CCommands::Newline) {\r
InvokeM_x(szPath);\r
\r
CCommands::bM_x(FALSE);\r
}\r
}\r
\r
- if (Commands[m_nCommandID[m_nApplicationID][nCommandType & ~CONTROL][nKey]].fCommand == CCommands::OneShotModifierCtrl) {\r
+ if (Commands[m_Config.nCommandID[m_nApplicationID][nCommandType & ~CONTROL][nKey]].fCommand == CCommands::OneShotModifierCtrl) {\r
nOneShotModifier[nKey] = VK_LCONTROL;\r
DepressKey(nOneShotModifier[nKey]);\r
bCherryOneShotModifier = TRUE;\r
goto HOOK;\r
- } else if (Commands[m_nCommandID[m_nApplicationID][nCommandType][nKey]].fCommand == CCommands::OneShotModifierCtrlRepeat) {\r
+ } else if (Commands[m_Config.nCommandID[m_nApplicationID][nCommandType][nKey]].fCommand == CCommands::OneShotModifierCtrlRepeat) {\r
nOneShotModifier[nKey] = VK_LCONTROL;\r
DepressKey(nOneShotModifier[nKey]);\r
bCherryOneShotModifier = TRUE;\r
goto HOOK;\r
- } else if (Commands[m_nCommandID[m_nApplicationID][nCommandType & ~CONTROL][nKey]].fCommand == CCommands::OneShotModifierCtrlRepeat) {\r
+ } else if (Commands[m_Config.nCommandID[m_nApplicationID][nCommandType & ~CONTROL][nKey]].fCommand == CCommands::OneShotModifierCtrlRepeat) {\r
ReleaseKey(nOneShotModifier[nKey]);\r
bCherryOneShotModifier = FALSE;\r
Kdu(nKey);\r
goto HOOK;\r
- } else if (Commands[m_nCommandID[m_nApplicationID][nCommandType & ~META][nKey]].fCommand == CCommands::OneShotModifierAlt) {\r
+ } else if (Commands[m_Config.nCommandID[m_nApplicationID][nCommandType & ~META][nKey]].fCommand == CCommands::OneShotModifierAlt) {\r
nOneShotModifier[nKey] = VK_LMENU;\r
DepressKey(nOneShotModifier[nKey]);\r
bCherryOneShotModifier = TRUE;\r
goto HOOK;\r
- } else if (Commands[m_nCommandID[m_nApplicationID][nCommandType][nKey]].fCommand == CCommands::OneShotModifierAltRepeat) {\r
+ } else if (Commands[m_Config.nCommandID[m_nApplicationID][nCommandType][nKey]].fCommand == CCommands::OneShotModifierAltRepeat) {\r
nOneShotModifier[nKey] = VK_LMENU;\r
DepressKey(nOneShotModifier[nKey]);\r
bCherryOneShotModifier = TRUE;\r
goto HOOK;\r
- } else if (Commands[m_nCommandID[m_nApplicationID][nCommandType & ~META][nKey]].fCommand == CCommands::OneShotModifierAltRepeat) {\r
+ } else if (Commands[m_Config.nCommandID[m_nApplicationID][nCommandType & ~META][nKey]].fCommand == CCommands::OneShotModifierAltRepeat) {\r
ReleaseKey(nOneShotModifier[nKey]);\r
bCherryOneShotModifier = FALSE;\r
Kdu(nKey);\r
goto HOOK;\r
- } else if (Commands[m_nCommandID[m_nApplicationID][nCommandType & ~SHIFT][nKey]].fCommand == CCommands::OneShotModifierShift) {\r
+ } else if (Commands[m_Config.nCommandID[m_nApplicationID][nCommandType & ~SHIFT][nKey]].fCommand == CCommands::OneShotModifierShift) {\r
nOneShotModifier[nKey] = VK_SHIFT;\r
DepressKey(nOneShotModifier[nKey]);\r
bCherryOneShotModifier = TRUE;\r
goto HOOK;\r
- } else if (Commands[m_nCommandID[m_nApplicationID][nCommandType][nKey]].fCommand == CCommands::OneShotModifierShiftRepeat) {\r
+ } else if (Commands[m_Config.nCommandID[m_nApplicationID][nCommandType][nKey]].fCommand == CCommands::OneShotModifierShiftRepeat) {\r
nOneShotModifier[nKey] = VK_SHIFT;\r
DepressKey(nOneShotModifier[nKey]);\r
bCherryOneShotModifier = TRUE;\r
goto HOOK;\r
- } else if (Commands[m_nCommandID[m_nApplicationID][nCommandType & ~SHIFT][nKey]].fCommand == CCommands::OneShotModifierShiftRepeat) {\r
+ } else if (Commands[m_Config.nCommandID[m_nApplicationID][nCommandType & ~SHIFT][nKey]].fCommand == CCommands::OneShotModifierShiftRepeat) {\r
ReleaseKey(nOneShotModifier[nKey]);\r
bCherryOneShotModifier = FALSE;\r
Kdu(nKey);\r
}\r
}\r
\r
- if (0 <= m_nFunctionID[m_nApplicationID][nCommandType][nKey]\r
- && m_nFunctionID[m_nApplicationID][nCommandType][nKey] < MAX_FUNCTION\r
- && _tcslen(m_szFunctionDefinition[m_nFunctionID[m_nApplicationID][nCommandType][nKey]])) {\r
- CallFunction(m_nFunctionID[m_nApplicationID][nCommandType][nKey]);\r
+ if (0 <= m_Config.nFunctionID[m_nApplicationID][nCommandType][nKey]\r
+ && m_Config.nFunctionID[m_nApplicationID][nCommandType][nKey] < MAX_FUNCTION\r
+ && _tcslen(m_Config.szFunctionDefinition[m_Config.nFunctionID[m_nApplicationID][nCommandType][nKey]])) {\r
+ CallFunction(m_Config.nFunctionID[m_nApplicationID][nCommandType][nKey]);\r
CCommands::Reset(GOTO_HOOK);\r
goto HOOK;\r
}\r
\r
- if (!Commands[m_nCommandID[m_nApplicationID][nCommandType][nKey]].fCommand) {\r
+ if (!Commands[m_Config.nCommandID[m_nApplicationID][nCommandType][nKey]].fCommand) {\r
if (nKey == VK_CONTROL\r
|| nKey == VK_LCONTROL\r
|| nKey == VK_RCONTROL\r
}\r
\r
if (CCommands::IsTemporarilyDisableXKeymacs()\r
- && Commands[m_nCommandID[m_nApplicationID][nCommandType][nKey]].fCommand != CCommands::KeyboardQuit) {\r
+ && Commands[m_Config.nCommandID[m_nApplicationID][nCommandType][nKey]].fCommand != CCommands::KeyboardQuit) {\r
CCommands::SetTemporarilyDisableXKeymacs(FALSE);\r
goto DO_NOTHING;\r
}\r
\r
- if (m_bAtIbeamCursorOnly[m_nApplicationID][nCommandType][nKey]) {\r
+ if (m_Config.bAtIbeamCursorOnly[m_nApplicationID][nCommandType][nKey]) {\r
CURSORINFO cursorinfo = { sizeof(cursorinfo) };\r
if (GetCursorInfo(&cursorinfo) && cursorinfo.flags && cursorinfo.hCursor != LoadCursor(NULL, IDC_IBEAM)) {\r
goto DO_NOTHING;\r
\r
if (!bLocked) {\r
bLocked = TRUE;\r
- fCommand = Commands[m_nCommandID[m_nApplicationID][nCommandType][nKey]].fCommand;\r
+ fCommand = Commands[m_Config.nCommandID[m_nApplicationID][nCommandType][nKey]].fCommand;\r
RECURSIVE_COMMAND:\r
switch (fCommand()) {\r
case GOTO_DO_NOTHING:\r
\r
void CXkeymacsDll::SetApplicationName(int nApplicationID, CString szApplicationName)\r
{\r
- ZeroMemory(m_szSpecialApp[nApplicationID], sizeof(m_szSpecialApp[nApplicationID]));\r
- _tcsncpy(m_szSpecialApp[nApplicationID], szApplicationName, sizeof(m_szSpecialApp[nApplicationID]));\r
+ ZeroMemory(m_Config.szSpecialApp[nApplicationID], sizeof(m_Config.szSpecialApp[nApplicationID]));\r
+ _tcsncpy(m_Config.szSpecialApp[nApplicationID], szApplicationName, sizeof(m_Config.szSpecialApp[nApplicationID]));\r
}\r
\r
void CXkeymacsDll::SetWindowText(int nApplicationID, CString szWindowText)\r
{\r
- ZeroMemory(m_szWindowText[nApplicationID], sizeof(m_szWindowText[nApplicationID]));\r
- _tcsncpy(m_szWindowText[nApplicationID], szWindowText, sizeof(m_szWindowText[nApplicationID]));\r
+ ZeroMemory(m_Config.szWindowText[nApplicationID], sizeof(m_Config.szWindowText[nApplicationID]));\r
+ _tcsncpy(m_Config.szWindowText[nApplicationID], szWindowText, sizeof(m_Config.szWindowText[nApplicationID]));\r
}\r
\r
void CXkeymacsDll::SetCommandID(int nApplicationID, int nCommandType, int nKey, int nCommandID)\r
{\r
- m_nCommandID[nApplicationID][nCommandType][nKey] = nCommandID;\r
+ m_Config.nCommandID[nApplicationID][nCommandType][nKey] = nCommandID;\r
}\r
\r
void CXkeymacsDll::SetAtIbeamCursorOnly(int nApplicationID, int nCommandType, int nKey, BOOL bAtIbeamCursorOnly)\r
{\r
- m_bAtIbeamCursorOnly[nApplicationID][nCommandType][nKey] = bAtIbeamCursorOnly;\r
+ m_Config.bAtIbeamCursorOnly[nApplicationID][nCommandType][nKey] = bAtIbeamCursorOnly;\r
}\r
\r
void CXkeymacsDll::SetKillRingMax(int nApplicationID, int nKillRingMax)\r
{\r
- m_nKillRingMax[nApplicationID] = nKillRingMax;\r
+ m_Config.nKillRingMax[nApplicationID] = nKillRingMax;\r
}\r
\r
void CXkeymacsDll::SetUseDialogSetting(int nApplicationID, BOOL bUseDialogSetting)\r
{\r
- m_bUseDialogSetting[nApplicationID] = bUseDialogSetting;\r
+ m_Config.bUseDialogSetting[nApplicationID] = bUseDialogSetting;\r
}\r
\r
// Clear data of nApplicationID\r
void CXkeymacsDll::Clear(int nApplicationID)\r
{\r
if (0 <= nApplicationID && nApplicationID < MAX_APP) {\r
- ZeroMemory(m_szSpecialApp[nApplicationID], sizeof(m_szSpecialApp[nApplicationID]));\r
- ZeroMemory(m_nCommandID[nApplicationID], sizeof(m_nCommandID[nApplicationID]));\r
- ZeroMemory(m_bAtIbeamCursorOnly[nApplicationID], sizeof(m_bAtIbeamCursorOnly[nApplicationID]));\r
- m_nKillRingMax[nApplicationID] = 0;\r
- m_bUseDialogSetting[nApplicationID] = FALSE;\r
- m_nSettingStyle[nApplicationID] = 0;\r
+ ZeroMemory(m_Config.szSpecialApp[nApplicationID], sizeof(m_Config.szSpecialApp[nApplicationID]));\r
+ ZeroMemory(m_Config.nCommandID[nApplicationID], sizeof(m_Config.nCommandID[nApplicationID]));\r
+ ZeroMemory(m_Config.bAtIbeamCursorOnly[nApplicationID], sizeof(m_Config.bAtIbeamCursorOnly[nApplicationID]));\r
+ m_Config.nKillRingMax[nApplicationID] = 0;\r
+ m_Config.bUseDialogSetting[nApplicationID] = FALSE;\r
+ m_Config.nSettingStyle[nApplicationID] = 0;\r
} else {\r
ASSERT(0);\r
}\r
do {\r
if (IsValidKey(bVk)\r
&& IsDown(bVk, bPhysicalKey)\r
- && Commands[m_nCommandID[m_nApplicationID][NONE][bVk]].fCommand == Modifier) {\r
+ && Commands[m_Config.nCommandID[m_nApplicationID][NONE][bVk]].fCommand == Modifier) {\r
return TRUE;\r
}\r
} while (++bVk);\r
\r
void CXkeymacsDll::AddKillRing(BOOL bNewData)\r
{\r
- if (m_nKillRingMax[m_nApplicationID] == 0) {\r
+ if (m_Config.nKillRingMax[m_nApplicationID] == 0) {\r
return;\r
}\r
\r
\r
m_nKillRing = 0;\r
\r
- if (m_nKillRingMax[m_nApplicationID] < m_oKillRing.GetCount()) {\r
+ if (m_Config.nKillRingMax[m_nApplicationID] < m_oKillRing.GetCount()) {\r
CClipboardSnap *pSnap = m_oKillRing.GetTail();\r
delete pSnap;\r
pSnap = NULL;\r
// Return FALSE if there is no more data\r
CClipboardSnap* CXkeymacsDll::GetKillRing(CClipboardSnap* pSnap, BOOL bForce)\r
{\r
- if (m_nKillRingMax[m_nApplicationID] == 0) {\r
+ if (m_Config.nKillRingMax[m_nApplicationID] == 0) {\r
return NULL;\r
}\r
\r
\r
void CXkeymacsDll::SetSettingStyle(int nApplicationID, int nSettingStyle)\r
{\r
- m_nSettingStyle[nApplicationID] = nSettingStyle;\r
+ m_Config.nSettingStyle[nApplicationID] = nSettingStyle;\r
}\r
\r
void CXkeymacsDll::SetIgnoreUndefinedMetaCtrl(int nApplicationID, BOOL bIgnoreUndefinedMetaCtrl)\r
{\r
- m_bIgnoreUndefinedMetaCtrl[nApplicationID] = bIgnoreUndefinedMetaCtrl;\r
+ m_Config.bIgnoreUndefinedMetaCtrl[nApplicationID] = bIgnoreUndefinedMetaCtrl;\r
}\r
\r
void CXkeymacsDll::SetIgnoreUndefinedC_x(int nApplicationID, BOOL bIgnoreUndefinedC_x)\r
{\r
- m_bIgnoreUndefinedC_x[nApplicationID] = bIgnoreUndefinedC_x;\r
+ m_Config.bIgnoreUndefinedC_x[nApplicationID] = bIgnoreUndefinedC_x;\r
}\r
\r
void CXkeymacsDll::SetEnableCUA(int nApplicationID, BOOL bEnableCUA)\r
{\r
- m_bEnableCUA[nApplicationID] = bEnableCUA;\r
+ m_Config.bEnableCUA[nApplicationID] = bEnableCUA;\r
}\r
\r
BOOL CXkeymacsDll::GetEnableCUA()\r
{\r
- return m_bEnableCUA[m_nApplicationID];\r
+ return m_Config.bEnableCUA[m_nApplicationID];\r
}\r
\r
void CXkeymacsDll::DefiningMacro(BOOL bDefiningMacro)\r
\r
void CXkeymacsDll::Set106Keyboard(BOOL b106Keyboard)\r
{\r
- m_b106Keyboard = b106Keyboard;\r
+ m_Config.b106Keyboard = b106Keyboard;\r
}\r
\r
BOOL CXkeymacsDll::Is106Keyboard()\r
{\r
- return m_b106Keyboard;\r
+ return m_Config.b106Keyboard;\r
}\r
\r
int CXkeymacsDll::IsPassThrough(BYTE nKey)\r
BYTE bVk = 0;\r
do {\r
if (IsDown(bVk)\r
- && (Commands[m_nCommandID[m_nApplicationID][NONE][bVk]].fCommand == CCommands::PassThrough)) {\r
+ && (Commands[m_Config.nCommandID[m_nApplicationID][NONE][bVk]].fCommand == CCommands::PassThrough)) {\r
if (bVk == nKey) {\r
return GOTO_HOOK;\r
}\r
return;\r
}\r
\r
- m_nFunctionID[nApplicationID][nCommandType][nKey] = nFunctionID;\r
+ m_Config.nFunctionID[nApplicationID][nCommandType][nKey] = nFunctionID;\r
}\r
\r
void CXkeymacsDll::ClearFunctionDefinition()\r
{\r
- memset(m_nFunctionID, -1, sizeof(m_nFunctionID));\r
- memset(m_szFunctionDefinition, 0, sizeof(m_szFunctionDefinition));\r
+ memset(m_Config.nFunctionID, -1, sizeof(m_Config.nFunctionID));\r
+ memset(m_Config.szFunctionDefinition, 0, sizeof(m_Config.szFunctionDefinition));\r
}\r
\r
void CXkeymacsDll::SetFunctionDefinition(int nFunctionID, CString szDefinition)\r
return;\r
}\r
\r
- memset(m_szFunctionDefinition[nFunctionID], 0, sizeof(m_szFunctionDefinition[nFunctionID]));\r
- _stprintf(m_szFunctionDefinition[nFunctionID], _T("%s"), szDefinition);\r
+ memset(m_Config.szFunctionDefinition[nFunctionID], 0, sizeof(m_Config.szFunctionDefinition[nFunctionID]));\r
+ _stprintf(m_Config.szFunctionDefinition[nFunctionID], _T("%s"), szDefinition);\r
\r
return;\r
\r
{\r
CArray<KeyBind, KeyBind> keybinds;\r
\r
- if (nFunctionID < 0 || MAX_FUNCTION <= nFunctionID || !_tcslen(m_szFunctionDefinition[nFunctionID])) {\r
+ if (nFunctionID < 0 || MAX_FUNCTION <= nFunctionID || !_tcslen(m_Config.szFunctionDefinition[nFunctionID])) {\r
return;\r
}\r
\r
BOOL bIsAltDown = CXkeymacsDll::IsDown(VK_MENU);\r
BOOL bIsShiftDown = CXkeymacsDll::IsDown(VK_SHIFT);\r
\r
- if (m_szFunctionDefinition[nFunctionID][0] == _T('"') && m_szFunctionDefinition[nFunctionID][_tcslen(m_szFunctionDefinition[nFunctionID]) - 1] == _T('"')) {\r
- for (unsigned int i = 1; i < _tcslen(m_szFunctionDefinition[nFunctionID]) - 1; ++i) { // skip '"'\r
+ if (m_Config.szFunctionDefinition[nFunctionID][0] == _T('"') && m_Config.szFunctionDefinition[nFunctionID][_tcslen(m_Config.szFunctionDefinition[nFunctionID]) - 1] == _T('"')) {\r
+ for (unsigned int i = 1; i < _tcslen(m_Config.szFunctionDefinition[nFunctionID]) - 1; ++i) { // skip '"'\r
keybinds.Add(ParseKey(nFunctionID, i));\r
}\r
- } else if (m_szFunctionDefinition[nFunctionID][0] == _T('[') && m_szFunctionDefinition[nFunctionID][_tcslen(m_szFunctionDefinition[nFunctionID]) - 1] == _T(']')) {\r
- for (unsigned int i = 1; i < _tcslen(m_szFunctionDefinition[nFunctionID]) - 1; ++i) { // skip '[' and ']'\r
- if (m_szFunctionDefinition[nFunctionID][i] == _T('?')) { // [?f ?o ?o]\r
+ } else if (m_Config.szFunctionDefinition[nFunctionID][0] == _T('[') && m_Config.szFunctionDefinition[nFunctionID][_tcslen(m_Config.szFunctionDefinition[nFunctionID]) - 1] == _T(']')) {\r
+ for (unsigned int i = 1; i < _tcslen(m_Config.szFunctionDefinition[nFunctionID]) - 1; ++i) { // skip '[' and ']'\r
+ if (m_Config.szFunctionDefinition[nFunctionID][i] == _T('?')) { // [?f ?o ?o]\r
++i;\r
keybinds.Add(ParseKey(nFunctionID, i));\r
} else { // [ControlCharacter]\r
for (int nKeyID = 0; nKeyID < sizeof(ControlCharacters) / sizeof(ControlCharacters[0]); ++nKeyID) {\r
- if (!_tcsncmp(m_szFunctionDefinition[nFunctionID] + i, ControlCharacters[nKeyID].name, _tcslen(ControlCharacters[nKeyID].name))) {\r
+ if (!_tcsncmp(m_Config.szFunctionDefinition[nFunctionID] + i, ControlCharacters[nKeyID].name, _tcslen(ControlCharacters[nKeyID].name))) {\r
KeyBind keybind = {NONE, ControlCharacters[nKeyID].bVk};\r
keybinds.Add(keybind);\r
i += _tcslen(ControlCharacters[nKeyID].name);\r
const int nCommandType = keybinds.GetAt(i).nCommandType;\r
const BYTE bVk = keybinds.GetAt(i).bVk;\r
\r
- if (nCommandType < MAX_COMMAND_TYPE && Commands[m_nCommandID[m_nApplicationID][nCommandType][bVk]].fCommand) {\r
- if (Commands[m_nCommandID[m_nApplicationID][nCommandType][bVk]].fCommand == CCommands::ExecuteExtendedCommand) {\r
+ if (nCommandType < MAX_COMMAND_TYPE && Commands[m_Config.nCommandID[m_nApplicationID][nCommandType][bVk]].fCommand) {\r
+ if (Commands[m_Config.nCommandID[m_nApplicationID][nCommandType][bVk]].fCommand == CCommands::ExecuteExtendedCommand) {\r
bM_x = TRUE;\r
} else if (!bInitialized) {\r
if (bIsCtrlDown) {\r
\r
bInitialized = TRUE;\r
}\r
-// CUtils::Log("CallFunction: Command Name: %s", Commands[m_nCommandID[m_nApplicationID][nCommandType][bVk]].szCommandName);\r
- while (Commands[m_nCommandID[m_nApplicationID][nCommandType][bVk]].fCommand() == GOTO_RECURSIVE) {\r
+// CUtils::Log("CallFunction: Command Name: %s", Commands[m_Config.nCommandID[m_nApplicationID][nCommandType][bVk]].szCommandName);\r
+ while (Commands[m_Config.nCommandID[m_nApplicationID][nCommandType][bVk]].fCommand() == GOTO_RECURSIVE) {\r
;\r
}\r
} else if (bM_x) {\r
{\r
KeyBind keybind = {NONE};\r
\r
- if (m_szFunctionDefinition[nFunctionID][i] == _T('\\')) {\r
+ if (m_Config.szFunctionDefinition[nFunctionID][i] == _T('\\')) {\r
++i;\r
BOOL bFound = FALSE;\r
do {\r
bFound = FALSE;\r
for (int ModifierID = 0; ModifierID < sizeof(Modifiers) / sizeof(Modifiers[0]); ++ModifierID) {\r
- if (!_tcsncmp(m_szFunctionDefinition[nFunctionID] + i, Modifiers[ModifierID].name, _tcslen(Modifiers[ModifierID].name))\r
- && _tcslen(Modifiers[ModifierID].name) < _tcslen(m_szFunctionDefinition[nFunctionID] + i)) {\r
+ if (!_tcsncmp(m_Config.szFunctionDefinition[nFunctionID] + i, Modifiers[ModifierID].name, _tcslen(Modifiers[ModifierID].name))\r
+ && _tcslen(Modifiers[ModifierID].name) < _tcslen(m_Config.szFunctionDefinition[nFunctionID] + i)) {\r
keybind.nCommandType |= Modifiers[ModifierID].id;\r
i+= _tcslen(Modifiers[ModifierID].name);\r
bFound = TRUE;\r
}\r
} while (bFound);\r
}\r
- if (IsShift(m_szFunctionDefinition[nFunctionID][i]) && !(keybind.nCommandType & (WIN_CTRL | WIN_ALT | WIN_WIN))) {\r
+ if (IsShift(m_Config.szFunctionDefinition[nFunctionID][i]) && !(keybind.nCommandType & (WIN_CTRL | WIN_ALT | WIN_WIN))) {\r
keybind.nCommandType |= SHIFT;\r
}\r
\r
for (int nKeyID = 0; nKeyID < sizeof(ControlCharacters) / sizeof(ControlCharacters[0]); ++nKeyID) {\r
- if (!_tcsncmp(m_szFunctionDefinition[nFunctionID] + i, ControlCharacters[nKeyID].name, _tcslen(ControlCharacters[nKeyID].name))) {\r
+ if (!_tcsncmp(m_Config.szFunctionDefinition[nFunctionID] + i, ControlCharacters[nKeyID].name, _tcslen(ControlCharacters[nKeyID].name))) {\r
i += _tcslen(ControlCharacters[nKeyID].name);\r
break;\r
}\r
if (nKeyID < sizeof(ControlCharacters) / sizeof(ControlCharacters[0])) {\r
keybind.bVk = ControlCharacters[nKeyID].bVk;\r
} else {\r
- keybind.bVk = a2v(m_szFunctionDefinition[nFunctionID][i]);\r
+ keybind.bVk = a2v(m_Config.szFunctionDefinition[nFunctionID][i]);\r
}\r
\r
return keybind;\r
case _T('&'):\r
return TRUE;\r
case _T('\''):\r
- return m_b106Keyboard;\r
+ return m_Config.b106Keyboard;\r
case _T('('):\r
case _T(')'):\r
case _T('*'):\r
case _T('0'): case _T('1'): case _T('2'): case _T('3'): case _T('4'): case _T('5'): case _T('6'): case _T('7'): case _T('8'): case _T('9'):\r
return FALSE;\r
case _T(':'):\r
- return !m_b106Keyboard;\r
+ return !m_Config.b106Keyboard;\r
case _T(';'):\r
return FALSE;\r
case _T('<'):\r
return TRUE;\r
case _T('='):\r
- return m_b106Keyboard;\r
+ return m_Config.b106Keyboard;\r
case _T('>'):\r
case _T('?'):\r
return TRUE;\r
case _T('@'):\r
- return !m_b106Keyboard;\r
+ return !m_Config.b106Keyboard;\r
case _T('A'): case _T('B'): case _T('C'): case _T('D'): case _T('E'): case _T('F'): case _T('G'): case _T('H'): case _T('I'): case _T('J'): \r
case _T('K'): case _T('L'): case _T('M'): case _T('N'): case _T('O'): case _T('P'): case _T('Q'): case _T('R'): case _T('S'): case _T('T'): \r
case _T('U'): case _T('V'): case _T('W'): case _T('X'): case _T('Y'): case _T('Z'): \r
case _T(']'):\r
return FALSE;\r
case _T('^'):\r
- return !m_b106Keyboard;\r
+ return !m_Config.b106Keyboard;\r
case _T('_'):\r
return TRUE;\r
case _T('`'):\r
- return m_b106Keyboard;\r
+ return m_Config.b106Keyboard;\r
case _T('a'): case _T('b'): case _T('c'): case _T('d'): case _T('e'): case _T('f'): case _T('g'): case _T('h'): case _T('i'): case _T('j'): \r
case _T('k'): case _T('l'): case _T('m'): case _T('n'): case _T('o'): case _T('p'): case _T('q'): case _T('r'): case _T('s'): case _T('t'): \r
case _T('u'): case _T('v'): case _T('w'): case _T('x'): case _T('y'): case _T('z'): \r
case _T('!'):\r
return '1';\r
case _T('"'):\r
- return m_b106Keyboard ? '2' : (BYTE) 0xde; // VK_OEM_7\r
+ return m_Config.b106Keyboard ? '2' : (BYTE) 0xde; // VK_OEM_7\r
case _T('#'):\r
return '3';\r
case _T('$'):\r
case _T('%'):\r
return '5';\r
case _T('&'):\r
- return m_b106Keyboard ? '6' : '7';\r
+ return m_Config.b106Keyboard ? '6' : '7';\r
case _T('\''):\r
- return m_b106Keyboard ? '7' : (BYTE) 0xde; // VK_OEM_7\r
+ return m_Config.b106Keyboard ? '7' : (BYTE) 0xde; // VK_OEM_7\r
case _T('('):\r
- return m_b106Keyboard ? '8' : '9';\r
+ return m_Config.b106Keyboard ? '8' : '9';\r
case _T(')'):\r
- return m_b106Keyboard ? '9' : '0';\r
+ return m_Config.b106Keyboard ? '9' : '0';\r
case _T('*'):\r
- return m_b106Keyboard ? (BYTE) 0xba : '8'; // VK_OEM_1\r
+ return m_Config.b106Keyboard ? (BYTE) 0xba : '8'; // VK_OEM_1\r
case _T('+'):\r
return 0xbb; // VK_OEM_PLUS\r
case _T(','):\r
case _T(':'):\r
return 0xba; // VK_OEM_1\r
case _T(';'):\r
- return m_b106Keyboard ? (BYTE) 0xbb : (BYTE) 0xba; // VK_OEM_PLUS VK_OEM_1\r
+ return m_Config.b106Keyboard ? (BYTE) 0xbb : (BYTE) 0xba; // VK_OEM_PLUS VK_OEM_1\r
case _T('<'):\r
return 0xbc; // VK_OEM_COMMA\r
case _T('='):\r
- return m_b106Keyboard ? (BYTE) 0xbd : (BYTE) 0xbb; // VK_OEM_MINUS VK_OEM_PLUS\r
+ return m_Config.b106Keyboard ? (BYTE) 0xbd : (BYTE) 0xbb; // VK_OEM_MINUS VK_OEM_PLUS\r
case _T('>'):\r
return 0xbe; // VK_OEM_PERIOD\r
case _T('?'):\r
return 0xbf; // VK_OEM_2\r
case _T('@'):\r
- return m_b106Keyboard ? (BYTE) 0xc0 : '2';\r
+ return m_Config.b106Keyboard ? (BYTE) 0xc0 : '2';\r
case _T('A'): case _T('B'): case _T('C'): case _T('D'): case _T('E'): case _T('F'): case _T('G'): case _T('H'): case _T('I'): case _T('J'): \r
case _T('K'): case _T('L'): case _T('M'): case _T('N'): case _T('O'): case _T('P'): case _T('Q'): case _T('R'): case _T('S'): case _T('T'): \r
case _T('U'): case _T('V'): case _T('W'): case _T('X'): case _T('Y'): case _T('Z'): \r
case _T(']'):\r
return 0xdd; // VK_OEM_6\r
case _T('^'):\r
- return m_b106Keyboard ? (BYTE) 0xde : '6'; // VK_OEM_7\r
+ return m_Config.b106Keyboard ? (BYTE) 0xde : '6'; // VK_OEM_7\r
case _T('_'):\r
- return m_b106Keyboard ? (BYTE) 0xe2 : (BYTE) 0xbd; // VK_OEM_102 VK_OEM_MINUS\r
+ return m_Config.b106Keyboard ? (BYTE) 0xe2 : (BYTE) 0xbd; // VK_OEM_102 VK_OEM_MINUS\r
case _T('`'):\r
return 0xc0; // VK_OEM_3\r
case _T('a'): case _T('b'): case _T('c'): case _T('d'): case _T('e'): case _T('f'): case _T('g'): case _T('h'): case _T('i'): case _T('j'): \r
case _T('}'):\r
return 0xdd; // VK_OEM_6\r
case _T('~'):\r
- return m_b106Keyboard ? (BYTE) 0xde : (BYTE) 0xc0; // VK_OEM_7 VK_OEM_3\r
+ return m_Config.b106Keyboard ? (BYTE) 0xde : (BYTE) 0xc0; // VK_OEM_7 VK_OEM_3\r
default:\r
return 0;\r
}\r
\r
void CXkeymacsDll::Set326Compatible(int nApplicationID, BOOL b326Compatible)\r
{\r
- m_b326Compatible[nApplicationID] = b326Compatible;\r
+ m_Config.b326Compatible[nApplicationID] = b326Compatible;\r
}\r
\r
BOOL CXkeymacsDll::Get326Compatible()\r
{\r
- return m_b326Compatible[m_nApplicationID];\r
+ return m_Config.b326Compatible[m_nApplicationID];\r
}\r
\r
void CXkeymacsDll::InvokeM_x(const TCHAR *const szPath)\r