📄 read.me
字号:
Undocumented Windows Release Notes -- v. 1.00 (June 15, 1992)
-------------------------------------------------------------
This is the READ.ME file for the disk to accompany the book
_Undocumented Windows: A Programmer's Guide to Reserved Windows API
Functions_ by Andrew Schulman, David Maxey, and Matt Pietrek
(Addison-Wesley, 1992, ISBN 0-201-60834-0, 700 pages, $39.95).
This file describes the example programs on the disk, and includes
last-minute corrections and addenda to the book:
1. INCLUDES SOURCE!
2. Contents of the disk
3. Building the example programs
4. Microsoft C/C++ 7.0 instructions
5. Non-WINIO programs
6. Differences between book and disk
7. Corrections to Chapter 5: KERNEL
8. Corrections to Chapter 6: USER
9. Corrections to Chapter 8: GDI
The programs on the disk were tested using:
Windows 3.0 Standard and Enhanced mode, retail and debug
Windows 3.1 Standard and Enhanced mode, retail and debug
Some of the programs were also tested under WIN-OS/2 (Windows 3.0
Standard mode running on OS/2 2.0).
None of the programs will run under Windows 3.0 Real mode. All
the programs require protected-mode Windows.
The following compilers were used:
Borland C++ 3.0
Microsoft C 6.0
Microsoft C/C++ 7.0
Some of the programs on disk contains corrections to the versions
printed in the book. If you have found a problem in a program
printed in the book, please check this file and the contents of this
disk first.
If you do find any problems in the book or the disk, or have any
questions or suggestions, please contact Andrew Schulman:
CompuServe (CIS): 76320,302
via Internet: 76320.302@compuserve.com
The authors can also be reached via mail c/o Addison-Wesley, but
electronic mail is greatly prefered and will receive a response,
whereas paper mail may or may not receive a response:
Undocumented Windows
c/o Addison-Wesley Publishing Co.
Route 128
Reading MA 01867
1. INCLUDES SOURCE!
----------------
In several places, the book says that no source is included for
the WINIO library, or for the Windows programs in Chapter 4, because
there's no room. We forgot we were using PKZIP, and so have plenty
of room! SOURCE.ZIP contains the source files for:
WINIO library (winio.c, wmhandlr.c, argcargv.c, winheap.c, based.c;
winheap.c and based.c aren't really used in this book but
they are part of the library)
SNOOP (snoop.c, i3handlr.asm, snoop.def)
WISPY (wispy.c, wispy.def)
CALLFUNC (callfunc.c)
EXEUTIL (exeutil.awk)
Actually, what we meant by "no room" is that there's no room in
the book to _explain_ the source. Right now, you're on your own with
SOURCE.ZIP. We'll be improving it considerably, adding comments, and
explaining it in detail in a forthcoming book, _The DOS Programmer's
Guide to Windows_. There will be more utilities in another
forthcoming book, titled something like _Son of Undocumented Windows_
or _Dirty Windows_. (Hey, if you can come up with a better title,
let us know!)
Use this source code for own experiments. Like everything else
on this disk, all this material is copyright of the authors. If you
are interested in redistributing the source, you _must_ contact the
authors at the one of the addresses above. Of course, you are
invited to incorporate small pieces of code from the book and/or disk
into your program, in binary form.
2. Contents of the disk
--------------------
The example source code and utility programs for _Undocumented
Windows_ are stored on this disk in .ZIP files. Each .ZIP file
contains the material for one chapter in the book, with the exception
of WINIO.ZIP which contains the WINIO library used throughout.
PKUNZIP (licensed from PKWARE) is included on the disk to unzip the
files.
INSTALL.BAT will set up everything in a new directory,
C:\UNDOCWIN, with the following subdirectory structure:
\UNDOCWIN
\CHAP1
\CHAP2
... etc...
\WINIO
BC
MSC6
MSC7
\SOURCE
This requires about two megabytes of free disk space.
To copy only selected files, or to install elsewhere than
C:\UNDOCWIN, edit INSTALL.BAT (hey, this is a book for programmers;
we figure you can edit a batch file). PKUNZIP can be used to
extract selected files from any of the .ZIPs.
The disk contains the following types of files:
o General-purpose .H include files such as chap5\handles.h,
chap6\userobj.h, and chap8\gdiobj.h. All files have been
treated with extern "C", so they should work with C++ as
well as with C.
o Small-model and medium-model .LIB files for using WINIO
with Borland C++ 3.0 (should work with 3.1 too), Microsoft
C 6.0, and Microsoft C/C++ 7.0.
o .C files for all the sample programs.
o .EXE files for utility programs discussed in Chapters 2-4,
and for the more useful of the sample programs from Chapters
5-10. For example, there is ATOMWALK.EXE because that's a
useful program in its own right, but no GP.EXE because it isn't.
The disk contains the following files:
read.me this file
pkunzip.exe PKWARE's unzip utility
install.bat user-unfriendly install
chap1.zip example programs from chapter 1:
freeres.c
freeres.exe
chap2.zip utilities and data files from chapter 2:
mapwin.exe
winfunc.imp
win30.imp
exedump.exe
exeutil.exe
winfunc.dat
win30.dat
win21.dat
undocwin.dat
chap3.zip utilities from chapter 3:
resdump.exe
extract.exe
chap4.zip utilities and WINIO examples from chapter 4:
callfunc.exe
wispy.exe
snoop.exe
wm_undoc.dat
wm_all.dat
sh.c
sh.exe
basemov2.c
basemov2.exe
taskwlk2.c
taskwlk2.exe
numtasks.c
numtasks.exe
chap5.zip KERNEL examples from chapter 5:
handles.h
handles.c
testhand.c
testhand.exe
taskdb.h
taskq.h
modtable.h
psp.h
wintask.c
wintask.exe
winmod.c
winmod.exe
stealcdr.c
stealcdr.exe
atomwalk.c
atomwalk.exe
taskwalk.c
taskwalk.exe
modwalk.c
modwalk.exe
basemove.c
basemove.exe
countmem.c
countmem.exe
nullseg.c
nullseg.exe
local.c
local.exe
kill.c
kill.exe
gp.c
setsbase.c
semtest.c
thhook.c
taskq.c
sellimit.c
systres.c
exeptr.c
meminfo.c
walksegs.c
break.c
selarray.c
codedat2.c
codedata.c
chap6.zip USER examples from chapter 6:
userobj.h
userwalk.c
userwalk.exe
dragdrop.h
ddclient.c
ddclient.exe
ddserver.c
ddserver.exe
cursicon.h
bcstmsg.c
cascchld.c
checkord.c
ciconind.c
cpnlinfo.c
dtpattrn.c
dtwlpapr.c
dumpicon.c
endmenu.c
fillwind.c
fprtname.c
getnextq.c
gridgran.c
gtmsevnt.c
intwpos.c
kbdevent.c
oemlayer.c
paintrct.c
evnthook.asm
setehook.c
snapwind.c
stsystmr.c
swtothis.c
syserrbx.c
tilechld.c
xcstods.c
chap7 ** Not present ** Don't be alarmed - there are no
utilities or source presented in the Undocumented
Windows Messages chapter.
chap8.zip GDI examples from chapter 8:
gdiobj.h
gdiwalk.c
gdiwalk.exe
checkord.c
rsin.c
fastwfrm.c
chap9.zip SYSTEM example from chapter 9:
systimer.c
chap10.zip TOOLHELP examples from chapter 10:
winwalk.c
winwalk.exe
th_asm.asm
coroner.c
coroner.def
coroner.mak
coroner.rc
coroner.ico
xcptrept.c
coroner.exe
coroner.h
winiobc.zip WINIO libraries, header files, etc. for Borland C++:
winio.h
wmhandlr.h
swindos.lib
mwindos.lib
windos.def
windos.ico
windos.rc
windos.res
winioapp.mak
winiobc.bat
winioms6.zip WINIO libraries, header files, etc. for Microsoft C 6.0:
winio.h
wmhandlr.h
swindos.lib
mwindos.lib
windos.def
windos.res
windos.ico
windos.rc
winioapp.nmk
winioms.bat
winioms7.zip WINIO libraries, header files, etc. for Microsoft C/C++ 7.0:
winio.h
wmhandlr.h
argcargv.c
swindos.lib
mwindos.lib
windos.def
windos.res
windos.ico
windos.rc
winioapp.nmk
winioms.bat
source.zip Source code for WINIO, SNOOP, WISPY, CALLFUNC, EXEUTIL:
winio.c
wmhandlr.c
argcargv.c
based.c
winheap.c
callfunc.c
wispy.c
wispy.def
snoop.c
snoop.def
i3handlr.asm
3. Building the example programs
-----------------------------
Tools are provided to make the building of the example programs
provided on the disk, and programs that you write yourself, as easy
as possible while still leaving open some avenues for customization.
Makefiles are provided for Microsoft C 6.00/7.00 and Borland C++
3.0. The WINIOMS.BAT file builds a WINIO program using MS C 6.00 via
NMK and the WINIOAPP.NMK makefile (there are different versions for
Microsoft C 6.0 and Microsoft C/C++ 7.0; see below), and WINIOBC.BAT
builds a WINIO program using Borland C++ 3.0 via MAKE and
WINIOAPP.MAK. Usage is the same for all batch files:
WINIOxx app-name [M] [extra-files]
where: M specifies build using medium model, rather than small
extra-files is an optional list of additional component object
files required to build the program. The object files
should be specified without the .OBJ extension.
To build the DumpIcon example in Chapter 6 using Microsoft C
6.00, for example, you only need to run:
WINIOMS DUMPICON
The resultant small model executable will include debug symbols,
and will have been linked using the default definitions file
WINDOS.DEF. It will also inlude the default WINIO resource file
WINDOS.RES, which contains only the class icon for WINIO
applications.
Specifying M on the command line after the application name will
cause it to be built using medium model. None of the example programs
on the disk require medium model.
To build the example program in the SetEventHook entry in Chapter
6, in which the assembler file EVNTHOOK.ASM is an additional
component, using Borland tools, you would type:
WINIOBC SETEHOOK EVNTHOOK
You can modify the batch files to generate executables without
debug symbols, or you can use a utility such as Borland's TDSTRIP.EXE
that will remove the symbol table from an executable. The utility
program executables on the disk do not contain symbol tables.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -