home *** CD-ROM | disk | FTP | other *** search
-
- ΓòÉΓòÉΓòÉ 1. About Spy ΓòÉΓòÉΓòÉ
-
- Spy is a debugging tool who's main purpose, is to display the window messages
- that are sent to one or more windows.
-
- Spy watches the messages that a window receives by hooking the the HK_INPUT and
- HK_SENDMSG hooks
-
- In addition to displaying the messages that are sent to windows, spy also
- allows you to display information about windows, queues, accelerator tables.
- Spy also provides a way to convert addresses into symbolic names.
-
- See Display Format for the message display format.
-
-
- ΓòÉΓòÉΓòÉ 2. Message Display Format ΓòÉΓòÉΓòÉ
-
- This section describes the format of how the messages are displayed. The
- begining of each line, is common to all messages, regardless of which message
- it is. The first two characters, shows the origins of the message as follow:
-
- I: - Input hook and the message is removed (WinGetMsg, or WinPeekMsg with
- PM_REMOVE)
- I- - Input hook no remove (WinPeekMsg with PM_NOREMOVE)
- S: - Send message hook, and the message was sent from the same thread.
- S* - Send message hook, and the message was sent from a different thread or
- process.
-
- Following the message prefix, is the alphabetical name of the message, that
- was sent or posted, followed, by the window handle (H:) the message was sent
- or posted to. The remaing fields depends on which type of message is being
- displayed.
-
-
- ΓòÉΓòÉΓòÉ 3. Help for Keys ΓòÉΓòÉΓòÉ
-
- ***** To Be Filled in *****
-
-
- ΓòÉΓòÉΓòÉ 4. Help for Message List ΓòÉΓòÉΓòÉ
-
- This command allows you to be selective about which messages, you wish to
- monitor.
-
- The dialog contains the following fields:
-
- Message: - Displays the current message from the list box, and also allows you
- to directly enter a message. You may enter the message in Hexidecimal,
- Decimal, or by name.
-
- Message List - The list box contains most of the know messages. The messages
- may either be displayed in numerical order, or in alphabetical order.
-
- All - Selects all messages in the list.
-
- None - Deslects all messages in the list.
-
- Char On - Selects all WM_CHAR type messages.
-
- Char Off - Deselect all WM_CHAR type messages.
-
- Mouse ON - Selects all messages that are mouse related.
-
- Mouse Off - Deselects all messages that are mouse related.
-
- Freq On - Selects some messages, that happen often, and that we usually do not
- wish to monitor, such as WM_HITTEST.
-
- Freq Off - Deselects the messages, that happen often and that we usually do not
- wish to monitor, such as WM_HITTEST.
-
- Input Hook - Should we monitor the input hook?
-
- SendMsg Hook - Should we monitor the Send Message Hook?
-
- Display undefined msg - Do you want all of the messages that are not defined in
- this table to be monitored or not. Usually these messages are the messages
- that are above WM_USER.
-
- Ok - Dismiss the dialog, and update our table with the new message selections.
-
- Cancel - Dismiss the dialog without updating our tables.
-
-
- ΓòÉΓòÉΓòÉ 5. Help for Output ΓòÉΓòÉΓòÉ
-
- ***** To Be Filled in *****
-
-
- ΓòÉΓòÉΓòÉ 6. Help for Window List ΓòÉΓòÉΓòÉ
-
- This command displays a list box of all of the windows that are currently
- defined on the system. You can select one or more windows from this list to
- monitor the messages for. The items in this list are displayed in the format:
- xxxx(n) - ID: iii, where the xxxx is the hexidecimal value of the low word of
- the window handle, (n) is the level number. The level numbers are the number
- of layers deep we are from HWND_DESKTOP (or HWND_OBJECT). A level 3 window is
- a child of a level 2 window, etc.
-
- The Window Handle: field, displays the complete window handle, it also allows
- you to enter one manually. The entered value, can be either in hexidecimal or
- decimal.
-
- The OK Push Button - Will exit the dialog and update Spy's internal list of
- which windows to monitor windows for.
-
- The CancelPush Button - Will exit the dialog without updating.
-
- The All Push Button - Selects all of the windows in the list.
-
- The None Push Button - Deselect all of the windows in the list.
-
- The Mouse Push Button - Captures the mouse, and waits for you to click the
- mouse over a window. While the mouse button is down, the window information on
- the right hand side of the dialog is updated to show information about the
- window, that the mouse is currently over. If the Control key is down, the code
- will walk up the parent chain to find a frame window.
-
-
- ΓòÉΓòÉΓòÉ 7. Help for Save List ΓòÉΓòÉΓòÉ
-
- Will save the contents of the spy main window (listbox) to a file.
-
- A dialog is displayed that will prompt you for the name of the output file, and
- whether the information should be appended to the specified file, or should
- overwrite the file.
-
-
- ΓòÉΓòÉΓòÉ 8. Help for About ΓòÉΓòÉΓòÉ
-
- Displays information about help...
-
-
- ΓòÉΓòÉΓòÉ 9. Help for List Near Symbol ΓòÉΓòÉΓòÉ
-
- The List Near Symbol command provides a way to convert addresses to symbol
- names. The symbolic names can only be generated, if you have .SYM files for
- the program or DLL, which contains the address.
-
- The dialog that is displayed is non-modal, which allows you to open it, and use
- it to throughout your spy session.
-
- The PID: field is used, to select a different process to look at symbols for.
- If the symbols are contained in a DLL, you can normally just leave this field
- alone, as the address is constant for all processes. If the desired address is
- contained in a EXE file (example 47:1234), you need set this value to the
- appropriate process number.
-
- Address: field is where you enter desired address.
-
-
- ΓòÉΓòÉΓòÉ 10. Help for Spy Message Queues ΓòÉΓòÉΓòÉ
-
- This command displays a list box of all of the message queues that are
- currently defined on the system. You can select one or more queues from this
- list to monitor the messages for.
-
- The ability for selecting message queues is important, when you need to monitor
- messages that are sent during the creation process of the window.
-
- The Left hand side contains a listbox, which contains an entry for each of the
- message queues that existed, when the command was selected.
-
- The Hmq: field, displays the complete handle to the message queue, it also
- allows you to enter one manually. The entered value, can be either in
- hexidecimal or decimal.
-
- The OK Push Button - Will exit the dialog and update Spy's internal list of
- message queues to monitor messages for.
-
- The CancelPush Button - Will exit the dialog without updating.
-
- The All Push Button - Selects all of the message queues in the list.
-
- The None Push Button - Deselect all of the message queues in the list.
-
- The Mouse Push Button - Captures the mouse, and waits for you to click the
- mouse over a window. While the mouse button is down, the queue information on
- the right hand side of the dialog is updated to show information about the
- message queue of the window, that the mouse is currently over.
-
-
- ΓòÉΓòÉΓòÉ 11. Help for Spy Send Message ΓòÉΓòÉΓòÉ
-
- This command allows you to send or post messages to windows, on the screen.
-
- This dialog has the following fields:
-
- The Window Handle: field, allows you to manually enter the window handle, that
- you wish to send or post a message to.
-
- The Point at Hwnd field allows you to select the window using the mouse.
-
- The Message: field, is where you enter the message value that is sent/posted to
- specified window. This value can be entered in Hex (0x4096), Decimal(1024), or
- by Message name (WM_QUIT).
-
- The MParam1 and MParam2 fields allow you to enter the value of mp1 and mp2,
- that is sent to the destination window. This value again, can be entered in
- hex or decimal. In addition, if you specify, the value &1, this value will be
- filled in with the address of String1 and likewise for &2.
-
- The Post Message button, will post the message to the specified window. The
- status of the post will be displayed in the Result field.
-
- The Send Message button, will send the message to the specified window. The
- result returned from the destination window procedure will be displayed in the
- Result field.
-
- The Cancel button, will exit the dialog.
-
-
- ΓòÉΓòÉΓòÉ 12. Help for Spy Menu ΓòÉΓòÉΓòÉ
-
- ***** To Be Filled in *****
-
-
- ΓòÉΓòÉΓòÉ 13. Help for Windows Menu ΓòÉΓòÉΓòÉ
-
- ***** To Be Filled in *****
-
-
- ΓòÉΓòÉΓòÉ 14. Help for Window Select Sub-Menu ΓòÉΓòÉΓòÉ
-
- ***** To Be Filled in *****
-
-
- ΓòÉΓòÉΓòÉ 15. Help for Window Dump Sub-Menu ΓòÉΓòÉΓòÉ
-
- ***** To Be Filled in *****
-
-
- ΓòÉΓòÉΓòÉ 16. Help for Messages Menu ΓòÉΓòÉΓòÉ
-
- ***** To Be Filled in *****
-
-
- ΓòÉΓòÉΓòÉ 17. Help for Hooks Menu ΓòÉΓòÉΓòÉ
-
- ***** To Be Filled in *****
-
-
- ΓòÉΓòÉΓòÉ 18. Help for Hooks Send Message Output Sub-Menu ΓòÉΓòÉΓòÉ
-
- ***** To Be Filled in *****
-
-
- ΓòÉΓòÉΓòÉ 19. Help for Outputs Menu ΓòÉΓòÉΓòÉ
-
- ***** To Be Filled in *****
-
-
- ΓòÉΓòÉΓòÉ 20. Help for Help Menu ΓòÉΓòÉΓòÉ
-
- ***** To Be Filled in *****
-
-
- ΓòÉΓòÉΓòÉ 21. Help for Active ΓòÉΓòÉΓòÉ
-
- The Active menu item is a toggle, that allows you to turn Spy on or off.
-
-
- ΓòÉΓòÉΓòÉ 22. Help for Exit ΓòÉΓòÉΓòÉ
-
- This command will cause spy to terminate.
-
-
- ΓòÉΓòÉΓòÉ 23. Help for Clear Window ΓòÉΓòÉΓòÉ
-
- This command will cause the contents of the main spy window to be erased.
-
-
- ΓòÉΓòÉΓòÉ 24. Help for Save Window ΓòÉΓòÉΓòÉ
-
- Will save the contents of the spy main window (listbox) to a file.
-
- A dialog is displayed that will prompt you for the name of the output file, and
- whether the information should be appended to the specified file, or should
- overwrite the file.
-
-
- ΓòÉΓòÉΓòÉ 25. Help for Save Options ΓòÉΓòÉΓòÉ
-
- The save options command saves some of your preferences to OS2.INI, which will
- be used the next time spy is executed.
-
- The saved options include:
-
- Outputs - File, Debug Terminal, and/or Screen
-
- Hooks - Input, Send Message, ...
-
- Messages - Alphabetical Sort?
-
-
- ΓòÉΓòÉΓòÉ 26. Help for List Near Symbol ΓòÉΓòÉΓòÉ
-
- The List Near Symbol command provides a way to convert addresses to symbol
- names. The symbolic names can only be generated, if you have .SYM files for
- the program or DLL, which contains the address.
-
- The dialog that is displayed is non-modal, which allows you to open it, and use
- it to throughout your spy session.
-
-
- ΓòÉΓòÉΓòÉ 27. Help for Windows List ΓòÉΓòÉΓòÉ
-
- This command displays a list box of all of the windows that are currently
- defined on the system. You can select one or more windows from this list to
- monitor the messages for.
-
- An addition to simply selecting files, this command also displays information
- about the windows, such as the window class, ID, bounding rectangle, etc.
-
-
- ΓòÉΓòÉΓòÉ 28. Help for Queues ΓòÉΓòÉΓòÉ
-
- This command displays a list box of all of the message queues that are
- currently defined on the system. You can select one or more queues from this
- list to monitor the messages for.
-
- The ability for selecting message queues is important, when you need to monitor
- messages that are sent during the creation process of the window.
-
-
- ΓòÉΓòÉΓòÉ 29. Help for Mouse Select ΓòÉΓòÉΓòÉ
-
- This command allows you to select one window, to be added to the list of
- windows, that spy will monitor the messages for.
-
- After selecting this command, simply move the mouse pointer over the desired
- window, and press mouse button 1. If the Control key is down, when you depress
- mouse button 1, spy will walk up the window chain, until it finds a Frame
- window (a window, whose window class has the CS_FRAME bit set).
-
-
- ΓòÉΓòÉΓòÉ 30. Help for Mouse deselect ΓòÉΓòÉΓòÉ
-
- This command allows you to use the mouse to remove one window, from the list of
- windows, that spy will monitor the messages for.
-
- After selecting this command, simply move the mouse pointer over the desired
- window, and press mouse button 1. If the Control key is down, when you depress
- mouse button 1, spy will walk up the window chain, until it finds a Frame
- window (a window, whose window class has the CS_FRAME bit set).
-
-
- ΓòÉΓòÉΓòÉ 31. Help for Select All Windows ΓòÉΓòÉΓòÉ
-
- This command toggles on the All window state. When the all window state is
- selected, spy will monitor the messages going to all windows.
-
-
- ΓòÉΓòÉΓòÉ 32. Help for Select All Frames ΓòÉΓòÉΓòÉ
-
- This command toggles on the All window state. When the all window state is
- selected, spy will monitor the messages going to all frame windows.
-
- A Frame window is defined as a window who's window class is defined with the
- CS_FRAME bit set).
-
-
- ΓòÉΓòÉΓòÉ 33. Help for Dump One Window ΓòÉΓòÉΓòÉ
-
- This command allows you to dump information about one window. The window is
- selected with the mouse. The dumped information contains:
-
- H: - The window handle.
- P: - Parent window handle.
- C: - First child window handle.
- O: - Owner window handle.
- ID: - Window Identifier.
- MQ: - The handle to the message queue.
- (x1, y1) (x2, y2) - Coordinates of window.
- ST: - Window Style words.
- PID: - Process ID of the window.
- TID: - Thread ID of the window.
- PFN: - Pointer to window function.
- Cl: - Window Class name.
- xxxx xxxx - Dump of extra window words.
-
-
- ΓòÉΓòÉΓòÉ 34. Help for Dump All Windows ΓòÉΓòÉΓòÉ
-
- Dumps information about all windows. Warning, this can be a lengthy process,
- unless your output is only going to a disk file.
-
- See Dump One Window for an explanation about the dump format.
-
-
- ΓòÉΓòÉΓòÉ 35. Help for Dump Accel Table. ΓòÉΓòÉΓòÉ
-
- This command allows you to display an accelerator table for one frame window.
- After this command is selected, simply move the mouse over the desired frame
- window, or one of it's decedents, and press mouse button 1. The information
- will be dumped to the current output devices.
-
- First a header line is displayed, which contains the following information:
-
- HACCEL: - Handle to accelerator table.
- HWND: - Frame window handle.
- CP: - Which code page it is defined for.
- CNT: - Count of items in the accelerator table.
-
- For each item in the accelerator table, a line of information will be
- displayed, which contains information like:
-
- fs: - The AF_ bits are defined in pmwin.h.
- key: - Which key, may be Char, Virtual key, or Scan code.
- cmd: - Which command will be generated.
-
- At the end of each of these lines, the FS field is broken up in to
- alphabetical names for each of the bits, the names are as follow:
-
- CH - Use the Character.
- VK - Use the virtual key.
- SC - Use the Scan code.
- SHFT - Shift key must be depresed.
- CTRL - Control key must be depresed.
- ALT - Alt key must be depresed.
- LONE - Must be a lone key.
- SYS - Generate a WM_SYSCOMMAND message.
- HELP - Generate a WM_HELP message.
-
-
- ΓòÉΓòÉΓòÉ 36. Help for Message List ΓòÉΓòÉΓòÉ
-
- This command allows you to be selective about which messages, you wish to
- monitor.
-
- A dialog will be displayed, which allows you to individually select the
- messages, or classes of messages.
-
-
- ΓòÉΓòÉΓòÉ 37. Help for Disable Message ΓòÉΓòÉΓòÉ
-
- This command allows you to remove a message for the list of messages that are
- currently being monitored. This command will disable the message of the
- currently selected line in the output listbox.
-
-
- ΓòÉΓòÉΓòÉ 38. Help for Enable Message ΓòÉΓòÉΓòÉ
-
- This command allows you to again monitor a message that was previously removed
- using the Disable message command.
-
-
- ΓòÉΓòÉΓòÉ 39. Help for Alpha Sort Message List ΓòÉΓòÉΓòÉ
-
- This command is a toggle, which is used by the Message List dialog, to choose
- if the messages should be displayed in numerical order, or in alphabetical
- order.
-
-
- ΓòÉΓòÉΓòÉ 40. Help for Send Message ΓòÉΓòÉΓòÉ
-
- This command sends or posts messages to one or more windows.
-
-
- ΓòÉΓòÉΓòÉ 41. Help for Input Hook ΓòÉΓòÉΓòÉ
-
- This command toggles the state of whether to monitor the message that come in
- the HK_INPUT hook or not.
-
-
- ΓòÉΓòÉΓòÉ 42. Help for Send Message Hook ΓòÉΓòÉΓòÉ
-
- This command toggles the state of whether to monitor the messages that come in
- from the HK_SENDMSG hook or not.
-
-
- ΓòÉΓòÉΓòÉ 43. Help for Send Message Extended Data ΓòÉΓòÉΓòÉ
-
- This command toggles the state of whether we should display extended
- information for messages that come in from the Send Message hook or not.
-
- The extended information may contain SWP structures, Rectangles, Queue
- messages, etc. See the Message format item for the formats of information.
-
-
- ΓòÉΓòÉΓòÉ 44. Help for Send Message Call Stack ΓòÉΓòÉΓòÉ
-
- This command toggles the state of whether we should dump stack information for
- the commands that come back from the send message hook. The stack information
- includes: the process id(PID), the Thread ID(TID), and up to five address, of
- where the Send message was called from.
-
-
- ΓòÉΓòÉΓòÉ 45. Help for Output Screen Lines ΓòÉΓòÉΓòÉ
-
- ***** To Be Filled in *****
-
-
- ΓòÉΓòÉΓòÉ 46. Help for Output Debug Terminal ΓòÉΓòÉΓòÉ
-
- This command toggles the state of whether any displayed information should go
- to the debug terminal or not.
-
- This command may depend of if you have a debugging version of OS2 or not, and
- if you have added a /C1 or /C2 to the PMDD statement in config.sys, for Com1:
- or Com2:..
-
-
- ΓòÉΓòÉΓòÉ 47. Help for Output File ΓòÉΓòÉΓòÉ
-
- This command will toggle whetter outputs should go to an output file or not.
- The name of the output file can be set, by the Outputs... command.
-
-
- ΓòÉΓòÉΓòÉ 48. Help for Outputs ΓòÉΓòÉΓòÉ
-
- This command toggles whetter output should go to the main spy window or not.
-
-
- ΓòÉΓòÉΓòÉ 49. Help for How to Use Help ΓòÉΓòÉΓòÉ
-
- Use this choice to find out what kind of help is available and how to use the
- help that is available.
-
- In general, help is provided for every action bar choice, pull-down choice, and
- other selections.
-
-
- ΓòÉΓòÉΓòÉ 50. Help for Extended Help ΓòÉΓòÉΓòÉ
-
- Extended help provides general information about the program you are using.
-
-
- ΓòÉΓòÉΓòÉ 51. Help for Keys ΓòÉΓòÉΓòÉ
-
- Use this choice to display a list of keys.
-
- The list of keys groups similar keys together so they are easier to find.
-
-
- ΓòÉΓòÉΓòÉ 52. Help for Help Index ΓòÉΓòÉΓòÉ
-
- The help index lists all of the titles of the help information that is
- available.
-
-
- ΓòÉΓòÉΓòÉ 53. Help for About. ΓòÉΓòÉΓòÉ
-
- Use this choice to display the copyright information.