Win32 Application Programming Interface

The term Win32 describes an API that is common to all of the Microsoft 32-bit Windows-based platforms — Windows 95, Windows NT, and Windows CE.

The Win32 API is a library of functions and related data types that provide applications with access to the features supported by Windows-based platforms. A common API allows you to port applications easily, leverage what you already know, and draw upon a library of existing programming knowledge, examples, and third-party resources.

Although the Win32 API provides you with a common set of interfaces for Windows 95, Windows NT, and Windows CE, you must be aware of the differences among the platforms. For example, Windows CE is designed for embedded platforms and therefore does not need to support all the Win32 functions. Conversely, Windows CE includes functions specifically designed for embedded platforms that are not supported by Windows-based desktop platforms.

For easy reference, the Win32 components are grouped by functionality into categories, such as graphics device interface (GDI), multimedia, windows management, remote procedure calls (RPC), and system services. Within the GDI category, you will find such components as drawing functions, mouse manipulation functions, and clipboard functions.

As a programmer, you will find three categories of Win32 components of particular interest: processes and threads, memory management, and exception handling. The first two are discussed in separate chapters in this guide. For more information, see Working with Processes and Threads and Writing Memory-Efficient Applications. Because Windows CE does not support C++ exception handling, you must use the exception handling features built into the Win32 API. For information on the exception handling macros supported by Win32, see the appropriate Windows CE toolkit reference.

If you would like to know more about Windows programming, see Programming Windows 95 by Charles Petzold, which is available from Microsoft Press. Although this book does not specifically address Windows CE, it adequately describes event-driven programming. You may also be interested in the sample code included with the Windows CE SDK.