Windows 3.1 Device Drivers (ddag31qh.hlp) (
Table of Contents;
Topic list)
Important Notice
The pages on this site contain documentation for very old MS-DOS software,
purely for historical purposes.
If you're looking for up-to-date documentation, particularly for programming,
you should not rely on the information found here, as it will be woefully
out of date.
BITMAPINFO
◄Up► ◄Next► ◄Previous►
────────────────────────────────────────────────────────────────────────────
typedef struct tagBITMAPINFO {
BITMAPINFOHEADER bmiHeader;
RGBQUAD bmiColors[1];
} BITMAPINFO;
The BITMAPINFO structure fully defines the dimensions and color information
for a Windows 3.x device-independent bitmap.
Member Description
────────────────────────────────────────────────────────────────────────────
bmiHeader Specifies a BITMAPINFOHEADER structure that contains information
about the dimensions and color format of a device-independent
bitmap.
bmiColors Specifies an array of RGBQUAD structures that define the colors
in the bitmap.
Comments
A Windows 3.x device-independent bitmap consists of two distinct parts: a
BITMAPINFO data structure that describes the dimensions and colors of the
bitmap, and an array of bytes that define the pixels of the bitmap. The bits
in the array are packed together, but each scan line must be padded with
zeros to end on a 32-bit boundary. Segment boundaries can appear anywhere in
the bitmap, however. The origin of the bitmap is the lower-left corner.
The biBitCount member of the BITMAPINFOHEADER structure determines the
number of bits which define each pixel and the maximum number of colors in
the bitmap. This member may be set to any of the following values.
Value Meaning
────────────────────────────────────────────────────────────────────────────
1 The bitmap is monochrome, and the bmiColors member must contain two
entries. Each bit in the bitmap array represents a pixel. If the bit
is clear, the pixel is displayed with the color of the first entry in
the bmiColors member; if the bit is set, the pixel has the color of
the second entry in the table.
4 The bitmap has a maximum of 16 colors, and the bmiColors member
contains up to 16 entries. Each pixel in the bitmap is represented by
a 4-bit index into the color table.
For example, if the first byte in the bitmap is 0x1F, then the byte
represents two pixels. The first pixel contains the color in the
second table entry, and the second pixel contains the color in the
sixteenth table entry.
8 The bitmap has a maximum of 256 colors, and the bmiColors member
contains up to 256 entries. In this case, each byte in the array
represents a single pixel.
24 The bitmap has a maximum of 2**24 colors. The bmiColors member is
NULL, and each three bytes in the bitmap array represents the
relative intensities of blue, green, and red, respectively, of a
pixel.
Alternatively, for functions that use device-independent bitmaps, the
bmiColors member can be an array of 16-bit unsigned integers that specify an
index into the currently realized, logical palette instead of explicit RGB
values. In this case, an application using the bitmap must call
device-independent bitmap functions with the wColorUse parameter set to
DIB_PAL_COLORS.
See Also
DeviceBitmapBits, SetDIBitsToDevice, StretchDIBits, BITMAPINFOHEADER,
RGBQUAD
♦