///\r
class DlgInvestigate\r
{\r
- HWND m_hwnd; ///\r
- UINT m_WM_MAYU_MESSAGE; ///\r
- DlgInvestigateData m_data; /// \r
- \r
+ HWND m_hwnd; ///\r
+ UINT m_WM_MAYU_MESSAGE; ///\r
+ DlgInvestigateData m_data; ///\r
+\r
public:\r
- ///\r
- DlgInvestigate(HWND i_hwnd)\r
- : m_hwnd(i_hwnd),\r
- m_WM_MAYU_MESSAGE(RegisterWindowMessage(\r
- addSessionId(WM_MAYU_MESSAGE_NAME).c_str()))\r
- {\r
- m_data.m_engine = NULL;\r
- m_data.m_hwndLog = NULL;\r
- }\r
- \r
- /// WM_INITDIALOG\r
- BOOL wmInitDialog(HWND /* i_focus */, LPARAM i_lParam)\r
- {\r
- m_data = *reinterpret_cast<DlgInvestigateData *>(i_lParam);\r
- setSmallIcon(m_hwnd, IDI_ICON_mayu);\r
- setBigIcon(m_hwnd, IDI_ICON_mayu);\r
- return TRUE;\r
- }\r
- \r
- /// WM_DESTROY\r
- BOOL wmDestroy()\r
- {\r
- unsetSmallIcon(m_hwnd);\r
- unsetBigIcon(m_hwnd);\r
- return TRUE;\r
- }\r
- \r
- /// WM_CLOSE\r
- BOOL wmClose()\r
- {\r
- ShowWindow(m_hwnd, SW_HIDE);\r
- return TRUE;\r
- }\r
-\r
- /// WM_COMMAND\r
- BOOL wmCommand(int /* i_notifyCode */, int i_id, HWND /* i_hwndControl */)\r
- {\r
- switch (i_id)\r
- {\r
- case IDOK:\r
- {\r
- ShowWindow(m_hwnd, SW_HIDE);\r
- return TRUE;\r
- }\r
- }\r
- return FALSE;\r
- }\r
-\r
- /// WM_focusNotify\r
- BOOL wmFocusNotify(bool i_isFocused, HWND i_hwndFocus)\r
- {\r
- if (m_data.m_engine &&\r
- i_hwndFocus == GetDlgItem(m_hwnd, IDC_CUSTOM_scancode))\r
- m_data.m_engine->enableLogMode(i_isFocused);\r
- return TRUE;\r
- }\r
- \r
- /// WM_targetNotify\r
- BOOL wmTargetNotify(HWND i_hwndTarget)\r
- {\r
- _TCHAR className[GANA_MAX_ATOM_LENGTH];\r
- bool ok = false;\r
- if (GetClassName(i_hwndTarget, className, NUMBER_OF(className)))\r
- {\r
- if (_tcsicmp(className, _T("ConsoleWindowClass")) == 0)\r
- {\r
- _TCHAR titleName[1024];\r
- if (GetWindowText(i_hwndTarget, titleName, NUMBER_OF(titleName)) == 0)\r
- titleName[0] = _T('\0');\r
- {\r
- Acquire a(&m_data.m_engine->m_log, 1);\r
- m_data.m_engine->m_log << _T("HWND:\t") << std::hex\r
- << reinterpret_cast<int>(i_hwndTarget)\r
- << std::dec << std::endl;\r
+ ///\r
+ DlgInvestigate(HWND i_hwnd)\r
+ : m_hwnd(i_hwnd),\r
+ m_WM_MAYU_MESSAGE(RegisterWindowMessage(\r
+ addSessionId(WM_MAYU_MESSAGE_NAME).c_str())) {\r
+ m_data.m_engine = NULL;\r
+ m_data.m_hwndLog = NULL;\r
+ }\r
+\r
+ /// WM_INITDIALOG\r
+ BOOL wmInitDialog(HWND /* i_focus */, LPARAM i_lParam) {\r
+ m_data = *reinterpret_cast<DlgInvestigateData *>(i_lParam);\r
+ setSmallIcon(m_hwnd, IDI_ICON_mayu);\r
+ setBigIcon(m_hwnd, IDI_ICON_mayu);\r
+ return TRUE;\r
+ }\r
+\r
+ /// WM_DESTROY\r
+ BOOL wmDestroy() {\r
+ unsetSmallIcon(m_hwnd);\r
+ unsetBigIcon(m_hwnd);\r
+ return TRUE;\r
+ }\r
+\r
+ /// WM_CLOSE\r
+ BOOL wmClose() {\r
+ ShowWindow(m_hwnd, SW_HIDE);\r
+ return TRUE;\r
+ }\r
+\r
+ /// WM_COMMAND\r
+ BOOL wmCommand(int /* i_notifyCode */, int i_id, HWND /* i_hwndControl */) {\r
+ switch (i_id) {\r
+ case IDOK: {\r
+ ShowWindow(m_hwnd, SW_HIDE);\r
+ return TRUE;\r
+ }\r
+ }\r
+ return FALSE;\r
+ }\r
+\r
+ /// WM_focusNotify\r
+ BOOL wmFocusNotify(bool i_isFocused, HWND i_hwndFocus) {\r
+ if (m_data.m_engine &&\r
+ i_hwndFocus == GetDlgItem(m_hwnd, IDC_CUSTOM_scancode))\r
+ m_data.m_engine->enableLogMode(i_isFocused);\r
+ return TRUE;\r
+ }\r
+\r
+ /// WM_targetNotify\r
+ BOOL wmTargetNotify(HWND i_hwndTarget) {\r
+ _TCHAR className[GANA_MAX_ATOM_LENGTH];\r
+ bool ok = false;\r
+ if (GetClassName(i_hwndTarget, className, NUMBER_OF(className))) {\r
+ if (_tcsicmp(className, _T("ConsoleWindowClass")) == 0) {\r
+ _TCHAR titleName[1024];\r
+ if (GetWindowText(i_hwndTarget, titleName, NUMBER_OF(titleName)) == 0)\r
+ titleName[0] = _T('\0');\r
+ {\r
+ Acquire a(&m_data.m_engine->m_log, 1);\r
+ m_data.m_engine->m_log << _T("HWND:\t") << std::hex\r
+ << reinterpret_cast<int>(i_hwndTarget)\r
+ << std::dec << std::endl;\r
+ }\r
+ Acquire a(&m_data.m_engine->m_log, 0);\r
+ m_data.m_engine->m_log << _T("CLASS:\t") << className << std::endl;\r
+ m_data.m_engine->m_log << _T("TITLE:\t") << titleName << std::endl;\r
+ ok = true;\r
+ }\r
+ }\r
+ if (!ok)\r
+ CHECK_TRUE( PostMessage(i_hwndTarget, m_WM_MAYU_MESSAGE,\r
+ MayuMessage_notifyName, 0) );\r
+ return TRUE;\r
+ }\r
+\r
+ /// WM_vkeyNotify\r
+ BOOL wmVkeyNotify(int i_nVirtKey, int /* i_repeatCount */,\r
+ BYTE /* i_scanCode */, bool i_isExtended,\r
+ bool /* i_isAltDown */, bool i_isKeyup) {\r
+ Acquire a(&m_data.m_engine->m_log, 0);\r
+ m_data.m_engine->m_log\r
+ << (i_isExtended ? _T(" E-") : _T(" "))\r
+ << _T("0x") << std::hex << std::setw(2) << std::setfill(_T('0'))\r
+ << i_nVirtKey << std::dec << _T(" &VK( ")\r
+ << (i_isExtended ? _T("E-") : _T(" "))\r
+ << (i_isKeyup ? _T("U-") : _T("D-"));\r
+\r
+ for (const VKeyTable *vkt = g_vkeyTable; vkt->m_name; ++ vkt) {\r
+ if (vkt->m_code == i_nVirtKey) {\r
+ m_data.m_engine->m_log << vkt->m_name << _T(" )") << std::endl;\r
+ return TRUE;\r
+ }\r
+ }\r
+ m_data.m_engine->m_log << _T("0x") << std::hex << std::setw(2)\r
+ << std::setfill(_T('0')) << i_nVirtKey << std::dec\r
+ << _T(" )") << std::endl;\r
+ return TRUE;\r
+ }\r
+\r
+ BOOL wmMove(int /* i_x */, int /* i_y */) {\r
+ RECT rc1, rc2;\r
+ GetWindowRect(m_hwnd, &rc1);\r
+ GetWindowRect(m_data.m_hwndLog, &rc2);\r
+\r
+ MoveWindow(m_data.m_hwndLog, rc1.left, rc1.bottom,\r
+ rcWidth(&rc2), rcHeight(&rc2), TRUE);\r
+\r
+ return TRUE;\r
}\r
- Acquire a(&m_data.m_engine->m_log, 0);\r
- m_data.m_engine->m_log << _T("CLASS:\t") << className << std::endl;\r
- m_data.m_engine->m_log << _T("TITLE:\t") << titleName << std::endl;\r
- ok = true;\r
- }\r
- }\r
- if (!ok)\r
- CHECK_TRUE( PostMessage(i_hwndTarget, m_WM_MAYU_MESSAGE,\r
- MayuMessage_notifyName, 0) );\r
- return TRUE;\r
- }\r
- \r
- /// WM_vkeyNotify\r
- BOOL wmVkeyNotify(int i_nVirtKey, int /* i_repeatCount */,\r
- BYTE /* i_scanCode */, bool i_isExtended,\r
- bool /* i_isAltDown */, bool i_isKeyup)\r
- {\r
- Acquire a(&m_data.m_engine->m_log, 0);\r
- m_data.m_engine->m_log\r
- << (i_isExtended ? _T(" E-") : _T(" "))\r
- << _T("0x") << std::hex << std::setw(2) << std::setfill(_T('0'))\r
- << i_nVirtKey << std::dec << _T(" &VK( ")\r
- << (i_isExtended ? _T("E-") : _T(" "))\r
- << (i_isKeyup ? _T("U-") : _T("D-"));\r
- \r
- for (const VKeyTable *vkt = g_vkeyTable; vkt->m_name; ++ vkt)\r
- {\r
- if (vkt->m_code == i_nVirtKey)\r
- {\r
- m_data.m_engine->m_log << vkt->m_name << _T(" )") << std::endl;\r
- return TRUE;\r
- }\r
- }\r
- m_data.m_engine->m_log << _T("0x") << std::hex << std::setw(2)\r
- << std::setfill(_T('0')) << i_nVirtKey << std::dec\r
- << _T(" )") << std::endl;\r
- return TRUE;\r
- }\r
-\r
- BOOL wmMove(int /* i_x */, int /* i_y */)\r
- {\r
- RECT rc1, rc2;\r
- GetWindowRect(m_hwnd, &rc1);\r
- GetWindowRect(m_data.m_hwndLog, &rc2);\r
- \r
- MoveWindow(m_data.m_hwndLog, rc1.left, rc1.bottom,\r
- rcWidth(&rc2), rcHeight(&rc2), TRUE);\r
- \r
- return TRUE;\r
- }\r
};\r
\r
\r
#else\r
BOOL CALLBACK dlgInvestigate_dlgProc(HWND i_hwnd, UINT i_message,\r
#endif\r
- WPARAM i_wParam, LPARAM i_lParam)\r
+ WPARAM i_wParam, LPARAM i_lParam)\r
{\r
- DlgInvestigate *wc;\r
- getUserData(i_hwnd, &wc);\r
- if (!wc)\r
- switch (i_message)\r
- {\r
- case WM_INITDIALOG:\r
- wc = setUserData(i_hwnd, new DlgInvestigate(i_hwnd));\r
- return wc->wmInitDialog(reinterpret_cast<HWND>(i_wParam), i_lParam);\r
- }\r
- else\r
- switch (i_message)\r
- {\r
- case WM_MOVE:\r
- return wc->wmMove(static_cast<short>(LOWORD(i_lParam)),\r
- static_cast<short>(HIWORD(i_lParam)));\r
- case WM_COMMAND:\r
- return wc->wmCommand(HIWORD(i_wParam), LOWORD(i_wParam),\r
- reinterpret_cast<HWND>(i_lParam));\r
- case WM_CLOSE:\r
- return wc->wmClose();\r
- case WM_DESTROY:\r
- return wc->wmDestroy();\r
- case WM_APP_notifyFocus:\r
- return wc->wmFocusNotify(!!i_wParam,\r
- reinterpret_cast<HWND>(i_lParam));\r
- case WM_APP_targetNotify:\r
- return wc->wmTargetNotify(reinterpret_cast<HWND>(i_lParam));\r
- case WM_APP_notifyVKey:\r
- return wc->wmVkeyNotify(\r
- static_cast<int>(i_wParam), static_cast<int>(i_lParam & 0xffff),\r
- static_cast<BYTE>((i_lParam >> 16) & 0xff),\r
- !!(i_lParam & (1 << 24)),\r
- !!(i_lParam & (1 << 29)),\r
- !!(i_lParam & (1 << 31)));\r
- case WM_NCDESTROY:\r
- delete wc;\r
- return TRUE;\r
- }\r
- return FALSE;\r
+ DlgInvestigate *wc;\r
+ getUserData(i_hwnd, &wc);\r
+ if (!wc)\r
+ switch (i_message) {\r
+ case WM_INITDIALOG:\r
+ wc = setUserData(i_hwnd, new DlgInvestigate(i_hwnd));\r
+ return wc->wmInitDialog(reinterpret_cast<HWND>(i_wParam), i_lParam);\r
+ }\r
+ else\r
+ switch (i_message) {\r
+ case WM_MOVE:\r
+ return wc->wmMove(static_cast<short>(LOWORD(i_lParam)),\r
+ static_cast<short>(HIWORD(i_lParam)));\r
+ case WM_COMMAND:\r
+ return wc->wmCommand(HIWORD(i_wParam), LOWORD(i_wParam),\r
+ reinterpret_cast<HWND>(i_lParam));\r
+ case WM_CLOSE:\r
+ return wc->wmClose();\r
+ case WM_DESTROY:\r
+ return wc->wmDestroy();\r
+ case WM_APP_notifyFocus:\r
+ return wc->wmFocusNotify(!!i_wParam,\r
+ reinterpret_cast<HWND>(i_lParam));\r
+ case WM_APP_targetNotify:\r
+ return wc->wmTargetNotify(reinterpret_cast<HWND>(i_lParam));\r
+ case WM_APP_notifyVKey:\r
+ return wc->wmVkeyNotify(\r
+ static_cast<int>(i_wParam), static_cast<int>(i_lParam & 0xffff),\r
+ static_cast<BYTE>((i_lParam >> 16) & 0xff),\r
+ !!(i_lParam & (1 << 24)),\r
+ !!(i_lParam & (1 << 29)),\r
+ !!(i_lParam & (1 << 31)));\r
+ case WM_NCDESTROY:\r
+ delete wc;\r
+ return TRUE;\r
+ }\r
+ return FALSE;\r
}\r