www.pudn.com > isee_code01231.zip > CurModule.h
// CurModule.h : main header file for the CURMODULE DLL
//
#if !defined(AFX_CURMODULE_H__C03B0E31_460A_11D4_8853_C6A14464AE19__INCLUDED_)
#define AFX_CURMODULE_H__C03B0E31_460A_11D4_8853_C6A14464AE19__INCLUDED_
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
#ifndef __AFXWIN_H__
#error include 'stdafx.h' before including this file for PCH
#endif
#include "resource.h" // main symbols
#include "..\public\gol_isee.h" // 此文件定义了接口数据包
#define ICONTYPE 1
#define CURTYPE 2
// 扫描行宽度
#define WIDTHBYTES(bits) ((((bits)+31)>>5)<<2)
#define RWPROGRESSSIZE 100
#define BORDERSPEC 16
#define IMGTXTSPEC 4
#define TXTIMGSPEC 8
// 单个图标图像的信息头结构
typedef struct
{
BYTE bWidth; // Width of the image
BYTE bHeight; // Height of the image (times 2)
BYTE bColorCount; // Number of colors in image (0 if >=8bpp)
BYTE bReserved; // Reserved
WORD wPlanes; // Color Planes
WORD wBitCount; // Bits per pixel
DWORD dwBytesInRes; // how many bytes in this resource?
DWORD dwImageOffset; // where in the file is this image
} ICONDIRENTRY, *LPICONDIRENTRY;
// 图标文件信息头结构
typedef struct
{
WORD idReserved; // Reserved
WORD idType; // resource type (1 for icons)
WORD idCount; // how many images?
ICONDIRENTRY idEntries[1]; // the entries for each image
} ICONDIR, *LPICONDIR;
// 内部图像信息结构
typedef struct
{
int index;
int colnum; // 颜色个数(如果位深大于8bpp则为0)
SIZE imgsize; // 图像的尺寸
SIZE txtsize; // 图像描述串的尺寸
char string[32]; // 图像尺寸字串
} IMGINFO, *LPIMGINFO;
/////////////////////////////////////////////////////////////////////////////
// CCurModuleApp
// See CurModule.cpp for the implementation of this class
//
class CCurModuleApp : public CWinApp
{
public:
CCurModuleApp();
// Overrides
// ClassWizard generated virtual function overrides
//{{AFX_VIRTUAL(CCurModuleApp)
//}}AFX_VIRTUAL
//{{AFX_MSG(CCurModuleApp)
// NOTE - the ClassWizard will add and remove member functions here.
// DO NOT EDIT what you see in these blocks of generated code !
//}}AFX_MSG
DECLARE_MESSAGE_MAP()
};
// 定义模块版本
#define MODULE_BUILDID 11
// 接口函数声明 — 第一层,唯一与外界联系的接口
int WINAPI AccessCURModule(INFOSTR *pInfo);
// 命令解释函数 — 第二层解释函数
void _fnCMD_GETPROCTYPE(INFOSTR *pInfo);
void _fnCMD_GETWRITERS(INFOSTR *pInfo);
void _fnCMD_GETWRITERMESS(INFOSTR *pInfo);
void _fnCMD_GETBUILDID(INFOSTR *pInfo);
void _fnCMD_IS_VALID_FILE(INFOSTR *pInfo);
void _fnCMD_GET_FILE_INFO(INFOSTR *pInfo);
void _fnCMD_LOAD_FROM_FILE(INFOSTR *pInfo);
void _fnCMD_SAVE_TO_FILE(INFOSTR *pInfo);
void _fnCMD_IS_SUPPORT(INFOSTR *pInfo);
void _fnCMD_RESIZE(INFOSTR *pInfo);
// 内部执行函数 - 第三层执行函数.....
BOOL IsFileExist(char *lpFileName);
LPICONDIR ReadIconInfo(CFile& file);
UINT ReadICOHeader(CFile file);
LPSTR FindDIBBits(LPSTR lpbi);
WORD DIBNumColors(LPSTR lpbi);
WORD PaletteSize(LPSTR lpbi);
DWORD BytesPerLine(LPBITMAPINFOHEADER lpBMIH);
void _get_image_info(LPICONDIR lpIR, int index, LPSIZE lpSize, int *pColnum);
void _get_string_info(LPSIZE lpImgSize, int colnum, LPTSTR lpString, LPSIZE lpTxtSize);
void _get_synthesis_imgsize(int imgcount, LPIMGINFO lpImgInfo, LPSIZE lpSize);
void _do_sort(int imgcount, LPIMGINFO lpImgInfo);
HBITMAP _get_hbmp(CFile& file, LPICONDIR lpIR, LPIMGINFO lpImgInfo, int index);
/////////////////////////////////////////////////////////////////////////////
//{{AFX_INSERT_LOCATION}}
// Microsoft Visual C++ will insert additional declarations immediately before the previous line.
#endif // !defined(AFX_CURMODULE_H__C03B0E31_460A_11D4_8853_C6A14464AE19__INCLUDED_)