Changing the Palette of Colors on a Nonpalette Device

Last reviewed: July 22, 1997
Article ID: Q62740
3.00 3.10 WINDOWS kbprg

The information in this article applies to:

  • Microsoft Windows Software Development Kit (SDK) for Windows versions 3.1 and 3.0

SUMMARY

The text below discusses methods by which an application for the Microsoft Windows graphical environment can change the colors displayed on a display device that does not support a color palette (a nonpalette device). Specifically, this article discusses selecting 16 nondefault colors for a VGA 16-color driver.

MORE INFORMATION

Windows version 3.0 introduces a set of palette mapping functions that allow an application to choose what colors are available in the hardware palette when the application is active. However, these functions work only with devices that support 256 or more colors, and have drivers designed for palette support.

There are some devices that can show a limited number of colors at one time, but choose those colors from a much larger set of available colors. For example, the standard VGA screen can display 16 colors at a time, but can choose those 16 colors from a palette of approximately 256,000 colors. Because it can display only 16 colors at once, the VGA driver shipped with Windows does not implement the palette functions.

When an output device has a programmable color palette, its device driver can implement the SETCOLORTABLE escape through which an application can specify its desired colors. Note, however, that the display drivers (EGA, VGA, and so on), which Microsoft ships with Windows versions 3.0 and 3.1, do not support this escape. A custom device driver is required to provide this functionality. The application should send the QUERYESCSUPPORT escape to the driver to determine whether the escape is supported.

NOTE: The implementation and use of the SETCOLORTABLE escape in a display drivers affects all windows that are displayed. Because changing the color table can adversely affect the appearance of standard window attributes, such as the caption bar or window frame, using this functionality is not recommended. SETCOLORTABLE should be used only after considering how it will affect the user interface for all applications.

The Windows Device Driver Kit (DDK) provides sample code and tools required to create a new device driver, or to modify an existing device driver to support the SETCOLORTABLE escape.

Microsoft has also made available a special version of the VGA driver that implements the SETCOLORTABLE escape. This driver is called VGAPAL.DRV; it can be found in the Windows Driver Library (WDL), which is available in the Software Library. For more information on the WDL, search in the Microsoft Knowledge Base on the following word:

   wdl.txt

Drivers in the WDL can be licensed for redistribution. For more information, contact Microsoft Product Support Services.


Additional reference words: 3.00 3.10
KBCategory: kbprg
KBSubcategory: GdiPal
Keywords : kb16bitonly


THE INFORMATION PROVIDED IN THE MICROSOFT KNOWLEDGE BASE IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND. MICROSOFT DISCLAIMS ALL WARRANTIES, EITHER EXPRESS OR IMPLIED, INCLUDING THE WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL MICROSOFT CORPORATION OR ITS SUPPLIERS BE LIABLE FOR ANY DAMAGES WHATSOEVER INCLUDING DIRECT, INDIRECT, INCIDENTAL, CONSEQUENTIAL, LOSS OF BUSINESS PROFITS OR SPECIAL DAMAGES, EVEN IF MICROSOFT CORPORATION OR ITS SUPPLIERS HAVE BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. SOME STATES DO NOT ALLOW THE EXCLUSION OR LIMITATION OF LIABILITY FOR CONSEQUENTIAL OR INCIDENTAL DAMAGES SO THE FOREGOING LIMITATION MAY NOT APPLY.

Last reviewed: July 22, 1997
© 1998 Microsoft Corporation. All rights reserved. Terms of Use.