undocumented GetAppCompatFlags() function that is exported from the module. Advanced mode flags The flags are documented in Microsoft KnowledgeBase article #82860. They correspond to the "advanced mode" flags that are settable by Make Compatible's "Advanced Options" menu: 30 average width metricsThis is bit #19 of the compatibility bits word, with hexadecimal value 0x80000, known by the symbolic name GACF_30AVGWIDTH in . This flag causes Windows to re-scale all fonts by a factor of when calculating their average character widths. The reason for this is that one particular Windows 3.0 application, TurboTax, hard-coded the values that it was using for such size calculations, which failed to work correctly with the new TrueType-compatible font average width calculation method employed by Windows 3.1. This prevented people from using TurboTax to print their income tax return forms on PostScript printers. Always send NC_PaintThis is bit #6 of the compatibility bits word, with hexadecimal value 0x40, known by the symbolic name GACF_ALWAYSSENDNCPAINT in . This flag forces any call to SetWindowPos() to cause the sending of WM_NCPAINT message to all child windows. This is the Windows 3.0 behaviour. In Windows 3.1, the behaviour was changed so that the window message is only sent to those windows that need their non-client areas to be repainted. Some Windows 3.0 applications, however, relied upon always receiving this message, to determine whether child windows needed repositioning. Don't enum device fontsThis is bit #14 of the compatibility bits word, with hexadecimal value 0x2000, known by the symbolic name GACF_ENUMTTNOTDEVICE in . This flag causes Windows 3.1 to turn the DEVICE_FONTTYPE flag off in particular circumstances when an application that is wanting to print enumerates fonts. The particular circumstances are when the target printer is not either a dot matrix printer or a PostScript printer, and the fonts are TrueType fonts that are not resident in the printer itself. In such circumstances, some applications (including PageMaker and MGXDraw) misinterpret the flag and believe the font to be device-resident. (TrueType fonts can be uploaded by Windows to printers, and need not be resident on the device itself to be usable.) They then query the printer to see what sizes of the font it supports, and when that fails (because the printer doesn't know about the font until it is uploaded), they incorrectly assume that the font cannot be resized. Setting the DEVICE_FONTTYPE flag to false in such situations prevents the applications from