Prev Next

GetDeviceCaps info  Overview  Group

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 function. To determine whether it is an enhanced metafile device context, use the GetObjectType function.

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 and GetDIBits functions.

RC_DIBTODEV

Capable of supporting the SetDIBitsToDevice function.

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 function.

RC_STRETCHDIB

Capable of performing the StretchDIBits function.

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

CreateEnhMetaFile, CreateIC, DeviceCapabilities, GetDIBits, GetObjectType, SetDIBits, SetDIBitsToDevice, StretchBlt, StretchDIBits 

See: