|
|
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.