This function retrieves information about the capabilities of a specified device.
At a Glance
Header file: | Wingdi.h |
Windows CE versions: | 1.0 and later |
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 | ||
DRIVERVERSION | The device driver version. | ||
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 | ||
HORZSIZE | Width, in millimeters, of the physical screen. | ||
VERTSIZE | Height, in millimeters, of the physical screen. | ||
HORZRES | Width, in pixels, of the screen. | ||
VERTRES | Height, in raster lines, of the screen. | ||
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. | ||
BITSPIXEL | Number of adjacent color bits for each pixel. | ||
PLANES | Number of color planes. | ||
NUMBRUSHES | Number of device-specific brushes. | ||
NUMPENS | Number of device-specific pens. | ||
NUMFONTS | Number of device-specific fonts. | ||
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. | ||
ASPECTX | Relative width of a device pixel used for line drawing. | ||
ASPECTY | Relative height of a device pixel used for line drawing. | ||
ASPECTXY | Diagonal width of the device pixel used for line drawing. | ||
PDEVICESIZE | Reserved. | ||
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. | ||
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. | ||
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. | ||
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. | ||
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. Note that the physical page is almost always greater than the printable area of the page, and never smaller. | ||
Windows CE versions 1.0 and 1.01 do not support this value. | |||
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. Note that the physical page is almost always greater than the printable area of the page, and never smaller. | ||
Windows CE versions 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 versions 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 versions 1.0 and 1.01 do not support this value. | |||
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 | ||
CURVECAPS | Value that indicates the curve capabilities of the device, as shown in the following list: | ||
CC_NONE | Device does not support curves. | ||
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_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. | ||
LINECAPS | Value that indicates the line capabilities of the device, as shown in the following list: | ||
LC_NONE | Device does not support lines. | ||
LC_INTERIORS | Device can draw interiors. | ||
LC_MARKER | Device can draw a marker. | ||
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. | ||
POLYGONALCAPS | Value that indicates the polygon capabilities of the device, as shown in the following list: | ||
PC_NONE | Device does not support polygons. | ||
PC_INTERIORS | Device can draw interiors. | ||
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. | ||
TEXTCAPS | Value that indicates the text capabilities of the device, as shown in the following list: | ||
TC_OP_CHARACTER | Device is capable of character output precision. | ||
TC_OP_STROKE | Device is capable of stroke output precision. | ||
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_SF_X_YINDEP | Device can scale independently in the x- and y-directions. | ||
TC_SA_DOUBLE | Device is capable of doubled character for scaling. | ||
TC_SA_INTEGER | Device uses integer multiples only for character scaling. | ||
TC_SA_CONTIN | Device uses any multiples for exact character scaling. | ||
TC_EA_DOUBLE | Device can draw double-weight characters. | ||
TC_IA_ABLE | Device can italicize. | ||
TC_UA_ABLE | Device can underline. | ||
TC_SO_ABLE | Device can draw strikeouts. | ||
TC_RA_ABLE | Device can draw raster fonts. | ||
TC_VA_ABLE | Device can draw vector fonts. | ||
TC_RESERVED | Reserved; must be zero. | ||
TC_SCROLLBLT | Device cannot scroll using a bit-block transfer. Note that this meaning may be the opposite of what you expect. |
Return Values
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 |
SCALINGFACTORX | GETSCALINGFACTOR |
SCALINGFACTORY | GETSCALINGFACTOR |
Windows CE versions 1.0 and 1.01 do not support these indexes.
See Also