uLib  User mode C/C++ extended API library for Win32 programmers.
MsgTbl.cpp
Go to the documentation of this file.
1 //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2 // Project: uLib - User mode library.
3 // Module: Windows message name strings, for clear debugging.
4 // Author: Copyright (c) Love Nystrom
5 // License: NNOSL (BSD descendant, see NNOSL.txt in the base directory).
6 //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
7 //
8 // Undocumented messages have a leading underscore prepended...
9 // Some of those are more likely/reliable than others...
10 //
11 #include <uLib/Debug.h>
12 
14 
15 #if defined(NDEBUG) || defined(NO_WINMSG_TABLE)
16 #pragma warning( disable: 4996 )
17 ACSTR GetWinMsgName( WORD msgId )
18 {
19  static CHAR szName[ 32 ];
20  short ccName = _snprintf( szName, dimof(szName)-1, "WM_%04X(%u)", msgId, msgId );
21  szName[ ccName ] = 0;
22  return szName;
23 }
25 {
26  static CHAR szName[ 24 ];
27  short ccName = _snprintf( szName, dimof(szName)-1, "Exception %08X", xCode );
28  szName[ ccName ] = 0;
29  return szName;
30 }
31 #pragma warning( default: 4996 )
32 #else //_DEBUG
33 
34 extern CCASTR WinMsgNames[]; // Fwd
35 extern const UINT NrWinMsg; // Fwd (1024)
36 
37 ACSTR GetWinMsgName( WORD msgId ) // Debug.h
38 {
39  static CHAR szBuf[ 32 ];
40  ACSTR pzName = szBuf;
41 
42  if ((msgId < NrWinMsg) && *WinMsgNames[ msgId ]) // Have a table entry?
43  pzName = WinMsgNames[ msgId ];
44 
45  // The rest must be ordered by decreasing magnitude.
46 
47  else if (msgId >= 0xC000) wsprintfA( szBuf, "WM_REG(0x%04X)", msgId ); // RegisterWindowMessage
48  else if (msgId >= WM_APP) wsprintfA( szBuf, "WM_APP(0x%04X)", msgId );
49  else if (msgId >= WM_USER) wsprintfA( szBuf, "WM_USER(0x%04X)", msgId );
50 
51  else if (msgId >= WM_PENWINFIRST && msgId <= WM_PENWINLAST)
52  wsprintfA( szBuf, "WM_PENWIN(0x%04X)", msgId );
53 
54  else if (msgId >= WM_AFXFIRST && msgId <= WM_AFXLAST)
55  wsprintfA( szBuf, "WM_AFX(0x%04X)", msgId );
56 
57  else if (msgId >= WM_HANDHELDFIRST && msgId <= WM_HANDHELDLAST)
58  wsprintfA( szBuf, "WM_HANDHELD(0x%04X)", msgId );
59 
60  else wsprintfA( szBuf, "WM_UNDEF(0x%04X)", msgId );
61  return pzName;
62 };
63 
64 //UINT MsgTblSize()
65 //{
66 // UINT cbTbl = sizeof(WinMsgNames); // The string pointers 4/8 kB
67 // for( UINT ix = 0; ix < NrWinMsg; ++ix ) cbTbl += (strlen( WinMsgNames[ix] ) + 1);
68 // return cbTbl;
69 //}
70 
71 CCASTR WinMsgNames[] = // Size ~12/16 kB, incl the ptrs and actual text.
72 {
73  "WM_NULL", // 0x0000
74  "WM_CREATE", // 0x0001
75  "WM_DESTROY", // 0x0002
76  "WM_MOVE", // 0x0003
77  "_WM_SIZEWAIT", // 0x0004
78  "WM_SIZE", // 0x0005
79  "WM_ACTIVATE", // 0x0006
80  "WM_SETFOCUS", // 0x0007
81  "WM_KILLFOCUS", // 0x0008
82  "_WM_SETVISIBLE", // 0x0009
83  "WM_ENABLE", // 0x000A
84  "WM_SETREDRAW", // 0x000B
85  "WM_SETTEXT", // 0x000C
86  "WM_GETTEXT", // 0x000D
87  "WM_GETTEXTLENGTH", // 0x000E
88  "WM_PAINT", // 0x000F
89  "WM_CLOSE", // 0x0010
90  "WM_QUERYENDSESSION", // 0x0011
91  "WM_QUIT", // 0x0012
92  "WM_QUERYOPEN", // 0x0013
93  "WM_ERASEBKGND", // 0x0014
94  "WM_SYSCOLORCHANGE", // 0x0015
95  "WM_ENDSESSION", // 0x0016
96  "_WM_SYSTEMERROR", // 0x0017
97  "WM_SHOWWINDOW", // 0x0018
98  "WM_CTLCOLOR", // 0x0019
99  "WM_WININICHANGE", // 0x001A
100  "WM_DEVMODECHANGE", // 0x001B
101  "WM_ACTIVATEAPP", // 0x001C
102  "WM_FONTCHANGE", // 0x001D
103  "WM_TIMECHANGE", // 0x001E
104  "WM_CANCELMODE", // 0x001F
105  "WM_SETCURSOR", // 0x0020
106  "WM_MOUSEACTIVATE", // 0x0021
107  "WM_CHILDACTIVATE", // 0x0022
108  "WM_QUEUESYNC", // 0x0023
109  "WM_GETMINMAXINFO", // 0x0024
110  "_WM_LOGOFF", // 0x0025
111  "WM_PAINTICON", // 0x0026
112  "WM_ICONERASEBKGND", // 0x0027
113  "WM_NEXTDLGCTL", // 0x0028
114  "_WM_ALTTABACTIVE", // 0x0029
115  "WM_SPOOLERSTATUS", // 0x002A
116  "WM_DRAWITEM", // 0x002B
117  "WM_MEASUREITEM", // 0x002C
118  "WM_DELETEITEM", // 0x002D
119  "WM_VKEYTOITEM", // 0x002E
120  "WM_CHARTOITEM", // 0x002F
121  "WM_SETFONT", // 0x0030
122  "WM_GETFONT", // 0x0031
123  "WM_SETHOTKEY", // 0x0032
124  "WM_GETHOTKEY", // 0x0033
125  "_WM_FILESYSCHANGE", // 0x0034
126  "_WM_ISACTIVEICON", // 0x0035
127  "_WM_QUERYPARKICON", // 0x0036
128  "_WM_QUERYDRAGICON", // 0x0037
129  "WM_WINHELP", // 0x0038
130  "WM_COMPAREITEM", // 0x0039
131  "_WM_FULLSCREEN", // 0x003A
132  "_WM_CLIENTSHUTDOWN", // 0x003B
133  "_WM_DDEMLEVENT", // 0x003C
134  "WM_GETOBJECT", // 0x003D
135  "",
136  "WM_CALCSCROLL", // 0x003F
137  "_WM_TESTING", // 0x0040
138  "WM_COMPACTING", // 0x0041
139  "_WM_OTHERWINDOWCREATED", // 0x0042
140  "_WM_OTHERWINDOWDESTROYED", // 0x0043
141  "WM_COMMNOTIFY", // 0x0044
142  "_WM_MEDIASTATUSCHANGE", // 0x0045
143  "WM_WINDOWPOSCHANGING", // 0x0046
144  "WM_WINDOWPOSCHANGED", // 0x0047
145  "WM_POWER", // 0x0048
146  "_WM_COPYGLOBALDATA", // 0x0049
147  "WM_COPYDATA", // 0x004A
148  "WM_CANCELJOURNAL", // 0x004B
149  "_WM_LOGONNOTIFY", // 0x004C
150  "_WM_KEYF1", // 0x004D
151  "WM_NOTIFY", // 0x004E
152  "_WM_ACCESS_WINDOW", // 0x004F
153  "WM_INPUTLANGCHANGEREQUEST", // 0x0050
154  "WM_INPUTLANGCHANGE", // 0x0051
155  "WM_TCARD", // 0x0052
156  "WM_HELP", // 0x0053
157  "WM_USERCHANGED", // 0x0054
158  "WM_NOTIFYFORMAT", // 0x0055
159  "","","","","","","","","","",
160  "_WM_QM_ACTIVATE", // 0x0060
161  "_WM_HOOK_DO_CALLBACK", // 0x0061
162  "WM_SYSCOPYDATA", // 0x0062
163  "","","","","","","","","","","","","",
164  "_WM_FINALDESTROY", // 0x0070
165  "_WM_MEASUREITEM_CLIENTDATA", // 0x0071
166  "_WM_TASKACTIVATED", // 0x0072
167  "_WM_TASKDEACTIVATED", // 0x0073
168  "_WM_TASKCREATED", // 0x0074
169  "_WM_TASKDESTROYED", // 0x0075
170  "_WM_TASKUICHANGED", // 0x0076
171  "_WM_TASKVISIBLE", // 0x0077
172  "_WM_TASKNOTVISIBLE", // 0x0078
173  "_WM_SETCURSORINFO", // 0x0079
174  "",
175  "WM_CONTEXTMENU", // 0x007B
176  "WM_STYLECHANGING", // 0x007C
177  "WM_STYLECHANGED", // 0x007D
178  "WM_DISPLAYCHANGE", // 0x007E
179  "WM_GETICON", // 0x007F
180  "WM_SETICON", // 0x0080
181  "WM_NCCREATE", // 0x0081
182  "WM_NCDESTROY", // 0x0082
183  "WM_NCCALCSIZE", // 0x0083
184  "WM_NCHITTEST", // 0x0084
185  "WM_NCPAINT", // 0x0085
186  "WM_NCACTIVATE", // 0x0086
187  "WM_GETDLGCODE", // 0x0087
188  "WM_SYNCPAINT", // 0x0088
189  "WM_SYNCTASK", // 0x0089
190  "",
191  "_WM_KLUDGEMINRECT", // 0x008B
192  "","","","",
193  "WM_UAHDESTROYWINDOW", // 0x0090
194  "WM_UAHDRAWMENU", // 0x0091
195  "WM_UAHDRAWMENUITEM", // 0x0092
196  "WM_UAHINITMENU", // 0x0093
197  "WM_UAHMEASUREMENUITEM", // 0x0094
198  "WM_UAHNCPAINTMENUPOPUP", // 0x0095
199  "WM_UAHUPDATE", // 0x0096
200  "","","","","","","","","",
201  "WM_NCMOUSEMOVE", // 0x00A0
202  "WM_NCLBUTTONDOWN", // 0x00A1
203  "WM_NCLBUTTONUP", // 0x00A2
204  "WM_NCLBUTTONDBLCLK", // 0x00A3
205  "WM_NCRBUTTONDOWN", // 0x00A4
206  "WM_NCRBUTTONUP", // 0x00A5
207  "WM_NCRBUTTONDBLCLK", // 0x00A6
208  "WM_NCMBUTTONDOWN", // 0x00A7
209  "WM_NCMBUTTONUP", // 0x00A8
210  "WM_NCMBUTTONDBLCLK", // 0x00A9
211  "",
212  "WM_NCXBUTTONDOWN", // 0x00AB
213  "WM_NCXBUTTONUP", // 0x00AC
214  "WM_NCXBUTTONDBLCLK", // 0x00AD
215  "WM_NCUAHDRAWCAPTION", // 0x00AE
216  "WM_NCUAHDRAWFRAME", // 0x00AF
217  "EM_GETSEL", // 0x00B0
218  "EM_SETSEL", // 0x00B1
219  "EM_GETRECT", // 0x00B2
220  "EM_SETRECT", // 0x00B3
221  "EM_SETRECTNP", // 0x00B4
222  "EM_SCROLL", // 0x00B5
223  "EM_LINESCROLL", // 0x00B6
224  "EM_SCROLLCARET", // 0x00B7
225  "EM_GETMODIFY", // 0x00B8
226  "EM_SETMODIFY", // 0x00B9
227  "EM_GETLINECOUNT", // 0x00BA
228  "EM_LINEINDEX", // 0x00BB
229  "EM_SETHANDLE", // 0x00BC
230  "EM_GETHANDLE", // 0x00BD
231  "EM_GETTHUMB", // 0x00BE
232  "","",
233  "EM_LINELENGTH", // 0x00C1
234  "EM_REPLACESEL", // 0x00C2
235  "EM_SETFONT", // 0x00C3
236  "EM_GETLINE", // 0x00C4
237  "EM_LIMITTEXT", // 0x00C5
238  "EM_CANUNDO", // 0x00C6
239  "EM_UNDO", // 0x00C7
240  "EM_FMTLINES", // 0x00C8
241  "EM_LINEFROMCHAR", // 0x00C9
242  "EM_SETWORDBREAK", // 0x00CA
243  "EM_SETTABSTOPS", // 0x00CB
244  "EM_SETPASSWORDCHAR", // 0x00CC
245  "EM_EMPTYUNDOBUFFER", // 0x00CD
246  "EM_GETFIRSTVISIBLELINE", // 0x00CE
247  "EM_SETREADONLY", // 0x00CF
248  "EM_SETWORDBREAKPROC", // 0x00D0
249  "EM_GETWORDBREAKPROC", // 0x00D1
250  "EM_GETPASSWORDCHAR", // 0x00D2
251  "EM_SETMARGINS", // 0x00D3
252  "EM_GETMARGINS", // 0x00D4
253  "EM_GETLIMITTEXT", // 0x00D5
254  "EM_POSFROMCHAR", // 0x00D6
255  "EM_CHARFROMPOS", // 0x00D7
256  "EM_SETIMESTATUS", // 0x00D8
257  "EM_GETIMESTATUS", // 0x00D9
258  "EM_MSGMAX", // 0x00DA
259  "","","","","",
260  "SBM_SETPOS", // 0x00E0
261  "SBM_GETPOS", // 0x00E1
262  "SBM_SETRANGE", // 0x00E2
263  "SBM_GETRANGE", // 0x00E3
264  "SBM_ENABLE_ARROWS", // 0x00E4
265  "",
266  "SBM_SETRANGEREDRAW", // 0x00E6
267  "","",
268  "SBM_SETSCROLLINFO", // 0x00E9
269  "SBM_GETSCROLLINFO", // 0x00EA
270  "SBM_GETSCROLLBARINFO", // 0x00EB
271  "","","","",
272  "BM_GETCHECK", // 0x00F0
273  "BM_SETCHECK", // 0x00F1
274  "BM_GETSTATE", // 0x00F2
275  "BM_SETSTATE", // 0x00F3
276  "BM_SETSTYLE", // 0x00F4
277  "BM_CLICK", // 0x00F5
278  "BM_GETIMAGE", // 0x00F6
279  "BM_SETIMAGE", // 0x00F7
280  "BM_SETDONTCLICK", // 0x00F8
281  "","","","","",
282  "WM_INPUT_DEVICE_CHANGE", // 0x00FE
283  "WM_INPUT", // 0x00FF
284  "WM_KEYDOWN", // 0x0100
285  "WM_KEYUP", // 0x0101
286  "WM_CHAR", // 0x0102
287  "WM_DEADCHAR", // 0x0103
288  "WM_SYSKEYDOWN", // 0x0104
289  "WM_SYSKEYUP", // 0x0105
290  "WM_SYSCHAR", // 0x0106
291  "WM_SYSDEADCHAR", // 0x0107
292  "_WM_YOMICHAR/WM_KEYLAST", // 0x0108
293  "WM_UNICHAR", // 0x0109
294  "_WM_CONVERTREQUEST", // 0x010A
295  "_WM_CONVERTRESULT", // 0x010B
296  "WM_IM_INFO", // 0x010C
297  "WM_IME_STARTCOMPOSITION", // 0x010D
298  "WM_IME_ENDCOMPOSITION", // 0x010E
299  "WM_IME_COMPOSITION", // 0x010F
300  "WM_INITDIALOG", // 0x0110
301  "WM_COMMAND", // 0x0111
302  "WM_SYSCOMMAND", // 0x0112
303  "WM_TIMER", // 0x0113
304  "WM_HSCROLL", // 0x0114
305  "WM_VSCROLL", // 0x0115
306  "WM_INITMENU", // 0x0116
307  "WM_INITMENUPOPUP", // 0x0117
308  "WM_SYSTIMER", // 0x0118
309  "","","","","","",
310  "WM_MENUSELECT", // 0x011F
311  "WM_MENUCHAR", // 0x0120
312  "WM_ENTERIDLE", // 0x0121
313  "WM_MENURBUTTONUP", // 0x0122
314  "WM_MENUDRAG", // 0x0123
315  "WM_MENUGETOBJECT", // 0x0124
316  "WM_UNINITMENUPOPUP", // 0x0125
317  "WM_MENUCOMMAND", // 0x0126
318  "WM_CHANGEUISTATE", // 0x0127
319  "WM_UPDATEUISTATE", // 0x0128
320  "WM_QUERYUISTATE", // 0x0129
321  "","","","","","","",
322  "_WM_LBTRACKPOINT", // 0x0131
323  "WM_CTLCOLORMSGBOX", // 0x0132
324  "WM_CTLCOLOREDIT", // 0x0133
325  "WM_CTLCOLORLISTBOX", // 0x0134
326  "WM_CTLCOLORBTN", // 0x0135
327  "WM_CTLCOLORDLG", // 0x0136
328  "WM_CTLCOLORSCROLLBAR", // 0x0137
329  "WM_CTLCOLORSTATIC", // 0x0138
330  "","","","","","","",
331  "CB_GETEDITSEL", // 0x0140
332  "CB_LIMITTEXT", // 0x0141
333  "CB_SETEDITSEL", // 0x0142
334  "CB_ADDSTRING", // 0x0143
335  "CB_DELETESTRING", // 0x0144
336  "CB_DIR", // 0x0145
337  "CB_GETCOUNT", // 0x0146
338  "CB_GETCURSEL", // 0x0147
339  "CB_GETLBTEXT", // 0x0148
340  "CB_GETLBTEXTLEN", // 0x0149
341  "CB_INSERTSTRING", // 0x014A
342  "CB_RESETCONTENT", // 0x014B
343  "CB_FINDSTRING", // 0x014C
344  "CB_SELECTSTRING", // 0x014D
345  "CB_SETCURSEL", // 0x014E
346  "CB_SHOWDROPDOWN", // 0x014F
347  "CB_GETITEMDATA", // 0x0150
348  "CB_SETITEMDATA", // 0x0151
349  "CB_GETDROPPEDCONTROLRECT", // 0x0152
350  "CB_SETITEMHEIGHT", // 0x0153
351  "CB_GETITEMHEIGHT", // 0x0154
352  "CB_SETEXTENDEDUI", // 0x0155
353  "CB_GETEXTENDEDUI", // 0x0156
354  "CB_GETDROPPEDSTATE", // 0x0157
355  "CB_FINDSTRINGEXACT", // 0x0158
356  "CB_SETLOCALE", // 0x0159
357  "CB_GETLOCALE", // 0x015A
358  "CB_GETTOPINDEX", // 0x015B
359  "CB_SETTOPINDEX", // 0x015C
360  "CB_GETHORIZONTALEXTENT", // 0x015D
361  "CB_SETHORIZONTALEXTENT", // 0x015E
362  "CB_GETDROPPEDWIDTH", // 0x015F
363  "CB_SETDROPPEDWIDTH", // 0x0160
364  "CB_INITSTORAGE", // 0x0161
365  "",
366  "CB_MULTIPLEADDSTRING", // 0x0163, WinCE
367  "","","","","","","","","","","","",
368  "STM_SETICON", // 0x0170
369  "STM_GETICON", // 0x0171
370  "STM_SETIMAGE", // 0x0172
371  "STM_GETIMAGE", // 0x0173
372  "","","","","","","","","","","","",
373  "LB_ADDSTRING", // 0x0180
374  "LB_INSERTSTRING", // 0x0181
375  "LB_DELETESTRING", // 0x0182
376  "LB_SELITEMRANGEEX", // 0x0183
377  "LB_RESETCONTENT", // 0x0184
378  "LB_SETSEL", // 0x0185
379  "LB_SETCURSEL", // 0x0186
380  "LB_GETSEL", // 0x0187
381  "LB_GETCURSEL", // 0x0188
382  "LB_GETTEXT", // 0x0189
383  "LB_GETTEXTLEN", // 0x018A
384  "LB_GETCOUNT", // 0x018B
385  "LB_SELECTSTRING", // 0x018C
386  "LB_DIR", // 0x018D
387  "LB_GETTOPINDEX", // 0x018E
388  "LB_FINDSTRING", // 0x018F
389  "LB_GETSELCOUNT", // 0x0190
390  "LB_GETSELITEMS", // 0x0191
391  "LB_SETTABSTOPS", // 0x0192
392  "LB_GETHORIZONTALEXTENT", // 0x0193
393  "LB_SETHORIZONTALEXTENT", // 0x0194
394  "LB_SETCOLUMNWIDTH", // 0x0195
395  "LB_ADDFILE", // 0x0196
396  "LB_SETTOPINDEX", // 0x0197
397  "LB_GETITEMRECT", // 0x0198
398  "LB_GETITEMDATA", // 0x0199
399  "LB_SETITEMDATA", // 0x019A
400  "LB_SELITEMRANGE", // 0x019B
401  "LB_SETANCHORINDEX", // 0x019C
402  "LB_GETANCHORINDEX", // 0x019D
403  "LB_SETCARETINDEX", // 0x019E
404  "LB_GETCARETINDEX", // 0x019F
405  "LB_SETITEMHEIGHT", // 0x01A0
406  "LB_GETITEMHEIGHT", // 0x01A1
407  "LB_FINDSTRINGEXACT", // 0x01A2
408  "LBCB_CARETON", // 0x01A3
409  "LBCB_CARETOFF", // 0x01A4
410  "LB_SETLOCALE", // 0x01A5
411  "LB_GETLOCALE", // 0x01A6
412  "LB_SETCOUNT", // 0x01A7
413  "LB_INITSTORAGE", // 0x01A8
414  "LB_ITEMFROMPOINT", // 0x01A9
415  "_LB_INSERTSTRINGUPPER", // 0x01AA
416  "_LB_INSERTSTRINGLOWER", // 0x01AB
417  "_LB_ADDSTRINGUPPER", // 0x01AC
418  "_LB_ADDSTRINGLOWER", // 0x01AD
419  "","","",
420  "LB_MULTIPLEADDSTRING", // 0x01B1, WinCE, doc not found; Guess: wp=count, lp=LPTSTR[]; Or: lp=MultiString
421  "LB_GETLISTBOXINFO", // 0x01B2
422  "","","","","","","","","","","","","","","","","","","","",
423  "","","","","","","","","","","","","","","","","","","","","","","","","",
424  "_MN_SETHMENU", // 0x01E0
425  "MN_GETHMENU", // 0x01E1, https://docs.microsoft.com/en-us/windows/desktop/winmsg/mn-gethmenu
426  "_MN_SIZEWINDOW", // 0x01E2
427  "_MN_OPENHIERARCHY", // 0x01E3
428  "_MN_CLOSEHIERARCHY", // 0x01E4
429  "_MN_SELECTITEM", // 0x01E5, https://www.codeproject.com/Articles/3696/A-Revolutionary-New-Approach-to-Custom-Drawn-Menus
430  "_MN_CANCELMENUS", // 0x01E6
431  "_MN_SELECTFIRSTVALIDITEM", // 0x01E7
432  "","",
433  "_MN_GETPPOPUPMENU", // 0x01EA
434  "_MN_FINDMENUWINDOWFROMPOINT", // 0x01EB
435  "_MN_SHOWPOPUPWINDOW", // 0x01EC
436  "_MN_BUTTONDOWN", // 0x01ED
437  "_MN_MOUSEMOVE", // 0x01EE
438  "_MN_BUTTONUP", // 0x01EF
439  "_MN_SETTIMERTOOPENHIERARCHY", // 0x01F0
440  "_MN_DBLCLK", // 0x01F1
441  "","","","","","","","","","","","","","",
442  "WM_MOUSEMOVE", // 0x0200
443  "WM_LBUTTONDOWN", // 0x0201
444  "WM_LBUTTONUP", // 0x0202
445  "WM_LBUTTONDBLCLK", // 0x0203
446  "WM_RBUTTONDOWN", // 0x0204
447  "WM_RBUTTONUP", // 0x0205
448  "WM_RBUTTONDBLCLK", // 0x0206
449  "WM_MBUTTONDOWN", // 0x0207
450  "WM_MBUTTONUP", // 0x0208
451  "WM_MBUTTONDBLCLK", // 0x0209
452  "WM_MOUSEWHEEL", // 0x020A
453  "WM_XBUTTONDOWN", // 0x020B
454  "WM_XBUTTONUP", // 0x020C
455  "WM_XBUTTONDBLCLK", // 0x020D
456  "WM_MOUSEHWHEEL", // 0x020E
457  "",
458  "WM_PARENTNOTIFY", // 0x0210
459  "WM_ENTERMENULOOP", // 0x0211
460  "WM_EXITMENULOOP" , // 0x0212
461  "WM_NEXTMENU", // 0x0213
462  "WM_SIZING", // 0x0214
463  "WM_CAPTURECHANGED", // 0x0215
464  "WM_MOVING", // 0x0216
465  "",
466  "WM_POWERBROADCAST", // 0x0218
467  "WM_DEVICECHANGE", // 0x0219
468  "","","","","","",
469  "WM_MDICREATE", // 0x0220
470  "WM_MDIDESTROY", // 0x0221
471  "WM_MDIACTIVATE", // 0x0222
472  "WM_MDIRESTORE", // 0x0223
473  "WM_MDINEXT", // 0x0224
474  "WM_MDIMAXIMIZE", // 0x0225
475  "WM_MDITILE", // 0x0226
476  "WM_MDICASCADE", // 0x0227
477  "WM_MDIICONARRANGE", // 0x0228
478  "WM_MDIGETACTIVE", // 0x0229
479  "_WM_DROPOBJECT", // 0x022A, Win3.0, See "Undocumented Windows" (Addison-Wesley 1992)
480  "_WM_QUERYDROPOBJECT", // 0x022B, -"-
481  "_WM_BEGINDRAG", // 0x022C, -"-
482  "_WM_DRAGLOOP", // 0x022D, -"-
483  "_WM_DRAGSELECT", // 0x022E, -"-
484  "_WM_DRAGMOVE", // 0x022F, -"-
485  "WM_MDISETMENU", // 0x0230
486  "WM_ENTERSIZEMOVE", // 0x0231
487  "WM_EXITSIZEMOVE", // 0x0232
488  "WM_DROPFILES", // 0x0233
489  "WM_MDIREFRESHMENU", // 0x0234
490  "","","","","","","","","","","","","","","","","","","","","","","","","","",
491  "","","","","","","","","","","","","","","","","","","","","","","","","","",
492  "","","","","","","","","","","","","","","","","","","","","","","",
493  "WM_IME_REPORT", // 0x0280
494  "WM_IME_SETCONTEXT", // 0x0281
495  "WM_IME_NOTIFY", // 0x0282
496  "WM_IME_CONTROL", // 0x0283
497  "WM_IME_COMPOSITIONFULL", // 0x0284
498  "WM_IME_SELECT", // 0x0285
499  "WM_IME_CHAR", // 0x0286
500  "_WM_IME_SYSTEM", // 0x0287
501  "WM_IME_REQUEST", // 0x0288
502  "","","","","","","",
503  "WM_IME_KEYDOWN", // 0x0290
504  "WM_IME_KEYUP", // 0x0291
505  "","","","","","","","","","","","","","",
506  "WM_NCMOUSEHOVER", // 0x02A0
507  "WM_MOUSEHOVER", // 0x02A1
508  "WM_NCMOUSELEAVE", // 0x02A2
509  "WM_MOUSELEAVE", // 0x02A3
510  "","","","","","","","","","","","","",
511  "WM_WTSSESSION_CHANGE", // 0x02B1
512  "","","","","","","","","","","","","","","","","","","","","","","","","","",
513  "","","","","","","","","","","","","","","","","","","","","","","","","","",
514  "","","","","","","","","","","","","","","","","","","","","","","","","","",
515  "WM_CUT", // 0x0300
516  "WM_COPY", // 0x0301
517  "WM_PASTE", // 0x0302
518  "WM_CLEAR", // 0x0303
519  "WM_UNDO", // 0x0304
520  "WM_RENDERFORMAT", // 0x0305
521  "WM_RENDERALLFORMATS", // 0x0306
522  "WM_DESTROYCLIPBOARD", // 0x0307
523  "WM_DRAWCLIPBOARD", // 0x0308
524  "WM_PAINTCLIPBOARD", // 0x0309
525  "WM_VSCROLLCLIPBOARD", // 0x030A
526  "WM_SIZECLIPBOARD", // 0x030B
527  "WM_ASKCBFORMATNAME", // 0x030C
528  "WM_CHANGECBCHAIN", // 0x030D
529  "WM_HSCROLLCLIPBOARD", // 0x030E
530  "WM_QUERYNEWPALETTE", // 0x030F
531  "WM_PALETTEISCHANGING", // 0x0310
532  "WM_PALETTECHANGED", // 0x0311
533  "WM_HOTKEY", // 0x0312
534  "_WM_SYSMENU", // 0x0313, dubious, app msg ?
535  "_WM_HOOKMSG", // 0x0314, dubious, app msg ?
536  "_WM_EXITPROCESS", // 0x0315, dubious, app msg ?
537  "_WM_WAKETHREAD", // 0x0316, dubious, app msg ?
538  "WM_PRINT", // 0x0317
539  "WM_PRINTCLIENT", // 0x0318
540  "WM_APPCOMMAND", // 0x0319
541  "WM_THEMECHANGED", // 0x031A
542  "","",
543  "WM_CLIPBOARDUPDATE", // 0x031D
544  "WM_DWMCOMPOSITIONCHANGED", // 0x031E
545  "WM_DWMNCRENDERINGCHANGED", // 0x031F
546  "WM_DWMCOLORIZATIONCOLORCHANGED", // 0x0320
547  "WM_DWMWINDOWMAXIMIZEDCHANGE", // 0x0321
548  "","","","","","","","","","","","","","","","","","","","","","","","","","",
549  "","","",
550  "WM_GETTITLEBARINFOEX", // 0x033F
551  "","","","","","","","","","","","","","","","", // x340+
552  "","","","","","","","","","","","","","","","", // x350+, x358..35F -> WM_HANDHELD
553  "","","","","","","","","","","","","","","","", // x360+, WM_AFX
554  "","","","","","","","","","","","","","","","", // x370+
555  "","","","","","","","","","","","","","","","", // x380+, WM_PENWIN
556  "","","","","","","","","","","","","","","","", // x390+
557  "MM_JOY1MOVE", // 0x3A0
558  "MM_JOY2MOVE", // 0x3A1
559  "MM_JOY1ZMOVE", // 0x3A2
560  "MM_JOY2ZMOVE", // 0x3A3
561  "","","","","","","","","","","","", // x3A4..3AF
562  "","","","","", // x3B0..3B4
563  "MM_JOY1BUTTONDOWN", // 0x3B5
564  "MM_JOY2BUTTONDOWN", // 0x3B6
565  "MM_JOY1BUTTONUP", // 0x3B7
566  "MM_JOY2BUTTONUP", // 0x3B8
567  "MM_MCINOTIFY", // 0x3B9
568  "",
569  "MM_WOM_OPEN", // 0x3BB
570  "MM_WOM_CLOSE", // 0x3BC
571  "MM_WOM_DONE", // 0x3BD
572  "MM_WIM_OPEN", // 0x3BE
573  "MM_WIM_CLOSE", // 0x3BF
574  "MM_WIM_DATA", // 0x3C0
575  "MM_MIM_OPEN", // 0x3C1
576  "MM_MIM_CLOSE", // 0x3C2
577  "MM_MIM_DATA", // 0x3C3
578  "MM_MIM_LONGDATA", // 0x3C4
579  "MM_MIM_ERROR", // 0x3C5
580  "MM_MIM_LONGERROR", // 0x3C6
581  "MM_MOM_OPEN", // 0x3C7
582  "MM_MOM_CLOSE", // 0x3C8
583  "MM_MOM_DONE", // 0x3C9
584  "MM_MOM_POSITIONCB", // 0x3CA
585  "MM_MCISIGNAL", // 0x3CB
586  "MM_MIM_MOREDATA", // 0x3CC
587  "","","", // x3CD..3CF
588  "MM_DRVM_OPEN/MM_MIXM_LINE_CHANGE", // 0x3D0, Note the clash, a mishap..
589  "MM_DRVM_CLOSE/MM_MIXM_CONTROL_CHANGE", // 0x3D1, ..in the MM team.
590  "MM_DRVM_DATA", // 0x3D2
591  "MM_DRVM_ERROR", // x3D3
592  "MM_STREAM_OPEN", // 0x3D4
593  "MM_STREAM_CLOSE", // 0x3D5
594  "MM_STREAM_DONE", // 0x3D6
595  "MM_STREAM_ERROR", // 0x3D7
596  "","","","","","","","", // x3D8..3DF
597  "WM_DDE_INITIATE", // 0x03E0
598  "WM_DDE_TERMINATE", // 0x03E1
599  "WM_DDE_ADVISE", // 0x03E2
600  "WM_DDE_UNADVISE", // 0x03E3
601  "WM_DDE_ACK", // 0x03E4
602  "WM_DDE_DATA", // 0x03E5
603  "WM_DDE_REQUEST", // 0x03E6
604  "WM_DDE_POKE", // 0x03E7
605  "WM_DDE_EXECUTE", // 0x03E8
606  "","","","","","","","","","","","","","","","","","","","",
607  "WM_DBNOTIFICATION", // 0x03FD
608  "WM_NETCONNECT", // 0x03FE
609  "WM_HIBERNATE", // 0x03FF, WinCE
610 
611  // Common Controls have overlapping message ranges at WM_USER and up...
612  // However, for specific control debugging, you might temporarily add
613  // such control message definitions for the class you're debugging..
614 
615  #if 0 // F.ex here are the status bar messages..
616  "", // WM_USER (0x400)
617  "SB_SETTEXTA", // (WM_USER+1)
618  "SB_GETTEXTA", // (WM_USER+2)
619  "SB_GETTEXTLENGTHA", // (WM_USER+3)
620  "SB_SETPARTS", // (WM_USER+4)
621  ""
622  "SB_GETPARTS", // (WM_USER+6)
623  "SB_GETBORDERS", // (WM_USER+7)
624  "SB_SETMINHEIGHT", // (WM_USER+8)
625  "SB_SIMPLE", // (WM_USER+9)
626  "SB_GETRECT", // (WM_USER+10)
627  "SB_SETTEXTW", // (WM_USER+11)
628  "SB_GETTEXTLENGTHW", // (WM_USER+12)
629  "SB_GETTEXTW", // (WM_USER+13)
630  "SB_ISSIMPLE", // (WM_USER+14)
631  "SB_SETICON", // (WM_USER+15)
632  "SB_SETTIPTEXTA", // (WM_USER+16)
633  "SB_SETTIPTEXTW", // (WM_USER+17)
634  "SB_GETTIPTEXTA", // (WM_USER+18)
635  "SB_GETTIPTEXTW", // (WM_USER+19)
636  "SB_GETICON", // (WM_USER+20)
637  #endif
638 };
639 const UINT NrWinMsg = dimof(WinMsgNames); // 0x400
640 
642 {
643  //#define EXC_ENTRY( nn ) { nn, #nn }
644  #define EXC_ENTRY( nn ) { DWORD( nn & ALL_BITS ), #nn }
645  struct ExcStrItem { DWORD Id; ACSTR Name; }
646  static const KnownException[] =
647  {
648  EXC_ENTRY( EXCEPTION_ACCESS_VIOLATION ),
649  EXC_ENTRY( EXCEPTION_DATATYPE_MISALIGNMENT ),
650  EXC_ENTRY( EXCEPTION_BREAKPOINT ),
651  EXC_ENTRY( EXCEPTION_SINGLE_STEP ),
652  EXC_ENTRY( EXCEPTION_ARRAY_BOUNDS_EXCEEDED ),
653  EXC_ENTRY( EXCEPTION_FLT_DENORMAL_OPERAND ),
654  EXC_ENTRY( EXCEPTION_FLT_DIVIDE_BY_ZERO ),
655  EXC_ENTRY( EXCEPTION_FLT_INEXACT_RESULT ),
656  EXC_ENTRY( EXCEPTION_FLT_INVALID_OPERATION ),
657  EXC_ENTRY( EXCEPTION_FLT_OVERFLOW ),
658  EXC_ENTRY( EXCEPTION_FLT_STACK_CHECK ),
659  EXC_ENTRY( EXCEPTION_FLT_UNDERFLOW ),
660  EXC_ENTRY( EXCEPTION_INT_DIVIDE_BY_ZERO ),
661  EXC_ENTRY( EXCEPTION_INT_OVERFLOW ),
662  EXC_ENTRY( EXCEPTION_PRIV_INSTRUCTION ),
663  EXC_ENTRY( EXCEPTION_IN_PAGE_ERROR ),
664  EXC_ENTRY( EXCEPTION_ILLEGAL_INSTRUCTION ),
665  EXC_ENTRY( EXCEPTION_NONCONTINUABLE_EXCEPTION ),
666  EXC_ENTRY( EXCEPTION_STACK_OVERFLOW ),
667  EXC_ENTRY( EXCEPTION_INVALID_DISPOSITION ),
668  EXC_ENTRY( EXCEPTION_GUARD_PAGE ),
669  EXC_ENTRY( EXCEPTION_INVALID_HANDLE ),
670  EXC_ENTRY( EXCEPTION_POSSIBLE_DEADLOCK )
671  };
672  const UINT NrExc = dimof(KnownException);
673  #undef EXC_ENTRY
674 
675  for( UINT ix=0; ix < NrExc; ix++ )
676  if (xCode == KnownException[ix].Id)
677  return KnownException[ix].Name;
678 
679  static CHAR szName[ 40 ];
680  #pragma warning( disable: 4996 )
681  UINT ccName = _snprintf( szName, dimof(szName)-1, "Exception %08X", xCode );
682  #pragma warning( default: 4996 )
683  szName[ ccName ] = 0;
684  return szName;
685 }
686 
687 #endif //_DEBUG
689 // EOF
unsigned long DWORD
Definition: Common.h:414
const char * ACSTR
Definition: Common.h:345
unsigned short WORD
Definition: Common.h:413
CCASTR WinMsgNames[]
Definition: MsgTbl.cpp:71
#define dimof(x)
Definition: Common.h:949
const UINT NrWinMsg
Definition: MsgTbl.cpp:639
Debug and error handling support.
#define END_EXTERN_C
Definition: Common.h:221
#define BEGIN_EXTERN_C
Definition: Common.h:220
#define EXC_ENTRY(nn)
ACSTR GetWinMsgName(WORD msgId)
Definition: MsgTbl.cpp:37
ACSTR GetExceptionName(DWORD xCode)
Definition: MsgTbl.cpp:641
const ACSTR CCASTR
Definition: Common.h:350