21#if defined(__TRACE) || defined(__WARN)
27#define DEFINE_MESSAGE(wm) { wm, #wm }
30 { 0x0000,
"WM_NULL" },
31 { 0x0001,
"WM_CREATE" },
32 { 0x0002,
"WM_DESTROY" },
33 { 0x0003,
"WM_MOVE" },
34 { 0x0004,
"WM_SIZEWAIT" },
35 { 0x0005,
"WM_SIZE" },
36 { 0x0006,
"WM_ACTIVATE" },
37 { 0x0007,
"WM_SETFOCUS" },
38 { 0x0008,
"WM_KILLFOCUS" },
39 { 0x0009,
"WM_SETVISIBLE" },
40 { 0x000A,
"WM_ENABLE" },
41 { 0x000B,
"WM_SETREDRAW" },
42 { 0x000C,
"WM_SETTEXT" },
43 { 0x000D,
"WM_GETTEXT" },
44 { 0x000E,
"WM_GETTEXTLENGTH" },
45 { 0x000F,
"WM_PAINT" },
46 { 0x0010,
"WM_CLOSE" },
47 { 0x0011,
"WM_QUERYENDSESSION" },
48 { 0x0012,
"WM_QUIT" },
49 { 0x0013,
"WM_QUERYOPEN" },
50 { 0x0014,
"WM_ERASEBKGND" },
51 { 0x0015,
"WM_SYSCOLORCHANGE" },
52 { 0x0016,
"WM_ENDSESSION" },
53 { 0x0017,
"WM_SYSTEMERROR" },
54 { 0x0018,
"WM_SHOWWINDOW" },
55 { 0x0019,
"WM_CTLCOLOR" },
56 { 0x001A,
"WM_SETTINGCHANGE" },
57 { 0x001B,
"WM_DEVMODECHANGE" },
58 { 0x001C,
"WM_ACTIVATEAPP" },
59 { 0x001D,
"WM_FONTCHANGE" },
60 { 0x001E,
"WM_TIMECHANGE" },
61 { 0x001F,
"WM_CANCELMODE" },
62 { 0x0020,
"WM_SETCURSOR" },
63 { 0x0021,
"WM_MOUSEACTIVATE" },
64 { 0x0022,
"WM_CHILDACTIVATE" },
65 { 0x0023,
"WM_QUEUESYNC" },
66 { 0x0024,
"WM_GETMINMAXINFO" },
68 { 0x0026,
"WM_PAINTICON" },
69 { 0x0027,
"WM_ICONERASEBKGND" },
70 { 0x0028,
"WM_NEXTDLGCTL" },
71 { 0x0029,
"WM_ALTTABACTIVE" },
72 { 0x002A,
"WM_SPOOLERSTATUS" },
73 { 0x002B,
"WM_DRAWITEM" },
74 { 0x002C,
"WM_MEASUREITEM" },
75 { 0x002D,
"WM_DELETEITEM" },
76 { 0x002E,
"WM_VKEYTOITEM" },
77 { 0x002F,
"WM_CHARTOITEM" },
78 { 0x0030,
"WM_SETFONT" },
79 { 0x0031,
"WM_GETFONT" },
80 { 0x0032,
"WM_SETHOTKEY" },
81 { 0x0033,
"WM_GETHOTKEY" },
82 { 0x0034,
"WM_FILESYSCHANGE" },
83 { 0x0035,
"WM_ISACTIVEICON" },
84 { 0x0036,
"WM_QUERYPARKICON" },
85 { 0x0037,
"WM_QUERYDRAGICON" },
86 { 0x0038,
"WM_QUERYSAVESTATE" },
87 { 0x0039,
"WM_COMPAREITEM" },
88 { 0x0040,
"WM_TESTING" },
89 { 0x0041,
"WM_COMPACTING" },
90 { 0x0042,
"WM_OTHERWINDOWCREATED" },
91 { 0x0043,
"WM_OTHERWINDOWDESTROYED" },
92 { 0x0044,
"WM_COMMNOTIFY" },
93 { 0x0045,
"WM_HOTKEYEVENT" },
94 { 0x0046,
"WM_WINDOWPOSCHANGING" },
95 { 0x0047,
"WM_WINDOWPOSCHANGED" },
96 { 0x0048,
"WM_POWER" },
97 { 0x004A,
"WM_COPYDATA" },
98 { 0x004B,
"WM_CANCELJOURNAL" },
101 { 0x004E,
"WM_NOTIFY" },
103 { 0x0050,
"WM_INPUTLANGCHANGEREQUEST"},
104 { 0x0051,
"WM_INPUTLANGCHANGE" },
105 { 0x0052,
"WM_TCARD" },
106 { 0x0053,
"WM_HELP" },
107 { 0x0054,
"WM_USERCHANGED" },
108 { 0x0055,
"WM_NOTIFYFORMAT" },
110 { 0x007B,
"WM_CONTEXTMENU" },
111 { 0x007C,
"WM_STYLECHANGING" },
112 { 0x007D,
"WM_STYLECHANGED" },
113 { 0x007E,
"WM_DISPLAYCHANGED" },
114 { 0x007F,
"WM_GETICON" },
115 { 0x0080,
"WM_SETICON" },
116 { 0x0081,
"WM_NCCREATE" },
117 { 0x0082,
"WM_NCDESTROY" },
118 { 0x0083,
"WM_NCCALCSIZE" },
119 { 0x0084,
"WM_NCHITTEST" },
120 { 0x0085,
"WM_NCPAINT" },
121 { 0x0086,
"WM_NCACTIVATE" },
122 { 0x0087,
"WM_GETDLGCODE" },
123 { 0x0088,
"WM_SYNCPAINT" },
124 { 0x0089,
"WM_SYNCTASK" },
125 { 0x00A0,
"WM_NCMOUSEMOVE" },
126 { 0x00A1,
"WM_NCLBUTTONDOWN" },
127 { 0x00A2,
"WM_NCLBUTTONUP" },
128 { 0x00A3,
"WM_NCLBUTTONDBLCLK" },
129 { 0x00A4,
"WM_NCRBUTTONDOWN" },
130 { 0x00A5,
"WM_NCRBUTTONUP" },
131 { 0x00A6,
"WM_NCRBUTTONDBLCLK" },
132 { 0x00A7,
"WM_NCMBUTTONDOWN" },
133 { 0x00A8,
"WM_NCMBUTTONUP" },
134 { 0x00A9,
"WM_NCMBUTTONDBLCLK" },
136 { 0x0100,
"WM_KEYDOWN" },
137 { 0x0101,
"WM_KEYUP" },
138 { 0x0102,
"WM_CHAR" },
139 { 0x0103,
"WM_DEADCHAR" },
140 { 0x0104,
"WM_SYSKEYDOWN" },
141 { 0x0105,
"WM_SYSKEYUP" },
142 { 0x0106,
"WM_SYSCHAR" },
143 { 0x0107,
"WM_SYSDEADCHAR" },
144 { 0x0108,
"WM_YOMICHAR" },
146 { 0x010A,
"WM_CONVERTREQUEST" },
147 { 0x010B,
"WM_CONVERTRESULT" },
148 { 0x010C,
"WM_INTERIM" },
149 { 0x010D,
"WM_IME_STARTCOMPOSITION" },
150 { 0x010E,
"WM_IME_ENDCOMPOSITION" },
151 { 0x010F,
"WM_IME_COMPOSITION" },
152 { 0x010F,
"WM_IME_KEYLAST" },
153 { 0x0110,
"WM_INITDIALOG" },
154 { 0x0111,
"WM_COMMAND" },
155 { 0x0112,
"WM_SYSCOMMAND" },
156 { 0x0113,
"WM_TIMER" },
157 { 0x0114,
"WM_HSCROLL" },
158 { 0x0115,
"WM_VSCROLL" },
159 { 0x0116,
"WM_INITMENU" },
160 { 0x0117,
"WM_INITMENUPOPUP" },
161 { 0x0118,
"WM_SYSTIMER" },
163 { 0x011F,
"WM_MENUSELECT" },
164 { 0x0120,
"WM_MENUCHAR" },
165 { 0x0121,
"WM_ENTERIDLE" },
166 { 0x0131,
"WM_LBTRACKPOINT" },
167 { 0x0132,
"WM_CTLCOLORMSGBOX" },
168 { 0x0133,
"WM_CTLCOLOREDIT" },
169 { 0x0134,
"WM_CTLCOLORLISTBOX" },
170 { 0x0135,
"WM_CTLCOLORBTN" },
171 { 0x0136,
"WM_CTLCOLORDLG" },
172 { 0x0137,
"WM_CTLCOLORSCROLLBAR" },
173 { 0x0138,
"WM_CTLCOLORSTATIC" },
175 { 0x0200,
"WM_MOUSEMOVE" },
176 { 0x0201,
"WM_LBUTTONDOWN" },
177 { 0x0202,
"WM_LBUTTONUP" },
178 { 0x0203,
"WM_LBUTTONDBLCLK" },
179 { 0x0204,
"WM_RBUTTONDOWN" },
180 { 0x0205,
"WM_RBUTTONUP" },
181 { 0x0206,
"WM_RBUTTONDBLCLK" },
182 { 0x0207,
"WM_MBUTTONDOWN" },
183 { 0x0208,
"WM_MBUTTONUP" },
184 { 0x0209,
"WM_MBUTTONDBLCLK" },
185 { 0x020A,
"WM_MOUSEWHEEL" },
186 { 0x020E,
"WM_MOUSEHWHEEL" },
188 { 0x0210,
"WM_PARENTNOTIFY" },
189 { 0x0211,
"WM_ENTERMENULOOP" },
190 { 0x0212,
"WM_EXITMENULOOP" },
191 { 0x0213,
"WM_NEXTMENU" },
192 { 0x0214,
"WM_SIZING" },
193 { 0x0215,
"WM_CAPTURECHANGED" },
194 { 0x0216,
"WM_MOVING" },
196 { 0x0218,
"WM_POWERBROADCAST" },
197 { 0x0219,
"WM_DEVICECHANGE" },
199 { 0x0220,
"WM_MDICREATE" },
200 { 0x0221,
"WM_MDIDESTROY" },
201 { 0x0222,
"WM_MDIACTIVATE" },
202 { 0x0223,
"WM_MDIRESTORE" },
203 { 0x0224,
"WM_MDINEXT" },
204 { 0x0225,
"WM_MDIMAXIMIZE" },
205 { 0x0226,
"WM_MDITILE" },
206 { 0x0227,
"WM_MDICASCADE" },
207 { 0x0228,
"WM_MDIICONARRANGE" },
208 { 0x0229,
"WM_MDIGETACTIVE" },
209 { 0x022A,
"WM_DROPOBJECT" },
210 { 0x022B,
"WM_QUERYDROPOBJECT" },
211 { 0x022C,
"WM_BEGINDRAG" },
212 { 0x022D,
"WM_DRAGLOOP" },
213 { 0x022E,
"WM_DRAGSELECT" },
214 { 0x022F,
"WM_DRAGMOVE" },
215 { 0x0230,
"WM_MDISETMENU" },
216 { 0x0231,
"WM_ENTERSIZEMOVE" },
217 { 0x0232,
"WM_EXITSIZEMOVE" },
218 { 0x0233,
"WM_DROPFILES" },
219 { 0x0234,
"WM_MDIREFRESHMENU" },
221 { 0x0281,
"WM_IME_SETCONTEXT" },
222 { 0x0282,
"WM_IME_NOTIFY" },
223 { 0x0283,
"WM_IME_CONTROL" },
224 { 0x0284,
"WM_IME_COMPOSITIONFULL" },
225 { 0x0285,
"WM_IME_SELECT" },
226 { 0x0286,
"WM_IME_CHAR" },
227 { 0x0290,
"WM_IME_KEYDOWN" },
228 { 0x0291,
"WM_IME_KEYUP" },
230 { 0x02A0,
"WM_NCMOUSEHOVER" },
231 { 0x02A1,
"WM_MOUSEHOVER" },
232 { 0x02A2,
"WM_NCMOUSELEAVE" },
233 { 0x02A3,
"WM_MOUSELEAVE" },
235 { 0x0300,
"WM_CUT" },
236 { 0x0301,
"WM_COPY" },
237 { 0x0302,
"WM_PASTE" },
238 { 0x0303,
"WM_CLEAR" },
239 { 0x0304,
"WM_UNDO" },
240 { 0x0305,
"WM_RENDERFORMAT" },
241 { 0x0306,
"WM_RENDERALLFORMATS" },
242 { 0x0307,
"WM_DESTROYCLIPBOARD" },
243 { 0x0308,
"WM_DRAWCLIPBOARD" },
244 { 0x0309,
"WM_PAINTCLIPBOARD" },
245 { 0x030A,
"WM_VSCROLLCLIPBOARD" },
246 { 0x030B,
"WM_SIZECLIPBOARD" },
247 { 0x030C,
"WM_ASKCBFORMATNAME" },
248 { 0x030D,
"WM_CHANGECBCHAIN" },
249 { 0x030E,
"WM_HSCROLLCLIPBOARD" },
250 { 0x030F,
"WM_QUERYNEWPALETTE" },
251 { 0x0310,
"WM_PALETTEISCHANGING" },
252 { 0x0311,
"WM_PALETTECHANGED" },
253 { 0x0312,
"WM_HOTKEY" },
255 { 0x0317,
"WM_PRINT" },
256 { 0x0318,
"WM_PRINTCLIENT" },
258 { 0x031A,
"WM_THEMECHANGED" },
260 { 0x0358,
"WM_HANDHELDFIRST" },
262 { 0x035F,
"WM_HANDHELDLAST" },
263 { 0x0360,
"WM_AFXFIRST" },
265 { 0x037F,
"WM_AFXLAST" },
266 { 0x0380,
"WM_PENWINFIRST" },
268 { 0x038F,
"WM_PENWINLAST" },
270 { 0x03E0,
"WM_DDE_INITIATE" },
271 { 0x03E1,
"WM_DDE_TERMINATE" },
272 { 0x03E2,
"WM_DDE_ADVISE" },
273 { 0x03E3,
"WM_DDE_UNADVISE" },
274 { 0x03E4,
"WM_DDE_ACK" },
275 { 0x03E5,
"WM_DDE_DATA" },
276 { 0x03E6,
"WM_DDE_REQUEST" },
277 { 0x03E7,
"WM_DDE_POKE" },
278 { 0x03E8,
"WM_DDE_EXECUTE" },
280 { 0x0400,
"WM_USER" },
282 { 0x8000,
"WM_APP" },
325 msg.Message == 0x0118)
331 if (
msg.Message >= 0xC000){
336 return os <<
_T(
"Message ") <<
hex <<
msg.Message;
347 key.msg =
msg.Message;
355 return os <<
_A2W(item->str);
360 return os <<
_T(
"Message ") <<
hex <<
msg.Message;
376#if OWL_NEW_RESPONSE_TABLE
433 TEqualOperator
equal)
436 while (
entries->Dispatcher !=
nullptr) {
445 while (
entries->Dispatcher !=
nullptr) {
#define PRECONDITION(condition)
#define DIAG_DEFINE_GROUP_INIT(f, g, e, l)
A nested class, TEventInfo provides specific information about the type of message sent,...
virtual bool Find(TEventInfo &info, TEqualOperator op=0)
Searches the list of response table entries looking for a match.
TResult DispatchMsg(TMsgId, uint id, TParam1, TParam2)
Search for the event given the message and it and dispatch to the event handler if found.
bool SearchEntries(const TGenericTableEntry *entries, TEventInfo &info, TEqualOperator op)
Low-level response table search function.
TResult Dispatch(TEventInfo &info, TParam1, TParam2=0)
Takes the message data from TEventInfo's Msg data member and dispatches it to the correct event-handl...
A template class, TResponseTableEntry lets you define a pattern for entries into a response table.
#define WM_OWLWINDOWDOCKED
Notify window it was [un]docked/reparented.
#define WM_OWLSLIPDBLCLK
Notify parent of user dblclick of edge slip.
#define WM_OWLFRAMESIZE
Notify children of frame resizing.
#define WM_COMMAND_ENABLE
#define WM_OWLHELPHIT
Notify Help manager with hit point.
#define WM_OWLCREATETTIP
Notify gadget window to create tooltips.
#define WM_OWLPREPROCMENU
Definition of TEventHandler and related classes & macros.
Object Windows Library (OWLNext Core)
UINT TMsgId
Message ID type.
void(TGeneric::* TAnyPMF)()
owl::opstream & operator<<(owl::opstream &os, const TColor &c)
Insert the color value into a persistent output stream.
LPARAM TParam2
Second parameter type.
WPARAM TParam1
First parameter type.
LRESULT TResult
Result type.
General definitions used by all ObjectWindows programs.
#define COUNTOF(s)
Array element count Important: Only use this with an argument of array type.