API Function Spy for Windows 3.1
(c)1992 by Mark Gamber
Note: This utility is for Microsoft Windows 3.1 only and is not guarenteed to run correctly on any other version of Windows, including the OS/2 Windows box.
API Function Spy is comprised of APISPY.EXE, APILIB.DLL and XSTATIC.DLL. All three files must be in the same directory, a directory in your system's Path or in the Windows directory.
API Function Spy overview:
Windows is comprised primarily of Dynamic Link Libraries which contain a number of functions available to programmers. All Windows applications call these functions, including Non-Windows applications within a window. In addition, parameters passed back and forth between the DLL and application are sent according to a defined standard. This utility hooks into actual Windows code, allowing interception of function calls. When a function is called by any application, the function and it's parameters are displayed in a listbox, adding specific information about the parameters if possible. You should be warned that this can slow the system significantly if a heavily used function is trapped. Also, because of modifications made to actual Windows code on the fly, some functions may not work correctly while trapped, although in practice, only one function has currently been found and it produces a standard error message when called. Finally, while currently no such functions exist, it is possible a function will cause the system to become unstable. If such a condition begins to occur, it is recommended you close Windows and reboot your machine as soon as possible. Warnings out of the way, let's get started.
Using API Function Spy:
Many functions are available for trapping, but only one may be trapped at a time. In addition, SendMessage is so heavily used, if trapped, the message to watch must also be specified. To begin watching function calls, select the "Start!" menu item. From the dialog box displayed, you may select a file by typing the name in the edit box or clicking on a function displayed in the list box. Pressing OK, double-clicking a list box item or pressing Enter closes the dialog box and begins trapping the function chosen. Press Cancel to close the dialog box without trapping a function. If a function is selected, the name will appear in the title bar along with "API Function Spy". As functions are called, you will see them appear in the list box on the main window.
To stop trapping, select "Stop!" from the menu. If the item is not highlighted, there is nothing to stop. If unhooking is successful, "Start!" will be highlighted and "Stop!" will be disabled.
"Erase!" may be selected at any time and erases all items in the listbox.
"About!" displays the author and version of the utility.
"Save", in the "File" menu, allows you the save the contents of the listbox to a text file. The filename is specified through a common dialog box. Existing files are overwritten. "Save" is disabled while trapping is in progress.
The list box background and text colors may be selected using the "Text Color" and "Back color" items in the "Options" menu. Select the color to be used from the dialog box displayed and press OK to apply the color or Cancel to close the dialog without change. Text fonts may be selected using the "Fonts" item in the "Options" menu. This changes the font of the listbox text. Finally, the maximum number of items to keep in the listbox at any given time may be set using the "Max. Items" menu item in the "Options" menu. Any number between 50 and 250 may be chosen. Press OK to set the number or Cancel to close the dialog box without change.
Last, but not least, "Exit!", found in the "File" menu, closes the application. You may not close the application or exit Windows while a trap is in progress. That is, you must first "Stop!" trapping before selecting "Exit!", "Close" from the system menu or shutting down Windows itself.
API Function Spy display:
All data is displayed in a list box. The maximum number of items that may be kept in the list box is determined by the setting in the "Max Items" dialog box. When that number is reached, the oldest item in the list box is removed before a new item is added. Big list boxes take considerably longer to process than small ones, so keep the "Max Items" number relatively low and don't make the Window real large.
Certain functions and messages pass structures to the Windows API that contain useful information. If such a function or message has been selected and the structure passed may be safely accessed, an asterick is added to the end of the function displayed in the list box. The asterick denotes that double-clicking the list box item will display the structure contents in a separate window.
Note that only structure items that may be safely accessed are displayed. That is, although an Icon handle may be displayed, the actual Icon cannot as, by the time the data is displayed, the handle may no longer be valid. Also, many functions and messages pass "empty" structures that contain no useful data until the function or message returns. These functions and messages are not displayed as the data is meaningless.
About this program:
This utility is not free. If you find the program useful and use it on a regular basis and care at all about future upgrades and other products, a fee of $20 is requested to compensate the time and effort it took to write and debug this application. In return, a code number is provided to eliminate the startup reminder window plus future updates will be posted for downloading from your favorite online service. I may be reached at:
18 Village Dr.
Lancaster, Pa 17601
America Online E-Mail: PCA MarkG
Internet E-Mail: [email protected]
Person to person telephone calls are not accepted for personal reasons.
API Function Spy (c)1992 by Mark Gamber.
By using this application, the user is assumed responsible for proper operation. The author may not be held liable for damages....it's just software. The software is not guarenteed to work correctly if at all under every circumstance and will not work outside of Microsoft Windows Version 3.1, including previous Windows versions and OS/2's Windows box. The author has no connection to Microsoft.
e item is not highlighted, thxtrmhc^YTOkJpHpqxvsqnligd+bE_J]KZlXlmxtvusyqznli^gadb_](Z-X-.xvsqnli7g=db_.
Certain functions and messages pass structures to