Windows 3.1 Device Drivers (ddag31qh.hlp) (Table of Contents; Topic list)
Important Notice
The pages on this site contain documentation for very old MS-DOS software, purely for historical purposes. If you're looking for up-to-date documentation, particularly for programming, you should not rely on the information found here, as it will be woefully out of date.
Graphics Driver Types and Structures
                                                     Up Next Previous
────────────────────────────────────────────────────────────────────────────
 
This topic describes the types and structures used by Microsoft Windows
graphics-driver functions and escapes.
 
Types
 
In addition to the standard C-language data types (such as char, int, long,
and void), the graphics functions and escapes use the following data types.
 
Type       Description
────────────────────────────────────────────────────────────────────────────
BOOL       Specifies a 16-bit Boolean value. Its value can be either TRUE or
           FALSE.
 
BYTE       Specifies an unsigned, 8-bit integer.
 
CHAR       Specifies an signed, 8-bit integer.
 
COLORREF   Specifies a 32-bit RGB color value or a logical color index. For
           RGB color values, the high-order byte is zero, and bytes 0, 1,
           and 2 represent the intensity levels of blue, green, and red,
           respectively. For logical color indexes, the high-order byte is
           0xFF, and the low-order, 16 bits represents the index.
 
DWORD      Specifies a unsigned, 32-bit integer.
 
FARPROC    Specifies a far pointer to a function that uses the Pascal
           calling convention.
 
FIXED      Specifies a fixed, real number in 32 bits. The high-order 16 bits
           specifies the integer portion, and the low-order 16 bits
           specifies the fraction expressed as an integer value. To
           calculate the actual fraction value, divide the low-order 16 bits
           by 65536.
 
HANDLE     Specifies a 16-bit handle representing objects such as pens,
           brushes, bitmaps, and global memory.
 
HWND       Specifies a 16-bit window handle.
 
INT        Specifies a signed, 16-bit integer.
 
LONG       Specifies a signed, 32-bit integer.
 
LPPDEVICE  Specifies a far pointer to a PDEVICE structure.
 
LPSTR      Specifies a far pointer to an array of bytes.
 
LPVOID     Specifies a far pointer to an undetermined type. Function
           parameters having this type must be cast to a specific far
           pointer type before being used.
 
PBRUSH     Specifies a integer, an array, or a structure containing
           device-specific information about a physical brush that a driver
           can use to fill figures and draw scan lines. The exact size and
           content of a PBRUSH type depends entirely on the driver.
 
PCOLOR     Specifies a 32-bit integer representing physical-color values. A
           physical color specifies a given color on the device. The range
           and meaning of physical color values depends entirely on the
           driver.
 
PPEN       Specifies an integer, array, or structure containing
           device-specific information that a driver can use to draw lines
           and borders. The exact size and content of a physical pen depend
           entirely on the driver.
 
SHORT      Specifies a signed, 16-bit integer.
 
VOID       Specifies an empty type. This type is typically used with
           functions that return no value.
 
WORD       Specifies an unsigned, 16-bit integer.
 
When LP prefix is applied to a data type, the resulting type specifies a far
pointer to a variable having the specified data type.
 
Structures
 
All structures must be packed. This means that you cannot align structure
members on 16-bit boundaries by default.
 
Graphics Driver Structures