ximaico.h
上传用户:pass2008
上传日期:2021-07-05
资源大小:3299k
文件大小:2k
源码类别:

Internet/IE编程

开发平台:

Visual C++

  1. /*
  2.  * File: ximaico.h
  3.  * Purpose: ICON Image Class Loader and Writer
  4.  */
  5. /* ==========================================================
  6.  * CxImageICO (c) 07/Aug/2001 Davide Pizzolato - www.xdp.it
  7.  * For conditions of distribution and use, see copyright notice in ximage.h
  8.  * ==========================================================
  9.  */
  10. #if !defined(__ximaICO_h)
  11. #define __ximaICO_h
  12. #include "ximage.h"
  13. #if CXIMAGE_SUPPORT_ICO
  14. class CxImageICO: public CxImage
  15. {
  16. typedef struct tagIconDirectoryEntry {
  17.     BYTE  bWidth;
  18.     BYTE  bHeight;
  19.     BYTE  bColorCount;
  20.     BYTE  bReserved;
  21.     WORD  wPlanes;
  22.     WORD  wBitCount;
  23.     DWORD dwBytesInRes;
  24.     DWORD dwImageOffset;
  25. } ICONDIRENTRY;
  26. typedef struct tagIconDir {
  27.     WORD          idReserved;
  28.     WORD          idType;
  29.     WORD          idCount;
  30. } ICONHEADER;
  31. public:
  32. CxImageICO(): CxImage(CXIMAGE_FORMAT_ICO) {m_dwImageOffset=0;}
  33. // bool Load(const TCHAR * imageFileName){ return CxImage::Load(imageFileName,CXIMAGE_FORMAT_ICO);}
  34. // bool Save(const TCHAR * imageFileName){ return CxImage::Save(imageFileName,CXIMAGE_FORMAT_ICO);}
  35. bool Decode(CxFile * hFile);
  36. bool Decode(FILE *hFile) { CxIOFile file(hFile); return Decode(&file); }
  37. #if CXIMAGE_SUPPORT_ENCODE
  38. bool Encode(CxFile * hFile, bool bAppend=false, int nPageCount=0);
  39. bool Encode(CxFile * hFile, CxImage ** pImages, int nPageCount);
  40. bool Encode(FILE *hFile, bool bAppend=false, int nPageCount=0)
  41. { CxIOFile file(hFile); return Encode(&file,bAppend,nPageCount); }
  42. bool Encode(FILE *hFile, CxImage ** pImages, int nPageCount)
  43. { CxIOFile file(hFile); return Encode(&file, pImages, nPageCount); }
  44. #endif // CXIMAGE_SUPPORT_ENCODE
  45. protected:
  46. DWORD m_dwImageOffset;
  47. };
  48. #endif
  49. #endif