GetDeviceCaps
The GetDeviceCaps
function retrieves device-specific information about a specified device.
int
GetDeviceCaps(
HDC hdc, |
// device-context handle |
int nIndex |
// index of capability to query |
); |
|
Parameters
hdc
Identifies
the device context.
nIndex
Specifies the
item to return. This parameter can be one of the following values:
Index |
Meaning |
DRIVERVERSION |
The device
driver version. |
TECHNOLOGY |
Device
technology. It can be any one of the following values: |
Value |
Meaning |
DT_PLOTTER |
Vector
plotter |
DT_RASDISPLAY |
Raster
display |
DT_RASPRINTER |
Raster
printer |
DT_RASCAMERA |
Raster
camera |
DT_CHARSTREAM |
Character
stream |
DT_METAFILE |
Metafile |
DT_DISPFILE |
Display
file |
|
If the hdc
parameter identifies the device context of an enhanced metafile, the device
technology is that of the referenced device as given to the CreateEnhMetaFile |
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. |
LOGPIXELSY |
Number of
pixels per logical inch along the screen height. |
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 Windows version 3.0 or later. |
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 Windows version 3.0 or later. |
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 Windows version 3.0 or later. |
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.
|
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. |
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. |
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. |
VREFRESH |
Windows
NT only: For display devices: the
current vertical refresh rate of the device, in cycles per second (Hz). A vertical
refresh rate value of 0 or 1 represents the display hardware s default
refresh rate. This default rate is typically set by switches on a display
card or computer motherboard, or by a configuration program that does not use
Win32 display functions such as ChangeDisplaySettings |
DESKTOPHORZRES |
Windows
NT only: Width, in pixels, of the
virtual desktop. This value may be larger than HORZRES if the device supports
a virtual desktop or multiple displays. |
DESKTOPVERTRES |
Windows
NT only: Height, in pixels, of the
virtual desktop. This value may be larger than VERTRES if the device supports
a virtual desktop or multiple displays. |
BLTALIGNMENT |
Windows
NT only: Preferred horizontal
drawing alignment, expressed as a multiple of pixels. For best drawing
performance, windows should be horizontally aligned to a multiple of this
value. A value of zero indicates that the device is accelerated, and any
alignment may be used. |
RASTERCAPS |
Value that
indicates the raster capabilities of the device, as shown in the following
table: |
Capability |
Meaning |
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 the SetDIBits |
RC_DIBTODEV |
Capable of
supporting the SetDIBitsToDevice |
RC_FLOODFILL |
Capable of
performing flood fills. |
RC_GDI20_OUTPUT |
Capable of
supporting features of Windows 2.0. |
RC_PALETTE |
Specifies a
palette-based device. |
RC_SCALING |
Capable of
scaling. |
RC_STRETCHBLT |
Capable of
performing the StretchBlt |
RC_STRETCHDIB |
Capable of
performing the StretchDIBits |
CURVECAPS |
Value that
indicates the curve capabilities of the device, as shown in the following
table: |
Value |
Meaning |
CC_NONE |
Device does
not support curves. |
CC_CIRCLES |
Device can
draw circles. |
CC_PIE |
Device can
draw pie wedges. |
CC_CHORD |
Device can
draw chord arcs. |
CC_ELLIPSES |
Device can
draw ellipses. |
CC_WIDE |
Device can
draw wide borders. |
CC_STYLED |
Device can
draw styled borders. |
CC_WIDESTYLED |
Device can
draw borders that are wide and styled. |
CC_INTERIORS |
Device can
draw interiors. |
CC_ROUNDRECT |
Device can
draw rounded rectangles. |
LINECAPS |
Value that
indicates the line capabilities of the device, as shown in the following
table: |
Value |
Meaning |
LC_NONE |
Device does
not support lines. |
LC_POLYLINE |
Device can
draw a polyline. |
LC_MARKER |
Device can
draw a marker. |
LC_POLYMARKER |
Device can
draw multiple markers. |
LC_WIDE |
Device can
draw wide lines. |
LC_STYLED |
Device can
draw styled lines. |
LC_WIDESTYLED |
Device can
draw lines that are wide and styled. |
LC_INTERIORS |
Device can
draw interiors. |
POLYGONALCAPS |
Value that
indicates the polygon capabilities of the device, as shown in the following
table: |
Value |
Meaning |
PC_NONE |
Device does
not support polygons. |
PC_POLYGON |
Device can
draw alternate-fill polygons. |
PC_RECTANGLE |
Device can
draw rectangles. |
PC_WINDPOLYGON |
Device can
draw winding-fill polygons. |
PC_SCANLINE |
Device can
draw a single scanline. |
PC_WIDE |
Device can
draw wide borders. |
PC_STYLED |
Device can
draw styled borders. |
PC_WIDESTYLED |
Device can
draw borders that are wide and styled. |
PC_INTERIORS |
Device can
draw interiors. |
TEXTCAPS |
Value that
indicates the text capabilities of the device, as shown in the following
table: |
Bit |
Meaning |
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
The return
value specifies the value of the desired item.
See Also