2 * Message spying routines
4 * Copyright 1994, Bob Amstadt
8 #define NO_TRANSITION_TYPES /* This file is Win32-clean */
19 #define SPY_MAX_MSGNUM WM_USER
20 #define SPY_INDENT_UNIT 4 /* 4 spaces */
22 static const char * const MessageTypeNames
[SPY_MAX_MSGNUM
+ 1] =
40 "WM_CLOSE", /* 0x10 */
56 "WM_SETCURSOR", /* 0x20 */
72 "WM_SETFONT", /* 0x30 */
84 "wm_otherwindowcreated",
85 "wm_otherwindowdestroyed",
86 "wm_activateshellwindow",
90 "wm_compacting", NULL
, NULL
,
91 "WM_COMMNOTIFY", NULL
,
92 "WM_WINDOWPOSCHANGING", /* 0x0046 */
93 "WM_WINDOWPOSCHANGED", /* 0x0047 */
96 "WM_CANCELJOURNAL", NULL
, NULL
, NULL
, NULL
,
99 NULL
, NULL
, NULL
, NULL
, NULL
, NULL
, NULL
,
100 NULL
, NULL
, NULL
, NULL
, NULL
, NULL
, NULL
, NULL
,
103 NULL
, NULL
, NULL
, NULL
, NULL
, NULL
, NULL
, NULL
,
104 NULL
, NULL
, NULL
, NULL
, NULL
, NULL
, NULL
, NULL
,
107 NULL
, NULL
, NULL
, NULL
, NULL
, NULL
, NULL
, NULL
,
108 NULL
, NULL
, NULL
, NULL
, NULL
, NULL
, NULL
, NULL
,
111 "WM_NCCREATE", /* 0x0081 */
112 "WM_NCDESTROY", /* 0x0082 */
113 "WM_NCCALCSIZE", /* 0x0083 */
114 "WM_NCHITTEST", /* 0x0084 */
115 "WM_NCPAINT", /* 0x0085 */
116 "WM_NCACTIVATE", /* 0x0086 */
117 "WM_GETDLGCODE", /* 0x0087 */
119 "wm_synctask", NULL
, NULL
, NULL
, NULL
, NULL
, NULL
,
122 NULL
, NULL
, NULL
, NULL
, NULL
, NULL
, NULL
, NULL
,
123 NULL
, NULL
, NULL
, NULL
, NULL
, NULL
, NULL
, NULL
,
126 "WM_NCMOUSEMOVE", /* 0x00A0 */
127 "WM_NCLBUTTONDOWN", /* 0x00A1 */
128 "WM_NCLBUTTONUP", /* 0x00A2 */
129 "WM_NCLBUTTONDBLCLK", /* 0x00A3 */
130 "WM_NCRBUTTONDOWN", /* 0x00A4 */
131 "WM_NCRBUTTONUP", /* 0x00A5 */
132 "WM_NCRBUTTONDBLCLK", /* 0x00A6 */
133 "WM_NCMBUTTONDOWN", /* 0x00A7 */
134 "WM_NCMBUTTONUP", /* 0x00A8 */
135 "WM_NCMBUTTONDBLCLK", /* 0x00A9 */
136 NULL
, NULL
, NULL
, NULL
, NULL
, NULL
,
138 /* 0x00B0 - Win32 Edit controls */
139 NULL
, NULL
, NULL
, NULL
, NULL
, NULL
, NULL
, NULL
,
140 NULL
, NULL
, NULL
, NULL
, NULL
, NULL
, NULL
, NULL
,
143 NULL
, NULL
, NULL
, NULL
, NULL
, NULL
, NULL
, NULL
,
144 NULL
, NULL
, NULL
, NULL
, NULL
, NULL
, NULL
, NULL
,
147 NULL
, NULL
, NULL
, NULL
, NULL
, NULL
, NULL
, NULL
,
148 NULL
, NULL
, NULL
, NULL
, NULL
, NULL
, NULL
, NULL
,
150 /* 0x00E0 - Win32 Scrollbars */
151 NULL
, NULL
, NULL
, NULL
, NULL
, NULL
, NULL
, NULL
,
152 NULL
, NULL
, NULL
, NULL
, NULL
, NULL
, NULL
, NULL
,
154 /* 0x00F0 - Win32 Buttons */
155 "BM_GETCHECK32", /* 0x00f0 */
156 "BM_SETCHECK32", /* 0x00f1 */
157 "BM_GETSTATE32", /* 0x00f2 */
158 "BM_SETSTATE32", /* 0x00f3 */
159 "BM_SETSTYLE32", /* 0x00f4 */
160 "BM_CLICK32", /* 0x00f5 */
161 "BM_GETIMAGE32", /* 0x00f6 */
162 "BM_SETIMAGE32", /* 0x00f7 */
163 NULL
, NULL
, NULL
, NULL
, NULL
, NULL
, NULL
, NULL
,
165 "WM_KEYDOWN", /* 0x0100 */
166 "WM_KEYUP", /* 0x0101 */
167 "WM_CHAR", /* 0x0102 */
168 "WM_DEADCHAR", /* 0x0103 */
169 "WM_SYSKEYDOWN", /* 0x0104 */
170 "WM_SYSKEYUP", /* 0x0105 */
171 "WM_SYSCHAR", /* 0x0106 */
172 "WM_SYSDEADCHAR", /* 0x0107 */
173 "WM_KEYLAST", /* 0x0108 */
177 "WM_INTERIM", NULL
, NULL
, NULL
,
179 "WM_INITDIALOG", /* 0x0110 */
180 "WM_COMMAND", /* 0x0111 */
181 "WM_SYSCOMMAND", /* 0x0112 */
182 "WM_TIMER", /* 0x0113 */
183 "WM_HSCROLL", /* 0x0114 */
184 "WM_VSCROLL", /* 0x0115 */
185 "WM_INITMENU", /* 0x0116 */
186 "WM_INITMENUPOPUP", /* 0x0117 */
187 "WM_SYSTIMER", /* 0x0118 */
188 NULL
, NULL
, NULL
, NULL
, NULL
, NULL
,
189 "WM_MENUSELECT", /* 0x011f */
191 "WM_MENUCHAR", /* 0x0120 */
192 "WM_ENTERIDLE", /* 0x0121 */
193 NULL
, NULL
, NULL
, NULL
, NULL
, NULL
,
194 NULL
, NULL
, NULL
, NULL
, NULL
, NULL
, NULL
, NULL
,
198 "wm_lbtrackpoint", /* 0x0131 */
199 "WM_CTLCOLORMSGBOX", /* 0x0132 */
200 "WM_CTLCOLOREDIT", /* 0x0133 */
201 "WM_CTLCOLORLISTBOX", /* 0x0134 */
202 "WM_CTLCOLORBTN", /* 0x0135 */
203 "WM_CTLCOLORDLG", /* 0x0136 */
204 "WM_CTLCOLORSCROLLBAR", /* 0x0137 */
205 "WM_CTLCOLORSTATIC", /* 0x0138 */
206 NULL
, NULL
, NULL
, NULL
, NULL
, NULL
, NULL
,
208 /* 0x0140 - Win32 Comboboxes */
209 NULL
, NULL
, NULL
, NULL
, NULL
, NULL
, NULL
, NULL
,
210 NULL
, NULL
, NULL
, NULL
, NULL
, NULL
, NULL
, NULL
,
213 NULL
, NULL
, NULL
, NULL
, NULL
, NULL
, NULL
, NULL
,
214 NULL
, NULL
, NULL
, NULL
, NULL
, NULL
, NULL
, NULL
,
217 NULL
, NULL
, NULL
, NULL
, NULL
, NULL
, NULL
, NULL
,
218 NULL
, NULL
, NULL
, NULL
, NULL
, NULL
, NULL
, NULL
,
220 /* 0x0170 - Win32 Static controls */
221 NULL
, NULL
, NULL
, NULL
, NULL
, NULL
, NULL
, NULL
,
222 NULL
, NULL
, NULL
, NULL
, NULL
, NULL
, NULL
, NULL
,
224 /* 0x0180 - Win32 Listboxes */
225 "LB_ADDSTRING32", /* 0x0180 */
226 "LB_INSERTSTRING32", /* 0x0181 */
227 "LB_DELETESTRING32", /* 0x0182 */
228 "LB_SELITEMRANGEEX32", /* 0x0183 */
229 "LB_RESETCONTENT32", /* 0x0184 */
230 "LB_SETSEL32", /* 0x0185 */
231 "LB_SETCURSEL32", /* 0x0186 */
232 "LB_GETSEL32", /* 0x0187 */
233 "LB_GETCURSEL32", /* 0x0188 */
234 "LB_GETTEXT32", /* 0x0189 */
235 "LB_GETTEXTLEN32", /* 0x018a */
236 "LB_GETCOUNT32", /* 0x018b */
237 "LB_SELECTSTRING32", /* 0x018c */
238 "LB_DIR32", /* 0x018d */
239 "LB_GETTOPINDEX32", /* 0x018e */
240 "LB_FINDSTRING32", /* 0x018f */
242 "LB_GETSELCOUNT32", /* 0x0190 */
243 "LB_GETSELITEMS32", /* 0x0191 */
244 "LB_SETTABSTOPS32", /* 0x0192 */
245 "LB_GETHORIZONTALEXTENT32", /* 0x0193 */
246 "LB_SETHORIZONTALEXTENT32", /* 0x0194 */
247 "LB_SETCOLUMNWIDTH32", /* 0x0195 */
248 "LB_ADDFILE32", /* 0x0196 */
249 "LB_SETTOPINDEX32", /* 0x0197 */
250 "LB_GETITEMRECT32", /* 0x0198 */
251 "LB_GETITEMDATA32", /* 0x0199 */
252 "LB_SETITEMDATA32", /* 0x019a */
253 "LB_SELITEMRANGE32", /* 0x019b */
254 "LB_SETANCHORINDEX32", /* 0x019c */
255 "LB_GETANCHORINDEX32", /* 0x019d */
256 "LB_SETCARETINDEX32", /* 0x019e */
257 "LB_GETCARETINDEX32", /* 0x019f */
259 "LB_SETITEMHEIGHT32", /* 0x01a0 */
260 "LB_GETITEMHEIGHT32", /* 0x01a1 */
261 "LB_FINDSTRINGEXACT32", /* 0x01a2 */
263 "LB_SETLOCALE32", /* 0x01a5 */
264 "LB_GETLOCALE32", /* 0x01a6 */
265 "LB_SETCOUNT32", /* 0x01a7 */
266 "LB_INITSTORAGE32", /* 0x01a8 */
267 "LB_ITEMFROMPOINT32", /* 0x01a9 */
268 NULL
, NULL
, NULL
, NULL
, NULL
, NULL
,
271 NULL
, NULL
, NULL
, NULL
, NULL
, NULL
, NULL
, NULL
,
272 NULL
, NULL
, NULL
, NULL
, NULL
, NULL
, NULL
, NULL
,
275 NULL
, NULL
, NULL
, NULL
, NULL
, NULL
, NULL
, NULL
,
276 NULL
, NULL
, NULL
, NULL
, NULL
, NULL
, NULL
, NULL
,
279 NULL
, NULL
, NULL
, NULL
, NULL
, NULL
, NULL
, NULL
,
280 NULL
, NULL
, NULL
, NULL
, NULL
, NULL
, NULL
, NULL
,
283 NULL
, NULL
, NULL
, NULL
, NULL
, NULL
, NULL
, NULL
,
284 NULL
, NULL
, NULL
, NULL
, NULL
, NULL
, NULL
, NULL
,
287 NULL
, NULL
, NULL
, NULL
, NULL
, NULL
, NULL
, NULL
,
288 NULL
, NULL
, NULL
, NULL
, NULL
, NULL
, NULL
, NULL
,
290 "WM_MOUSEMOVE", /* 0x0200 */
291 "WM_LBUTTONDOWN", /* 0x0201 */
292 "WM_LBUTTONUP", /* 0x0202 */
293 "WM_LBUTTONDBLCLK", /* 0x0203 */
294 "WM_RBUTTONDOWN", /* 0x0204 */
295 "WM_RBUTTONUP", /* 0x0205 */
296 "WM_RBUTTONDBLCLK", /* 0x0206 */
297 "WM_MBUTTONDOWN", /* 0x0207 */
298 "WM_MBUTTONUP", /* 0x0208 */
299 "WM_MBUTTONDBLCLK", /* 0x0209 */
300 NULL
, NULL
, NULL
, NULL
, NULL
, NULL
,
302 "WM_PARENTNOTIFY", /* 0x0210 */
303 "WM_ENTERMENULOOP", /* 0x0211 */
304 "WM_EXITMENULOOP", /* 0x0212 */
305 "wm_nextmenu", /* 0x0213 */
306 NULL
, NULL
, NULL
, NULL
,
307 NULL
, NULL
, NULL
, NULL
, NULL
, NULL
, NULL
, NULL
,
309 "WM_MDICREATE", /* 0x0220 */
310 "WM_MDIDESTROY", /* 0x0221 */
311 "WM_MDIACTIVATE", /* 0x0222 */
312 "WM_MDIRESTORE", /* 0x0223 */
313 "WM_MDINEXT", /* 0x0224 */
314 "WM_MDIMAXIMIZE", /* 0x0225 */
315 "WM_MDITILE", /* 0x0226 */
316 "WM_MDICASCADE", /* 0x0227 */
317 "WM_MDIICONARRANGE", /* 0x0228 */
318 "WM_MDIGETACTIVE", /* 0x0229 */
321 "wm_querydropobject",
328 "WM_MDISETMENU", /* 0x0230 */
329 "WM_ENTERSIZEMOVE", /* 0x0231 */
330 "WM_EXITSIZEMOVE", /* 0x0232 */
331 "WM_DROPFILES", /* 0x0233 */
332 "WM_MDIREFRESHMENU", NULL
, NULL
, NULL
,
334 NULL
, NULL
, NULL
, NULL
, NULL
, NULL
, NULL
, NULL
,
337 NULL
, NULL
, NULL
, NULL
, NULL
, NULL
, NULL
, NULL
,
338 NULL
, NULL
, NULL
, NULL
, NULL
, NULL
, NULL
, NULL
,
341 NULL
, NULL
, NULL
, NULL
, NULL
, NULL
, NULL
, NULL
,
342 NULL
, NULL
, NULL
, NULL
, NULL
, NULL
, NULL
, NULL
,
345 NULL
, NULL
, NULL
, NULL
, NULL
, NULL
, NULL
, NULL
,
346 NULL
, NULL
, NULL
, NULL
, NULL
, NULL
, NULL
, NULL
,
347 NULL
, NULL
, NULL
, NULL
, NULL
, NULL
, NULL
, NULL
,
348 NULL
, NULL
, NULL
, NULL
, NULL
, NULL
, NULL
, NULL
,
351 NULL
, NULL
, NULL
, NULL
, NULL
, NULL
, NULL
, NULL
,
352 NULL
, NULL
, NULL
, NULL
, NULL
, NULL
, NULL
, NULL
,
353 NULL
, NULL
, NULL
, NULL
, NULL
, NULL
, NULL
, NULL
,
354 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
,
358 NULL
, NULL
, NULL
, NULL
, NULL
, NULL
, NULL
, NULL
,
359 NULL
, NULL
, NULL
, NULL
, NULL
, NULL
, NULL
, NULL
,
362 NULL
, NULL
, NULL
, NULL
, NULL
, NULL
, NULL
, NULL
,
363 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
,
367 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
,
370 NULL
, NULL
, NULL
, NULL
, NULL
, NULL
, NULL
, NULL
,
372 "WM_CUT", /* 0x0300 */
378 "WM_RENDERALLFORMATS",
379 "WM_DESTROYCLIPBOARD",
382 "WM_VSCROLLCLIPBOARD",
384 "WM_ASKCBFORMATNAME",
386 "WM_HSCROLLCLIPBOARD",
387 "WM_QUERYNEWPALETTE", /* 0x030f*/
389 "WM_PALETTEISCHANGING",
391 "WM_HOTKEY", /* 0x0312 */
392 NULL
, NULL
, NULL
, NULL
, NULL
, NULL
,
393 NULL
, NULL
, NULL
, NULL
, NULL
, NULL
, NULL
,
395 NULL
, NULL
, NULL
, NULL
, NULL
, NULL
, NULL
, NULL
,
396 NULL
, NULL
, NULL
, NULL
, NULL
, NULL
, NULL
, NULL
,
397 NULL
, NULL
, NULL
, NULL
, NULL
, NULL
, NULL
, NULL
,
398 NULL
, NULL
, NULL
, NULL
, NULL
, NULL
, NULL
, NULL
,
401 NULL
, NULL
, NULL
, NULL
, NULL
, NULL
, NULL
, NULL
,
402 NULL
, NULL
, NULL
, NULL
, NULL
, NULL
, NULL
, NULL
,
403 NULL
, NULL
, NULL
, NULL
, NULL
, NULL
, NULL
, NULL
,
404 NULL
, NULL
, NULL
, NULL
, NULL
, NULL
, NULL
, NULL
,
406 NULL
, NULL
, NULL
, NULL
, NULL
, NULL
, NULL
, NULL
,
407 NULL
, NULL
, NULL
, NULL
, NULL
, NULL
, NULL
, NULL
,
408 NULL
, NULL
, NULL
, NULL
, NULL
, NULL
, NULL
, NULL
,
409 NULL
, NULL
, NULL
, NULL
, NULL
, NULL
, NULL
, NULL
,
419 NULL
, NULL
, NULL
, NULL
, NULL
, NULL
, NULL
, NULL
,
422 NULL
, NULL
, NULL
, NULL
, NULL
, NULL
, NULL
,
423 NULL
, NULL
, NULL
, NULL
, NULL
, NULL
, NULL
,
426 NULL
, NULL
, NULL
, NULL
, NULL
, NULL
, NULL
, NULL
,
427 NULL
, NULL
, NULL
, NULL
, NULL
, NULL
, NULL
, NULL
,
428 NULL
, NULL
, NULL
, NULL
, NULL
, NULL
, NULL
, NULL
,
429 NULL
, NULL
, NULL
, NULL
, NULL
, NULL
, NULL
, NULL
,
432 NULL
, NULL
, NULL
, NULL
, NULL
, NULL
, NULL
, NULL
,
433 NULL
, NULL
, NULL
, NULL
, NULL
, NULL
, NULL
, NULL
,
434 NULL
, NULL
, NULL
, NULL
, NULL
, NULL
, NULL
, NULL
,
435 NULL
, NULL
, NULL
, NULL
, NULL
, NULL
, NULL
, NULL
,
438 "WM_DDE_INITIATE", /* 0x3E0 */
439 "WM_DDE_TERMINATE", /* 0x3E1 */
440 "WM_DDE_ADVISE", /* 0x3E2 */
441 "WM_DDE_UNADVISE", /* 0x3E3 */
442 "WM_DDE_ACK", /* 0x3E4 */
443 "WM_DDE_DATA", /* 0x3E5 */
444 "WM_DDE_REQUEST", /* 0x3E6 */
445 "WM_DDE_POKE", /* 0x3E7 */
446 "WM_DDE_EXECUTE", /* 0x3E8 */
447 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
,
458 static BOOL16 SPY_Exclude
[SPY_MAX_MSGNUM
+1];
459 static int SPY_IndentLevel
= 0;
461 #define SPY_EXCLUDE(msg) \
462 (SPY_Exclude[(msg) > SPY_MAX_MSGNUM ? SPY_MAX_MSGNUM : (msg)])
464 /***********************************************************************
467 const char *SPY_GetMsgName( UINT32 msg
)
469 static char buffer
[20];
471 if (msg
<= SPY_MAX_MSGNUM
)
473 if (!MessageTypeNames
[msg
]) return "???";
474 return MessageTypeNames
[msg
];
476 sprintf( buffer
, "WM_USER+%04x", msg
- WM_USER
);
481 /***********************************************************************
484 void SPY_EnterMessage( INT32 iFlag
, HWND32 hWnd
, UINT32 msg
,
485 WPARAM32 wParam
, LPARAM lParam
)
487 if (!debugging_message
|| SPY_EXCLUDE(msg
)) return;
489 /* each SPY_SENDMESSAGE must be complemented by call to SPY_ExitMessage */
492 case SPY_DISPATCHMESSAGE16
:
493 dprintf_message(stddeb
,"%*s(%04x) message [%04x] %s dispatched wp=%04x lp=%08lx\n",
494 SPY_IndentLevel
, "", hWnd
, msg
, SPY_GetMsgName( msg
),
498 case SPY_DISPATCHMESSAGE32
:
499 dprintf_message(stddeb
,"%*s(%08x) message [%04x] %s dispatched wp=%08x lp=%08lx\n",
500 SPY_IndentLevel
, "", hWnd
, msg
, SPY_GetMsgName( msg
),
504 case SPY_SENDMESSAGE16
:
505 case SPY_SENDMESSAGE32
:
508 HTASK16 hTask
= GetWindowTask16(hWnd
);
509 if (hTask
== GetCurrentTask()) strcpy( taskName
, "self" );
510 else if (!hTask
) strcpy( taskName
, "Wine" );
511 else sprintf( taskName
, "task %04x %s",
512 hTask
, MODULE_GetModuleName( GetExePtr(hTask
) ) );
514 if (iFlag
== SPY_SENDMESSAGE16
)
515 dprintf_message(stddeb
,"%*s(%04x) message [%04x] %s sent from %s wp=%04x lp=%08lx\n",
516 SPY_IndentLevel
, "", hWnd
, msg
,
517 SPY_GetMsgName( msg
), taskName
, wParam
,
520 dprintf_message(stddeb
,"%*s(%08x) message [%04x] %s sent from %s wp=%08x lp=%08lx\n",
521 SPY_IndentLevel
, "", hWnd
, msg
,
522 SPY_GetMsgName( msg
), taskName
, wParam
,
527 case SPY_DEFWNDPROC16
:
528 dprintf_message(stddeb
, "%*s(%04x) DefWindowProc: %s [%04x] wp=%04x lp=%08lx\n",
529 SPY_IndentLevel
, "", hWnd
, SPY_GetMsgName( msg
),
530 msg
, wParam
, lParam
);
533 case SPY_DEFWNDPROC32
:
534 dprintf_message(stddeb
, "%*s(%08x) DefWindowProc: %s [%04x] wp=%08x lp=%08lx\n",
535 SPY_IndentLevel
, "", hWnd
, SPY_GetMsgName( msg
),
536 msg
, wParam
, lParam
);
539 SPY_IndentLevel
+= SPY_INDENT_UNIT
;
543 /***********************************************************************
546 void SPY_ExitMessage( INT32 iFlag
, HWND32 hWnd
, UINT32 msg
, LRESULT lReturn
)
548 if (!debugging_message
|| SPY_EXCLUDE(msg
)) return;
549 if (SPY_IndentLevel
) SPY_IndentLevel
-= SPY_INDENT_UNIT
;
553 case SPY_RESULT_OK16
:
554 dprintf_message(stddeb
,"%*s(%04x) message [%04x] %s returned %08lx\n",
555 SPY_IndentLevel
, "", hWnd
, msg
,
556 SPY_GetMsgName( msg
), lReturn
);
558 case SPY_RESULT_OK32
:
559 dprintf_message(stddeb
,"%*s(%08x) message [%04x] %s returned %08lx\n",
560 SPY_IndentLevel
, "", hWnd
, msg
,
561 SPY_GetMsgName( msg
), lReturn
);
563 case SPY_RESULT_INVALIDHWND16
:
564 dprintf_message(stddeb
,"%*s(%04x) message [%04x] %s HAS INVALID HWND\n",
565 SPY_IndentLevel
, "", hWnd
, msg
,
566 SPY_GetMsgName( msg
) );
568 case SPY_RESULT_INVALIDHWND32
:
569 dprintf_message(stddeb
,"%*s(%08x) message [%04x] %s HAS INVALID HWND\n",
570 SPY_IndentLevel
, "", hWnd
, msg
,
571 SPY_GetMsgName( msg
) );
577 /***********************************************************************
585 PROFILE_GetWineIniString( "Spy", "Include", "", buffer
, sizeof(buffer
) );
586 if (buffer
[0] && strcmp( buffer
, "INCLUDEALL" ))
588 dprintf_message( stddeb
, "SpyInit: Include=%s\n", buffer
);
589 for (i
= 0; i
<= SPY_MAX_MSGNUM
; i
++)
590 SPY_Exclude
[i
] = (MessageTypeNames
[i
] && !strstr(buffer
,MessageTypeNames
[i
]));
593 PROFILE_GetWineIniString( "Spy", "Exclude", "", buffer
, sizeof(buffer
) );
596 dprintf_message( stddeb
, "SpyInit: Exclude=%s\n", buffer
);
597 if (!strcmp( buffer
, "EXCLUDEALL" ))
598 for (i
= 0; i
<= SPY_MAX_MSGNUM
; i
++) SPY_Exclude
[i
] = TRUE
;
600 for (i
= 0; i
<= SPY_MAX_MSGNUM
; i
++)
601 SPY_Exclude
[i
] = (MessageTypeNames
[i
] && strstr(buffer
,MessageTypeNames
[i
]));