windows-nt/Source/XPSP1/NT/multimedia/media/avi/drawdib.16/lockbm.h

57 lines
1.9 KiB
C
Raw Normal View History

2020-09-26 03:20:57 -05:00
#define BM_NULL 0
#define BM_TYPE 0x0F // type mask
#define BM_8BIT 0x01 // all SVGA, and other 256 color
#define BM_16555 0x02 // some HiDAC cards
#define BM_24BGR 0x03 // just like a DIB
#define BM_32BGR 0x04 // 32 bit BGR
#define BM_VGA 0x05 // VGA style bitmap.
#define BM_16565 0x06 // most HiDAC cards
#define BM_24RGB 0x07 // 24 bit RGB
#define BM_32RGB 0x08 // 32 bit RGB
#define BM_1BIT 0x09 // mono bitmap
#define BM_4BIT 0x0A // 4 bit packed pixel.
#define BM_CANLOCK 0x10 // can lock these bitmaps
#define BM_MAPFLAT 0x20 // can make bitmaps flat
#define BM_HUGE 0x40 // with FillBytes != 0 (for > 64k)
#define BM_BOTTOMTOTOP 0x80 // like a DIB
//
// this is a physical BITMAP in memory, this is just like a BITMAP
// structure, but with extra fields staring at bmWidthPlanes
//
typedef struct {
short bmType;
short bmWidth;
short bmHeight;
short bmWidthBytes;
BYTE bmPlanes;
BYTE bmBitsPixel;
LPVOID bmBits;
long bmWidthPlanes;
long bmlpPDevice;
short bmSegmentIndex;
short bmScanSegment;
short bmFillBytes;
short reserved1;
short reserved2;
} IBITMAP;
#define bmBitmapInfo bmWidthPlanes
#define bmOffset bmlpPDevice
#define bmNextScan reserved1
BOOL FAR CanLockBitmaps(void);
UINT FAR GetBitmapType(void);
LPVOID FAR LockBitmap(HBITMAP hbm);
LPVOID FAR GetBitmap(HBITMAP hbm, LPVOID p, int cb);
LPVOID FAR GetBitmapDIB(LPBITMAPINFOHEADER lpbi, LPVOID lpBits, LPVOID p, int cb);
LPVOID FAR GetDIBBitmap(HBITMAP hbm, LPBITMAPINFOHEADER lpbi);
LPVOID FAR GetPDevice(HDC hdc);
void FAR TestSurfaceType(HDC hdc, int x, int y);
UINT FAR GetSurfaceType(LPVOID lpBits);
BOOL FAR MakeBitmapFlat(HBITMAP hbm);
//void FAR BitmapXY(IBITMAP FAR *pbm, int x, int y);