DIB.H
上传用户:bangxh
上传日期:2007-01-31
资源大小:42235k
文件大小:3k
源码类别:

Windows编程

开发平台:

Visual C++

  1. /****************************************************************************
  2.  *                                                                          *
  3.  *  FILE    : DIB.H                                                         *
  4.  *                                                                          *
  5.  *  DESCRIPTION : Header/include file for DIB.C                             *
  6.  *                                                                          *
  7.  ****************************************************************************/
  8. // This is code that I lifted years ago from the Windows SDK and have since
  9. // ported over to NT.
  10. //      -- stevebl
  11. #ifndef __DIB_H__
  12. #define __DIB_H__
  13. #ifdef __cplusplus
  14. extern "C" {
  15. #endif
  16. /* Macros to display/remove hourglass cursor for lengthy operations */
  17. extern HCURSOR hcurSave;
  18. #define StartWait() hcurSave = SetCursor(LoadCursor(NULL,IDC_WAIT))
  19. #define EndWait()   SetCursor(hcurSave)
  20. /* flags for _lseek */
  21. #define  SEEK_CUR 1
  22. #define  SEEK_END 2
  23. #define  SEEK_SET 0
  24. #define MAXREAD  32768             /* Number of bytes to be read during */
  25.                        /* each read operation.          */
  26. /* Header signatutes for various resources */
  27. #define BFT_ICON   0x4349   /* 'IC' */
  28. #define BFT_BITMAP 0x4d42   /* 'BM' */
  29. #define BFT_CURSOR 0x5450   /* 'PT' */
  30. /* macro to determine if resource is a DIB */
  31. #define ISDIB(bft) ((bft) == BFT_BITMAP)
  32. /* Macro to determine to round off the given value to the closest byte */
  33. #define WIDTHBYTES(i)   ((i+31)/32*4)
  34. #define PALVERSION  0x300
  35. #define MAXPALETTE  256   /* max. # supported palette entries */
  36. /***************** FUNCTION DECLARATIONS *******************/
  37. DWORD PASCAL lread(int fh, VOID FAR *pv, DWORD ul);
  38. DWORD PASCAL lwrite(int fh, VOID FAR *pv, DWORD ul);
  39. /***********************************************************/
  40. /* Declarations of functions used in dib.c module      */
  41. /***********************************************************/
  42. HANDLE      OpenDIB (LPWSTR szFile);
  43. BOOL        WriteDIB (LPWSTR szFile,HANDLE hdib);
  44. WORD        PaletteSize (VOID FAR * pv);
  45. WORD        DibNumColors (VOID FAR * pv);
  46. HPALETTE    CreateDibPalette (HANDLE hdib);
  47. HPALETTE    CreateBIPalette (LPBITMAPINFOHEADER lpbi);
  48. HANDLE      DibFromBitmap (HBITMAP hbm, DWORD biStyle, WORD biBits, HPALETTE hpal);
  49. HBITMAP     BitmapFromDib (HANDLE hdib, HPALETTE hpal);
  50. BOOL        DibBlt (HDC hdc, int x0, int y0, int dx, int dy, HANDLE hdib, int x1, int y1, LONG rop);
  51. BOOL        StretchDibBlt (HDC hdc, int x0, int y0, int dx, int dy, HANDLE hdib, int x1, int y1, int dx1, int dy1, LONG rop);
  52. BOOL        DibInfo (HANDLE hdib,LPBITMAPINFOHEADER lpbi);
  53. HANDLE      ReadDibBitmapInfo (int fh);
  54. BOOL        DrawBitmap (HDC hdc, int x, int y, HBITMAP hbm, DWORD rop);
  55. #ifdef __cplusplus
  56. }
  57. #endif
  58. #endif // __DIB_H__