Data Types

The data types defined in the following table appear in the device driver interface. Several of the listed data types are those user objects previously described in User Objects.

DDI Data Type

Variable Name Prefix

Definition

BOOL

b

A 32 bit value that can be TRUE or FALSE.

BYTE

j

An 8 bit unsigned integer.

BRUSHOBJ*

pbo

A brush object.

CLIPLINE

cl

A clipline object.

CLIPOBJ*

pco

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 32 bit signed fixed point number. 28 bits are to the left of the binary point.

FLOAT

e

A 32 bit IEEE floating point number.

FLOAT_LONG

el

A 32 bit value that is interpreted as either a LONG or FLOAT, depending on a separate flag.

FLONG

fl

A set of 32 bit flags.

FONTOBJ*

pfo

A font object.

FSHORT

fs

A set of 16 bit flags.

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 palette object.

PATHOBJ*

ppo

A path object.

POINTE

pte

A point structure that consists of {FLOAT x,y;}.

POINTFX

ptfx

A point structure that consists of {FIX x,y;}.

POINTL

ptl

A point structure that consists of {LONG x,y;}.

PWSZ

pwsz

A pointer to a zero-terminated Unicode string.

PVOID

pv

A pointer to a structure that is not defined by GDI.

RECTL

rcl

A rectangle structure that consists of {LONG xLeft,yTop,xRight,yBottom;}

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 two-dimensional size structure that consists of {ULONG cx,cy;}.

STROBJ*

pstro

A text string object.

SURFOBJ*

pso

A surface object.

ULONG

ul

A 32 bit unsigned integer.

USHORT

us

A 16 bit unsigned integer.

XFORMOBJ*

pxo

A coordinate transform object.

XLATEOBJ*

pxlo

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