File:  [OS/2 SDKs] / os232sdk / toolkt20 / c / samples / spy / spy32.itl
Revision 1.1.1.1 (vendor branch): download - view: text, annotated - select for diffs
Thu Aug 9 12:26:30 2018 UTC (7 years, 9 months ago) by root
Branches: msft, MAIN
CVS tags: os2sdk-1990, HEAD
Microsoft OS/2 SDK 2.0 05-30-1990

:userdoc.
:prolog.
:docprof toc=1.
:title.Spy32 Help Panels
:eprolog.
:toc.
:body.
#include "help.h"
.***************************************************************
:h1 res=HLP_SPY1.About Spy32
:i1 id=Spy.Spy
:p.
Spy is a debugging tool who's  main purpose, is to display the window messages
that are sent to one or more windows.
:p.
Spy watches the messages that a window receives by hooking the
the HK_INPUT and HK_SENDMSG hooks
:p.
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.
:p.
See :hpt.Display Format:ehpt.:hdref RES=HLP_MSGFMT. for the message display
format.
.***************************************************************
:h1 res=HLP_MSGFMT.Message Display Format
:i1 id=MFmt.Message Display Format
:p.
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&colon.
:sl compact.
:li.I&colon. - Input hook and the message is removed (WinGetMsg, or
WinPeekMsg with PM_REMOVE)
:li.I- - Input hook no remove (WinPeekMsg with PM_NOREMOVE)
:li.S&colon. - Send message hook, and the message was sent from the
same thread.
:li.S* - Send message hook, and the message was sent from a different
thread or process.
:esl.
:p.
Following the message prefix, is the alphabetical name of the message, that
was sent or posted, followed, by the window handle (H&colon.) the message was
sent or posted to.  The remaing fields depends on which type of message
is being displayed.
.***************************************************************
:h1 res=HLP_KEYS.Help for Keys
:p.
***** To Be Filled in *****
.***************************************************************
:h1 res=HLP_MessagesDlg.Help for Message List
:p.
This command allows you to be selective about which messages, you
wish to monitor.
:p.
The dialog contains the following fields:
:p.
:hp2.Message:ehp2.&colon. - 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.
:p.
:hp2.Message List:ehp2. - The list box contains most of the know messages.
The messages may either be displayed in numerical order, or in alphabetical
order.
:p.
:hp2.All:ehp2. - Selects all messages in the list.
:p.
:hp2.None:ehp2. - Deslects all messages in the list.
:p.
:hp2.Char On:ehp2. - Selects all WM_CHAR type messages.
:p.
:hp2.Char Off:ehp2. - Deselect all WM_CHAR type messages.
:p.
:hp2.Mouse ON:ehp2. - Selects all messages that are mouse related.
:p.
:hp2.Mouse Off:ehp2. - Deselects all messages that are mouse related.
:p.
:hp2.Freq On:ehp2. - Selects some messages, that happen often, and that
we usually do not wish to monitor, such as WM_HITTEST.
:p.
:hp2.Freq Off:ehp2. - Deselects the messages, that happen often and that
we usually do not wish to monitor, such as WM_HITTEST.
:p.
:hp2.Input Hook:ehp2. - Should we monitor the input hook?
:p.
:hp2.SendMsg Hook:ehp2. - Should we monitor the Send Message Hook?
:p.
:hp2.Display undefined msg:ehp2. - 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.
:p.
:hp2.Ok:ehp2. - Dismiss the dialog, and update our table with the new
message selections.
:p.
:hp2.Cancel:ehp2. - Dismiss the dialog without updating our tables.

.***************************************************************
:h1 res=HLP_OutputsDlg.Help for Output
:p.
***** To Be Filled in *****
.***************************************************************
:h1 res=HLP_WindowsDlg.Help for Window List
:p.
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.
:p.
The :hp2.Window Handle:ehp2.&colon. field, displays the complete window handle,
it also allows you to enter one manually.  The entered value, can be either
in hexidecimal or decimal.
:p.
The :hp2.OK Push Button:ehp2. - Will exit the dialog and update
Spy's internal list of which windows to monitor windows for.
:p.
The :hp2.CancelPush Button:ehp2. - Will exit the dialog without updating.
:p.
The :hp2.All Push Button:ehp2. - Selects all of the windows in the list.
:p.
The :hp2.None Push Button:ehp2. - Deselect all of the windows in the list.
:p.
The :hp2.Mouse Push Button:ehp2. - 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
:hp2.Control:ehp2. key is down, the code will walk up the parent chain to
find a frame window.
.***************************************************************
:h1 res=HLP_SaveListDlg.Help for Save List
:p.
Will save the contents of the spy main window (listbox) to a file.
:p.
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.
.***************************************************************
:h1 res=HLP_About1Dlg.Help for About
:p.
Displays information about help...
.***************************************************************
:h1 res=HLP_MsgQueueDlg.Help for Spy Message Queues
:p.
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.
:p.
The ability for selecting message queues is important, when you need to
monitor messages that are sent during the creation process of the window.
:p.
The Left hand side contains a listbox, which contains an entry for each
of the message queues that existed, when the command was selected.
:p.
The :hp2.Hmq:ehp2.&colon. 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.
:p.
The :hp2.OK Push Button:ehp2. - Will exit the dialog and update
Spy's internal list of message queues to monitor messages for.
:p.
The :hp2.CancelPush Button:ehp2. - Will exit the dialog without updating.
:p.
The :hp2.All Push Button:ehp2. - Selects all of the message queues in the list.
:p.
The :hp2.None Push Button:ehp2. - Deselect all of the message queues in the list.
:p.
The :hp2.Mouse Push Button:ehp2. - 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.
.***************************************************************
:h1 res=HLP_SendMsgDlg.Help for Spy Send Message
:p.
This command allows you to send or post messages to windows, on the screen.
:p.
This dialog has the following fields:
:p.
The :hp2.Window Handle:ehp2.&colon. field, allows you to manually enter the
window handle, that you wish to send or post a message to.
:p.
The :hp2.Point at Hwnd:ehp2. field allows you to select the window using the
mouse.
:p.
The :hp2.Message:ehp2.&colon. 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).
:p.
The :hp2.MParam1:ehp2. and :hp2.MParam2:ehp2. 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 &amp.1, this value will be filled in with the address of
:hp2.String1:ehp2. and likewise for &amp.2.
:p.
The :hp2.Post Message:ehp2. button, will post the message to the specified
window.  The status of the post will be displayed in the :hp2.Result:ehp2.
field.
:p.
The :hp2.Send Message:ehp2. button, will send the message to the specified
window.  The result returned from the destination window procedure will
be displayed in the :hp2.Result:ehp2. field.
:p.
The :hp2.Cancel:ehp2. button, will exit the dialog.
.***************************************************************
:h1 res=HLPMU_SPY.Help for Spy Menu
:i1 id=MSPY.Spy Menu
:p.
***** To Be Filled in *****
.***************************************************************
:h1 res=HLPMU_WINDOWS.Help for Windows Menu
:i1 id=MWND.Windows Menu
:p.
***** To Be Filled in *****
.***************************************************************
:h1 res=HLPMU_WNDSEL.Help for Window Select Sub-Menu
:p.
***** To Be Filled in *****
.***************************************************************
:h1 res=HLPMU_WNDDUMP.Help for Window Dump Sub-Menu
:p.
***** To Be Filled in *****
.***************************************************************
:h1 res=HLPMU_MESSAGES.Help for Messages Menu
:i1 id=MMSG.Message Menu
:p.
***** To Be Filled in *****
.***************************************************************
:h1 res=HLPMU_HOOKS.Help for Hooks Menu
:i1 id=MHOOK.Hook Menu
:p.
***** To Be Filled in *****
.***************************************************************
:h1 res=HLPMU_SNDOUTPUT.Help for Hooks Send Message Output Sub-Menu
:p.
***** To Be Filled in *****
.***************************************************************
:h1 res=HLPMU_OUTPUTS.Help for Outputs Menu
:i1 id=MOUTPUT.Outputs Menu
:p.
***** To Be Filled in *****
.***************************************************************
:h1 res=HLPMU_HELP.Help for Help Menu
:i1 id=MHELP.Help Menu
:p.
***** To Be Filled in *****
.***************************************************************
:h1 res=HLPM_ACTIVE.Help for Active
:i2 refid=MSPY.Turning spy on or off
:p.
The Active menu item is a toggle, that allows you to turn Spy on or off.
.***************************************************************
:h1 res=HLPM_EXIT.Help for Exit
:i2 refid=MSPY.Exit from Spy
:p.
This command will cause spy to terminate.
.***************************************************************
:h1 res=HLPM_CLRWIN.Help for Clear Window
:i2 refid=MSPY.Clear window contents
:p.
This command will cause the contents of the main spy window to be erased.
.***************************************************************
:h1 res=HLPM_SAVEWIN.Help for Save Window
:i2 refid=MSPY.Save window contents to file
:p.
Will save the contents of the spy main window (listbox) to a file.
:p.
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.
.***************************************************************
:h1 res=HLPM_SAVEOPT.
Help for Save Options
:p.
The save options command saves some of your preferences to OS2.INI, which
will be used the next time spy is executed.
:p.
The saved options include:
:p.
:hp2.Outputs:ehp2. - File, Debug Terminal, and/or Screen
:p.
:hp2.Hooks:ehp2. - Input, Send Message, ...
:p.
:hp2.Messages:ehp2. - Alphabetical Sort?
.***************************************************************
:h1 res=HLPM_WINDOWS.Help for Windows List
:i2 refid=MWND.Select windows from list
:p.
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.
:p.
An addition to simply selecting files, this command also displays information
about the windows, such as the window class, ID, bounding rectangle, etc.
.***************************************************************
:h1 res=HLPM_QUEUES.Help for Queues
:i2 refid=MWND.Select message queues
:p.
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.
:p.
The ability for selecting message queues is important, when you need to
monitor messages that are sent during the creation process of the window.
.***************************************************************
:h1 res=HLPM_WNMSSEL.Help for Mouse Select
:i2 refid=MWND.Select a window with mouse
:p.
This command allows you to select one window, to be added to the list of
windows, that spy will monitor the messages for.
:p.
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).
.***************************************************************
:h1 res=HLPM_WNMSDSL.Help for Mouse deselect
:i2 refid=MWND.UnSelect a window with mouse
:p.
This command allows you to use the mouse to remove one window, from
the list of windows, that spy will monitor the messages for.
:p.
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).
.***************************************************************
:h1 res=HLPM_ALLWNDWS.Help for Select All Windows
:i2 refid=MWND.Select all windows
:p.
This command toggles on the All window state.  When the all window state is
selected, spy will monitor the messages going to all windows.
.***************************************************************
:h1 res=HLPM_ALLFRAMES.Help for Select All Frames
:i2 refid=MWND.Select all frame windows
:p.
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.
:p.
A Frame window is defined as a window who's window class is defined with
the CS_FRAME bit set).
.***************************************************************
:h1 res=HLPM_WNDPWIN.Help for Dump One Window
:i2 refid=MWND.Dump information for one window
:p.
This command allows you to dump information about one window. The window
is selected with the mouse.  The dumped information contains&colon.
:sl compact.
:li.:hp2.H&colon.:ehp2. - The window handle.
:li.:hp2.P&colon.:ehp2. - Parent window handle.
:li.:hp2.C&colon.:ehp2. - First child window handle.
:li.:hp2.O&colon.:ehp2. - Owner window handle.
:li.:hp2.ID&colon.:ehp2. - Window Identifier.
:li.:hp2.MQ&colon.:ehp2. - The handle to the message queue.
:li.:hp2. (x1, y1):ehp2. (x2, y2) - Coordinates of window.
:li.:hp2.ST&colon.:ehp2. - Window Style words.
:li.:hp2.PID&colon.:ehp2. - Process ID of the window.
:li.:hp2.TID&colon.:ehp2. - Thread ID of the window.
:li.:hp2.PFN&colon.:ehp2. - Pointer to window function.
:li.:hp2.Cl&colon.:ehp2. - Window Class name.
:li.:hp2.xxxx xxxx :ehp2. - Dump of extra window words.
:esl.
.***************************************************************
:h1 res=HLPM_WNDPALL.Help for Dump All Windows
:i2 refid=MWND.Dump information for all windows
:p.
Dumps information about all windows.  Warning, this can be a lengthy
process, unless your output is only going to a disk file.
:p.
See :hpt.Dump One Window:ehpt.:hdref RES=HLPM_WNDPWIN. for an
explanation about the dump format.
.***************************************************************
:h1 res=HLPM_DACCEL.Help for Dump Accel Table.
:i2 refid=MWND.Dump accelerator table
:p.
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.
:p.
First a header line is displayed, which contains the following
information&colon.
:sl compact.
:li.:hp2.HACCEL&colon.:ehp2. - Handle to accelerator table.
:li.:hp2.HWND&colon.:ehp2. - Frame window handle.
:li.:hp2.CP&colon.:ehp2. - Which code page it is defined for.
:li.:hp2.CNT&colon.:ehp2. - Count of items in the accelerator table.
:esl.
:p.
For each item in the accelerator table, a line of information will be displayed,
which contains information like&colon.
:sl compact.
:li.:hp2.fs&colon.:ehp2. - The AF_ bits are defined in pmwin.h.
:li.:hp2.key&colon.:ehp2. - Which key, may be Char, Virtual key, or Scan code.
:li.:hp2.cmd&colon.:ehp2. - Which command will be generated.
:esl.
:p.
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:
:sl compact.
:li.:hp2.CH:ehp2. - Use the Character.
:li.:hp2.VK:ehp2. - Use the virtual key.
:li.:hp2.SC:ehp2. - Use the Scan code.
:li.:hp2.SHFT:ehp2. - Shift key must be depresed.
:li.:hp2.CTRL:ehp2. - Control key must be depresed.
:li.:hp2.ALT:ehp2. - Alt key must be depresed.
:li.:hp2.LONE:ehp2. - Must be a lone key.
:li.:hp2.SYS:ehp2. - Generate a WM_SYSCOMMAND message.
:li.:hp2.HELP:ehp2. - Generate a WM_HELP message.
:esl.
.***************************************************************
:h1 res=HLPM_MESSAGES.Help for Message List
:i2 refid=MMSG.Select messages
:p.
This command allows you to be selective about which messages, you
wish to monitor.
:p.
A dialog will be displayed, which allows you to individually select
the messages, or classes of messages.
.***************************************************************
:h1 res=HLPM_MGDABLE.Help for Disable Message
:i2 refid=MMSG.Disable message
:p.
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.

.***************************************************************
:h1 res=HLPM_MGEABLE.Help for Enable Message
:i2 refid=MMSG.Enable a message
:p.
This command allows you to again monitor a message that was previously
removed using the Disable message command.
.***************************************************************
:h1 res=HLPM_ALPHASORT.Help for Alpha Sort Message List
:i2 refid=MMSG.Alphabetically sort message list.
:p.
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.
.***************************************************************
:h1 res=HLPM_SENDMSG.Help for Send Message
:i2 refid=MMSG.Send or Post message to window.
:p.
This command sends or posts messages to one or more windows.
.***************************************************************
:h1 res=HLPM_INPUTHOOK.Help for Input Hook
:i2 refid=MHOOK.Enable/Disable Input Hook
:p.
This command toggles the state of whether to monitor the message that
come in the HK_INPUT hook or not.
.***************************************************************
:h1 res=HLPM_SENDMSGHOOK.Help for Send Message Hook
:i2 refid=MHOOK.Enable/Disable send message Hook
:p.
This command toggles the state of whether to monitor the messages that
come in from the HK_SENDMSG hook or not.
.***************************************************************
:h1 res=HLPM_SENDEXTEND.Help for Send Message Extended Data
:i2 refid=MHOOK.Dump extended message data
:p.
This command toggles the state of whether we should display extended
information for messages that come in from the Send Message hook or not.
:p.
The extended information may contain SWP structures, Rectangles,
Queue messages, etc.  See the Message format item for the formats
of information.
.***************************************************************
:h1 res=HLPM_OUTSCREEN.Help for Output Screen Lines
:i2 refid=MOUTPUT.Output to Screen
:p.
***** To Be Filled in *****
.***************************************************************
:h1 res=HLPM_OUTTERM.Help for Output Debug Terminal
:i2 refid=MOUTPUT.Output to Debug Terminal
:p.
This command toggles the state of whether any displayed information should
go to the debug terminal or not.
:p.
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&colon. or Com2&colon...

.***************************************************************
:h1 res=HLPM_OUTFILE.Help for Output File
:i2 refid=MOUTPUT.Output to File
:p.
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.
.***************************************************************
:h1 res=HLPM_OUTPUTS.Help for Outputs
:i2 refid=MOUTPUT.Options
:p.
This command toggles whetter output should go to the main spy window or
not.
.***************************************************************
:h1 res=HLPM_HOWHELP.Help for How to Use Help
:i2 refid=MHELP.Using
:p.
Use this choice to find out what kind of help is available and
how to use the help that is available.
:p.
In general, help is provided for every action bar choice,
pull-down choice, and other selections.
.***************************************************************
:h1 res=HLPM_HELPEXTENDED.Help for Extended Help
:i2 refid=MHELP.Extended
:p.
Extended help provides general information about the program you are using.
.***************************************************************
:h1 res=HLPM_HELPKEYS.Help for Keys
:i2 refid=MHELP.Keys
:p.
Use this choice to display a list of keys.
:p.
The list of keys groups similar keys together so they are
easier to find.
.***************************************************************
:h1 res=HLPM_HELPINDEX.Help for Help Index
:i2 refid=MHELP.Index
:p.
The help index lists all of the titles of the help information that
is available.
.***************************************************************
:h1 res=HLPM_ABOUT.Help for About.
:i2 refid=MHELP.About Spy
:p.
Use this choice to display the copyright information.
.***************************************************************
:index.
:euserdoc.

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.