66 lines
3.4 KiB
C
66 lines
3.4 KiB
C
/****************************************************************************
|
|
* *
|
|
* FILE : SHOWDIB.H *
|
|
* *
|
|
* DESCRIPTION : Header/include file for ShowDIB example. *
|
|
* *
|
|
****************************************************************************/
|
|
|
|
/* Macro to restrict a given value to an upper or lower boundary value */
|
|
#define BOUND(x,min,max) ((x) < (min) ? (min) : ((x) > (max) ? (max) : (x)))
|
|
|
|
/* Macro to swap two values */
|
|
#define SWAP(x,y) ((x)^=(y)^=(x)^=(y))
|
|
|
|
/* Macro to find the minimum of two values */
|
|
#define MIN(x,y) (((x) <= (y)) : x ? y)
|
|
|
|
/* Macros to display/remove hourglass cursor for lengthy operations */
|
|
#define StartWait() hcurSave = SetCursor(LoadCursor(NULL,IDC_WAIT))
|
|
#define EndWait() SetCursor(hcurSave)
|
|
|
|
#define MINBAND 50 /* Minimum band size used by the program */
|
|
#define BANDINCREMENT 20 /* Decrement for band size while trying */
|
|
/* to determine optimum band size. */
|
|
|
|
/* macro to determine if resource is a DIB */
|
|
#define ISDIB(bft) ((bft) == BFT_BITMAP)
|
|
|
|
/* Macro to align given value to the closest DWORD (unsigned long ) */
|
|
#define ALIGNULONG(i) ((i+3)/4*4)
|
|
|
|
/* Macro to determine to round off the given value to the closest byte */
|
|
#define WIDTHBYTES(i) ((i+31)/32*4)
|
|
|
|
#define PALVERSION 0x300
|
|
#define MAXPALETTE 256 /* max. # supported palette entries */
|
|
|
|
/***************** GLOBAL VARIABLES *************************/
|
|
|
|
extern char achFileName[128]; /* File pathname */
|
|
extern DWORD dwOffset; /* Current position if DIB file pointer */
|
|
extern RECT rcClip; /* Current clip rectangle. */
|
|
extern BOOL fPalColors; /* TRUE if the current DIB's color table */
|
|
/* contains palette indexes not rgb values */
|
|
extern BOOL bDIBToDevice; /* Use SetDIBitsToDevice() to BLT data. */
|
|
extern BOOL bLegitDraw; /* We have a valid bitmap to draw */
|
|
extern WORD wTransparent; /* Mode of DC */
|
|
extern char szAppName[]; /* App. name */
|
|
extern HPALETTE hpalCurrent; /* Handle to current palette */
|
|
extern HANDLE hdibCurrent; /* Handle to current memory DIB */
|
|
extern HBITMAP hbmCurrent; /* Handle to current memory BITMAP */
|
|
extern HANDLE hbiCurrent; /* Handle to current bitmap info struct */
|
|
extern DWORD dwStyle; /* Style bits of the App. window */
|
|
|
|
|
|
/***********************************************************/
|
|
/* Declarations of functions used in dib.c module */
|
|
/***********************************************************/
|
|
|
|
WORD PaletteSize (VOID FAR * pv);
|
|
WORD DibNumColors (VOID FAR * pv);
|
|
HANDLE DibFromBitmap (HBITMAP hbm, DWORD biStyle, WORD biBits, HPALETTE hpal);
|
|
HBITMAP BitmapFromDib (HANDLE hdib, HPALETTE hpal);
|
|
|
|
|