The client application sends ICM_DECOMPRESSEX each time it has an image to decompress. The client application uses the flags in the file index to ensure the initial frame in a decompression sequence is a key frame.
The ICDECOMPRESSEX data structure specified in dwParam1 contains the decompression parameters. The value specified in dwParam2 specifies the size of the structure.
The format of the input data is specified in a BITMAPINFOHEADER structure pointed to by lpbiInput. The input data is in a buffer specified by lpInput. The lpbiOutput and lpOutput members contain pointers to the format data and buffer used for the output data.
The client application sets the ICDECOMPRESS_HURRYUP flag in the dwFlags member to direct your driver to decompress the data at a faster rate. The ICDECOMPRESS_PREROLL flag indicates the client application is sending frames in advance of a frame that will actually be displayed. The client application will not display any data decompressed with these flags. This might let your driver avoid decompressing a frame or data, or let it minimally decompress when it needs information from this frame to prepare for decompressing a following frame.
The ICDECOMPRESS_UPDATE flag indicates the client application has specified that the screen be updated.
The ICDECOMPRESS_NULLFRAME flag indicates the frame does not have any data.
The ICDECOMPRESS_NOTKEYFRAME flag indicates the frame is not a key frame.