typedef BITMAPINFOHEADER BMP; #define DyBmp(bmp) ((int) bmp.biHeight) #define DxBmp(bmp) ((int) bmp.biWidth) #define CplnBmp(bmp) 1 #define OfsBits(bgnd) (bgnd.dwOfsBits) #define CbLine(bgnd) (bgnd.cbLine) typedef BITMAPFILEHEADER BMPHDR; typedef struct _bgnd { PT ptOrg; OFSTRUCT of; BMP bm; /* must folow a bm */ BYTE rgRGB[64]; /* bug: wont work with >16 color bmps */ INT cbLine; LONG dwOfsBits; BOOL fUseBitmap; DY dyBand; INT ibndMac; HANDLE *rghbnd; } BGND; /* PUBLIC routines */ BOOL FInitBgnd(TCHAR *szFile); BOOL FDestroyBgnd(); BOOL FGetBgndFile(TCHAR *sz); VOID DrawBgnd(X xLeft, Y yTop, X xRight, Y yBot); VOID SetBgndOrg(); /* Macros */ extern BGND bgnd; #define FUseBitmapBgnd() (bgnd.fUseBitmap) #define BFT_BITMAP 0x4d42 /* 'BM' */ #define ISDIB(bft) ((bft) == BFT_BITMAP) #define WIDTHBYTES(i) ((i+31)/32*4) /* ULONG aligned ! */ WORD DibNumColors(VOID FAR * pv);