ICCOMPRESSFRAMES

typedef struct {
    DWORD dwFlags;
    LPBITMAPINFOHEADER lpbiOutput;
    LPARAM lOutput;
    LPBITMAPINFOHEADER lpbiInput;
    LPARAM lInput;
    LONG lStartFrame;
    LONG lFrameCount;
    LONG lQuality;
    LONG lDataRate;
    LONG lKeyRate;
    DWORD dwRate;
    DWORD dwScale;
    DWORD dwOverheadPerFrame;
    DWORD dwReserved2;
    LONG (CALLBACK* GetData) (LPARAM lInput, LONG lFrame, LPVOID lpBits, 
LONG len);     LONG (CALLBACK* PutData) (LPARAM lOutput, LONG lFrame, LPVOID lpBits,
LONG len); } ICCOMPRESSFRAMES;

The ICCOMPRESSFRAMES structure is used with the ICM_COMPRESS_FRAMES_INFO message to specify compression parameters.

dwFlags
Specifies flags used for compression. At present, only the ICDECOMPRESSFRAMES_PADDING flag is defined and indicates that padding is used with the frame.
lpbiOutput
Specifies a pointer to a BITMAPINFOHEADER structure containing the output format.
lOutput
Specifies a parameter returned by the function specified by the PutData member.
lpbiInput
Specifies a pointer to a BITMAPINFOHEADER structure containing the input format.
lInput
Specifies a parameter returned by the function specified by the GetData member.
lStartFrame
Specifies the starting frame number to be compressed.
lFrameCount
Specifies the number of frames to compress.
lQuality
Specifies the quality.
lDataRate
Specifies the maximum data rate in bytes per second.
lKeyRate
Specifies the maximum spacing, in frames, between key frames.
dwRate
Specifies the compression rate in an integer format. To obtain the rate in frames-per-second, divide this value by the value in dwScale.
dwScale
Specifies the value used to scale dwRate to frames-per-second.
dwOverheadPerFrame
Reserved.
dwReserved2
Reserved.
GetData
Specifies the callback function used get frames of data to compress. (Not used.)
PutData
Specifies the callback function used to send frames of compressed data. (Not used.)