META_SETDIBTODEV

# NAME

META_SETDIBTODEV

# NEAREST API CALL

    #include <windows.h>
    INT32 SetDIBitsToDevice
    (
    	HDC32 hdc,
    	INT32 xDest,
    	INT32 yDest,
    	DWORD cx,
    	DWORD cy,
    	INT32 xSrc,
    	INT32 ySrc,
    	UINT32 startscan,
    	UINT32 lines,
    	LPCVOID bits,
    	const BITMAPINFO *info,
    	UINT32 coloruse
    );

# DESCRIPTION

U16 | Value
0 | coloruse
1 | lines
2 | starting line
3 | ySrc
4 | xSrc
5 | cy
6 | cx
7 | yDst
8 | xDst
9 to end | the dib itself

coloruse is one of either DIB_RGB_COLORS or DIB_PAL_COLORS
lines is the number of lines in the dib to copy, in fact only this number of lines *exist* in the dib attached to the record, the header of the dib may tell you that there's more lines in the dib that there actually is, so you must use this value to determine the truth (nasty eh!)
starting line is the line of the original dib that was to be the starting line to copy from, in the metafile record you can ignore this, as the attached dib is cropped as far as this line, so this work is done for you
xSrc, and ySrc are the location in the dib to copy from, im uncertain of these for the moment, as all examples have them to set to 0
cy and cx are the size of the destination rectangle, with xDest and yDest being the coordinate of the topleft of the dest rect.
the rest of the bytes are the dib itself, but remember the height of the dib, as shown in its header may be wrong, use the lines parameter to determine the truth

back