61.3.1 Changes Across All Calls

The changes made to the functions can be broken down into several major categories. The first group are mainly mechanical changes that affect most of the Win32 GDI API. These changes are the result of widening the API to 32 bits or changes in pointers. By and large these changes are handled by the compiler, and application developers will not have to edit their code. These changes include:

61.3.1.1 Widening to 32-bits

The vast majority of changes made are the results of widening the functions to 32-bits. These are simple conversions from 16 bit to 32 bit data. They affect most of the functions in the system. The widening can be broken down into subcategories.

All Coordinates are 32-bits

In Win3 all coordinates were signed 16 bit integers. In the Win32 GDI all coordinates are signed 32 bit integers.

There are devices today that required more that 16 bits to span the device space. In the future we expect more devices to require the larger coordinate space. Applications also are running up against the 16 bit coordinate barrier (eg. CAD applications).

This change affects a small number of functions which return a packed x, y value. These functions now take an additional pointer to a structure to receive the return value.

All Handles are 32-bits

In Win3 handles were 16 bit quantities. In the new GDI all handles are 32 bit quantities. This is done in the type and structure definitions in the include files. A hDC stays a hDC. No change is required by applications developers.

Limits are 32-bit

A number of function calls pass in counts. As applications grow these limits will be hit. These limits are now 32 bit quantities.

All Pointers are 32-bit Flat

Pointers that were segment:offset are now flat 32 bits.