GetDeviceCaps
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 SourceConstantAlpha member of the BLENDFUNCTION structure, which is referenced by the blendFunction parameter of the AlphaBlend function. SB_GRAD_RECT
Capable of handling GradientFill rectangles. SB_GRAD_TRI
Capable of handling GradientFill triangles. 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 GetDeviceCaps provides 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 |