home *** CD-ROM | disk | FTP | other *** search
/ io Programmo 23 / IOPROG_23.ISO / SOFT / IDSTRING.ZIP / MessageToString.cpp next >
Encoding:
C/C++ Source or Header  |  1998-08-14  |  7.2 KB  |  238 lines

  1. #include "stdafx.h"
  2. #include "dde.h"
  3. #include "afxpriv.h"
  4. #include "MessageToString.h"
  5.  
  6. struct AFX_MAP_MESSAGE
  7. {
  8.     UINT    nMsg;
  9.     LPCSTR  lpszMsg;
  10. };
  11. #define DEFINE_MESSAGE(wm){ wm, #wm }
  12. static const AFX_MAP_MESSAGE allMessages[] =
  13. {
  14.     DEFINE_MESSAGE(WM_CREATE),
  15.     DEFINE_MESSAGE(WM_DESTROY),
  16.     DEFINE_MESSAGE(WM_MOVE),
  17.     DEFINE_MESSAGE(WM_SIZE),
  18.     DEFINE_MESSAGE(WM_ACTIVATE),
  19.     DEFINE_MESSAGE(WM_SETFOCUS),
  20.     DEFINE_MESSAGE(WM_KILLFOCUS),
  21.     DEFINE_MESSAGE(WM_ENABLE),
  22.     DEFINE_MESSAGE(WM_SETREDRAW),
  23.     DEFINE_MESSAGE(WM_SETTEXT),
  24.     DEFINE_MESSAGE(WM_GETTEXT),
  25.     DEFINE_MESSAGE(WM_GETTEXTLENGTH),
  26.     DEFINE_MESSAGE(WM_PAINT),
  27.     DEFINE_MESSAGE(WM_CLOSE),
  28.     DEFINE_MESSAGE(WM_QUERYENDSESSION),
  29.     DEFINE_MESSAGE(WM_QUIT),
  30.     DEFINE_MESSAGE(WM_QUERYOPEN),
  31.     DEFINE_MESSAGE(WM_ERASEBKGND),
  32.     DEFINE_MESSAGE(WM_SYSCOLORCHANGE),
  33.     DEFINE_MESSAGE(WM_ENDSESSION),
  34.     DEFINE_MESSAGE(WM_SHOWWINDOW),
  35.     DEFINE_MESSAGE(WM_CTLCOLORMSGBOX),
  36.     DEFINE_MESSAGE(WM_CTLCOLOREDIT),
  37.     DEFINE_MESSAGE(WM_CTLCOLORLISTBOX),
  38.     DEFINE_MESSAGE(WM_CTLCOLORBTN),
  39.     DEFINE_MESSAGE(WM_CTLCOLORDLG),
  40.     DEFINE_MESSAGE(WM_CTLCOLORSCROLLBAR),
  41.     DEFINE_MESSAGE(WM_CTLCOLORSTATIC),
  42.     DEFINE_MESSAGE(WM_WININICHANGE),
  43.     DEFINE_MESSAGE(WM_SETTINGCHANGE),
  44.     DEFINE_MESSAGE(WM_DEVMODECHANGE),
  45.     DEFINE_MESSAGE(WM_ACTIVATEAPP),
  46.     DEFINE_MESSAGE(WM_FONTCHANGE),
  47.     DEFINE_MESSAGE(WM_TIMECHANGE),
  48.     DEFINE_MESSAGE(WM_CANCELMODE),
  49.     DEFINE_MESSAGE(WM_SETCURSOR),
  50.     DEFINE_MESSAGE(WM_MOUSEACTIVATE),
  51.     DEFINE_MESSAGE(WM_CHILDACTIVATE),
  52.     DEFINE_MESSAGE(WM_QUEUESYNC),
  53.     DEFINE_MESSAGE(WM_GETMINMAXINFO),
  54.     DEFINE_MESSAGE(WM_ICONERASEBKGND),
  55.     DEFINE_MESSAGE(WM_NEXTDLGCTL),
  56.     DEFINE_MESSAGE(WM_SPOOLERSTATUS),
  57.     DEFINE_MESSAGE(WM_DRAWITEM),
  58.     DEFINE_MESSAGE(WM_MEASUREITEM),
  59.     DEFINE_MESSAGE(WM_DELETEITEM),
  60.     DEFINE_MESSAGE(WM_VKEYTOITEM),
  61.     DEFINE_MESSAGE(WM_CHARTOITEM),
  62.     DEFINE_MESSAGE(WM_SETFONT),
  63.     DEFINE_MESSAGE(WM_GETFONT),
  64.     DEFINE_MESSAGE(WM_QUERYDRAGICON),
  65.     DEFINE_MESSAGE(WM_COMPAREITEM),
  66.     DEFINE_MESSAGE(WM_COMPACTING),
  67.     DEFINE_MESSAGE(WM_NCCREATE),
  68.     DEFINE_MESSAGE(WM_NCDESTROY),
  69.     DEFINE_MESSAGE(WM_NCCALCSIZE),
  70.     DEFINE_MESSAGE(WM_NCHITTEST),
  71.     DEFINE_MESSAGE(WM_NCPAINT),
  72.     DEFINE_MESSAGE(WM_NCACTIVATE),
  73.     DEFINE_MESSAGE(WM_GETDLGCODE),
  74.     DEFINE_MESSAGE(WM_NCMOUSEMOVE),
  75.     DEFINE_MESSAGE(WM_NCLBUTTONDOWN),
  76.     DEFINE_MESSAGE(WM_NCLBUTTONUP),
  77.     DEFINE_MESSAGE(WM_NCLBUTTONDBLCLK),
  78.     DEFINE_MESSAGE(WM_NCRBUTTONDOWN),
  79.     DEFINE_MESSAGE(WM_NCRBUTTONUP),
  80.     DEFINE_MESSAGE(WM_NCRBUTTONDBLCLK),
  81.     DEFINE_MESSAGE(WM_NCMBUTTONDOWN),
  82.     DEFINE_MESSAGE(WM_NCMBUTTONUP),
  83.     DEFINE_MESSAGE(WM_NCMBUTTONDBLCLK),
  84.     DEFINE_MESSAGE(WM_KEYDOWN),
  85.     DEFINE_MESSAGE(WM_KEYUP),
  86.     DEFINE_MESSAGE(WM_CHAR),
  87.     DEFINE_MESSAGE(WM_DEADCHAR),
  88.     DEFINE_MESSAGE(WM_SYSKEYDOWN),
  89.     DEFINE_MESSAGE(WM_SYSKEYUP),
  90.     DEFINE_MESSAGE(WM_SYSCHAR),
  91.     DEFINE_MESSAGE(WM_SYSDEADCHAR),
  92.     DEFINE_MESSAGE(WM_KEYLAST),
  93.     DEFINE_MESSAGE(WM_INITDIALOG),
  94.     DEFINE_MESSAGE(WM_COMMAND),
  95.     DEFINE_MESSAGE(WM_SYSCOMMAND),
  96.     DEFINE_MESSAGE(WM_TIMER),
  97.     DEFINE_MESSAGE(WM_HSCROLL),
  98.     DEFINE_MESSAGE(WM_VSCROLL),
  99.     DEFINE_MESSAGE(WM_INITMENU),
  100.     DEFINE_MESSAGE(WM_INITMENUPOPUP),
  101.     DEFINE_MESSAGE(WM_MENUSELECT),
  102.     DEFINE_MESSAGE(WM_MENUCHAR),
  103.     DEFINE_MESSAGE(WM_ENTERIDLE),
  104.     DEFINE_MESSAGE(WM_MOUSEWHEEL),
  105.     DEFINE_MESSAGE(WM_MOUSEMOVE),
  106.     DEFINE_MESSAGE(WM_LBUTTONDOWN),
  107.     DEFINE_MESSAGE(WM_LBUTTONUP),
  108.     DEFINE_MESSAGE(WM_LBUTTONDBLCLK),
  109.     DEFINE_MESSAGE(WM_RBUTTONDOWN),
  110.     DEFINE_MESSAGE(WM_RBUTTONUP),
  111.     DEFINE_MESSAGE(WM_RBUTTONDBLCLK),
  112.     DEFINE_MESSAGE(WM_MBUTTONDOWN),
  113.     DEFINE_MESSAGE(WM_MBUTTONUP),
  114.     DEFINE_MESSAGE(WM_MBUTTONDBLCLK),
  115.     DEFINE_MESSAGE(WM_PARENTNOTIFY),
  116.     DEFINE_MESSAGE(WM_MDICREATE),
  117.     DEFINE_MESSAGE(WM_MDIDESTROY),
  118.     DEFINE_MESSAGE(WM_MDIACTIVATE),
  119.     DEFINE_MESSAGE(WM_MDIRESTORE),
  120.     DEFINE_MESSAGE(WM_MDINEXT),
  121.     DEFINE_MESSAGE(WM_MDIMAXIMIZE),
  122.     DEFINE_MESSAGE(WM_MDITILE),
  123.     DEFINE_MESSAGE(WM_MDICASCADE),
  124.     DEFINE_MESSAGE(WM_MDIICONARRANGE),
  125.     DEFINE_MESSAGE(WM_MDIGETACTIVE),
  126.     DEFINE_MESSAGE(WM_MDISETMENU),
  127.     DEFINE_MESSAGE(WM_CUT),
  128.     DEFINE_MESSAGE(WM_COPYDATA),
  129.     DEFINE_MESSAGE(WM_COPY),
  130.     DEFINE_MESSAGE(WM_PASTE),
  131.     DEFINE_MESSAGE(WM_CLEAR),
  132.     DEFINE_MESSAGE(WM_UNDO),
  133.     DEFINE_MESSAGE(WM_RENDERFORMAT),
  134.     DEFINE_MESSAGE(WM_RENDERALLFORMATS),
  135.     DEFINE_MESSAGE(WM_DESTROYCLIPBOARD),
  136.     DEFINE_MESSAGE(WM_DRAWCLIPBOARD),
  137.     DEFINE_MESSAGE(WM_PAINTCLIPBOARD),
  138.     DEFINE_MESSAGE(WM_VSCROLLCLIPBOARD),
  139.     DEFINE_MESSAGE(WM_SIZECLIPBOARD),
  140.     DEFINE_MESSAGE(WM_ASKCBFORMATNAME),
  141.     DEFINE_MESSAGE(WM_CHANGECBCHAIN),
  142.     DEFINE_MESSAGE(WM_HSCROLLCLIPBOARD),
  143.     DEFINE_MESSAGE(WM_QUERYNEWPALETTE),
  144.     DEFINE_MESSAGE(WM_PALETTEISCHANGING),
  145.     DEFINE_MESSAGE(WM_PALETTECHANGED),
  146.     DEFINE_MESSAGE(WM_DDE_INITIATE),
  147.     DEFINE_MESSAGE(WM_DDE_TERMINATE),
  148.     DEFINE_MESSAGE(WM_DDE_ADVISE),
  149.     DEFINE_MESSAGE(WM_DDE_UNADVISE),
  150.     DEFINE_MESSAGE(WM_DDE_ACK),
  151.     DEFINE_MESSAGE(WM_DDE_DATA),
  152.     DEFINE_MESSAGE(WM_DDE_REQUEST),
  153.     DEFINE_MESSAGE(WM_DDE_POKE),
  154.     DEFINE_MESSAGE(WM_DDE_EXECUTE),
  155.     DEFINE_MESSAGE(WM_DROPFILES),
  156.     DEFINE_MESSAGE(WM_POWER),
  157.     DEFINE_MESSAGE(WM_WINDOWPOSCHANGED),
  158.     DEFINE_MESSAGE(WM_WINDOWPOSCHANGING),
  159. // MFC specific messages
  160.     DEFINE_MESSAGE(WM_SIZEPARENT),
  161.     DEFINE_MESSAGE(WM_SETMESSAGESTRING),
  162.     DEFINE_MESSAGE(WM_IDLEUPDATECMDUI),
  163.     DEFINE_MESSAGE(WM_INITIALUPDATE),
  164.     DEFINE_MESSAGE(WM_COMMANDHELP),
  165.     DEFINE_MESSAGE(WM_HELPHITTEST),
  166.     DEFINE_MESSAGE(WM_EXITHELPMODE),
  167.     DEFINE_MESSAGE(WM_HELP),
  168.     DEFINE_MESSAGE(WM_NOTIFY),
  169.     DEFINE_MESSAGE(WM_CONTEXTMENU),
  170.     DEFINE_MESSAGE(WM_TCARD),
  171.     DEFINE_MESSAGE(WM_MDIREFRESHMENU),
  172.     DEFINE_MESSAGE(WM_MOVING),
  173.     DEFINE_MESSAGE(WM_STYLECHANGED),
  174.     DEFINE_MESSAGE(WM_STYLECHANGING),
  175.     DEFINE_MESSAGE(WM_SIZING),
  176.     DEFINE_MESSAGE(WM_SETHOTKEY),
  177.     DEFINE_MESSAGE(WM_PRINT),
  178.     DEFINE_MESSAGE(WM_PRINTCLIENT),
  179.     DEFINE_MESSAGE(WM_POWERBROADCAST),
  180.     DEFINE_MESSAGE(WM_HOTKEY),
  181.     DEFINE_MESSAGE(WM_GETICON),
  182.     DEFINE_MESSAGE(WM_EXITMENULOOP),
  183.     DEFINE_MESSAGE(WM_ENTERMENULOOP),
  184.     DEFINE_MESSAGE(WM_DISPLAYCHANGE),
  185.     DEFINE_MESSAGE(WM_STYLECHANGED),
  186.     DEFINE_MESSAGE(WM_STYLECHANGING),
  187.     DEFINE_MESSAGE(WM_GETICON),
  188.     DEFINE_MESSAGE(WM_SETICON),
  189.     DEFINE_MESSAGE(WM_SIZING),
  190.     DEFINE_MESSAGE(WM_MOVING),
  191.     DEFINE_MESSAGE(WM_CAPTURECHANGED),
  192.     DEFINE_MESSAGE(WM_DEVICECHANGE),
  193.     DEFINE_MESSAGE(WM_PRINT),
  194.     DEFINE_MESSAGE(WM_PRINTCLIENT),
  195.     { 0, NULL, }    // end of message list
  196. };
  197. char *CWindowsMessageToString::GetStringFromMsg( DWORD dwMessage, bool bShowFrequentMessages )
  198. {
  199.     if ( !bShowFrequentMessages && 
  200.         ( dwMessage == WM_MOUSEMOVE         || 
  201.           dwMessage == WM_NCMOUSEMOVE        ||
  202.           dwMessage == WM_NCHITTEST            || 
  203.           dwMessage == WM_SETCURSOR            ||
  204.           dwMessage == WM_CTLCOLORBTN        ||
  205.           dwMessage == WM_CTLCOLORDLG        ||
  206.           dwMessage == WM_CTLCOLOREDIT        ||
  207.           dwMessage == WM_CTLCOLORLISTBOX    ||
  208.           dwMessage == WM_CTLCOLORMSGBOX    ||
  209.           dwMessage == WM_CTLCOLORSCROLLBAR ||
  210.           dwMessage == WM_CTLCOLORSTATIC    ||
  211.           dwMessage == WM_ENTERIDLE         || 
  212.           dwMessage == WM_CANCELMODE        ||
  213.           dwMessage == 0x0118) )    // WM_SYSTIMER (caret blink)
  214.     {
  215.         // don't report very frequently sent messages
  216.         return "";
  217.     }
  218.     const AFX_MAP_MESSAGE* pMapMsg = allMessages;
  219.     for (/*null*/; pMapMsg->lpszMsg != NULL; pMapMsg++)
  220.     {
  221.         if (pMapMsg->nMsg == dwMessage )
  222.         {
  223.             return (char *)pMapMsg->lpszMsg;
  224.         }
  225.     }
  226.     return "";
  227. }
  228.  
  229.  
  230. CWindowsMessageToString::CWindowsMessageToString()
  231. {
  232. }
  233.  
  234. CWindowsMessageToString::~CWindowsMessageToString()
  235. {
  236. }
  237.  
  238.