This CD-ROM contains the examples, along with the compilers and editors necessary to build the examples, for the book Programming Win32 Under the API by Pat Villani, ISBN 1-57820-067-9. The compiler is the Free Software Foundation gcc compiler suite, ported to Win32. This compiler is absolutely free and redistributable under the provisions of the GNU Public License (GPL). You can also find this code at http://www.opensourcedepot.com/, along with other open source projects, news, links, etc. When you examine the CD-ROM, you'll note the following directories: o dsassm02 - A win32 disassembler o Examples - Example files for this book o gcc - gcc ported to win32. This directory is meant to run gcc from CD-ROM o mingw32 - The win32 gcc port, installable on your hard drive o Utilities - A host of convenient utilities ? WinVi32 - A vi clone for win32. You'll also find the file README that contains the ascii contents of what you are currently reading. The first directory you should explore is Examples. This directory contains all the example code from the book. The examples are organized into subdirectories that are named after the chapters that the code example comes from, i.e. Chapter1, Chapter4, etc. In each of these subdirectories, you'll find subdirectories that correspond to the code listing, i.e. 4-1, 4-2, etc. So, if you want to play with the code in listing 4-2 and your CD-ROM is the D: drive, you look at D:\Examples\Chapter4\4-2. I'm also including a set of tools on this CD-ROM. This way, you don't have to go out and spend hundreds of dollars for a commercial C development package. This is the Free Software Foundation "GNU Compiler Collection" and contains C, C++, Fortran 77 and Objective C compilers for the CRTDLL and MSVCRT environments. You'll find these and instructions on how to install them in the mingw32 directory. Basically, there are two versions: one for each runtime library option, either crtdll.dll or msvcrt.dll. You'll need one of these on a system in order to run a program. Crtdll is on all Win32 systems, but is no longer updated. It is available on platforms such as Windows 3.11/Windows NT 3.5 and platforms that use Win32s. Msvcrt is not guaranteed to be on Windows operating system, but it is more up-to-date and may offer more features. It handles threading better than crtdll and supplies functions not normally found in crtdll. You'll have to decide which one to use. If you don't want to install this on your system, you can run the compiler directly from the CD-ROM. Assuming your CD-ROM is your D: drive, you would set your path to point to the CD-ROM with the command C:\> PATH=D:\GCC\BIN;%PATH% in an MS-DOS window. You can then compile any example and any other Win32 code in this window. Depending on your CD-ROM drive speed, this may be slower than running from your hard drive, but it is a quick and easy way to develop C code for Win32. As you may have noticed while reading the book, I'm an old UNIX hacker. Hence, I grew up with vi and continue to use it. Please, no spam about emacs being better than vi. I have had too many people argue that point with me for over a decade now. I just like vi. Period. Anyway, I've included a version in the directory WinVi32. You can also run this from the CD-ROM environment described earlier. Finally, the various utilities to dump PE files, disassemble PE files, etc., mentioned in the book are in the Utilities directory. Each of these programs comes with its own installation instructions and you'll find that in the associated zip file. If you want to keep up on the development of my command shell, go to http://www.opensourcedepot.com/. You can also contact me via email at patv@opensourcedepot.com. Pat Villani January 2001