Previous Next

GDI Data Types

The data types defined in the following table appear in the device driver interface. Several of the listed data types have already been described in GDI User Objects. Data types that are pointers are marked with an asterisk (*).

Graphics DDI Data Type Variable Name Prefix Definition
BOOL b A 32-bit value that can be either TRUE or FALSE.
BYTE j An 8-bit unsigned integer.
BRUSHOBJ* pbo A pointer to a brush object.
CLIPLINE cl A clipline object.
CLIPOBJ* pco A pointer to a clipping object.
DHPDEV dhpdev A 32-bit handle, defined by the device driver, that identifies a physical device.
DHSURF dhsurf A 32-bit handle, defined by the device driver, that identifies a device-managed surface.
FIX fix A fixed point number.
FLOATL e A floating point number.
FLOAT_LONG el A 32-bit overloaded value that is interpreted as either a LONG or FLOATL, depending on context.
FLONG fl A set of 32-bit flags.
FONTOBJ* pfo A pointer to a font object.
FSHORT fs A set of 16-bit flags.
FWORD fw A 16-bit signed integer.
HBM hbm A 32-bit handle, defined by GDI, that identifies a bitmap.
HPAL hpal A 32-bit handle, defined by GDI, that identifies a palette.
HSURF hsurf A 32-bit handle, defined by GDI, that identifies a surface.
LONG l A 32-bit signed integer.
MIX mix A 32-bit quantity, whose lower 16 bits define foreground and background mix modes.
PALOBJ* ppalo A pointer to a palette object.
PATHOBJ* ppo A pointer to a path object.
POINTE pte A point structure that consists of {FLOATL x, y;}.
POINTFIX ptfx A point structure that consists of {FIX x, y;}.
POINTQF ptq A point structure that consists of {LARGE_INTEGER x, y;}. Each member of this structure is a 64-bit coordinate in 28.36 format.
PWSZ pwsz A pointer to a zero-terminated Unicode string.
PVOID pv A pointer to a VOID, an undefined data type.
RECTFX rcfx A rectangle structure that consists of {FIX xLeft, yTop, xRight, yBottom;}.
ROP4 rop4 A 32-bit value that specifies how source, destination, pattern, and mask pixels are to be mixed.
SHORT s A 16-bit signed integer.
SIZEL sizl A structure that consists of {LONG cx, cy;}.
STROBJ* pstro A pointer to a text string object.
SURFOBJ* pso A pointer to a surface object.
ULONG ul A 32-bit unsigned integer.
USHORT us A 16-bit unsigned integer.
XFORMOBJ* pxo A pointer to a coordinate transform object.
XLATEOBJ* pxlo A pointer to a color translation object.

The parameter prefixes listed in the next table are used to modify variable name prefixes in accordance with their usage.

Prefix Parameter Usage
i An enumerated index
c A count
p A pointer