BUG: Win95 GDI Resets Window/ViewportOrg in MM_TEXT Mode (152236)



The information in this article applies to:

  • Microsoft Platform Software Development Kit (SDK) 1.0, when used with:
    • Microsoft Windows 3.11

This article was previously published under Q152236

SYMPTOMS

An application marked as 3.1 will have its window origin and viewport origin reset on Windows 95 when StartPage() is called and the device context (DC) is in the MM_TEXT mapping mode.



This is a problem only in Windows 95 for both 16-bit and 32-bit applications marked as 3.1.

CAUSE

This bug occurs when Enhanced metafiles (EMF) are used to print in Windows 95.

In Windows 95, all output to a non-Postsript printer spools as EMFs. While EMF spooling or EMF banding, GDI fails to record the window or viewport origins unless the mapping mode is set to something other than MM_TEXT.

This problem should not occur when printing to Postscript printers, because these printers do not support spooling using EMFs.

RESOLUTION

The best way to work around this behavior is to call StartPage() before changing any DC attributes. Doing this guarantees that the DC attributes do not get reset regardless of the operating system or whether the application is marked 3.1 or 4.0.

STATUS

Microsoft has confirmed that this is a bug in the Microsoft products that are listed at the beginning of this article.

MORE INFORMATION

When an application prints, Windows 95 directs all GDI output calls for a page to an ENHANCED metafile. When EndPage is called, GDI steps through the bands on the page and plays the metafile into every band. In Windows 95, GDI fails to record the origin and extent information into the metafile unless the mapping mode is set to something other than MM_TEXT.

In Windows 95, StartPage resets the printer DC attributes for 4.0-marked applications, while 3.1-marked applications do not reset the printer DC attributes until EndPage is called. Windows NT 3.x does not reset printer DC attributes at all during a print job. For additional information about , please see the following article(s) in the Microsoft Knowledge Base:

125696 StartPage/EndPage Resets Printer DC Attributes in Windows 95


Modification Type:MinorLast Reviewed:7/11/2005
Keywords:kbbug kbpending KB152236