|
|
1.1 root 1: :userdoc.
2: :prolog.
3: :docprof toc=1.
4: :title.Spy32 Help Panels
5: :eprolog.
6: :toc.
7: :body.
8: #include "help.h"
9: .***************************************************************
10: :h1 res=HLP_SPY1.About Spy32
11: :i1 id=Spy.Spy
12: :p.
13: Spy is a debugging tool who's main purpose, is to display the window messages
14: that are sent to one or more windows.
15: :p.
16: Spy watches the messages that a window receives by hooking the
17: the HK_INPUT and HK_SENDMSG hooks
18: :p.
19: In addition to displaying the messages that are sent to windows, spy also
20: allows you to display information about windows, queues, accelerator tables.
21: Spy also provides a way to convert addresses into symbolic names.
22: :p.
23: See :hpt.Display Format:ehpt.:hdref RES=HLP_MSGFMT. for the message display
24: format.
25: .***************************************************************
26: :h1 res=HLP_MSGFMT.Message Display Format
27: :i1 id=MFmt.Message Display Format
28: :p.
29: This section describes the format of how the messages are displayed.
30: The begining of each line, is common to all messages, regardless of which
31: message it is. The first two characters, shows the origins of the
32: message as follow&colon.
33: :sl compact.
34: :li.I&colon. - Input hook and the message is removed (WinGetMsg, or
35: WinPeekMsg with PM_REMOVE)
36: :li.I- - Input hook no remove (WinPeekMsg with PM_NOREMOVE)
37: :li.S&colon. - Send message hook, and the message was sent from the
38: same thread.
39: :li.S* - Send message hook, and the message was sent from a different
40: thread or process.
41: :esl.
42: :p.
43: Following the message prefix, is the alphabetical name of the message, that
44: was sent or posted, followed, by the window handle (H&colon.) the message was
45: sent or posted to. The remaing fields depends on which type of message
46: is being displayed.
47: .***************************************************************
48: :h1 res=HLP_KEYS.Help for Keys
49: :p.
50: ***** To Be Filled in *****
51: .***************************************************************
52: :h1 res=HLP_MessagesDlg.Help for Message List
53: :p.
54: This command allows you to be selective about which messages, you
55: wish to monitor.
56: :p.
57: The dialog contains the following fields:
58: :p.
59: :hp2.Message:ehp2.&colon. - Displays the current message from the list box,
60: and also allows you to directly enter a message. You may enter the message
61: in Hexidecimal, Decimal, or by name.
62: :p.
63: :hp2.Message List:ehp2. - The list box contains most of the know messages.
64: The messages may either be displayed in numerical order, or in alphabetical
65: order.
66: :p.
67: :hp2.All:ehp2. - Selects all messages in the list.
68: :p.
69: :hp2.None:ehp2. - Deslects all messages in the list.
70: :p.
71: :hp2.Char On:ehp2. - Selects all WM_CHAR type messages.
72: :p.
73: :hp2.Char Off:ehp2. - Deselect all WM_CHAR type messages.
74: :p.
75: :hp2.Mouse ON:ehp2. - Selects all messages that are mouse related.
76: :p.
77: :hp2.Mouse Off:ehp2. - Deselects all messages that are mouse related.
78: :p.
79: :hp2.Freq On:ehp2. - Selects some messages, that happen often, and that
80: we usually do not wish to monitor, such as WM_HITTEST.
81: :p.
82: :hp2.Freq Off:ehp2. - Deselects the messages, that happen often and that
83: we usually do not wish to monitor, such as WM_HITTEST.
84: :p.
85: :hp2.Input Hook:ehp2. - Should we monitor the input hook?
86: :p.
87: :hp2.SendMsg Hook:ehp2. - Should we monitor the Send Message Hook?
88: :p.
89: :hp2.Display undefined msg:ehp2. - Do you want all of the messages that
90: are not defined in this table to be monitored or not. Usually these messages
91: are the messages that are above WM_USER.
92: :p.
93: :hp2.Ok:ehp2. - Dismiss the dialog, and update our table with the new
94: message selections.
95: :p.
96: :hp2.Cancel:ehp2. - Dismiss the dialog without updating our tables.
97:
98: .***************************************************************
99: :h1 res=HLP_OutputsDlg.Help for Output
100: :p.
101: ***** To Be Filled in *****
102: .***************************************************************
103: :h1 res=HLP_WindowsDlg.Help for Window List
104: :p.
105: This command displays a list box of all of the windows that are currently
106: defined on the system. You can select one or more windows from this
107: list to monitor the messages for. The items in this list are displayed in
108: the format: xxxx(n) - ID: iii, where the xxxx is the hexidecimal value of
109: the low word of the window handle, (n) is the level number. The level numbers
110: are the number of layers deep we are from HWND_DESKTOP (or HWND_OBJECT). A
111: level 3 window is a child of a level 2 window, etc.
112: :p.
113: The :hp2.Window Handle:ehp2.&colon. field, displays the complete window handle,
114: it also allows you to enter one manually. The entered value, can be either
115: in hexidecimal or decimal.
116: :p.
117: The :hp2.OK Push Button:ehp2. - Will exit the dialog and update
118: Spy's internal list of which windows to monitor windows for.
119: :p.
120: The :hp2.CancelPush Button:ehp2. - Will exit the dialog without updating.
121: :p.
122: The :hp2.All Push Button:ehp2. - Selects all of the windows in the list.
123: :p.
124: The :hp2.None Push Button:ehp2. - Deselect all of the windows in the list.
125: :p.
126: The :hp2.Mouse Push Button:ehp2. - Captures the mouse, and waits for you to
127: click the mouse over a window. While the mouse button is down, the window
128: information on the right hand side of the dialog is updated to show information
129: about the window, that the mouse is currently over. If the
130: :hp2.Control:ehp2. key is down, the code will walk up the parent chain to
131: find a frame window.
132: .***************************************************************
133: :h1 res=HLP_SaveListDlg.Help for Save List
134: :p.
135: Will save the contents of the spy main window (listbox) to a file.
136: :p.
137: A dialog is displayed that will prompt you for the name of the output
138: file, and whether the information should be appended to the specified file,
139: or should overwrite the file.
140: .***************************************************************
141: :h1 res=HLP_About1Dlg.Help for About
142: :p.
143: Displays information about help...
144: .***************************************************************
145: :h1 res=HLP_MsgQueueDlg.Help for Spy Message Queues
146: :p.
147: This command displays a list box of all of the message queues that are
148: currently defined on the system. You can select one or more queues from this
149: list to monitor the messages for.
150: :p.
151: The ability for selecting message queues is important, when you need to
152: monitor messages that are sent during the creation process of the window.
153: :p.
154: The Left hand side contains a listbox, which contains an entry for each
155: of the message queues that existed, when the command was selected.
156: :p.
157: The :hp2.Hmq:ehp2.&colon. field, displays the complete handle to the message
158: queue, it also allows you to enter one manually.
159: The entered value, can be either in hexidecimal or decimal.
160: :p.
161: The :hp2.OK Push Button:ehp2. - Will exit the dialog and update
162: Spy's internal list of message queues to monitor messages for.
163: :p.
164: The :hp2.CancelPush Button:ehp2. - Will exit the dialog without updating.
165: :p.
166: The :hp2.All Push Button:ehp2. - Selects all of the message queues in the list.
167: :p.
168: The :hp2.None Push Button:ehp2. - Deselect all of the message queues in the list.
169: :p.
170: The :hp2.Mouse Push Button:ehp2. - Captures the mouse, and waits for you to
171: click the mouse over a window. While the mouse button is down, the queue
172: information on the right hand side of the dialog is updated to show information
173: about the message queue of the window, that the mouse is currently over.
174: .***************************************************************
175: :h1 res=HLP_SendMsgDlg.Help for Spy Send Message
176: :p.
177: This command allows you to send or post messages to windows, on the screen.
178: :p.
179: This dialog has the following fields:
180: :p.
181: The :hp2.Window Handle:ehp2.&colon. field, allows you to manually enter the
182: window handle, that you wish to send or post a message to.
183: :p.
184: The :hp2.Point at Hwnd:ehp2. field allows you to select the window using the
185: mouse.
186: :p.
187: The :hp2.Message:ehp2.&colon. field, is where you enter the message value that
188: is sent/posted to specified window. This value can be entered in Hex (0x4096),
189: Decimal(1024), or by Message name (WM_QUIT).
190: :p.
191: The :hp2.MParam1:ehp2. and :hp2.MParam2:ehp2. fields allow you to enter the
192: value of mp1 and mp2, that is sent to the destination window. This value
193: again, can be entered in hex or decimal. In addition, if you specify,
194: the value &.1, this value will be filled in with the address of
195: :hp2.String1:ehp2. and likewise for &.2.
196: :p.
197: The :hp2.Post Message:ehp2. button, will post the message to the specified
198: window. The status of the post will be displayed in the :hp2.Result:ehp2.
199: field.
200: :p.
201: The :hp2.Send Message:ehp2. button, will send the message to the specified
202: window. The result returned from the destination window procedure will
203: be displayed in the :hp2.Result:ehp2. field.
204: :p.
205: The :hp2.Cancel:ehp2. button, will exit the dialog.
206: .***************************************************************
207: :h1 res=HLPMU_SPY.Help for Spy Menu
208: :i1 id=MSPY.Spy Menu
209: :p.
210: ***** To Be Filled in *****
211: .***************************************************************
212: :h1 res=HLPMU_WINDOWS.Help for Windows Menu
213: :i1 id=MWND.Windows Menu
214: :p.
215: ***** To Be Filled in *****
216: .***************************************************************
217: :h1 res=HLPMU_WNDSEL.Help for Window Select Sub-Menu
218: :p.
219: ***** To Be Filled in *****
220: .***************************************************************
221: :h1 res=HLPMU_WNDDUMP.Help for Window Dump Sub-Menu
222: :p.
223: ***** To Be Filled in *****
224: .***************************************************************
225: :h1 res=HLPMU_MESSAGES.Help for Messages Menu
226: :i1 id=MMSG.Message Menu
227: :p.
228: ***** To Be Filled in *****
229: .***************************************************************
230: :h1 res=HLPMU_HOOKS.Help for Hooks Menu
231: :i1 id=MHOOK.Hook Menu
232: :p.
233: ***** To Be Filled in *****
234: .***************************************************************
235: :h1 res=HLPMU_SNDOUTPUT.Help for Hooks Send Message Output Sub-Menu
236: :p.
237: ***** To Be Filled in *****
238: .***************************************************************
239: :h1 res=HLPMU_OUTPUTS.Help for Outputs Menu
240: :i1 id=MOUTPUT.Outputs Menu
241: :p.
242: ***** To Be Filled in *****
243: .***************************************************************
244: :h1 res=HLPMU_HELP.Help for Help Menu
245: :i1 id=MHELP.Help Menu
246: :p.
247: ***** To Be Filled in *****
248: .***************************************************************
249: :h1 res=HLPM_ACTIVE.Help for Active
250: :i2 refid=MSPY.Turning spy on or off
251: :p.
252: The Active menu item is a toggle, that allows you to turn Spy on or off.
253: .***************************************************************
254: :h1 res=HLPM_EXIT.Help for Exit
255: :i2 refid=MSPY.Exit from Spy
256: :p.
257: This command will cause spy to terminate.
258: .***************************************************************
259: :h1 res=HLPM_CLRWIN.Help for Clear Window
260: :i2 refid=MSPY.Clear window contents
261: :p.
262: This command will cause the contents of the main spy window to be erased.
263: .***************************************************************
264: :h1 res=HLPM_SAVEWIN.Help for Save Window
265: :i2 refid=MSPY.Save window contents to file
266: :p.
267: Will save the contents of the spy main window (listbox) to a file.
268: :p.
269: A dialog is displayed that will prompt you for the name of the output
270: file, and whether the information should be appended to the specified file,
271: or should overwrite the file.
272: .***************************************************************
273: :h1 res=HLPM_SAVEOPT.
274: Help for Save Options
275: :p.
276: The save options command saves some of your preferences to OS2.INI, which
277: will be used the next time spy is executed.
278: :p.
279: The saved options include:
280: :p.
281: :hp2.Outputs:ehp2. - File, Debug Terminal, and/or Screen
282: :p.
283: :hp2.Hooks:ehp2. - Input, Send Message, ...
284: :p.
285: :hp2.Messages:ehp2. - Alphabetical Sort?
286: .***************************************************************
287: :h1 res=HLPM_WINDOWS.Help for Windows List
288: :i2 refid=MWND.Select windows from list
289: :p.
290: This command displays a list box of all of the windows that are currently
291: defined on the system. You can select one or more windows from this
292: list to monitor the messages for.
293: :p.
294: An addition to simply selecting files, this command also displays information
295: about the windows, such as the window class, ID, bounding rectangle, etc.
296: .***************************************************************
297: :h1 res=HLPM_QUEUES.Help for Queues
298: :i2 refid=MWND.Select message queues
299: :p.
300: This command displays a list box of all of the message queues that are
301: currently defined on the system. You can select one or more queues from this
302: list to monitor the messages for.
303: :p.
304: The ability for selecting message queues is important, when you need to
305: monitor messages that are sent during the creation process of the window.
306: .***************************************************************
307: :h1 res=HLPM_WNMSSEL.Help for Mouse Select
308: :i2 refid=MWND.Select a window with mouse
309: :p.
310: This command allows you to select one window, to be added to the list of
311: windows, that spy will monitor the messages for.
312: :p.
313: After selecting this command, simply move the mouse pointer over the desired
314: window, and press mouse button 1. If the Control key is down, when you
315: depress mouse button 1, spy will walk up the window chain, until it finds
316: a Frame window (a window, whose window class has the CS_FRAME bit set).
317: .***************************************************************
318: :h1 res=HLPM_WNMSDSL.Help for Mouse deselect
319: :i2 refid=MWND.UnSelect a window with mouse
320: :p.
321: This command allows you to use the mouse to remove one window, from
322: the list of windows, that spy will monitor the messages for.
323: :p.
324: After selecting this command, simply move the mouse pointer over the desired
325: window, and press mouse button 1. If the Control key is down, when you
326: depress mouse button 1, spy will walk up the window chain, until it finds
327: a Frame window (a window, whose window class has the CS_FRAME bit set).
328: .***************************************************************
329: :h1 res=HLPM_ALLWNDWS.Help for Select All Windows
330: :i2 refid=MWND.Select all windows
331: :p.
332: This command toggles on the All window state. When the all window state is
333: selected, spy will monitor the messages going to all windows.
334: .***************************************************************
335: :h1 res=HLPM_ALLFRAMES.Help for Select All Frames
336: :i2 refid=MWND.Select all frame windows
337: :p.
338: This command toggles on the All window state. When the all window state is
339: selected, spy will monitor the messages going to all frame windows.
340: :p.
341: A Frame window is defined as a window who's window class is defined with
342: the CS_FRAME bit set).
343: .***************************************************************
344: :h1 res=HLPM_WNDPWIN.Help for Dump One Window
345: :i2 refid=MWND.Dump information for one window
346: :p.
347: This command allows you to dump information about one window. The window
348: is selected with the mouse. The dumped information contains&colon.
349: :sl compact.
350: :li.:hp2.H&colon.:ehp2. - The window handle.
351: :li.:hp2.P&colon.:ehp2. - Parent window handle.
352: :li.:hp2.C&colon.:ehp2. - First child window handle.
353: :li.:hp2.O&colon.:ehp2. - Owner window handle.
354: :li.:hp2.ID&colon.:ehp2. - Window Identifier.
355: :li.:hp2.MQ&colon.:ehp2. - The handle to the message queue.
356: :li.:hp2. (x1, y1):ehp2. (x2, y2) - Coordinates of window.
357: :li.:hp2.ST&colon.:ehp2. - Window Style words.
358: :li.:hp2.PID&colon.:ehp2. - Process ID of the window.
359: :li.:hp2.TID&colon.:ehp2. - Thread ID of the window.
360: :li.:hp2.PFN&colon.:ehp2. - Pointer to window function.
361: :li.:hp2.Cl&colon.:ehp2. - Window Class name.
362: :li.:hp2.xxxx xxxx :ehp2. - Dump of extra window words.
363: :esl.
364: .***************************************************************
365: :h1 res=HLPM_WNDPALL.Help for Dump All Windows
366: :i2 refid=MWND.Dump information for all windows
367: :p.
368: Dumps information about all windows. Warning, this can be a lengthy
369: process, unless your output is only going to a disk file.
370: :p.
371: See :hpt.Dump One Window:ehpt.:hdref RES=HLPM_WNDPWIN. for an
372: explanation about the dump format.
373: .***************************************************************
374: :h1 res=HLPM_DACCEL.Help for Dump Accel Table.
375: :i2 refid=MWND.Dump accelerator table
376: :p.
377: This command allows you to display an accelerator table for one frame window.
378: After this command is selected, simply move the mouse over the desired frame
379: window, or one of it's decedents, and press mouse button 1. The information
380: will be dumped to the current output devices.
381: :p.
382: First a header line is displayed, which contains the following
383: information&colon.
384: :sl compact.
385: :li.:hp2.HACCEL&colon.:ehp2. - Handle to accelerator table.
386: :li.:hp2.HWND&colon.:ehp2. - Frame window handle.
387: :li.:hp2.CP&colon.:ehp2. - Which code page it is defined for.
388: :li.:hp2.CNT&colon.:ehp2. - Count of items in the accelerator table.
389: :esl.
390: :p.
391: For each item in the accelerator table, a line of information will be displayed,
392: which contains information like&colon.
393: :sl compact.
394: :li.:hp2.fs&colon.:ehp2. - The AF_ bits are defined in pmwin.h.
395: :li.:hp2.key&colon.:ehp2. - Which key, may be Char, Virtual key, or Scan code.
396: :li.:hp2.cmd&colon.:ehp2. - Which command will be generated.
397: :esl.
398: :p.
399: At the end of each of these lines, the FS field is broken up in to
400: alphabetical names for each of the bits, the names are as follow:
401: :sl compact.
402: :li.:hp2.CH:ehp2. - Use the Character.
403: :li.:hp2.VK:ehp2. - Use the virtual key.
404: :li.:hp2.SC:ehp2. - Use the Scan code.
405: :li.:hp2.SHFT:ehp2. - Shift key must be depresed.
406: :li.:hp2.CTRL:ehp2. - Control key must be depresed.
407: :li.:hp2.ALT:ehp2. - Alt key must be depresed.
408: :li.:hp2.LONE:ehp2. - Must be a lone key.
409: :li.:hp2.SYS:ehp2. - Generate a WM_SYSCOMMAND message.
410: :li.:hp2.HELP:ehp2. - Generate a WM_HELP message.
411: :esl.
412: .***************************************************************
413: :h1 res=HLPM_MESSAGES.Help for Message List
414: :i2 refid=MMSG.Select messages
415: :p.
416: This command allows you to be selective about which messages, you
417: wish to monitor.
418: :p.
419: A dialog will be displayed, which allows you to individually select
420: the messages, or classes of messages.
421: .***************************************************************
422: :h1 res=HLPM_MGDABLE.Help for Disable Message
423: :i2 refid=MMSG.Disable message
424: :p.
425: This command allows you to remove a message for the list of messages
426: that are currently being monitored. This command will disable the
427: message of the currently selected line in the output listbox.
428:
429: .***************************************************************
430: :h1 res=HLPM_MGEABLE.Help for Enable Message
431: :i2 refid=MMSG.Enable a message
432: :p.
433: This command allows you to again monitor a message that was previously
434: removed using the Disable message command.
435: .***************************************************************
436: :h1 res=HLPM_ALPHASORT.Help for Alpha Sort Message List
437: :i2 refid=MMSG.Alphabetically sort message list.
438: :p.
439: This command is a toggle, which is used by the Message List dialog, to
440: choose if the messages should be displayed in numerical order, or in
441: alphabetical order.
442: .***************************************************************
443: :h1 res=HLPM_SENDMSG.Help for Send Message
444: :i2 refid=MMSG.Send or Post message to window.
445: :p.
446: This command sends or posts messages to one or more windows.
447: .***************************************************************
448: :h1 res=HLPM_INPUTHOOK.Help for Input Hook
449: :i2 refid=MHOOK.Enable/Disable Input Hook
450: :p.
451: This command toggles the state of whether to monitor the message that
452: come in the HK_INPUT hook or not.
453: .***************************************************************
454: :h1 res=HLPM_SENDMSGHOOK.Help for Send Message Hook
455: :i2 refid=MHOOK.Enable/Disable send message Hook
456: :p.
457: This command toggles the state of whether to monitor the messages that
458: come in from the HK_SENDMSG hook or not.
459: .***************************************************************
460: :h1 res=HLPM_SENDEXTEND.Help for Send Message Extended Data
461: :i2 refid=MHOOK.Dump extended message data
462: :p.
463: This command toggles the state of whether we should display extended
464: information for messages that come in from the Send Message hook or not.
465: :p.
466: The extended information may contain SWP structures, Rectangles,
467: Queue messages, etc. See the Message format item for the formats
468: of information.
469: .***************************************************************
470: :h1 res=HLPM_OUTSCREEN.Help for Output Screen Lines
471: :i2 refid=MOUTPUT.Output to Screen
472: :p.
473: ***** To Be Filled in *****
474: .***************************************************************
475: :h1 res=HLPM_OUTTERM.Help for Output Debug Terminal
476: :i2 refid=MOUTPUT.Output to Debug Terminal
477: :p.
478: This command toggles the state of whether any displayed information should
479: go to the debug terminal or not.
480: :p.
481: This command may depend of if you have a debugging version of OS2 or not, and
482: if you have added a /C1 or /C2 to the PMDD statement in config.sys, for
483: Com1&colon. or Com2&colon...
484:
485: .***************************************************************
486: :h1 res=HLPM_OUTFILE.Help for Output File
487: :i2 refid=MOUTPUT.Output to File
488: :p.
489: This command will toggle whetter outputs should go to an output file or not.
490: The name of the output file can be set, by the Outputs... command.
491: .***************************************************************
492: :h1 res=HLPM_OUTPUTS.Help for Outputs
493: :i2 refid=MOUTPUT.Options
494: :p.
495: This command toggles whetter output should go to the main spy window or
496: not.
497: .***************************************************************
498: :h1 res=HLPM_HOWHELP.Help for How to Use Help
499: :i2 refid=MHELP.Using
500: :p.
501: Use this choice to find out what kind of help is available and
502: how to use the help that is available.
503: :p.
504: In general, help is provided for every action bar choice,
505: pull-down choice, and other selections.
506: .***************************************************************
507: :h1 res=HLPM_HELPEXTENDED.Help for Extended Help
508: :i2 refid=MHELP.Extended
509: :p.
510: Extended help provides general information about the program you are using.
511: .***************************************************************
512: :h1 res=HLPM_HELPKEYS.Help for Keys
513: :i2 refid=MHELP.Keys
514: :p.
515: Use this choice to display a list of keys.
516: :p.
517: The list of keys groups similar keys together so they are
518: easier to find.
519: .***************************************************************
520: :h1 res=HLPM_HELPINDEX.Help for Help Index
521: :i2 refid=MHELP.Index
522: :p.
523: The help index lists all of the titles of the help information that
524: is available.
525: .***************************************************************
526: :h1 res=HLPM_ABOUT.Help for About.
527: :i2 refid=MHELP.About Spy
528: :p.
529: Use this choice to display the copyright information.
530: .***************************************************************
531: :index.
532: :euserdoc.
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.