windows-nt/Source/XPSP1/NT/shell/osshell/ep/carddll/back.h

73 lines
1.3 KiB
C
Raw Normal View History

2020-09-26 03:20:57 -05:00
#ifdef WINVER_2
typedef BITMAP BMP;
#else
typedef BITMAPINFOHEADER BMP;
#endif
#ifdef WINVER_2
#define DyBmp(bmp) ((int) bmp.bmHeight)
#define DxBmp(bmp) ((int) bmp.bmWidth)
#define CplnBmp(bmp) (bmp.bmPlanes)
#define OfsBits(bgnd) (sizeof(BMPHDR)+sizeof(BMP))
#define CbLine(bgnd) (bgnd.bm.bmWidthBytes)
#else
#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)
#endif
#ifdef WINVER_2
typedef INT BMPHDR;
#else
typedef BITMAPFILEHEADER BMPHDR;
#endif
typedef struct _bgnd
{
PT ptOrg;
OFSTRUCT of;
BMP bm;
#ifdef WINVER_3
// must folow a bm
BYTE rgRGB[64]; // bug: wont work with >16 color bmps
INT cbLine;
LONG dwOfsBits;
#endif
BOOL fUseBitmap;
DY dyBand;
INT ibndMac;
HANDLE *rghbnd;
} BGND;
/* PUBLIC routines */
BOOL FInitBgnd(CHAR *szFile);
BOOL FDestroyBgnd();
BOOL FGetBgndFile(CHAR *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);