3 * Copyright 1994, Bob Amstadt
9 #include <X11/Xresource.h>
17 #define SPY_MAX_MSGNUM 0x03e8
19 const char *MessageTypeNames
[SPY_MAX_MSGNUM
+ 1] =
37 "WM_CLOSE", /* 0x10 */
53 "WM_SETCURSOR", /* 0x20 */
69 "WM_SETFONT", /* 0x30 */
70 "WM_GETFONT", NULL
, NULL
, NULL
, NULL
, NULL
, NULL
,
71 NULL
, NULL
, NULL
, NULL
, NULL
, NULL
, NULL
, NULL
,
74 NULL
, NULL
, NULL
, NULL
, NULL
, NULL
,
75 "WM_WINDOWPOSCHANGING", /* 0x0046 */
76 "WM_WINDOWPOSCHANGED", /* 0x0047 */
77 NULL
, NULL
, NULL
, NULL
, NULL
, NULL
, NULL
, NULL
,
80 NULL
, NULL
, NULL
, NULL
, NULL
, NULL
, NULL
, NULL
,
81 NULL
, NULL
, NULL
, NULL
, NULL
, NULL
, NULL
, NULL
,
84 NULL
, NULL
, NULL
, NULL
, NULL
, NULL
, NULL
, NULL
,
85 NULL
, NULL
, NULL
, NULL
, NULL
, NULL
, NULL
, NULL
,
88 NULL
, NULL
, NULL
, NULL
, NULL
, NULL
, NULL
, NULL
,
89 NULL
, NULL
, NULL
, NULL
, NULL
, NULL
, NULL
, NULL
,
92 "WM_NCCREATE", /* 0x0081 */
93 "WM_NCDESTROY", /* 0x0082 */
94 "WM_NCCALCSIZE", /* 0x0083 */
95 "WM_NCHITTEST", /* 0x0084 */
96 "WM_NCPAINT", /* 0x0085 */
97 "WM_NCACTIVATE", /* 0x0086 */
98 "WM_GETDLGCODE", /* 0x0087 */
99 NULL
, NULL
, NULL
, NULL
, NULL
, NULL
, NULL
, NULL
,
102 NULL
, NULL
, NULL
, NULL
, NULL
, NULL
, NULL
, NULL
,
103 NULL
, NULL
, NULL
, NULL
, NULL
, NULL
, NULL
, NULL
,
106 "WM_NCMOUSEMOVE", /* 0x00A0 */
107 "WM_NCLBUTTONDOWN", /* 0x00A1 */
108 "WM_NCLBUTTONUP", /* 0x00A2 */
109 "WM_NCLBUTTONDBLCLK", /* 0x00A3 */
110 "WM_NCRBUTTONDOWN", /* 0x00A4 */
111 "WM_NCRBUTTONUP", /* 0x00A5 */
112 "WM_NCRBUTTONDBLCLK", /* 0x00A6 */
113 "WM_NCMBUTTONDOWN", /* 0x00A7 */
114 "WM_NCMBUTTONUP", /* 0x00A8 */
115 "WM_NCMBUTTONDBLCLK", /* 0x00A9 */
116 NULL
, NULL
, NULL
, NULL
, NULL
, NULL
,
119 NULL
, NULL
, NULL
, NULL
, NULL
, NULL
, NULL
, NULL
,
120 NULL
, NULL
, NULL
, NULL
, NULL
, NULL
, NULL
, NULL
,
123 NULL
, NULL
, NULL
, NULL
, NULL
, NULL
, NULL
, NULL
,
124 NULL
, NULL
, NULL
, NULL
, NULL
, NULL
, NULL
, NULL
,
127 NULL
, NULL
, NULL
, NULL
, NULL
, NULL
, NULL
, NULL
,
128 NULL
, NULL
, NULL
, NULL
, NULL
, NULL
, NULL
, NULL
,
131 NULL
, NULL
, NULL
, NULL
, NULL
, NULL
, NULL
, NULL
,
132 NULL
, NULL
, NULL
, NULL
, NULL
, NULL
, NULL
, NULL
,
135 NULL
, NULL
, NULL
, NULL
, NULL
, NULL
, NULL
, NULL
,
136 NULL
, NULL
, NULL
, NULL
, NULL
, NULL
, NULL
, NULL
,
138 "WM_KEYDOWN", /* 0x0100 */
139 "WM_KEYUP", /* 0x0101 */
140 "WM_CHAR", /* 0x0102 */
141 "WM_DEADCHAR", /* 0x0103 */
142 "WM_SYSKEYDOWN", /* 0x0104 */
143 "WM_SYSKEYUP", /* 0x0105 */
144 "WM_SYSCHAR", /* 0x0106 */
145 "WM_SYSDEADCHAR", /* 0x0107 */
146 "WM_KEYLAST", /* 0x0108 */
147 NULL
, NULL
, NULL
, NULL
, NULL
, NULL
, NULL
,
149 "WM_INITDIALOG", /* 0x0110 */
150 "WM_COMMAND", /* 0x0111 */
151 "WM_SYSCOMMAND", /* 0x0112 */
152 "WM_TIMER", /* 0x0113 */
153 "WM_HSCROLL", /* 0x0114 */
154 "WM_VSCROLL", /* 0x0115 */
155 "WM_INITMENU", /* 0x0116 */
156 "WM_INITMENUPOPUP", /* 0x0117 */
157 "WM_SYSTIMER", /* 0x0118 */
158 NULL
, NULL
, NULL
, NULL
, NULL
, NULL
,
159 "WM_MENUSELECT", /* 0x011f */
161 "WM_MENUCHAR", /* 0x0120 */
162 "WM_ENTERIDLE", /* 0x0121 */
163 NULL
, NULL
, NULL
, NULL
, NULL
, NULL
,
164 NULL
, NULL
, NULL
, NULL
, NULL
, NULL
, NULL
, NULL
,
167 NULL
, NULL
, NULL
, NULL
, NULL
, NULL
, NULL
, NULL
,
168 NULL
, NULL
, NULL
, NULL
, NULL
, NULL
, NULL
, NULL
,
171 NULL
, NULL
, NULL
, NULL
, NULL
, NULL
, NULL
, NULL
,
172 NULL
, NULL
, NULL
, NULL
, NULL
, NULL
, NULL
, NULL
,
175 NULL
, NULL
, NULL
, NULL
, NULL
, NULL
, NULL
, NULL
,
176 NULL
, NULL
, NULL
, NULL
, NULL
, NULL
, NULL
, NULL
,
179 NULL
, NULL
, NULL
, NULL
, NULL
, NULL
, NULL
, NULL
,
180 NULL
, NULL
, NULL
, NULL
, NULL
, NULL
, NULL
, NULL
,
183 NULL
, NULL
, NULL
, NULL
, NULL
, NULL
, NULL
, NULL
,
184 NULL
, NULL
, NULL
, NULL
, NULL
, NULL
, NULL
, NULL
,
187 NULL
, NULL
, NULL
, NULL
, NULL
, NULL
, NULL
, NULL
,
188 NULL
, NULL
, NULL
, NULL
, NULL
, NULL
, NULL
, NULL
,
191 NULL
, NULL
, NULL
, NULL
, NULL
, NULL
, NULL
, NULL
,
192 NULL
, NULL
, NULL
, NULL
, NULL
, NULL
, NULL
, NULL
,
195 NULL
, NULL
, NULL
, NULL
, NULL
, NULL
, NULL
, NULL
,
196 NULL
, NULL
, NULL
, NULL
, NULL
, NULL
, NULL
, NULL
,
199 NULL
, NULL
, NULL
, NULL
, NULL
, NULL
, NULL
, NULL
,
200 NULL
, NULL
, NULL
, NULL
, NULL
, NULL
, NULL
, NULL
,
203 NULL
, NULL
, NULL
, NULL
, NULL
, NULL
, NULL
, NULL
,
204 NULL
, NULL
, NULL
, NULL
, NULL
, NULL
, NULL
, NULL
,
207 NULL
, NULL
, NULL
, NULL
, NULL
, NULL
, NULL
, NULL
,
208 NULL
, NULL
, NULL
, NULL
, NULL
, NULL
, NULL
, NULL
,
211 NULL
, NULL
, NULL
, NULL
, NULL
, NULL
, NULL
, NULL
,
212 NULL
, NULL
, NULL
, NULL
, NULL
, NULL
, NULL
, NULL
,
215 NULL
, NULL
, NULL
, NULL
, NULL
, NULL
, NULL
, NULL
,
216 NULL
, NULL
, NULL
, NULL
, NULL
, NULL
, NULL
, NULL
,
218 "WM_MOUSEMOVE", /* 0x0200 */
219 "WM_LBUTTONDOWN", /* 0x0201 */
220 "WM_LBUTTONUP", /* 0x0202 */
221 "WM_LBUTTONDBLCLK", /* 0x0203 */
222 "WM_RBUTTONDOWN", /* 0x0204 */
223 "WM_RBUTTONUP", /* 0x0205 */
224 "WM_RBUTTONDBLCLK", /* 0x0206 */
225 "WM_MBUTTONDOWN", /* 0x0207 */
226 "WM_MBUTTONUP", /* 0x0208 */
227 "WM_MBUTTONDBLCLK", /* 0x0209 */
228 NULL
, NULL
, NULL
, NULL
, NULL
, NULL
,
230 "WM_PARENTNOTIFY", /* 0x0210 */
231 "WM_ENTERMENULOOP", /* 0x0211 */
232 "WM_EXITMENULOOP", /* 0x0212 */
233 NULL
, NULL
, NULL
, NULL
, NULL
,
234 NULL
, NULL
, NULL
, NULL
, NULL
, NULL
, NULL
, NULL
,
236 "WM_MDICREATE", /* 0x0220 */
237 "WM_MDIDESTROY", /* 0x0221 */
238 "WM_MDIACTIVATE", /* 0x0222 */
239 "WM_MDIRESTORE", /* 0x0223 */
240 "WM_MDINEXT", /* 0x0224 */
241 "WM_MDIMAXIMIZE", /* 0x0225 */
242 "WM_MDITILE", /* 0x0226 */
243 "WM_MDICASCADE", /* 0x0227 */
244 "WM_MDIICONARRANGE", /* 0x0228 */
245 "WM_MDIGETACTIVE", /* 0x0229 */
247 NULL
, NULL
, NULL
, NULL
, NULL
, NULL
,
249 "WM_MDISETMENU", /* 0x0230 */
250 "WM_ENTERSIZEMOVE", /* 0x0231 */
251 "WM_EXITSIZEMOVE", /* 0x0232 */
252 NULL
, NULL
, NULL
, NULL
, NULL
,
254 NULL
, NULL
, NULL
, NULL
, NULL
, NULL
, NULL
, NULL
,
257 NULL
, NULL
, NULL
, NULL
, NULL
, NULL
, NULL
, NULL
,
258 NULL
, NULL
, NULL
, NULL
, NULL
, NULL
, NULL
, NULL
,
261 NULL
, NULL
, NULL
, NULL
, NULL
, NULL
, NULL
, NULL
,
262 NULL
, NULL
, NULL
, NULL
, NULL
, NULL
, NULL
, NULL
,
265 NULL
, NULL
, NULL
, NULL
, NULL
, NULL
, NULL
, NULL
,
266 NULL
, NULL
, NULL
, NULL
, NULL
, NULL
, NULL
, NULL
,
267 NULL
, NULL
, NULL
, NULL
, NULL
, NULL
, NULL
, NULL
,
268 NULL
, NULL
, NULL
, NULL
, NULL
, NULL
, NULL
, NULL
,
271 NULL
, NULL
, NULL
, NULL
, NULL
, NULL
, NULL
, NULL
,
272 NULL
, NULL
, NULL
, NULL
, NULL
, NULL
, NULL
, NULL
,
273 NULL
, NULL
, NULL
, NULL
, NULL
, NULL
, NULL
, NULL
,
274 NULL
, NULL
, NULL
, NULL
, NULL
, NULL
, NULL
, NULL
,
276 NULL
, NULL
, NULL
, NULL
, NULL
, NULL
, NULL
, NULL
,
277 NULL
, NULL
, NULL
, NULL
, NULL
, NULL
, NULL
, NULL
,
278 NULL
, NULL
, NULL
, NULL
, NULL
, NULL
, NULL
, NULL
,
279 NULL
, NULL
, NULL
, NULL
, NULL
, NULL
, NULL
, NULL
,
282 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
,
285 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
,
289 NULL
, NULL
, NULL
, NULL
, NULL
, NULL
, NULL
, NULL
,
290 NULL
, NULL
, NULL
, NULL
, NULL
, NULL
, NULL
, NULL
,
293 NULL
, NULL
, NULL
, NULL
, NULL
, NULL
, NULL
, NULL
,
294 NULL
, NULL
, NULL
, NULL
, NULL
, NULL
, NULL
, NULL
,
295 NULL
, NULL
, NULL
, NULL
, NULL
, NULL
, NULL
, NULL
,
296 NULL
, NULL
, NULL
, NULL
, NULL
, NULL
, NULL
, NULL
,
298 NULL
, NULL
, NULL
, NULL
, NULL
, NULL
, NULL
, NULL
,
299 NULL
, NULL
, NULL
, NULL
, NULL
, NULL
, NULL
, NULL
,
300 NULL
, NULL
, NULL
, NULL
, NULL
, NULL
, NULL
, NULL
,
301 NULL
, NULL
, NULL
, NULL
, NULL
, NULL
, NULL
, NULL
,
304 NULL
, NULL
, NULL
, NULL
, NULL
, NULL
, NULL
, NULL
,
305 NULL
, NULL
, NULL
, NULL
, NULL
, NULL
, NULL
, NULL
,
306 NULL
, NULL
, NULL
, NULL
, NULL
, NULL
, NULL
, NULL
,
307 NULL
, NULL
, NULL
, NULL
, NULL
, NULL
, NULL
, NULL
,
309 NULL
, NULL
, NULL
, NULL
, NULL
, NULL
, NULL
, NULL
,
310 NULL
, NULL
, NULL
, NULL
, NULL
, NULL
, NULL
, NULL
,
311 NULL
, NULL
, NULL
, NULL
, NULL
, NULL
, NULL
, NULL
,
312 NULL
, NULL
, NULL
, NULL
, NULL
, NULL
, NULL
, NULL
,
315 NULL
, NULL
, NULL
, NULL
, NULL
, NULL
, NULL
, NULL
,
316 NULL
, NULL
, NULL
, NULL
, NULL
, NULL
, NULL
, NULL
,
317 NULL
, NULL
, NULL
, NULL
, NULL
, NULL
, NULL
, NULL
,
318 NULL
, NULL
, NULL
, NULL
, NULL
, NULL
, NULL
, NULL
,
320 NULL
, NULL
, NULL
, NULL
, NULL
, NULL
, NULL
, NULL
,
321 NULL
, NULL
, NULL
, NULL
, NULL
, NULL
, NULL
, NULL
,
322 NULL
, NULL
, NULL
, NULL
, NULL
, NULL
, NULL
, NULL
,
323 NULL
, NULL
, NULL
, NULL
, NULL
, NULL
, NULL
, NULL
,
326 NULL
, NULL
, NULL
, NULL
, NULL
, NULL
, NULL
, NULL
,
327 NULL
, NULL
, NULL
, NULL
, NULL
, NULL
, NULL
, NULL
,
328 NULL
, NULL
, NULL
, NULL
, NULL
, NULL
, NULL
, NULL
,
329 NULL
, NULL
, NULL
, NULL
, NULL
, NULL
, NULL
, NULL
,
332 "WM_DDE_INITIATE", /* 0x3E0 */
333 "WM_DDE_TERMINATE", /* 0x3E1 */
334 "WM_DDE_ADVISE", /* 0x3E2 */
335 "WM_DDE_UNADVISE", /* 0x3E3 */
336 "WM_DDE_ACK", /* 0x3E4 */
337 "WM_DDE_DATA", /* 0x3E5 */
338 "WM_DDE_REQUEST", /* 0x3E6 */
339 "WM_DDE_POKE", /* 0x3E7 */
340 "WM_DDE_EXECUTE" /* 0x3E8 */
343 char SpyFilters
[256+1];
344 char SpyIncludes
[256+1];
346 /**********************************************************************
349 void SpyMessage(HWND hwnd
, WORD msg
, WORD wParam
, LONG lParam
)
356 if (msg
> SPY_MAX_MSGNUM
|| MessageTypeNames
[msg
] == NULL
)
357 sprintf(msg_name
, "%04x", msg
);
359 strcpy(msg_name
, MessageTypeNames
[msg
]);
361 strcat(msg_name
, ";");
363 if ((strlen(SpyIncludes
) == 0 || strstr(SpyIncludes
, msg_name
) != NULL
) &&
364 strstr(SpyFilters
, msg_name
) == NULL
)
366 msg_name
[strlen(msg_name
) - 1] = '\0';
367 dprintf_spy(stddeb
, "%04x %20.20s %04x %04x %08lx\n",
368 hwnd
, msg_name
, msg
, wParam
, lParam
);
372 /**********************************************************************
377 GetPrivateProfileString("spy", "exclude", "", SpyFilters
,
378 sizeof(SpyFilters
)-1, WINE_INI
);
379 GetPrivateProfileString("spy", "include", "", SpyIncludes
,
380 sizeof(SpyIncludes
)-1, WINE_INI
);
382 if (*SpyIncludes
!= 0) {
383 strcat(SpyIncludes
, ";");
385 if (*SpyFilters
!= 0) {
386 strcat(SpyFilters
, ";");