Home   Index   About
Ultimate Pack


Custom Search
Overview
Group
Quick Info

Windows NT
Yes
Win95
Yes
Win32s
Yes
Import Library
gdi32.lib
Header File
wingdi.h
Unicode
No
Platform Notes
Windows 95: int == 16 bits

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


Last news from Greatis Software

Nostalgia .Net     Nostalgia .Net     .Net is powerful, but not all-powerful, so sometimes we need to use Win32 API for our .Net applications. It's simple enough with Platform Invoke if you have Win32 skill, but we do not always have time to dig the ancient documentation, declare the special types that are compatible with Win32, find the values of the Win32's constants and so on. Nostalgia .Net offers several simple-to-use classes, and components that will allow you to forget about the headache of Win32 and just use the power of Win32 in your application the same way as you use the native. Net classes.  More »

Recommended software for developers

Ultimate Pack for Delphi and C++ Builder     Ultimate Pack     Component pack for Delphi and C++ Builder that contains runtime form designer, runtime object inspector, print suite and much more for the very special price.  More »

Form Designer .Net     Form Designer .Net     Unique runtime form design solution that allows to edit any form in .Net WinForms application at runtime with full source codes for only 300 euro!  More »

Print Suite .Net     Print Suite .Net     Print Suite .Net is a set of components for easy printing texts, images and grids from your WinForms applications. Full C# source codes are available  More »

Gradient Controls .Net     Gradient Controls .Net     Gradient Controls .Net offers controls with gradient background feature. Labels, panels and so on... Full C# source codes are available  More »

iGrid     Greatis iGrid     iGrid plots drawing grid right over your desktop, so you can use it everywhere, with any drawing application without any special plugins for different graphic editors.  More »


All the contacts and projects

Dmitry Vasiliev (just.dmitry)

Related Links

Software for Visual Studio .NET developers
Software for Delphi and C++ Builder developers
Software for Visual Basic 6 developers
Delphi Tips&Tricks
MegaDetailed.NET

More Online Helps

Win32 Programmer's Reference
Win32 Multimedia Programmer's Reference
OLE Programmer's Reference
Microsoft Windows Pen API Programmer's Reference
Microsoft Windows Sockets 2 Reference
Microsoft Windows Telephony API (TAPI) Programmer's Reference
Unix Manual Pages

Free Tech Secrets ;) Copyright © 2008-2011 Free Tech Secrets ;) greatis just4fun network just4fun