Supporting the ICM_DECOMPRESS and ICM_DECOMPRESSEX Messages

The ICM_DECOMPRESSEX messages replace the ICM_DECOMPRESS messages and add extended decompression capabilities. These messages let drivers decompress images described with source and destination rectangles.

The ICM_DECOMPRESSEX messages serve the same purpose as the ICM_DECOMPRESS, ICM_DECOMPRESS_BEGIN, ICM_DECOMPRESS_END, and ICM_DECOMPRESS_QUERY messages, except that the ICM_DECOMPRESSEX messages use the ICDECOMPRESSEX structure. This structure contains the image input format and data, the output format and data, the source rectangle, and the destination rectangle. For compatibility, your driver should support the ICM_DECOMPRESS messages as well as the ICM_DECOMPRESSEX messages.

The ICM_DECOMPRESSEX messages also let applications decompress to a frame buffer under the following conditions:

·The decompressor supports a frame buffer.

·MSVideo can access the frame buffer.

·The decompressor supports decompression to the format of the frame buffer (for example, it supports the correct bit depth and it can handle upside-down formats).

·The palette must be an identity palette if the device uses 8-bit color depth.

·The decompressor must support 48-bit pointers if the linear frame buffer is simulated with a banked display card. MSVideo sets the biCompression member of the BITMAPINFOHEADER structure to 1632 when the decompressor needs to use 48-bit pointers to access the image.