Important:
This is retired content. This content is outdated and is no longer being maintained. It is provided as a courtesy for individuals who are still using these technologies. This content may contain URLs that were valid when originally published, but now link to sites or pages that no longer exist.
A version of this page is also available for
4/8/2010

This function retrieves information about the capabilities of a specified device.

Syntax

int GetDeviceCaps(
  HDC 
hdc, 
  int 
nIndex
);

Parameters

hdc

[in] Handle to the device context.

nIndex

[in] Specifies the item to return.

This parameter can be one of the following values.

Value Description

ASPECTX

Relative width of a device pixel used for line drawing.

ASPECTXY

Diagonal width of the device pixel used for line drawing.

ASPECTY

Relative height of a device pixel used for line drawing.

BITSPIXEL

Number of adjacent color bits for each pixel.

CLIPCAPS

Flag that indicates the clipping capabilities of the device.

If the device can clip to a rectangle, it is 1. Otherwise, it is 0.

COLORRES

Actual color resolution of the device, in bits per pixel.

This index is valid only if the device driver sets the RC_PALETTE bit in the RASTERCAPS index and is available only if the driver is compatible with 16-bit Windows.

CURVECAPS

Value that indicates the curve capabilities of the device, as shown in the following list:

 

CC_CHORD

Device can draw chord arcs.

 

CC_CIRCLES

Device can draw circles.

 

CC_ELLIPSES

Device can draw ellipses.

 

CC_INTERIORS

Device can draw interiors.

 

CC_NONE

Device does not support curves.

 

CC_PIE

Device can draw pie wedges.

 

CC_ROUNDRECT

Device can draw rounded rectangles.

 

CC_STYLED

Device can draw styled borders.

 

CC_WIDE

Device can draw wide borders.

 

CC_WIDESTYLED

Device can draw borders that are wide and styled.

DRIVERVERSION

The device driver version.

HORZRES

Width, in pixels, of the screen.

HORZSIZE

Width, in millimeters, of the physical screen.

LINECAPS

Value that indicates the line capabilities of the device, as shown in the following list:

 

LC_INTERIORS

Device can draw interiors.

 

LC_MARKER

Device can draw a marker.

 

LC_NONE

Device does not support lines.

 

LC_POLYLINE

Device can draw a polyline.

 

LC_POLYMARKER

Device can draw multiple markers.

 

LC_STYLED

Device can draw styled lines.

 

LC_WIDE

Device can draw wide lines.

 

LC_WIDESTYLED

Device can draw lines that are wide and styled.

LOGPIXELSX

Number of pixels per logical inch along the screen width.

In a system with multiple display monitors, this value is the same for all monitors.

LOGPIXELSY

Number of pixels per logical inch along the screen height.

In a system with multiple display monitors, this value is the same for all monitors.

NUMBRUSHES

Number of device-specific brushes.

NUMCOLORS

Number of entries in the device's color table, if the device has a color depth of no more than 8 bits per pixel.

For devices with greater color depths, –1 is returned.

NUMFONTS

Number of device-specific fonts.

NUMPENS

Number of device-specific pens.

NUMRESERVED

Number of reserved entries in the system palette.

This index is valid only if the device driver sets the RC_PALETTE bit in the RASTERCAPS index and is available only if the driver is compatible with 16-bit Windows.

PDEVICESIZE

Reserved.

PHYSICALHEIGHT

For printing devices: the height of the physical page, in device units.

For example, a printer set to print at 600 dpi on 8.5"x11" paper has a physical height value of 6600 device units.

The physical page is almost always greater than the printable area of the page, and never smaller.

Windows CE 1.0 and 1.01 do not support this value.

PHYSICALOFFSETX

For printing devices: the distance from the left edge of the physical page to the left edge of the printable area, in device units.

For example, a printer set to print at 600 dpi on 8.5"x11" paper, that cannot print on the leftmost 0.25" of paper, has a horizontal physical offset of 150 device units.

Windows CE 1.0 and 1.01 do not support this value.

PHYSICALOFFSETY

For printing devices: the distance from the top edge of the physical page to the top edge of the printable area, in device units.

For example, a printer set to print at 600 dpi on 8.5"x11" paper, that cannot print on the topmost 0.5" of paper, has a vertical physical offset of 300 device units.

Windows CE 1.0 and 1.01 do not support this value.

PHYSICALWIDTH

For printing devices: the width of the physical page, in device units.

For example, a printer set to print at 600 dpi on 8.5"x11" paper has a physical width value of 5100 device units.

The physical page is almost always greater than the printable area of the page, and never smaller.

Windows CE 1.0 and 1.01 do not support this value.

PLANES

Number of color planes.

POLYGONALCAPS

Value that indicates the polygon capabilities of the device, as shown in the following list:

 

PC_INTERIORS

Device can draw interiors.

 

PC_NONE

Device does not support polygons.

 

PC_POLYGON

Device can draw alternate-fill polygons.

 

PC_RECTANGLE

Device can draw rectangles.

 

PC_SCANLINE

Device can draw a single scanline.

 

PC_STYLED

Device can draw styled borders.

 

PC_WIDE

Device can draw wide borders.

 

PC_WIDESTYLED

Device can draw borders that are wide and styled.

 

PC_WINDPOLYGON

Device can draw winding-fill polygons.

RASTERCAPS

Value that indicates the raster capabilities of the device, as shown in the following list:

 

RC_BANDING

Requires banding support.

 

RC_BITBLT

Capable of transferring bitmaps.

 

RC_BITMAP64

Capable of supporting bitmaps larger than 64K.

 

RC_DI_BITMAP

Capable of supporting device independent bitmaps.

 

RC_DIBTODEV

Unsupported.

 

RC_GDI20_OUTPUT

Capable of supporting features of 16-bit Windows 2.0.

 

RC_PALETTE

Specifies a palette-based device.

 

RC_SCALING

Capable of scaling.

 

RC_STRETCHBLT

Unsupported.

 

RC_STRETCHDIB

Unsupported.

SHADEBLENDCAPS

Value that indicates the shading and blending capabilities of the device. See Remarks for further comments.

 

SB_CONST_ALPHA

Handles the SourceConstantAlphamember of the BLENDFUNCTIONstructure, which is referenced by the blendFunctionparameter of the AlphaBlendfunction.

 

SB_GRAD_RECT

Capable of handling GradientFillrectangles.

 

SB_GRAD_TRI

Capable of handling GradientFilltriangles.

 

0

Device does not support any of these capabilities.

 

SB_PIXEL_ALPHA

Capable of handling per-pixel alpha in AlphaBlend.

 

SB_PREMULT_ALPHA

Capable of handling premultiplied alpha in AlphaBlend.

SIZEPALETTE

Number of entries in the system palette.

This index is valid only if the device driver sets the RC_PALETTE bit in the RASTERCAPS index and is available only if the driver is compatible with 16-bit Windows.

TECHNOLOGY

Device technology. It can be any one of the following values.

 

DT_PLOTTER

Vector plotter

 

DT_RASDISPLAY

Raster display

 

DT_RASPRINTER

Raster printer

 

DT_RASCAMERA

Raster camera

 

DT_CHARSTREAM

Character stream

 

DT_DISPFILE

Display file

TEXTCAPS

Value that indicates the text capabilities of the device, as shown in the following list:

 

TC_CP_STROKE

Device is capable of stroke clip precision.

 

TC_CR_90

Device is capable of 90-degree character rotation.

 

TC_CR_ANY

Device is capable of any character rotation.

 

TC_EA_DOUBLE

Device can draw double-weight characters.

 

TC_IA_ABLE

Device can italicize.

 

TC_OP_CHARACTER

Device is capable of character output precision.

 

TC_OP_STROKE

Device is capable of stroke output precision.

 

TC_RA_ABLE

Device can draw raster fonts.

 

TC_RESERVED

Reserved; must be zero.

 

TC_SA_CONTIN

Device uses any multiples for exact character scaling.

 

TC_SA_DOUBLE

Device is capable of doubled character for scaling.

 

TC_SA_INTEGER

Device uses integer multiples only for character scaling.

 

TC_SCROLLBLT

Device cannot scroll using a bit-block transfer.

This meaning may be the opposite of what you expect.

 

TC_SF_X_YINDEP

Device can scale independently in the x- and y-directions.

 

TC_SO_ABLE

Device can draw strikeouts.

 

TC_UA_ABLE

Device can underline.

 

TC_VA_ABLE

Device can draw vector fonts.

VERTRES

Height, in raster lines, of the screen.

VERTSIZE

Height, in millimeters, of the physical screen.

Return Value

Returns the value of the desired item.

Remarks

The following table shows the six indexes that GetDeviceCapsprovides in place of printer escapes.

Index Printer escape replaced

PHYSICALWIDTH

GETPHYSPAGESIZE

PHYSICALHEIGHT

GETPHYSPAGESIZE

PHYSICALOFFSETX

GETPRINTINGOFFSET

PHYSICALOFFSETY

GETPHYSICALOFFSET

Windows CE 1.0 and 1.01 do not support these indexes.

Requirements

Header windows.h
Library coredll.lib
Windows Embedded CE Windows CE 1.0 and later
Windows Mobile Windows Mobile Version 5.0 and later

See Also