OSDN Git Service

Rewrite CallWndProc, CallWndRetProc, GetMsgProc, and ShellProc in
authorKazuhiro Fujieda <fujieda@users.sourceforge.jp>
Fri, 10 Jun 2011 09:18:29 +0000 (18:18 +0900)
committerKazuhiro Fujieda <fujieda@users.sourceforge.jp>
Sat, 11 Jun 2011 03:22:54 +0000 (12:22 +0900)
CXkeymacsDll.

Remove code to handle WM_POWERBROADCAST in CallWndProc because it
doesn't work at all. Remove unuseful LogCallWndProcMessage in
CXkeymacsDll.

xkeymacsdll/xkeymacsdll.cpp

index ab166eb..601ab20 100644 (file)
@@ -371,190 +371,46 @@ BOOL CXkeymacsDll::IsKeyboardHook()
        return m_bHook;\r
 }\r
 \r
-void CXkeymacsDll::LogCallWndProcMessage(WPARAM wParam, LPARAM lParam)\r
-{\r
-       CWPSTRUCT &cwps = *(CWPSTRUCT *)lParam;\r
-\r
-       switch (cwps.message) {\r
-       case WM_PAINT:                                  // 0x000F\r
-       case WM_MDIGETACTIVE:                   // 0x0229\r
-       case 0x0403:\r
-       case 0x0407:\r
-       case 0x0418:\r
-       case 0x043F:\r
-       case 0x0440:\r
-               break;\r
-       case WM_CREATE:                                 // 0x0001\r
-//             CUtils::Log(_T("CallWndProc: cwps.message = WM_CREATE"));\r
-               break;\r
-       case WM_DESTROY:                                // 0x0002\r
-//             CUtils::Log(_T("CallWndProc: cwps.message = WM_DESTROY"));\r
-               break;\r
-       case WM_MOVE:                                   // 0x0003\r
-//             CUtils::Log(_T("CallWndProc: cwps.message = WM_MOVE");)\r
-               break;\r
-       case WM_SIZE:                                   // 0x0005\r
-//             CUtils::Log(_T("CallWndProc: cwps.message = WM_SIZE"));\r
-               break;\r
-       case WM_GETTEXT:                                // 0x000D\r
-//             CUtils::Log(_T("CallWndProc: cwps.message = WM_GETTEXT"));\r
-               break;\r
-       case WM_ERASEBKGND:                             // 0x0014\r
-//             CUtils::Log(_T("CallWndProc: cwps.message = WM_ERASEBKGND"));\r
-               break;\r
-       case WM_WINDOWPOSCHANGING:              // 0x0046\r
-//             CUtils::Log(_T("CallWndProc: cwps.message = WM_WINDOWPOSCHANGING"));\r
-               break;\r
-       case WM_WINDOWPOSCHANGED:               // 0x0047\r
-//             CUtils::Log(_T("CallWndProc: cwps.message = WM_WINDOWPOSCHANGED"));\r
-               break;\r
-       case WM_COPYDATA:                               // 0x004A\r
-//             CUtils::Log(_T("CallWndProc: cwps.message = WM_COPYDATA"));\r
-               break;\r
-       case WM_NCCREATE:                               // 0x0081\r
-//             CUtils::Log(_T("CallWndProc: cwps.message = WM_NCCREATE"));\r
-               break;\r
-       case WM_NCDESTROY:                              // 0x0082\r
-//             CUtils::Log(_T("CallWndProc: cwps.message = WM_NCDESTROY"));\r
-               break;\r
-       case WM_NCCALCSIZE:                             // 0x0083\r
-//             CUtils::Log(_T("CallWndProc: cwps.message = WM_NCCALCSIZE"));\r
-               break;\r
-       case WM_NCPAINT:                                // 0x0085\r
-//             CUtils::Log(_T("CallWndProc: cwps.message = WM_NCPAINT"));\r
-               break;\r
-       case WM_IME_STARTCOMPOSITION:   // 0x010D\r
-//             CUtils::Log(_T("CallWndProc: cwps.message = WM_IME_STARTCOMPOSITION"));\r
-               break;\r
-       case WM_IME_ENDCOMPOSITION:             // 0x010E\r
-//             CUtils::Log(_T("CallWndProc: cwps.message = WM_IME_ENDCOMPOSITION"));\r
-               break;\r
-       case WM_IME_KEYLAST:                    // 0x010F\r
-//             CUtils::Log(_T("CallWndProc: cwps.message = WM_IME_KEYLAST"));\r
-               break;\r
-       case WM_COMMAND:                                // 0x0111\r
-//             CUtils::Log(_T("CallWndProc: cwps.message = WM_COMMAND"));\r
+LRESULT CALLBACK CXkeymacsDll::CallWndProc(int nCode, WPARAM wParam, LPARAM lParam)\r
+{\r
+       if (nCode < 0)\r
+               CallNextHookEx(m_hHookCallWnd, nCode, wParam, lParam);\r
+       const CWPSTRUCT *cwps = reinterpret_cast<CWPSTRUCT *>(lParam);\r
+       switch (cwps->message) {\r
+       case WM_IME_STARTCOMPOSITION:\r
+               InitKeyboardProc(TRUE);\r
                break;\r
-       case WM_CTLCOLOREDIT:                   // 0x0133\r
-//             CUtils::Log(_T("CallWndProc: cwps.message = WM_CTLCOLOREDIT"));\r
+       case WM_IME_ENDCOMPOSITION:\r
+               InitKeyboardProc(FALSE);\r
                break;\r
-       case WM_POWERBROADCAST:                 // 0x0218\r
-//             CUtils::Log(_T("CallWndProc: cwps.message = WM_POWERBROADCAST"));\r
-               switch (wParam) {\r
-               case PBT_APMQUERYSUSPEND:               // 0x0000\r
-//                     CUtils::Log(_T("PBT_APMQUERYSUSPEND"));\r
-                       break;\r
-               case PBT_APMQUERYSTANDBY:               // 0x0001\r
-//                     CUtils::Log(_T("PBT_APMQUERYSTANDBY"));\r
-                       break;\r
-               case PBT_APMQUERYSUSPENDFAILED: // 0x0002\r
-//                     CUtils::Log(_T("PBT_APMQUERYSUSPENDFAILED"));\r
-                       break;\r
-               case PBT_APMQUERYSTANDBYFAILED: // 0x0003\r
-//                     CUtils::Log(_T("PBT_APMQUERYSTANDBYFAILED"));\r
-                       break;\r
-               case PBT_APMSUSPEND:                    // 0x0004\r
-//                     CUtils::Log(_T("PBT_APMSUSPEND"));\r
-                       break;\r
-               case PBT_APMSTANDBY:                    // 0x0005\r
-//                     CUtils::Log(_T("PBT_APMSTANDBY"));\r
-                       break;\r
-               case PBT_APMRESUMECRITICAL:             // 0x0006\r
-//                     CUtils::Log(_T("PBT_APMRESUMECRITICAL"));\r
-                       break;\r
-               case PBT_APMRESUMESUSPEND:              // 0x0007\r
-//                     CUtils::Log(_T("PBT_APMRESUMESUSPEND"));\r
-                       break;\r
-               case PBT_APMRESUMESTANDBY:              // 0x0008\r
-//                     CUtils::Log(_T("PBT_APMRESUMESTANDBY"));\r
-                       break;\r
-               case PBT_APMBATTERYLOW:                 // 0x0009\r
-//                     CUtils::Log(_T("PBT_APMBATTERYLOW"));\r
-                       break;\r
-               case PBT_APMPOWERSTATUSCHANGE:  // 0x000A\r
-//                     CUtils::Log(_T("PBT_APMPOWERSTATUSCHANGE"));\r
-                       break;\r
-               case PBT_APMOEMEVENT:                   // 0x000B\r
-//                     CUtils::Log(_T("PBT_APMOEMEVENT"));\r
-                       break;\r
-               case PBT_APMRESUMEAUTOMATIC:    // 0x0012\r
-//                     CUtils::Log(_T("PBT_APMRESUMEAUTOMATIC"));\r
-                       break;\r
-               default:\r
-//                     CUtils::Log(_T("PBT_OTHERS: %d"), wParam);\r
-                       break;\r
+       case WM_SETFOCUS:\r
+               if (cwps->hwnd == GetForegroundWindow()) {\r
+                       InitKeyboardProc(FALSE);\r
+                       ShowKeyboardHookState();\r
                }\r
                break;\r
-       case WM_IME_NOTIFY:                             // 0x0282\r
-//             CUtils::Log(_T("CallWndProc: cwps.message = WM_IME_NOTIFY"));\r
-               break;\r
-       default:\r
-//             CUtils::Log(_T("CallWndProc: cwps.message = 0x%04X"), cwps.message);\r
-               break;\r
-       }\r
-}\r
-\r
-LRESULT CALLBACK CXkeymacsDll::CallWndProc(int nCode, WPARAM wParam, LPARAM lParam)\r
-{\r
-//     LogCallWndProcMessage(wParam, lParam);\r
-\r
-       if (0 <= nCode) {\r
-               CWPSTRUCT &cwps = *(CWPSTRUCT *)lParam;\r
-               switch (cwps.message) {\r
-               case WM_IME_STARTCOMPOSITION:\r
-                       InitKeyboardProc(TRUE);\r
-                       break;\r
-               case WM_IME_ENDCOMPOSITION:\r
+       case WM_NCACTIVATE:\r
+               if (cwps->wParam && cwps->hwnd == GetForegroundWindow()) {\r
                        InitKeyboardProc(FALSE);\r
-                       break;\r
-               case WM_SETFOCUS:\r
-                       if (cwps.hwnd == GetForegroundWindow()) {\r
-                               InitKeyboardProc(FALSE);\r
-                               ShowKeyboardHookState();\r
-                       }\r
-                       break;\r
-               case WM_NCACTIVATE:\r
-                       if (cwps.wParam) {\r
-                               if (cwps.hwnd == GetForegroundWindow()) {\r
-                                       InitKeyboardProc(FALSE);\r
-                                       ShowKeyboardHookState();\r
-                               }\r
-                       }\r
-                       break;\r
-               case WM_POWERBROADCAST:\r
-                       switch (wParam) {\r
-                       case PBT_APMRESUMECRITICAL: // 0x0006\r
-                       case PBT_APMRESUMESUSPEND:  // 0x0007\r
-                       case PBT_APMRESUMESTANDBY:  // 0x0008\r
-                               ReleaseHooks();\r
-                               SetHooks();\r
-                               break;\r
-                       default:\r
-                               break;\r
-                       }\r
-                       break;\r
-               default:\r
-                       break;\r
+                       ShowKeyboardHookState();\r
                }\r
+               break;\r
        }\r
        return CallNextHookEx(m_hHookCallWnd, nCode, wParam, lParam);\r
 }\r
 \r
 LRESULT CALLBACK CXkeymacsDll::CallWndRetProc(int nCode, WPARAM wParam, LPARAM lParam)\r
 {\r
-       if (0 <= nCode) {\r
-               CWPRETSTRUCT &cwprets = *(CWPRETSTRUCT *)lParam;\r
-               switch (cwprets.message) {\r
+       if (nCode >= 0) {\r
+               const CWPRETSTRUCT *cwprets = reinterpret_cast<CWPRETSTRUCT *>(lParam);\r
+               switch (cwprets->message) {\r
                case WM_SETTEXT:\r
-                       if (cwprets.hwnd == GetForegroundWindow()) {\r
+                       if (cwprets->hwnd == GetForegroundWindow())\r
                                InitKeyboardProc(FALSE);\r
-                       }\r
                        break;\r
                case WM_SETCURSOR:\r
                        DoSetCursor();\r
                        break;\r
-               default:\r
-                       break;\r
                }\r
        }\r
        return CallNextHookEx(m_hHookCallWndRet, nCode, wParam, lParam);\r
@@ -562,13 +418,13 @@ LRESULT CALLBACK CXkeymacsDll::CallWndRetProc(int nCode, WPARAM wParam, LPARAM l
 \r
 LRESULT CALLBACK CXkeymacsDll::GetMsgProc(int nCode, WPARAM wParam, LPARAM lParam)\r
 {\r
-       MSG &msg = (*(MSG *)lParam);\r
-       if (msg.message == g_ImeManipulationMessage) {\r
+       const MSG *msg = reinterpret_cast<MSG *>(lParam);\r
+       if (msg->message == g_ImeManipulationMessage) {\r
                if (wParam)\r
-                       CCommands::DoSetInputMethodOpenStatus((INPUT_METHOD_OPEN_STATUS)msg.wParam, msg.lParam);\r
+                       CCommands::DoSetInputMethodOpenStatus((INPUT_METHOD_OPEN_STATUS)msg->wParam, msg->lParam);\r
                return 1;\r
        }\r
-       switch (msg.message) {\r
+       switch (msg->message) {\r
        case WM_IME_STARTCOMPOSITION:\r
                InitKeyboardProc(TRUE);\r
                break;\r
@@ -581,19 +437,13 @@ LRESULT CALLBACK CXkeymacsDll::GetMsgProc(int nCode, WPARAM wParam, LPARAM lPara
 \r
 LRESULT CALLBACK CXkeymacsDll::ShellProc(int nCode, WPARAM wParam, LPARAM lParam)\r
 {\r
-       switch (nCode) {\r
-       case HSHELL_WINDOWACTIVATED:\r
-       {\r
+       if (nCode == HSHELL_WINDOWACTIVATED) {\r
                TCHAR className[256];\r
-               ::GetClassName((HWND)wParam, className, 255);\r
+               GetClassName((HWND)wParam, className, 255);\r
                if (!_tcsicmp(className, _T("ConsoleWindowClass"))) {\r
                        InitKeyboardProc(FALSE);\r
                        ShowKeyboardHookState();\r
                }\r
-               break;\r
-       }\r
-       default:\r
-               break;\r
        }\r
        return CallNextHookEx( m_hHookShell, nCode, wParam, lParam );\r
 }\r