OSDN Git Service

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