Information About Clipping, GetDeviceCaps() and GDI (22538)



The information in this article applies to:

  • Microsoft Windows Software Development Kit (SDK) 3.0
  • Microsoft Windows Software Development Kit (SDK) 3.1

This article was previously published under Q22538

SUMMARY

When the GetDeviceCaps(hDC,CLIPCAPS) function is used on an Epson FX-80 printer, it returns zero (0), which means that the printer does not support clipping. The explanation below describes how the GetDeviceCaps() function, the Windows Graphics Device Interface (GDI), and clipping interact with each other.

The GetDeviceCaps() function reports what subset of the GDI services the device directly supports. The complete list of GDI services is available in the documentation. The GDI will simulate functions that the device does not directly support using those functions that are available on the device.

The Epson FX-80 printer does not support clipping to any particular portion of the page, even in graphics mode, which is precisely what the GetDeviceCaps() function indicates.

GDI provides at least a minimum level of services for all devices. In particular, if a clipshape is set while a document is being printed, the programmer can be assured that GDI will honor that clipshape. GDI works with the information returned in the GetDeviceCaps() function to determine what services GDI must provide on behalf of the device. In this case, the printer does not perform clipping; clipping is provided by GDI. The GetDeviceCaps() function can indicate how much additional work GDI must perform to accomplish a particular function. The programmer may want to modify a request to speed processing.

Also note that DC stands for device context. The most interesting DC is for the display [and, in fact, it is the device context for the display that is returned by GetDC(), and in the PAINTSTRUCT structure returned by BeginPaint()]. Printer DCs are NEVER contexts for the display; they are device contexts.

Modification Type:MajorLast Reviewed:10/29/2003
Keywords:kb16bitonly KB22538