2 * Message spying routines
4 * Copyright 1994, Bob Amstadt
18 #define SPY_MAX_MSGNUM WM_USER
19 #define SPY_INDENT_UNIT 4 /* 4 spaces */
21 static const char * const MessageTypeNames[SPY_MAX_MSGNUM + 1] =
39 "WM_CLOSE", /* 0x10 */
55 "WM_SETCURSOR", /* 0x20 */
71 "WM_SETFONT", /* 0x30 */
83 "wm_otherwindowcreated",
84 "wm_otherwindowdestroyed",
85 "wm_activateshellwindow",
89 "wm_compacting", NULL, NULL,
90 "WM_COMMNOTIFY", NULL,
91 "WM_WINDOWPOSCHANGING", /* 0x0046 */
92 "WM_WINDOWPOSCHANGED", /* 0x0047 */
95 "WM_CANCELJOURNAL", NULL, NULL,
99 "WM_INPUTLANGCHANGEREQUEST",
100 "WM_INPUTLANGCHANGE",
104 "WM_NOTIFYFORMAT", NULL, NULL,
105 NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
108 NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
109 NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
112 NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
120 "WM_SETICON", /* 0x0080 */
121 "WM_NCCREATE", /* 0x0081 */
122 "WM_NCDESTROY", /* 0x0082 */
123 "WM_NCCALCSIZE", /* 0x0083 */
124 "WM_NCHITTEST", /* 0x0084 */
125 "WM_NCPAINT", /* 0x0085 */
126 "WM_NCACTIVATE", /* 0x0086 */
127 "WM_GETDLGCODE", /* 0x0087 */
129 "wm_synctask", NULL, NULL, NULL, NULL, NULL, NULL,
132 NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
133 NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
136 "WM_NCMOUSEMOVE", /* 0x00A0 */
137 "WM_NCLBUTTONDOWN", /* 0x00A1 */
138 "WM_NCLBUTTONUP", /* 0x00A2 */
139 "WM_NCLBUTTONDBLCLK", /* 0x00A3 */
140 "WM_NCRBUTTONDOWN", /* 0x00A4 */
141 "WM_NCRBUTTONUP", /* 0x00A5 */
142 "WM_NCRBUTTONDBLCLK", /* 0x00A6 */
143 "WM_NCMBUTTONDOWN", /* 0x00A7 */
144 "WM_NCMBUTTONUP", /* 0x00A8 */
145 "WM_NCMBUTTONDBLCLK", /* 0x00A9 */
146 NULL, NULL, NULL, NULL, NULL, NULL,
148 /* 0x00B0 - Win32 Edit controls */
149 "EM_GETSEL32", /* 0x00b0 */
150 "EM_SETSEL32", /* 0x00b1 */
151 "EM_GETRECT32", /* 0x00b2 */
152 "EM_SETRECT32", /* 0x00b3 */
153 "EM_SETRECTNP32", /* 0x00b4 */
154 "EM_SCROLL32", /* 0x00b5 */
155 "EM_LINESCROLL32", /* 0x00b6 */
156 "EM_SCROLLCARET32", /* 0x00b7 */
157 "EM_GETMODIFY32", /* 0x00b8 */
158 "EM_SETMODIFY32", /* 0x00b9 */
159 "EM_GETLINECOUNT32", /* 0x00ba */
160 "EM_LINEINDEX32", /* 0x00bb */
161 "EM_SETHANDLE32", /* 0x00bc */
162 "EM_GETHANDLE32", /* 0x00bd */
163 "EM_GETTHUMB32", /* 0x00be */
167 "EM_LINELENGTH32", /* 0x00c1 */
168 "EM_REPLACESEL32", /* 0x00c2 */
170 "EM_GETLINE32", /* 0x00c4 */
171 "EM_LIMITTEXT32", /* 0x00c5 */
172 "EM_CANUNDO32", /* 0x00c6 */
173 "EM_UNDO32", /* 0x00c7 */
174 "EM_FMTLINES32", /* 0x00c8 */
175 "EM_LINEFROMCHAR32", /* 0x00c9 */
177 "EM_SETTABSTOPS32", /* 0x00cb */
178 "EM_SETPASSWORDCHAR32", /* 0x00cc */
179 "EM_EMPTYUNDOBUFFER32", /* 0x00cd */
180 "EM_GETFIRSTVISIBLELINE32", /* 0x00ce */
181 "EM_SETREADONLY32", /* 0x00cf */
183 "EM_SETWORDBREAKPROC32", /* 0x00d0 */
184 "EM_GETWORDBREAKPROC32", /* 0x00d1 */
185 "EM_GETPASSWORDCHAR32", /* 0x00d2 */
186 "EM_SETMARGINS32", /* 0x00d3 */
187 "EM_GETMARGINS32", /* 0x00d4 */
188 "EM_GETLIMITTEXT32", /* 0x00d5 */
189 "EM_POSFROMCHAR32", /* 0x00d6 */
190 "EM_CHARFROMPOS32", /* 0x00d7 */
191 NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
193 /* 0x00E0 - Win32 Scrollbars */
194 "SBM_SETPOS32", /* 0x00e0 */
195 "SBM_GETPOS32", /* 0x00e1 */
196 "SBM_SETRANGE32", /* 0x00e2 */
197 "SBM_GETRANGE32", /* 0x00e3 */
198 "SBM_ENABLE_ARROWS32", /* 0x00e4 */
200 "SBM_SETRANGEREDRAW32", /* 0x00e6 */
202 "SBM_SETSCROLLINFO32", /* 0x00e9 */
203 "SBM_GETSCROLLINFO32", /* 0x00ea */
204 NULL, NULL, NULL, NULL, NULL,
206 /* 0x00F0 - Win32 Buttons */
207 "BM_GETCHECK32", /* 0x00f0 */
208 "BM_SETCHECK32", /* 0x00f1 */
209 "BM_GETSTATE32", /* 0x00f2 */
210 "BM_SETSTATE32", /* 0x00f3 */
211 "BM_SETSTYLE32", /* 0x00f4 */
212 "BM_CLICK32", /* 0x00f5 */
213 "BM_GETIMAGE32", /* 0x00f6 */
214 "BM_SETIMAGE32", /* 0x00f7 */
215 NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
217 "WM_KEYDOWN", /* 0x0100 */
218 "WM_KEYUP", /* 0x0101 */
219 "WM_CHAR", /* 0x0102 */
220 "WM_DEADCHAR", /* 0x0103 */
221 "WM_SYSKEYDOWN", /* 0x0104 */
222 "WM_SYSKEYUP", /* 0x0105 */
223 "WM_SYSCHAR", /* 0x0106 */
224 "WM_SYSDEADCHAR", /* 0x0107 */
225 "WM_KEYLAST", /* 0x0108 */
229 "WM_INTERIM", NULL, NULL, NULL,
231 "WM_INITDIALOG", /* 0x0110 */
232 "WM_COMMAND", /* 0x0111 */
233 "WM_SYSCOMMAND", /* 0x0112 */
234 "WM_TIMER", /* 0x0113 */
235 "WM_HSCROLL", /* 0x0114 */
236 "WM_VSCROLL", /* 0x0115 */
237 "WM_INITMENU", /* 0x0116 */
238 "WM_INITMENUPOPUP", /* 0x0117 */
239 "WM_SYSTIMER", /* 0x0118 */
240 NULL, NULL, NULL, NULL, NULL, NULL,
241 "WM_MENUSELECT", /* 0x011f */
243 "WM_MENUCHAR", /* 0x0120 */
244 "WM_ENTERIDLE", /* 0x0121 */
245 NULL, NULL, NULL, NULL, NULL, NULL,
246 NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
250 "wm_lbtrackpoint", /* 0x0131 */
251 "WM_CTLCOLORMSGBOX", /* 0x0132 */
252 "WM_CTLCOLOREDIT", /* 0x0133 */
253 "WM_CTLCOLORLISTBOX", /* 0x0134 */
254 "WM_CTLCOLORBTN", /* 0x0135 */
255 "WM_CTLCOLORDLG", /* 0x0136 */
256 "WM_CTLCOLORSCROLLBAR", /* 0x0137 */
257 "WM_CTLCOLORSTATIC", /* 0x0138 */
258 NULL, NULL, NULL, NULL, NULL, NULL, NULL,
260 /* 0x0140 - Win32 Comboboxes */
261 "CB_GETEDITSEL32", /* 0x0140 */
262 "CB_LIMITTEXT32", /* 0x0141 */
263 "CB_SETEDITSEL32", /* 0x0142 */
264 "CB_ADDSTRING32", /* 0x0143 */
265 "CB_DELETESTRING32", /* 0x0144 */
266 "CB_DIR32", /* 0x0145 */
267 "CB_GETCOUNT32", /* 0x0146 */
268 "CB_GETCURSEL32", /* 0x0147 */
269 "CB_GETLBTEXT32", /* 0x0148 */
270 "CB_GETLBTEXTLEN32", /* 0x0149 */
271 "CB_INSERTSTRING32", /* 0x014a */
272 "CB_RESETCONTENT32", /* 0x014b */
273 "CB_FINDSTRING32", /* 0x014c */
274 "CB_SELECTSTRING32", /* 0x014d */
275 "CB_SETCURSEL32", /* 0x014e */
276 "CB_SHOWDROPDOWN32", /* 0x014f */
278 "CB_GETITEMDATA32", /* 0x0150 */
279 "CB_SETITEMDATA32", /* 0x0151 */
280 "CB_GETDROPPEDCONTROLRECT32",/* 0x0152 */
281 "CB_SETITEMHEIGHT32", /* 0x0153 */
282 "CB_GETITEMHEIGHT32", /* 0x0154 */
283 "CB_SETEXTENDEDUI32", /* 0x0155 */
284 "CB_GETEXTENDEDUI32", /* 0x0156 */
285 "CB_GETDROPPEDSTATE32", /* 0x0157 */
286 "CB_FINDSTRINGEXACT32", /* 0x0158 */
287 "CB_SETLOCALE32", /* 0x0159 */
288 "CB_GETLOCALE32", /* 0x015a */
289 "CB_GETTOPINDEX32", /* 0x015b */
290 "CB_SETTOPINDEX32", /* 0x015c */
291 "CB_GETHORIZONTALEXTENT32", /* 0x015d */
292 "CB_SETHORIZONTALEXTENT32", /* 0x015e */
293 "CB_GETDROPPEDWIDTH32", /* 0x015f */
295 "CB_SETDROPPEDWIDTH32", /* 0x0160 */
296 "CB_INITSTORAGE32", /* 0x0161 */
297 NULL, NULL, NULL, NULL, NULL, NULL,
298 NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
300 /* 0x0170 - Win32 Static controls */
301 NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
302 NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
304 /* 0x0180 - Win32 Listboxes */
305 "LB_ADDSTRING32", /* 0x0180 */
306 "LB_INSERTSTRING32", /* 0x0181 */
307 "LB_DELETESTRING32", /* 0x0182 */
308 "LB_SELITEMRANGEEX32", /* 0x0183 */
309 "LB_RESETCONTENT32", /* 0x0184 */
310 "LB_SETSEL32", /* 0x0185 */
311 "LB_SETCURSEL32", /* 0x0186 */
312 "LB_GETSEL32", /* 0x0187 */
313 "LB_GETCURSEL32", /* 0x0188 */
314 "LB_GETTEXT32", /* 0x0189 */
315 "LB_GETTEXTLEN32", /* 0x018a */
316 "LB_GETCOUNT32", /* 0x018b */
317 "LB_SELECTSTRING32", /* 0x018c */
318 "LB_DIR32", /* 0x018d */
319 "LB_GETTOPINDEX32", /* 0x018e */
320 "LB_FINDSTRING32", /* 0x018f */
322 "LB_GETSELCOUNT32", /* 0x0190 */
323 "LB_GETSELITEMS32", /* 0x0191 */
324 "LB_SETTABSTOPS32", /* 0x0192 */
325 "LB_GETHORIZONTALEXTENT32", /* 0x0193 */
326 "LB_SETHORIZONTALEXTENT32", /* 0x0194 */
327 "LB_SETCOLUMNWIDTH32", /* 0x0195 */
328 "LB_ADDFILE32", /* 0x0196 */
329 "LB_SETTOPINDEX32", /* 0x0197 */
330 "LB_GETITEMRECT32", /* 0x0198 */
331 "LB_GETITEMDATA32", /* 0x0199 */
332 "LB_SETITEMDATA32", /* 0x019a */
333 "LB_SELITEMRANGE32", /* 0x019b */
334 "LB_SETANCHORINDEX32", /* 0x019c */
335 "LB_GETANCHORINDEX32", /* 0x019d */
336 "LB_SETCARETINDEX32", /* 0x019e */
337 "LB_GETCARETINDEX32", /* 0x019f */
339 "LB_SETITEMHEIGHT32", /* 0x01a0 */
340 "LB_GETITEMHEIGHT32", /* 0x01a1 */
341 "LB_FINDSTRINGEXACT32", /* 0x01a2 */
342 "LB_CARETON32", /* 0x01a3 */
343 "LB_CARETOFF32", /* 0x01a4 */
344 "LB_SETLOCALE32", /* 0x01a5 */
345 "LB_GETLOCALE32", /* 0x01a6 */
346 "LB_SETCOUNT32", /* 0x01a7 */
347 "LB_INITSTORAGE32", /* 0x01a8 */
348 "LB_ITEMFROMPOINT32", /* 0x01a9 */
349 NULL, NULL, NULL, NULL, NULL, NULL,
352 NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
353 NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
356 NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
357 NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
360 NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
361 NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
364 NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
365 NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
368 NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
369 NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
371 "WM_MOUSEMOVE", /* 0x0200 */
372 "WM_LBUTTONDOWN", /* 0x0201 */
373 "WM_LBUTTONUP", /* 0x0202 */
374 "WM_LBUTTONDBLCLK", /* 0x0203 */
375 "WM_RBUTTONDOWN", /* 0x0204 */
376 "WM_RBUTTONUP", /* 0x0205 */
377 "WM_RBUTTONDBLCLK", /* 0x0206 */
378 "WM_MBUTTONDOWN", /* 0x0207 */
379 "WM_MBUTTONUP", /* 0x0208 */
380 "WM_MBUTTONDBLCLK", /* 0x0209 */
381 NULL, NULL, NULL, NULL, NULL, NULL,
383 "WM_PARENTNOTIFY", /* 0x0210 */
384 "WM_ENTERMENULOOP", /* 0x0211 */
385 "WM_EXITMENULOOP", /* 0x0212 */
386 "wm_nextmenu", /* 0x0213 */
391 "WM_DEVICECHANGE", NULL, NULL, NULL, NULL, NULL, NULL,
393 "WM_MDICREATE", /* 0x0220 */
394 "WM_MDIDESTROY", /* 0x0221 */
395 "WM_MDIACTIVATE", /* 0x0222 */
396 "WM_MDIRESTORE", /* 0x0223 */
397 "WM_MDINEXT", /* 0x0224 */
398 "WM_MDIMAXIMIZE", /* 0x0225 */
399 "WM_MDITILE", /* 0x0226 */
400 "WM_MDICASCADE", /* 0x0227 */
401 "WM_MDIICONARRANGE", /* 0x0228 */
402 "WM_MDIGETACTIVE", /* 0x0229 */
405 "wm_querydropobject",
412 "WM_MDISETMENU", /* 0x0230 */
413 "WM_ENTERSIZEMOVE", /* 0x0231 */
414 "WM_EXITSIZEMOVE", /* 0x0232 */
415 "WM_DROPFILES", /* 0x0233 */
416 "WM_MDIREFRESHMENU", NULL, NULL, NULL,
418 NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
421 NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
422 NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
425 NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
426 NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
429 NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
430 NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
431 NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
432 NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
435 NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
436 NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
437 NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
438 NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
440 NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
441 NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
442 NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
443 NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
446 NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
447 NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
448 NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
449 NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
451 NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
452 NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
453 NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
454 NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
456 "WM_CUT", /* 0x0300 */
462 "WM_RENDERALLFORMATS",
463 "WM_DESTROYCLIPBOARD",
466 "WM_VSCROLLCLIPBOARD",
468 "WM_ASKCBFORMATNAME",
470 "WM_HSCROLLCLIPBOARD",
471 "WM_QUERYNEWPALETTE", /* 0x030f*/
473 "WM_PALETTEISCHANGING",
475 "WM_HOTKEY", /* 0x0312 */
476 NULL, NULL, NULL, NULL,
479 NULL, NULL, NULL, NULL, NULL, NULL, NULL,
481 NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
482 NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
483 NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
484 NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
487 NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
488 NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
489 NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
490 NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
492 NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
493 NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
494 NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
495 NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
505 NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
508 NULL, NULL, NULL, NULL, NULL, NULL, NULL,
509 NULL, NULL, NULL, NULL, NULL, NULL, NULL,
517 NULL, NULL, NULL, NULL,
518 NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
521 NULL, NULL, NULL, NULL, NULL,
545 NULL, NULL, NULL, NULL, NULL, NULL,
546 NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
547 NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
550 "WM_DDE_INITIATE", /* 0x3E0 */
551 "WM_DDE_TERMINATE", /* 0x3E1 */
552 "WM_DDE_ADVISE", /* 0x3E2 */
553 "WM_DDE_UNADVISE", /* 0x3E3 */
554 "WM_DDE_ACK", /* 0x3E4 */
555 "WM_DDE_DATA", /* 0x3E5 */
556 "WM_DDE_REQUEST", /* 0x3E6 */
557 "WM_DDE_POKE", /* 0x3E7 */
558 "WM_DDE_EXECUTE", /* 0x3E8 */
559 NULL, NULL, NULL, NULL, NULL, NULL, NULL,
563 NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
564 NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
570 static BOOL16 SPY_Exclude[SPY_MAX_MSGNUM+1];
571 static int SPY_IndentLevel = 0;
573 #define SPY_EXCLUDE(msg) \
574 (SPY_Exclude[(msg) > SPY_MAX_MSGNUM ? SPY_MAX_MSGNUM : (msg)])
576 /***********************************************************************
579 const char *SPY_GetMsgName( UINT32 msg )
581 static char buffer[20];
583 if (msg <= SPY_MAX_MSGNUM)
585 if (!MessageTypeNames[msg]) return "???";
586 return MessageTypeNames[msg];
588 sprintf( buffer, "WM_USER+%04x", msg - WM_USER );
593 /***********************************************************************
596 void SPY_EnterMessage( INT32 iFlag, HWND32 hWnd, UINT32 msg,
597 WPARAM32 wParam, LPARAM lParam )
599 if (!debugging_message || SPY_EXCLUDE(msg)) return;
601 /* each SPY_SENDMESSAGE must be complemented by call to SPY_ExitMessage */
604 case SPY_DISPATCHMESSAGE16:
605 dprintf_message(stddeb,"%*s(%04x) message [%04x] %s dispatched wp=%04x lp=%08lx\n",
606 SPY_IndentLevel, "", hWnd, msg, SPY_GetMsgName( msg ),
610 case SPY_DISPATCHMESSAGE32:
611 dprintf_message(stddeb,"%*s(%08x) message [%04x] %s dispatched wp=%08x lp=%08lx\n",
612 SPY_IndentLevel, "", hWnd, msg, SPY_GetMsgName( msg ),
616 case SPY_SENDMESSAGE16:
617 case SPY_SENDMESSAGE32:
620 HTASK16 hTask = GetWindowTask16(hWnd);
621 if (hTask == GetCurrentTask()) strcpy( taskName, "self" );
622 else if (!hTask) strcpy( taskName, "Wine" );
623 else sprintf( taskName, "task %04x %s",
624 hTask, MODULE_GetModuleName( GetExePtr(hTask) ) );
626 if (iFlag == SPY_SENDMESSAGE16)
627 dprintf_message(stddeb,"%*s(%04x) message [%04x] %s sent from %s wp=%04x lp=%08lx\n",
628 SPY_IndentLevel, "", hWnd, msg,
629 SPY_GetMsgName( msg ), taskName, wParam,
632 dprintf_message(stddeb,"%*s(%08x) message [%04x] %s sent from %s wp=%08x lp=%08lx\n",
633 SPY_IndentLevel, "", hWnd, msg,
634 SPY_GetMsgName( msg ), taskName, wParam,
639 case SPY_DEFWNDPROC16:
640 dprintf_message(stddeb, "%*s(%04x) DefWindowProc: %s [%04x] wp=%04x lp=%08lx\n",
641 SPY_IndentLevel, "", hWnd, SPY_GetMsgName( msg ),
642 msg, wParam, lParam );
645 case SPY_DEFWNDPROC32:
646 dprintf_message(stddeb, "%*s(%08x) DefWindowProc: %s [%04x] wp=%08x lp=%08lx\n",
647 SPY_IndentLevel, "", hWnd, SPY_GetMsgName( msg ),
648 msg, wParam, lParam );
651 SPY_IndentLevel += SPY_INDENT_UNIT;
655 /***********************************************************************
658 void SPY_ExitMessage( INT32 iFlag, HWND32 hWnd, UINT32 msg, LRESULT lReturn )
660 if (!debugging_message || SPY_EXCLUDE(msg)) return;
661 if (SPY_IndentLevel) SPY_IndentLevel -= SPY_INDENT_UNIT;
665 case SPY_RESULT_OK16:
666 dprintf_message(stddeb,"%*s(%04x) message [%04x] %s returned %08lx\n",
667 SPY_IndentLevel, "", hWnd, msg,
668 SPY_GetMsgName( msg ), lReturn );
670 case SPY_RESULT_OK32:
671 dprintf_message(stddeb,"%*s(%08x) message [%04x] %s returned %08lx\n",
672 SPY_IndentLevel, "", hWnd, msg,
673 SPY_GetMsgName( msg ), lReturn );
675 case SPY_RESULT_INVALIDHWND16:
676 dprintf_message(stddeb,"%*s(%04x) message [%04x] %s HAS INVALID HWND\n",
677 SPY_IndentLevel, "", hWnd, msg,
678 SPY_GetMsgName( msg ) );
680 case SPY_RESULT_INVALIDHWND32:
681 dprintf_message(stddeb,"%*s(%08x) message [%04x] %s HAS INVALID HWND\n",
682 SPY_IndentLevel, "", hWnd, msg,
683 SPY_GetMsgName( msg ) );
689 /***********************************************************************
697 PROFILE_GetWineIniString( "Spy", "Include", "", buffer, sizeof(buffer) );
698 if (buffer[0] && strcmp( buffer, "INCLUDEALL" ))
700 dprintf_message( stddeb, "SpyInit: Include=%s\n", buffer );
701 for (i = 0; i <= SPY_MAX_MSGNUM; i++)
702 SPY_Exclude[i] = (MessageTypeNames[i] && !strstr(buffer,MessageTypeNames[i]));
705 PROFILE_GetWineIniString( "Spy", "Exclude", "", buffer, sizeof(buffer) );
708 dprintf_message( stddeb, "SpyInit: Exclude=%s\n", buffer );
709 if (!strcmp( buffer, "EXCLUDEALL" ))
710 for (i = 0; i <= SPY_MAX_MSGNUM; i++) SPY_Exclude[i] = TRUE;
712 for (i = 0; i <= SPY_MAX_MSGNUM; i++)
713 SPY_Exclude[i] = (MessageTypeNames[i] && strstr(buffer,MessageTypeNames[i]));