DDIs That Must Be Supported

The DDIs that a Windows 95 printer driver must support, at a minimum, are listed in the following sections.

ExtTextOut DDI Must Be Supported

Under Windows 95, the StrBlt DDI is no longer supported. Printer drivers are required to support the ExtTextOut DDI instead.

Big Fonts Support Has Changed

Big fonts are fonts that require more than 64K of data to express. Under Windows 95, all printer drivers that need raster fonts from GDI must support big fonts and report this capability by setting the RC_BIGFONTS bit in GDIINFO.dpRaster.

Printer drivers can no longer use GDI to convert a big font into several smaller fonts as was possible under Windows 3.x.

Windows 3.x GDI Priority Queue Functions Must Be Supported Internally

The GDI functions CreatePQ, DeletePQ, InsertPQ, MinPQ, SizePQ, and ExtractPQ that were available under Windows 3.x do not exist in Windows 95. Under Windows 95, printer drivers must internally implement the all the functionality that orders device-specific fonts correctly on the page without calling these GDI functions.

ExtDeviceMode DDI Should Be Supported

Under Windows 95, the DeviceMode DDI will continue to be supported, but will be dropped in a future Windows release. For this reason, and because the ExtDeviceMode offers more capability, device drivers should support ExtDeviceMode. The benefits of implementing ExtDeviceMode are described in DDIs That Expand Functionality.

DeviceCapabilities Should Be Supported

Under Windows 95, the DeviceCapabilities DDI is not required, but will be in a future release of Windows. The benefits of implementing DeviceCapabilities are described in DDIs That Expand Functionality.

Drivers Must Not Communicate Directly with the Device

Under Windows 95, printer drivers must not use the OpenComm function to communicate directly with the device. Printer drivers should communicate with the device by calling the DDI exported by a port monitor instead. For a description of the relationship between Windows 95 printer drivers and port monitors, see About the Print Spooler. For detailed information about the DDI exported by a Windows 95 port monitor, see About Port Monitors.

Printer Escapes Should Be Supported

Printer escapes provide graphics support that is otherwise not available through GDI. Applications use printer escapes to perform device-dependent operations not supported by GDI. Applications call the ExtEscape or Escape functions to initiate an escape and GDI calls the printer driver's Control function to complete the escape. In some cases, GDI may also perform some work during ExtEscape or Escape calls.

Windows 95 printer drivers should support all escapes that are reasonable for a given device. All drivers must support the QUERYESCSUPPORT escape which reports the escapes the driver supports.

Note the only way to ensure your printer driver will support any Windows 3.x application is to support all the 60 or so escapes documented in the Windows 3.x SDK.

There have been changes to the way GDI handles printer escapes in Windows 95 and these are documented below. Despite these changes at the interface between applications and GDI, the only way to ensure your printer driver will support any Windows 3.x application is to support all the 60 or so escapes documented in the Windows 3.x SDK.

At the interface between applications and GDI, the following changes have taken place: