IFMDraw::GetDeviceCaps

This method gets the capabilities of the screen device context (DC).

Syntax

HRESULT GetDeviceCaps( long index, long *plDeviceCap );

Parameters

index
Specifies the index of the capability to return in plDeviceCap. It is one of the following values.
DRIVERVERSION
The device driver version.
HORZSIZE
Width of the physical screen, in millimeters.
VERTSIZE
Height of the physical screen, in millimeters.
HORZRES
Width of the screen, in pixels.
VERTRES
Height of the screen, in raster lines.
LOGPIXELSX
Number of pixels per logical inch along the width of the screen. If the device has multiple display monitors, this value is the same for all monitors.
LOGPIXELSY
Number of pixels per logical inch along the height of the screen. If the device has 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 color table for the device, if the device has a color depth of no more than 8 bits per pixel. For devices with greater color depths, this method sets plDeviceCap equal to -1.
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, this method sets plDeviceCap equal to 1. Otherwise, this method sets plDeviceCap equal to 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 3.1 or earlier.
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 3.1 or earlier.
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 3.1 or earlier.
RASTERCAPS
Value that indicates the raster capabilities of the device. The following table shows the possible values of plDeviceCap for this index.
Value
Description
RC_BANDING Device requires banding support.
RC_BITBLT Device is capable of transferring bitmaps.
RC_BITMAP64 Device is capable of supporting bitmaps larger than 64K.
RC_DI_BITMAP Device is capable of supporting the SetDIBits and GetDIBits functions.
RC_DIBTODEV Device is capable of supporting the SetDIBitsToDevice function.
RC_FLOODFILL Device is capable of performing flood fills.
RC_GDI20_OUTPUT Device is capable of supporting features of Windows 3.1 or earlier.
RC_PALETTE Device is palette-based.
RC_SCALING Device is capable of scaling.
RC_STRETCHBLT Device is capable of performing the StretchBlt function.
RC_STRETCHDIB Device is capable of performing the StretchDIBits function.

CURVECAPS
Value that indicates the capabilities of the device for drawing curves. The following table shows the possible values of plDeviceCap for this index.
Value
Description
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 capabilities of the device for drawing lines. The following table shows the possible values of plDeviceCap for this index.
Value
Description
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 capabilities of the device for drawing polygons. The following table shows the possible values of plDeviceCap for this index.
Value
Description
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. The following table shows the possible values of plDeviceCap for this index.
Value
Description
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.

plDeviceCap
Pointer to a long integer that receives the requested capability.

Return Values

NOERROR indicates success. If an error occurs, the appropriate HRESULT value is returned.