Advertisement
sapitando

Capturando Windows Mensagens - Dev-C++ 5.11

Aug 17th, 2016
268
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. // Autor : Tiago Portela
  2. // Email : sapitando@gmail.com
  3. // Sobre o programa : Captura as Mensagens do Windows e envia para o console para apreciação. Compilei com a IDE Dev-C++ 5.11 e
  4. // funcionou bem no Windows 7 x64.
  5. // Obs. : Apenas tentando aprender algorítimos, sozinho, por hobby. }
  6.  
  7.  
  8. // --------------------------------------------------------- resource.h -----------------------------------------------------------
  9. #define IDM_MENU            100
  10. #define IDC_ARQUIVO_NOVO    101
  11. #define IDC_ARQUIVO_ABRIR   102
  12. #define IDC_ARQUIVO_SALVAR  103
  13. #define IDC_ARQUIVO_SAIR    104
  14. #define IDC_EDITAR_COPIAR   105
  15. #define IDC_EDITAR_RECORTAR 106
  16. #define IDC_EDITAR_COLAR    107
  17. #define IDC_EDITAR_OPCOES   108
  18. #define IDC_AJUDA_SOBRE     109
  19. #define ID_MYTEXT           110
  20. #define ID_MYSTATIC         111
  21. #define ID_MYPUSHBUTTON     112
  22. #define ID_MYAUTOCHECKBOX   113
  23.  
  24. // -------------------------------------------------------- resource.rc -----------------------------------------------------------
  25. #include "resource.h"
  26.  
  27. IDM_MENU MENU DISCARDABLE
  28. BEGIN
  29.     POPUP "&Arquivo"
  30.     BEGIN
  31.         MENUITEM "&Novo" ,   IDC_ARQUIVO_NOVO
  32.         MENUITEM "&Abrir",   IDC_ARQUIVO_ABRIR
  33.         MENUITEM "&Salvar",  IDC_ARQUIVO_SALVAR
  34.         MENUITEM SEPARATOR
  35.         MENUITEM "&Sair",     IDC_ARQUIVO_SAIR
  36.     END
  37.     POPUP "&Editar"
  38.     BEGIN
  39.         MENUITEM "&Copiar",   IDC_EDITAR_COPIAR
  40.         MENUITEM "&Recortar", IDC_EDITAR_RECORTAR
  41.         MENUITEM "C&olar",    IDC_EDITAR_COLAR
  42.         MENUITEM SEPARATOR
  43.         MENUITEM "&Opções",   IDC_EDITAR_OPCOES
  44.     END
  45.     POPUP "A&juda"
  46.     BEGIN
  47.         MENUITEM "&Sobre",    IDC_AJUDA_SOBRE
  48.     END
  49. END
  50.  
  51. // ----------------------------------------------------------- main.c -------------------------------------------------------------
  52. #define UNICODE
  53.  
  54. #define WM_GETOBJECT              0x003D
  55. #define WM_NCXBUTTONDOWN          0x00AB
  56. #define WM_NCXBUTTONUP            0x00AC
  57. #define WM_NCXBUTTONDBLCLK        0x00AD
  58. #define WM_NCUAHDRAWCAPTION       0x00ae
  59. #define WM_NCUAHDRAWFRAME         0x00af
  60. #define BM_SETDONTCLICK           0x00f8
  61. #define WM_MENURBUTTONUP          0x0122
  62. #define WM_MENUDRAG               0x0123
  63. #define WM_MENUGETOBJECT          0x0124
  64. #define WM_UNINITMENUPOPUP        0x0125
  65. #define WM_MENUCOMMAND            0x0126
  66. #define WM_CHANGEUISTATE          0x0127
  67. #define WM_UPDATEUISTATE          0x0128
  68. #define WM_QUERYUISTATE           0x0129
  69. #define WM_IME_REQUEST            0x0288
  70. #define WM_APPCOMMAND             0x0319
  71. #define WM_UAHDRAWMENU            0x0091
  72. #define WM_UAHDRAWMENUITEM        0x0092
  73. #define WM_UAHINITMENU            0x0093
  74. #define WM_UAHMEASUREMENUITEM     0x0094
  75. #define WM_UAHNCPAINTMENUPOPUP    0x0095
  76. #define WM_DWMNCRENDERINGCHANGED  0x031f
  77. #define WM_MOUSEWHEEL             0x020A
  78. #define WM_KEYF1                  0x004d
  79. #define Binary(byte) "%c%c%c%c%c%c%c%c ", \
  80.                      (byte & 128? '1':'0') , (byte &  64? '1':'0') , \
  81.                      (byte &  32? '1':'0') , (byte &  16? '1':'0') , \
  82.                      (byte &   8? '1':'0') , (byte &   4? '1':'0') , \
  83.                      (byte &   2? '1':'0') , (byte &   1? '1':'0')
  84.  
  85. #include <windows.h>
  86. #include <iostream>
  87. #include "resource.h"
  88.  
  89. unsigned int nCounter = 0;
  90. WNDCLASS     wndclass = {};
  91. HWND         hwnd;
  92. HWND         hwndLabel_01;
  93. HWND         hwndButton_01;
  94. HWND         hwndButton_02;
  95. HWND         hwndButton_03;
  96. HWND         hwndText_01;
  97. HMENU        hMenu;
  98.  
  99. void ShowConsole(void);
  100. void PrintWinMsg(UINT, WPARAM, LPARAM);
  101. const char *FunStrWinMsg(UINT);
  102.  
  103. LRESULT CALLBACK WindowProcedure(HWND, UINT, WPARAM, LPARAM);
  104.  
  105. int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)
  106. {
  107.     wndclass.style = (CS_HREDRAW | CS_VREDRAW | CS_NOCLOSE);
  108.     wndclass.lpfnWndProc = WindowProcedure;
  109.     wndclass.hInstance = hInstance;
  110. //  wndclass.hIcon = LoadIcon(hInstance, MAKEINTRESOURCE(IDI_ICON));
  111.     wndclass.hIcon = LoadIcon(hInstance, IDI_APPLICATION);
  112. //  wndclass.lpszMenuName = MAKEINTRESOURCE(IDM_MENU);
  113.     wndclass.hbrBackground = (HBRUSH)(COLOR_WINDOW);
  114.     wndclass.lpszClassName = TEXT("Janela Principal");
  115.     RegisterClass(&wndclass);
  116.  
  117.     UNREFERENCED_PARAMETER(hwnd);
  118.     hwnd = CreateWindow(wndclass.lpszClassName, TEXT("Windows Messages"),
  119.                         WS_OVERLAPPEDWINDOW,
  120.                         CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT,
  121.                         NULL, LoadMenu(hInstance, MAKEINTRESOURCE(IDM_MENU)), hInstance, NULL);
  122.    
  123.     ShowConsole();
  124.     ShowWindow(hwnd, nCmdShow);
  125.  
  126.     MSG msg = {};
  127.     while(GetMessage(&msg, NULL, 0, 0))
  128.     {
  129.         TranslateMessage(&msg);
  130.         DispatchMessage (& msg);
  131.     }
  132.     return 0;
  133. }
  134.  
  135. LRESULT CALLBACK WindowProcedure(HWND hwnd, UINT Msg, WPARAM wParam, LPARAM lParam)
  136. {
  137.     switch(Msg)
  138.     {
  139.         case WM_GETICON :
  140.         case WM_SETCURSOR :
  141.         case WM_MOUSEFIRST :
  142.         case WM_NCHITTEST :
  143.         case WM_NCMOUSEMOVE :
  144.         case WM_ENTERIDLE : break;
  145.         default : PrintWinMsg(Msg, wParam, lParam);    
  146.     }
  147.    
  148.     switch(Msg)
  149.     {
  150.         case WM_DESTROY :
  151.           PostQuitMessage(WM_QUIT);
  152.           return(0);
  153.  
  154.         default :
  155.           return DefWindowProc(hwnd, Msg, wParam, lParam);
  156.     }
  157. }
  158.  
  159. void ShowConsole(void)
  160. {
  161.     AllocConsole();
  162.     SetWindowLong(GetConsoleWindow(), GWL_STYLE, GetWindowLong(GetConsoleWindow(), GWL_STYLE) & (~(WS_SYSMENU | WS_HSCROLL)));
  163.     ShowWindow(GetConsoleWindow(), SW_MAXIMIZE);
  164.     COORD dwSize = GetLargestConsoleWindowSize(GetStdHandle(STD_OUTPUT_HANDLE));
  165.     dwSize.Y = 1000;
  166.     SMALL_RECT lpCW = {.Left = 0, .Top = 0,.Right = (SHORT)(dwSize.X - 1),.Bottom = (SHORT)(dwSize.Y - 1)};
  167.     SetConsoleTitle(TEXT("                         | Window messages                                             | Hex              "
  168.                          "| WPARAM                                                                          | LPARAM"));
  169.     SetConsoleScreenBufferSize(GetStdHandle(STD_OUTPUT_HANDLE), dwSize);
  170.     SetConsoleWindowInfo(GetStdHandle(STD_OUTPUT_HANDLE), TRUE, &lpCW);    
  171.     freopen("CONIN$", "r", stdin);
  172.     freopen("CONOUT$", "w", stdout);
  173.     freopen("CONOUT$", "w", stderr);
  174. }
  175.  
  176.  
  177.  
  178. void PrintWinMsg(UINT Msg, WPARAM wParam, LPARAM lParam)
  179. {
  180.     nCounter++;
  181.     CONSOLE_SCREEN_BUFFER_INFO CSBI;
  182.     DWORD dwCounterChar;
  183.     WORD wTextFColor = (FOREGROUND_BLUE | FOREGROUND_GREEN | FOREGROUND_RED | FOREGROUND_INTENSITY);
  184.     WORD wTextFBcolor = (nCounter & 1)? (BACKGROUND_BLUE | BACKGROUND_GREEN | BACKGROUND_INTENSITY)
  185.                                       : (wTextFColor); 
  186.     COORD dwSize = GetLargestConsoleWindowSize(GetStdHandle(STD_OUTPUT_HANDLE));
  187.     GetConsoleScreenBufferInfo(GetStdHandle(STD_OUTPUT_HANDLE), &CSBI);
  188.     CSBI.dwCursorPosition.X = 0;
  189.     FillConsoleOutputAttribute(GetStdHandle(STD_OUTPUT_HANDLE), wTextFBcolor, dwSize.X, CSBI.dwCursorPosition, &dwCounterChar);
  190.     SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), CSBI.dwCursorPosition);
  191.     SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), wTextFBcolor);
  192.     printf("%u", nCounter);
  193.     CSBI.dwCursorPosition.X += 10;
  194.     SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), CSBI.dwCursorPosition);
  195.     SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), wTextFBcolor| wTextFColor);
  196.     printf("%c ",179);
  197.     SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), wTextFBcolor);
  198.     printf("%s", FunStrWinMsg(Msg));
  199.     CSBI.dwCursorPosition.X += 32;
  200.     SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), CSBI.dwCursorPosition);
  201.     SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), wTextFBcolor | wTextFColor);
  202.     printf("%c ", 179);
  203.     SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), wTextFBcolor);
  204.     printf("%#06x ", Msg);
  205.     CSBI.dwCursorPosition.X += 9;
  206.     SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), CSBI.dwCursorPosition);
  207.     SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), wTextFBcolor | wTextFColor);
  208.     printf("%c ", 179);
  209.     SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), wTextFBcolor);
  210.     printf(Binary(HIBYTE(HIWORD(wParam))));
  211.     printf(Binary(LOBYTE(HIWORD(wParam))));
  212.     printf(Binary(HIBYTE(LOWORD(wParam))));
  213.     printf(Binary(LOBYTE(LOWORD(wParam))));
  214.     SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), wTextFBcolor | wTextFColor);
  215.     printf("%c ", 179);
  216.     SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), wTextFBcolor);
  217.     printf(Binary(HIBYTE(HIWORD(lParam))));
  218.     printf(Binary(LOBYTE(HIWORD(lParam))));
  219.     printf(Binary(HIBYTE(LOWORD(lParam))));
  220.     printf(Binary(LOBYTE(LOWORD(lParam))));
  221.     printf("\n");
  222. }
  223.  
  224.  
  225. const char *FunStrWinMsg(UINT uMsg)
  226. {
  227.     static char strWinMsg[31];
  228.     switch(uMsg)
  229.     {
  230.         case WM_NULL                       : strncpy(strWinMsg, "WM_NULL", 30); break;
  231.         case WM_CREATE                     : strncpy(strWinMsg, "WM_CREATE", 30); break;
  232.         case WM_DESTROY                    : strncpy(strWinMsg, "WM_DESTROY", 30); break;
  233.         case WM_MOVE                       : strncpy(strWinMsg, "WM_MOVE", 30); break;
  234.         case WM_SIZE                       : strncpy(strWinMsg, "WM_SIZE", 30); break;
  235.         case WM_ACTIVATE                   : strncpy(strWinMsg, "WM_ACTIVATE", 30); break;
  236.         case WM_SETFOCUS                   : strncpy(strWinMsg, "WM_SETFOCUS", 30); break;
  237.         case WM_KILLFOCUS                  : strncpy(strWinMsg, "WM_KILLFOCUS", 30); break;
  238.         case WM_ENABLE                     : strncpy(strWinMsg, "WM_ENABLE", 30); break;
  239.         case WM_SETREDRAW                  : strncpy(strWinMsg, "WM_SETREDRAW", 30); break;
  240.         case WM_SETTEXT                    : strncpy(strWinMsg, "WM_SETTEXT", 30); break;
  241.         case WM_GETTEXT                    : strncpy(strWinMsg, "WM_GETTEXT", 30); break;
  242.         case WM_GETTEXTLENGTH              : strncpy(strWinMsg, "WM_GETTEXTLENGTH", 30); break;
  243.         case WM_PAINT                      : strncpy(strWinMsg, "WM_PAINT", 30); break;
  244.         case WM_CLOSE                      : strncpy(strWinMsg, "WM_CLOSE", 30); break;
  245.         case WM_QUERYENDSESSION            : strncpy(strWinMsg, "WM_QUERYENDSESSION", 30); break;
  246.         case WM_QUIT                       : strncpy(strWinMsg, "WM_QUIT", 30); break;
  247.         case WM_QUERYOPEN                  : strncpy(strWinMsg, "WM_QUERYOPEN", 30); break;
  248.         case WM_ERASEBKGND                 : strncpy(strWinMsg, "WM_ERASEBKGND", 30); break;
  249.         case WM_SYSCOLORCHANGE             : strncpy(strWinMsg, "WM_SYSCOLORCHANGE", 30); break;
  250.         case WM_ENDSESSION                 : strncpy(strWinMsg, "WM_ENDSESSION", 30); break;
  251.         case WM_SHOWWINDOW                 : strncpy(strWinMsg, "WM_SHOWWINDOW", 30); break;
  252.         case WM_WININICHANGE               : strncpy(strWinMsg, "WM_WININICHANGE", 30); break;
  253.         case WM_DEVMODECHANGE              : strncpy(strWinMsg, "WM_DEVMODECHANGE", 30); break;
  254.         case WM_ACTIVATEAPP                : strncpy(strWinMsg, "WM_ACTIVATEAPP", 30); break;
  255.         case WM_FONTCHANGE                 : strncpy(strWinMsg, "WM_FONTCHANGE", 30); break;
  256.         case WM_TIMECHANGE                 : strncpy(strWinMsg, "WM_TIMECHANGE", 30); break;
  257.         case WM_CANCELMODE                 : strncpy(strWinMsg, "WM_CANCELMODE", 30); break;
  258.         case WM_SETCURSOR                  : strncpy(strWinMsg, "WM_SETCURSOR", 30); break;
  259.         case WM_MOUSEACTIVATE              : strncpy(strWinMsg, "WM_MOUSEACTIVATE", 30); break;
  260.         case WM_CHILDACTIVATE              : strncpy(strWinMsg, "WM_CHILDACTIVATE", 30); break;
  261.         case WM_QUEUESYNC                  : strncpy(strWinMsg, "WM_QUEUESYNC", 30); break;
  262.         case WM_GETMINMAXINFO              : strncpy(strWinMsg, "WM_GETMINMAXINFO", 30); break;
  263.         case WM_PAINTICON                  : strncpy(strWinMsg, "WM_PAINTICON", 30); break;
  264.         case WM_ICONERASEBKGND             : strncpy(strWinMsg, "WM_ICONERASEBKGND", 30); break;
  265.         case WM_NEXTDLGCTL                 : strncpy(strWinMsg, "WM_NEXTDLGCTL", 30); break;
  266.         case WM_SPOOLERSTATUS              : strncpy(strWinMsg, "WM_SPOOLERSTATUS", 30); break;
  267.         case WM_DRAWITEM                   : strncpy(strWinMsg, "WM_DRAWITEM", 30); break;
  268.         case WM_MEASUREITEM                : strncpy(strWinMsg, "WM_MEASUREITEM", 30); break;
  269.         case WM_DELETEITEM                 : strncpy(strWinMsg, "WM_DELETEITEM", 30); break;
  270.         case WM_VKEYTOITEM                 : strncpy(strWinMsg, "WM_VKEYTOITEM", 30); break;
  271.         case WM_CHARTOITEM                 : strncpy(strWinMsg, "WM_CHARTOITEM", 30); break;
  272.         case WM_SETFONT                    : strncpy(strWinMsg, "WM_SETFONT", 30); break;
  273.         case WM_GETFONT                    : strncpy(strWinMsg, "WM_GETFONT", 30); break;
  274.         case WM_SETHOTKEY                  : strncpy(strWinMsg, "WM_SETHOTKEY", 30); break;
  275.         case WM_GETHOTKEY                  : strncpy(strWinMsg, "WM_GETHOTKEY", 30); break;
  276.         case WM_QUERYDRAGICON              : strncpy(strWinMsg, "WM_QUERYDRAGICON", 30); break;
  277.         case WM_COMPAREITEM                : strncpy(strWinMsg, "WM_COMPAREITEM", 30); break;
  278.         case WM_GETOBJECT                  : strncpy(strWinMsg, "WM_GETOBJECT", 30); break;
  279.         case WM_COMPACTING                 : strncpy(strWinMsg, "WM_COMPACTING", 30); break;
  280.         case WM_COMMNOTIFY                 : strncpy(strWinMsg, "WM_COMMNOTIFY", 30); break;
  281.         case WM_WINDOWPOSCHANGING          : strncpy(strWinMsg, "WM_WINDOWPOSCHANGING", 30); break;
  282.         case WM_WINDOWPOSCHANGED           : strncpy(strWinMsg, "WM_WINDOWPOSCHANGED", 30); break;
  283.         case WM_POWER                      : strncpy(strWinMsg, "WM_POWER", 30); break;
  284.         case WM_COPYDATA                   : strncpy(strWinMsg, "WM_COPYDATA", 30); break;
  285.         case WM_CANCELJOURNAL              : strncpy(strWinMsg, "WM_CANCELJOURNAL", 30); break;
  286.         case WM_NOTIFY                     : strncpy(strWinMsg, "WM_NOTIFY", 30); break;
  287.         case WM_INPUTLANGCHANGEREQUEST     : strncpy(strWinMsg, "WM_INPUTLANGCHANGEREQUEST", 30); break;
  288.         case WM_INPUTLANGCHANGE            : strncpy(strWinMsg, "WM_INPUTLANGCHANGE", 30); break;
  289.         case WM_TCARD                      : strncpy(strWinMsg, "WM_TCARD", 30); break;
  290.         case WM_HELP                       : strncpy(strWinMsg, "WM_HELP", 30); break;
  291.         case WM_USERCHANGED                : strncpy(strWinMsg, "WM_USERCHANGED", 30); break;
  292.         case WM_NOTIFYFORMAT               : strncpy(strWinMsg, "WM_NOTIFYFORMAT", 30); break;
  293.         case WM_CONTEXTMENU                : strncpy(strWinMsg, "WM_CONTEXTMENU", 30); break;
  294.         case WM_STYLECHANGING              : strncpy(strWinMsg, "WM_STYLECHANGING", 30); break;
  295.         case WM_STYLECHANGED               : strncpy(strWinMsg, "WM_STYLECHANGED", 30); break;
  296.         case WM_DISPLAYCHANGE              : strncpy(strWinMsg, "WM_DISPLAYCHANGE", 30); break;
  297.         case WM_GETICON                    : strncpy(strWinMsg, "WM_GETICON", 30); break;
  298.         case WM_SETICON                    : strncpy(strWinMsg, "WM_SETICON", 30); break;
  299.         case WM_NCCREATE                   : strncpy(strWinMsg, "WM_NCCREATE", 30); break;
  300.         case WM_NCDESTROY                  : strncpy(strWinMsg, "WM_NCDESTROY", 30); break;
  301.         case WM_NCCALCSIZE                 : strncpy(strWinMsg, "WM_NCCALCSIZE", 30); break;
  302.         case WM_NCHITTEST                  : strncpy(strWinMsg, "WM_NCHITTEST", 30); break;
  303.         case WM_NCPAINT                    : strncpy(strWinMsg, "WM_NCPAINT", 30); break;
  304.         case WM_NCACTIVATE                 : strncpy(strWinMsg, "WM_NCACTIVATE", 30); break;
  305.         case WM_GETDLGCODE                 : strncpy(strWinMsg, "WM_GETDLGCODE", 30); break;
  306.         case WM_SYNCPAINT                  : strncpy(strWinMsg, "WM_SYNCPAINT", 30); break;
  307.         case WM_NCMOUSEMOVE                : strncpy(strWinMsg, "WM_NCMOUSEMOVE", 30); break;
  308.         case WM_NCLBUTTONDOWN              : strncpy(strWinMsg, "WM_NCLBUTTONDOWN", 30); break;
  309.         case WM_NCLBUTTONUP                : strncpy(strWinMsg, "WM_NCLBUTTONUP", 30); break;
  310.         case WM_NCLBUTTONDBLCLK            : strncpy(strWinMsg, "WM_NCLBUTTONDBLCLK", 30); break;
  311.         case WM_NCRBUTTONDOWN              : strncpy(strWinMsg, "WM_NCRBUTTONDOWN", 30); break;
  312.         case WM_NCRBUTTONUP                : strncpy(strWinMsg, "WM_NCRBUTTONUP", 30); break;
  313.         case WM_NCRBUTTONDBLCLK            : strncpy(strWinMsg, "WM_NCRBUTTONDBLCLK", 30); break;
  314.         case WM_NCMBUTTONDOWN              : strncpy(strWinMsg, "WM_NCMBUTTONDOWN", 30); break;
  315.         case WM_NCMBUTTONUP                : strncpy(strWinMsg, "WM_NCMBUTTONUP", 30); break;
  316.         case WM_NCMBUTTONDBLCLK            : strncpy(strWinMsg, "WM_NCMBUTTONDBLCLK", 30); break;
  317.         case WM_NCXBUTTONDOWN              : strncpy(strWinMsg, "WM_NCXBUTTONDOWN", 30); break;
  318.         case WM_NCXBUTTONUP                : strncpy(strWinMsg, "WM_NCXBUTTONUP", 30); break;
  319.         case WM_NCXBUTTONDBLCLK            : strncpy(strWinMsg, "WM_NCXBUTTONDBLCLK", 30); break;
  320.         case EM_GETSEL                     : strncpy(strWinMsg, "EM_GETSEL", 30); break;
  321.         case EM_SETSEL                     : strncpy(strWinMsg, "EM_SETSEL", 30); break;
  322.         case EM_GETRECT                    : strncpy(strWinMsg, "EM_GETRECT", 30); break;
  323.         case EM_SETRECT                    : strncpy(strWinMsg, "EM_SETRECT", 30); break;
  324.         case EM_SETRECTNP                  : strncpy(strWinMsg, "EM_SETRECTNP", 30); break;
  325.         case EM_SCROLL                     : strncpy(strWinMsg, "EM_SCROLL", 30); break;
  326.         case EM_LINESCROLL                 : strncpy(strWinMsg, "EM_LINESCROLL", 30); break;
  327.         case EM_SCROLLCARET                : strncpy(strWinMsg, "EM_SCROLLCARET", 30); break;
  328.         case EM_GETMODIFY                  : strncpy(strWinMsg, "EM_GETMODIFY", 30); break;
  329.         case EM_SETMODIFY                  : strncpy(strWinMsg, "EM_SETMODIFY", 30); break;
  330.         case EM_GETLINECOUNT               : strncpy(strWinMsg, "EM_GETLINECOUNT", 30); break;
  331.         case EM_LINEINDEX                  : strncpy(strWinMsg, "EM_LINEINDEX", 30); break;
  332.         case EM_SETHANDLE                  : strncpy(strWinMsg, "EM_SETHANDLE", 30); break;
  333.         case EM_GETHANDLE                  : strncpy(strWinMsg, "EM_GETHANDLE", 30); break;
  334.         case EM_GETTHUMB                   : strncpy(strWinMsg, "EM_GETTHUMB", 30); break;
  335.         case EM_LINELENGTH                 : strncpy(strWinMsg, "EM_LINELENGTH", 30); break;
  336.         case EM_REPLACESEL                 : strncpy(strWinMsg, "EM_REPLACESEL", 30); break;
  337.         case EM_GETLINE                    : strncpy(strWinMsg, "EM_GETLINE", 30); break;
  338.         case EM_LIMITTEXT                  : strncpy(strWinMsg, "EM_LIMITTEXT", 30); break;
  339.         case EM_CANUNDO                    : strncpy(strWinMsg, "EM_CANUNDO", 30); break;
  340.         case EM_UNDO                       : strncpy(strWinMsg, "EM_UNDO", 30); break;
  341.         case EM_FMTLINES                   : strncpy(strWinMsg, "EM_FMTLINES", 30); break;
  342.         case EM_LINEFROMCHAR               : strncpy(strWinMsg, "EM_LINEFROMCHAR", 30); break;
  343.         case EM_SETTABSTOPS                : strncpy(strWinMsg, "EM_SETTABSTOPS", 30); break;
  344.         case EM_SETPASSWORDCHAR            : strncpy(strWinMsg, "EM_SETPASSWORDCHAR", 30); break;
  345.         case EM_EMPTYUNDOBUFFER            : strncpy(strWinMsg, "EM_EMPTYUNDOBUFFER", 30); break;
  346.         case EM_GETFIRSTVISIBLELINE        : strncpy(strWinMsg, "EM_GETFIRSTVISIBLELINE", 30); break;
  347.         case EM_SETREADONLY                : strncpy(strWinMsg, "EM_SETREADONLY", 30); break;
  348.         case EM_SETWORDBREAKPROC           : strncpy(strWinMsg, "EM_SETWORDBREAKPROC", 30); break;
  349.         case EM_GETWORDBREAKPROC           : strncpy(strWinMsg, "EM_GETWORDBREAKPROC", 30); break;
  350.         case EM_GETPASSWORDCHAR            : strncpy(strWinMsg, "EM_GETPASSWORDCHAR", 30); break;
  351.         case EM_SETMARGINS                 : strncpy(strWinMsg, "EM_SETMARGINS", 30); break;
  352.         case EM_GETMARGINS                 : strncpy(strWinMsg, "EM_GETMARGINS", 30); break;
  353.         case EM_GETLIMITTEXT               : strncpy(strWinMsg, "EM_GETLIMITTEXT", 30); break;
  354.         case EM_POSFROMCHAR                : strncpy(strWinMsg, "EM_POSFROMCHAR", 30); break;
  355.         case EM_CHARFROMPOS                : strncpy(strWinMsg, "EM_CHARFROMPOS", 30); break;
  356.         case EM_SETIMESTATUS               : strncpy(strWinMsg, "EM_SETIMESTATUS", 30); break;
  357.         case EM_GETIMESTATUS               : strncpy(strWinMsg, "EM_GETIMESTATUS", 30); break;
  358.         case SBM_SETPOS                    : strncpy(strWinMsg, "SBM_SETPOS", 30); break;
  359.         case SBM_GETPOS                    : strncpy(strWinMsg, "SBM_GETPOS", 30); break;
  360.         case SBM_SETRANGE                  : strncpy(strWinMsg, "SBM_SETRANGE", 30); break;
  361.         case SBM_GETRANGE                  : strncpy(strWinMsg, "SBM_GETRANGE", 30); break;
  362.         case SBM_ENABLE_ARROWS             : strncpy(strWinMsg, "SBM_ENABLE_ARROWS", 30); break;
  363.         case SBM_SETRANGEREDRAW            : strncpy(strWinMsg, "SBM_SETRANGEREDRAW", 30); break;
  364.         case SBM_SETSCROLLINFO             : strncpy(strWinMsg, "SBM_SETSCROLLINFO", 30); break;
  365.         case SBM_GETSCROLLINFO             : strncpy(strWinMsg, "SBM_GETSCROLLINFO", 30); break;
  366.         case SBM_GETSCROLLBARINFO          : strncpy(strWinMsg, "SBM_GETSCROLLBARINFO", 30); break;
  367.         case BM_GETCHECK                   : strncpy(strWinMsg, "BM_GETCHECK", 30); break;
  368.         case BM_SETCHECK                   : strncpy(strWinMsg, "BM_SETCHECK", 30); break;
  369.         case BM_GETSTATE                   : strncpy(strWinMsg, "BM_GETSTATE", 30); break;
  370.         case BM_SETSTATE                   : strncpy(strWinMsg, "BM_SETSTATE", 30); break;
  371.         case BM_SETSTYLE                   : strncpy(strWinMsg, "BM_SETSTYLE", 30); break;
  372.         case BM_CLICK                      : strncpy(strWinMsg, "BM_CLICK", 30); break;
  373.         case BM_GETIMAGE                   : strncpy(strWinMsg, "BM_GETIMAGE", 30); break;
  374.         case BM_SETIMAGE                   : strncpy(strWinMsg, "BM_SETIMAGE", 30); break;
  375.         case BM_SETDONTCLICK               : strncpy(strWinMsg, "BM_SETDONTCLICK", 30); break;
  376.         case WM_INPUT                      : strncpy(strWinMsg, "WM_INPUT", 30); break;
  377.         case WM_KEYDOWN                    : strncpy(strWinMsg, "WM_KEYDOWN", 30); break;
  378.         case WM_KEYUP                      : strncpy(strWinMsg, "WM_KEYUP", 30); break;
  379.         case WM_CHAR                       : strncpy(strWinMsg, "WM_CHAR", 30); break;
  380.         case WM_DEADCHAR                   : strncpy(strWinMsg, "WM_DEADCHAR", 30); break;
  381.         case WM_SYSKEYDOWN                 : strncpy(strWinMsg, "WM_SYSKEYDOWN", 30); break;
  382.         case WM_SYSKEYUP                   : strncpy(strWinMsg, "WM_SYSKEYUP", 30); break;
  383.         case WM_SYSCHAR                    : strncpy(strWinMsg, "WM_SYSCHAR", 30); break;
  384.         case WM_SYSDEADCHAR                : strncpy(strWinMsg, "WM_SYSDEADCHAR", 30); break;
  385.         case WM_KEYLAST                    : strncpy(strWinMsg, "WM_KEYLAST", 30); break;
  386.         case WM_IME_STARTCOMPOSITION       : strncpy(strWinMsg, "WM_IME_STARTCOMPOSITION", 30); break;
  387.         case WM_IME_ENDCOMPOSITION         : strncpy(strWinMsg, "WM_IME_ENDCOMPOSITION", 30); break;
  388.         case WM_IME_COMPOSITION            : strncpy(strWinMsg, "WM_IME_COMPOSITION", 30); break;
  389.         case WM_INITDIALOG                 : strncpy(strWinMsg, "WM_INITDIALOG", 30); break;
  390.         case WM_COMMAND                    : strncpy(strWinMsg, "WM_COMMAND", 30); break;
  391.         case WM_SYSCOMMAND                 : strncpy(strWinMsg, "WM_SYSCOMMAND", 30); break;
  392.         case WM_TIMER                      : strncpy(strWinMsg, "WM_TIMER", 30); break;
  393.         case WM_HSCROLL                    : strncpy(strWinMsg, "WM_HSCROLL", 30); break;
  394.         case WM_VSCROLL                    : strncpy(strWinMsg, "WM_VSCROLL", 30); break;
  395.         case WM_INITMENU                   : strncpy(strWinMsg, "WM_INITMENU", 30); break;
  396.         case WM_INITMENUPOPUP              : strncpy(strWinMsg, "WM_INITMENUPOPUP", 30); break;
  397.         case WM_MENUSELECT                 : strncpy(strWinMsg, "WM_MENUSELECT", 30); break;
  398.         case WM_MENUCHAR                   : strncpy(strWinMsg, "WM_MENUCHAR", 30); break;
  399.         case WM_ENTERIDLE                  : strncpy(strWinMsg, "WM_ENTERIDLE", 30); break;
  400.         case WM_MENURBUTTONUP              : strncpy(strWinMsg, "WM_MENURBUTTONUP", 30); break;
  401.         case WM_MENUDRAG                   : strncpy(strWinMsg, "WM_MENUDRAG", 30); break;
  402.         case WM_MENUGETOBJECT              : strncpy(strWinMsg, "WM_MENUGETOBJECT", 30); break;
  403.         case WM_UNINITMENUPOPUP            : strncpy(strWinMsg, "WM_UNINITMENUPOPUP", 30); break;
  404.         case WM_MENUCOMMAND                : strncpy(strWinMsg, "WM_MENUCOMMAND", 30); break;
  405.         case WM_CHANGEUISTATE              : strncpy(strWinMsg, "WM_CHANGEUISTATE", 30); break;
  406.         case WM_UPDATEUISTATE              : strncpy(strWinMsg, "WM_UPDATEUISTATE", 30); break;
  407.         case WM_QUERYUISTATE               : strncpy(strWinMsg, "WM_QUERYUISTATE", 30); break;
  408.         case WM_CTLCOLORMSGBOX             : strncpy(strWinMsg, "WM_CTLCOLORMSGBOX", 30); break;
  409.         case WM_CTLCOLOREDIT               : strncpy(strWinMsg, "WM_CTLCOLOREDIT", 30); break;
  410.         case WM_CTLCOLORLISTBOX            : strncpy(strWinMsg, "WM_CTLCOLORLISTBOX", 30); break;
  411.         case WM_CTLCOLORBTN                : strncpy(strWinMsg, "WM_CTLCOLORBTN", 30); break;
  412.         case WM_CTLCOLORDLG                : strncpy(strWinMsg, "WM_CTLCOLORDLG", 30); break;
  413.         case WM_CTLCOLORSCROLLBAR          : strncpy(strWinMsg, "WM_CTLCOLORSCROLLBAR", 30); break;
  414.         case WM_CTLCOLORSTATIC             : strncpy(strWinMsg, "WM_CTLCOLORSTATIC", 30); break;
  415.         case WM_MOUSEFIRST                 : strncpy(strWinMsg, "WM_MOUSEFIRST", 30); break;
  416.         case WM_LBUTTONDOWN                : strncpy(strWinMsg, "WM_LBUTTONDOWN", 30); break;
  417.         case WM_LBUTTONUP                  : strncpy(strWinMsg, "WM_LBUTTONUP", 30); break;
  418.         case WM_LBUTTONDBLCLK              : strncpy(strWinMsg, "WM_LBUTTONDBLCLK", 30); break;
  419.         case WM_RBUTTONDOWN                : strncpy(strWinMsg, "WM_RBUTTONDOWN", 30); break;
  420.         case WM_RBUTTONUP                  : strncpy(strWinMsg, "WM_RBUTTONUP", 30); break;
  421.         case WM_RBUTTONDBLCLK              : strncpy(strWinMsg, "WM_RBUTTONDBLCLK", 30); break;
  422.         case WM_MBUTTONDOWN                : strncpy(strWinMsg, "WM_MBUTTONDOWN", 30); break;
  423.         case WM_MBUTTONUP                  : strncpy(strWinMsg, "WM_MBUTTONUP", 30); break;
  424.         case WM_MBUTTONDBLCLK              : strncpy(strWinMsg, "WM_MBUTTONDBLCLK", 30); break;
  425.         case WM_MOUSELAST                  : strncpy(strWinMsg, "WM_MOUSELAST", 30); break;
  426.         case WM_XBUTTONDOWN                : strncpy(strWinMsg, "WM_XBUTTONDOWN", 30); break;
  427.         case WM_XBUTTONUP                  : strncpy(strWinMsg, "WM_XBUTTONUP", 30); break;
  428.         case WM_PARENTNOTIFY               : strncpy(strWinMsg, "WM_PARENTNOTIFY", 30); break;
  429.         case WM_ENTERMENULOOP              : strncpy(strWinMsg, "WM_ENTERMENULOOP", 30); break;
  430.         case WM_EXITMENULOOP               : strncpy(strWinMsg, "WM_EXITMENULOOP", 30); break;
  431.         case WM_NEXTMENU                   : strncpy(strWinMsg, "WM_NEXTMENU", 30); break;
  432.         case WM_SIZING                     : strncpy(strWinMsg, "WM_SIZING", 30); break;
  433.         case WM_CAPTURECHANGED             : strncpy(strWinMsg, "WM_CAPTURECHANGED", 30); break;
  434.         case WM_MOVING                     : strncpy(strWinMsg, "WM_MOVING", 30); break;
  435.         case WM_POWERBROADCAST             : strncpy(strWinMsg, "WM_POWERBROADCAST", 30); break;
  436.         case WM_DEVICECHANGE               : strncpy(strWinMsg, "WM_DEVICECHANGE", 30); break;
  437.         case WM_MDICREATE                  : strncpy(strWinMsg, "WM_MDICREATE", 30); break;
  438.         case WM_MDIDESTROY                 : strncpy(strWinMsg, "WM_MDIDESTROY", 30); break;
  439.         case WM_MDIACTIVATE                : strncpy(strWinMsg, "WM_MDIACTIVATE", 30); break;
  440.         case WM_MDIRESTORE                 : strncpy(strWinMsg, "WM_MDIRESTORE", 30); break;
  441.         case WM_MDINEXT                    : strncpy(strWinMsg, "WM_MDINEXT", 30); break;
  442.         case WM_MDIMAXIMIZE                : strncpy(strWinMsg, "WM_MDIMAXIMIZE", 30); break;
  443.         case WM_MDITILE                    : strncpy(strWinMsg, "WM_MDITILE", 30); break;
  444.         case WM_MDICASCADE                 : strncpy(strWinMsg, "WM_MDICASCADE", 30); break;
  445.         case WM_MDIICONARRANGE             : strncpy(strWinMsg, "WM_MDIICONARRANGE", 30); break;
  446.         case WM_MDIGETACTIVE               : strncpy(strWinMsg, "WM_MDIGETACTIVE", 30); break;
  447.         case WM_MDISETMENU                 : strncpy(strWinMsg, "WM_MDISETMENU", 30); break;
  448.         case WM_ENTERSIZEMOVE              : strncpy(strWinMsg, "WM_ENTERSIZEMOVE", 30); break;
  449.         case WM_EXITSIZEMOVE               : strncpy(strWinMsg, "WM_EXITSIZEMOVE", 30); break;
  450.         case WM_DROPFILES                  : strncpy(strWinMsg, "WM_DROPFILES", 30); break;
  451.         case WM_MDIREFRESHMENU             : strncpy(strWinMsg, "WM_MDIREFRESHMENU", 30); break;
  452.         case WM_IME_SETCONTEXT             : strncpy(strWinMsg, "WM_IME_SETCONTEXT", 30); break;
  453.         case WM_IME_NOTIFY                 : strncpy(strWinMsg, "WM_IME_NOTIFY", 30); break;
  454.         case WM_IME_CONTROL                : strncpy(strWinMsg, "WM_IME_CONTROL", 30); break;
  455.         case WM_IME_COMPOSITIONFULL        : strncpy(strWinMsg, "WM_IME_COMPOSITIONFULL", 30); break;
  456.         case WM_IME_SELECT                 : strncpy(strWinMsg, "WM_IME_SELECT", 30); break;
  457.         case WM_IME_CHAR                   : strncpy(strWinMsg, "WM_IME_CHAR", 30); break;
  458.         case WM_IME_REQUEST                : strncpy(strWinMsg, "WM_IME_REQUEST", 30); break;
  459.         case WM_IME_KEYDOWN                : strncpy(strWinMsg, "WM_IME_KEYDOWN", 30); break;
  460.         case WM_IME_KEYUP                  : strncpy(strWinMsg, "WM_IME_KEYUP", 30); break;
  461.         case WM_NCMOUSEHOVER               : strncpy(strWinMsg, "WM_NCMOUSEHOVER", 30); break;
  462.         case WM_MOUSEHOVER                 : strncpy(strWinMsg, "WM_MOUSEHOVER", 30); break;
  463.         case WM_NCMOUSELEAVE               : strncpy(strWinMsg, "WM_NCMOUSELEAVE", 30); break;
  464.         case WM_MOUSELEAVE                 : strncpy(strWinMsg, "WM_MOUSELEAVE", 30); break;
  465.         case WM_CUT                        : strncpy(strWinMsg, "WM_CUT", 30); break;
  466.         case WM_COPY                       : strncpy(strWinMsg, "WM_COPY", 30); break;
  467.         case WM_PASTE                      : strncpy(strWinMsg, "WM_PASTE", 30); break;
  468.         case WM_CLEAR                      : strncpy(strWinMsg, "WM_CLEAR", 30); break;
  469.         case WM_UNDO                       : strncpy(strWinMsg, "WM_UNDO", 30); break;
  470.         case WM_RENDERFORMAT               : strncpy(strWinMsg, "WM_RENDERFORMAT", 30); break;
  471.         case WM_RENDERALLFORMATS           : strncpy(strWinMsg, "WM_RENDERALLFORMATS", 30); break;
  472.         case WM_DESTROYCLIPBOARD           : strncpy(strWinMsg, "WM_DESTROYCLIPBOARD", 30); break;
  473.         case WM_DRAWCLIPBOARD              : strncpy(strWinMsg, "WM_DRAWCLIPBOARD", 30); break;
  474.         case WM_PAINTCLIPBOARD             : strncpy(strWinMsg, "WM_PAINTCLIPBOARD", 30); break;
  475.         case WM_VSCROLLCLIPBOARD           : strncpy(strWinMsg, "WM_VSCROLLCLIPBOARD", 30); break;
  476.         case WM_SIZECLIPBOARD              : strncpy(strWinMsg, "WM_SIZECLIPBOARD", 30); break;
  477.         case WM_ASKCBFORMATNAME            : strncpy(strWinMsg, "WM_ASKCBFORMATNAME", 30); break;
  478.         case WM_CHANGECBCHAIN              : strncpy(strWinMsg, "WM_CHANGECBCHAIN", 30); break;
  479.         case WM_HSCROLLCLIPBOARD           : strncpy(strWinMsg, "WM_HSCROLLCLIPBOARD", 30); break;
  480.         case WM_QUERYNEWPALETTE            : strncpy(strWinMsg, "WM_QUERYNEWPALETTE", 30); break;
  481.         case WM_PALETTEISCHANGING          : strncpy(strWinMsg, "WM_PALETTEISCHANGING", 30); break;
  482.         case WM_PALETTECHANGED             : strncpy(strWinMsg, "WM_PALETTECHANGED", 30); break;
  483.         case WM_HOTKEY                     : strncpy(strWinMsg, "WM_HOTKEY", 30); break;
  484.         case WM_PRINT                      : strncpy(strWinMsg, "WM_PRINT", 30); break;
  485.         case WM_PRINTCLIENT                : strncpy(strWinMsg, "WM_PRINTCLIENT", 30); break;
  486.         case WM_APPCOMMAND                 : strncpy(strWinMsg, "WM_APPCOMMAND", 30); break;
  487.         case WM_HANDHELDFIRST              : strncpy(strWinMsg, "WM_HANDHELDFIRST", 30); break;
  488.         case WM_HANDHELDLAST               : strncpy(strWinMsg, "WM_HANDHELDLAST", 30); break;
  489.         case WM_AFXFIRST                   : strncpy(strWinMsg, "WM_AFXFIRST", 30); break;
  490.         case WM_AFXLAST                    : strncpy(strWinMsg, "WM_AFXLAST", 30); break;
  491.         case WM_PENWINFIRST                : strncpy(strWinMsg, "WM_PENWINFIRST", 30); break;
  492.         case WM_PENWINLAST                 : strncpy(strWinMsg, "WM_PENWINLAST", 30); break;
  493.         case DM_GETDEFID                   : strncpy(strWinMsg, "DM_GETDEFID", 30); break;
  494.         case DM_SETDEFID                   : strncpy(strWinMsg, "DM_SETDEFID", 30); break;
  495.         case DM_REPOSITION                 : strncpy(strWinMsg, "DM_REPOSITION", 30); break;
  496.         case WM_APP                        : strncpy(strWinMsg, "WM_APP", 30); break;
  497.         case WM_UAHDRAWMENU                : strncpy(strWinMsg, "WM_UAHDRAWMENU", 30); break;
  498.         case WM_UAHDRAWMENUITEM            : strncpy(strWinMsg, "WM_UAHDRAWMENUITEM", 30); break;
  499.         case WM_UAHINITMENU                : strncpy(strWinMsg, "WM_UAHINITMENU", 30); break;
  500.         case WM_UAHMEASUREMENUITEM         : strncpy(strWinMsg, "WM_UAHMEASUREMENUITEM", 30); break;
  501.         case WM_UAHNCPAINTMENUPOPUP        : strncpy(strWinMsg, "WM_UAHNCPAINTMENUPOPUP", 30); break;
  502.         case WM_DWMNCRENDERINGCHANGED      : strncpy(strWinMsg, "WM_DWMNCRENDERINGCHANGED", 30); break;
  503.         case WM_NCUAHDRAWCAPTION           : strncpy(strWinMsg, "WM_NCUAHDRAWCAPTION", 30); break;
  504.         case WM_NCUAHDRAWFRAME             : strncpy(strWinMsg, "WM_NCUAHDRAWFRAME", 30); break;
  505.         case WM_MOUSEWHEEL                 : strncpy(strWinMsg, "WM_MOUSEWHEEL", 30); break;
  506.         case WM_KEYF1                      : strncpy(strWinMsg, "WM_KEYF1", 30); break;
  507.         default                            : strncpy(strWinMsg, "Message unidentified", 30); break;
  508.     }
  509.     return strWinMsg;
  510. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement