CurModule.h
上传用户:yatsl7111
上传日期:2007-01-08
资源大小:1433k
文件大小:4k
源码类别:

图形图象

开发平台:

Visual C++

  1. // CurModule.h : main header file for the CURMODULE DLL
  2. //
  3. #if !defined(AFX_CURMODULE_H__C03B0E31_460A_11D4_8853_C6A14464AE19__INCLUDED_)
  4. #define AFX_CURMODULE_H__C03B0E31_460A_11D4_8853_C6A14464AE19__INCLUDED_
  5. #if _MSC_VER > 1000
  6. #pragma once
  7. #endif // _MSC_VER > 1000
  8. #ifndef __AFXWIN_H__
  9. #error include 'stdafx.h' before including this file for PCH
  10. #endif
  11. #include "resource.h" // main symbols
  12. #include "..publicgol_isee.h" // 此文件定义了接口数据包
  13. #define ICONTYPE 1
  14. #define CURTYPE 2
  15. // 扫描行宽度
  16. #define WIDTHBYTES(bits)      ((((bits)+31)>>5)<<2)
  17. #define RWPROGRESSSIZE   100
  18. #define BORDERSPEC 16
  19. #define IMGTXTSPEC 4
  20. #define TXTIMGSPEC 8
  21. // 单个图标图像的信息头结构
  22. typedef struct
  23. {
  24. BYTE bWidth;               // Width of the image
  25. BYTE bHeight;              // Height of the image (times 2)
  26. BYTE bColorCount;          // Number of colors in image (0 if >=8bpp)
  27. BYTE bReserved;            // Reserved
  28. WORD wPlanes;              // Color Planes
  29. WORD wBitCount;            // Bits per pixel
  30. DWORD dwBytesInRes;         // how many bytes in this resource?
  31. DWORD dwImageOffset;        // where in the file is this image
  32. } ICONDIRENTRY, *LPICONDIRENTRY;
  33. // 图标文件信息头结构
  34. typedef struct 
  35. {
  36. WORD idReserved;   // Reserved
  37. WORD idType;       // resource type (1 for icons)
  38. WORD idCount;      // how many images?
  39. ICONDIRENTRY idEntries[1]; // the entries for each image
  40. } ICONDIR, *LPICONDIR;
  41. // 内部图像信息结构
  42. typedef struct
  43. {
  44. int index;
  45. int colnum; // 颜色个数(如果位深大于8bpp则为0)
  46. SIZE imgsize; // 图像的尺寸
  47. SIZE txtsize; // 图像描述串的尺寸
  48. char string[32]; // 图像尺寸字串
  49. } IMGINFO, *LPIMGINFO;
  50. /////////////////////////////////////////////////////////////////////////////
  51. // CCurModuleApp
  52. // See CurModule.cpp for the implementation of this class
  53. //
  54. class CCurModuleApp : public CWinApp
  55. {
  56. public:
  57. CCurModuleApp();
  58. // Overrides
  59. // ClassWizard generated virtual function overrides
  60. //{{AFX_VIRTUAL(CCurModuleApp)
  61. //}}AFX_VIRTUAL
  62. //{{AFX_MSG(CCurModuleApp)
  63. // NOTE - the ClassWizard will add and remove member functions here.
  64. //    DO NOT EDIT what you see in these blocks of generated code !
  65. //}}AFX_MSG
  66. DECLARE_MESSAGE_MAP()
  67. };
  68. // 定义模块版本
  69. #define MODULE_BUILDID 11
  70. // 接口函数声明 — 第一层,唯一与外界联系的接口
  71. int WINAPI AccessCURModule(INFOSTR *pInfo);
  72. // 命令解释函数 — 第二层解释函数
  73. void _fnCMD_GETPROCTYPE(INFOSTR *pInfo);
  74. void _fnCMD_GETWRITERS(INFOSTR *pInfo);
  75. void _fnCMD_GETWRITERMESS(INFOSTR *pInfo);
  76. void _fnCMD_GETBUILDID(INFOSTR *pInfo);
  77. void _fnCMD_IS_VALID_FILE(INFOSTR *pInfo);
  78. void _fnCMD_GET_FILE_INFO(INFOSTR *pInfo);
  79. void _fnCMD_LOAD_FROM_FILE(INFOSTR *pInfo);
  80. void _fnCMD_SAVE_TO_FILE(INFOSTR *pInfo);
  81. void _fnCMD_IS_SUPPORT(INFOSTR *pInfo);
  82. void _fnCMD_RESIZE(INFOSTR *pInfo);
  83. // 内部执行函数 - 第三层执行函数.....
  84. BOOL IsFileExist(char *lpFileName);
  85. LPICONDIR ReadIconInfo(CFile& file);
  86. UINT ReadICOHeader(CFile file);
  87. LPSTR FindDIBBits(LPSTR lpbi);
  88. WORD DIBNumColors(LPSTR lpbi);
  89. WORD PaletteSize(LPSTR lpbi);
  90. DWORD BytesPerLine(LPBITMAPINFOHEADER lpBMIH);
  91. void _get_image_info(LPICONDIR lpIR, int index, LPSIZE lpSize, int *pColnum);
  92. void _get_string_info(LPSIZE lpImgSize, int colnum, LPTSTR lpString, LPSIZE lpTxtSize);
  93. void _get_synthesis_imgsize(int imgcount, LPIMGINFO lpImgInfo, LPSIZE lpSize);
  94. void _do_sort(int imgcount, LPIMGINFO lpImgInfo);
  95. HBITMAP _get_hbmp(CFile& file, LPICONDIR lpIR, LPIMGINFO lpImgInfo, int index);
  96. /////////////////////////////////////////////////////////////////////////////
  97. //{{AFX_INSERT_LOCATION}}
  98. // Microsoft Visual C++ will insert additional declarations immediately before the previous line.
  99. #endif // !defined(AFX_CURMODULE_H__C03B0E31_460A_11D4_8853_C6A14464AE19__INCLUDED_)