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

Windows编程

开发平台:

Visual C++

  1. /////////////////////////////////////////////////////////////////////////////
  2. // DibCls.h
  3. /////////////////////////////////////////////////////////////////////////////
  4. // Copyright 1995 - 1997 Microsoft Corporation.  All Rights Reserved.
  5. //
  6. // THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF 
  7. // ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO 
  8. // THE IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A 
  9. // PARTICULAR PURPOSE.
  10. /////////////////////////////////////////////////////////////////////////////
  11. //
  12. // contains the prototypes for the CDibFIle and CDibSection classes
  13. //
  14. #ifndef __DIBCLASSES_H
  15. #define __DIBCLASSES_H
  16. //
  17. // class CDibFile
  18. //
  19. class CDibFile 
  20. {
  21. public:
  22. CDibFile();
  23. ~CDibFile();
  24. HRESULT GetFileHeader(IStream *);
  25. HRESULT GetInfoHeader(IStream *);
  26. DWORD HeaderSize() { return(m_headerSize); }
  27. DWORD CalcImageSize();
  28. operator BITMAPINFO * () { return(m_bmi.p); }
  29. operator BITMAPINFOHEADER * () { return(&m_bmi.p->bmiHeader); }
  30. private:
  31. DWORD m_headerSize;
  32. union 
  33. {
  34. BITMAPINFO * p;
  35. unsigned char * bytes;
  36. } m_bmi;
  37. };
  38. class CDibSection
  39. {
  40. public:
  41. CDibSection();
  42. ~CDibSection();
  43. HRESULT Create ( CDibFile& );
  44. HRESULT Setup ( HDC basedOnThisDC);
  45. HRESULT ReadFrom( IStream * strm, DWORD amount );
  46. HRESULT PaintTo ( HDC hdc, int x = 0, int y = 0 );
  47. HRESULT GetSize ( SIZEL &sz);
  48. DWORD ImageSize() { return(m_imageSize); }
  49. void ImageSize(DWORD dw) { m_imageSize = dw; }
  50. operator HANDLE() { return m_handle; }
  51. unsigned char * Base() { return(m_bitsBase); }
  52. private:
  53. unsigned char * m_bitsBase;
  54. unsigned char * m_current;
  55. HDC m_memDC;
  56. HBITMAP m_handle;
  57. HBITMAP m_oldBitmap;
  58. LONG m_h;
  59. LONG m_w;
  60. DWORD m_imageSize;
  61. };
  62. #endif __DIBCLASSES_H