荔园在线

荔园之美,在春之萌芽,在夏之绽放,在秋之收获,在冬之沉淀

[回到开始] [上一篇][下一篇]


发信人: Deny (Deny), 信区: Visual
标  题: [转载] 使用 Winzip 的 dll 压缩文件(1)(转寄)
发信站: BBS 荔园晨风站 (Sat Dec 23 23:28:32 2000), 转信

【 以下文字转载自 Deny 的信箱 】
【 原文由 denick.bbs@smth.org 所发表 】
发信人: gBoy (DD), 信区: VisualC
标  题: 使用 Winzip 的 dll 压缩文件(1)
发信站: BBS 水木清华站 (Wed Dec 20 17:00:59 2000)


// winzip 类的头文件
// winzip.h
#pragma once
#define WINZIP_NOCOMPRESS       0
#define WINZIP_COMPRESS         1
#define WINZIP_FASTEST          1
#define WINZIP_FAST             2
#define WINZIP_NORMAL           4
#define WINZIP_EXTRA            8
#define WINZIP_ADD              1
#define WINZIP_UPDATE           2
#define WINZIP_FRESHEN          3
#define WINZIP_DELETE           4
typedef struct
{
 DWORD   un1;
 BOOL    bRecurseSubdir;
 BOOL    bMoveFile;
 BOOL    bStorePathnames;
 DWORD   dwCompress;                     // 0xFFFFFFFF 压缩, 0 不压缩
 DWORD   dwCompressMethod;
 DWORD   dwCommand;
 DWORD   un8;
 LPCTSTR sZipname;
 DWORD   un9;
 DWORD   un10;
 DWORD   un11;
 LPVOID  sFnameToZip;
 DWORD   un12;
 DWORD   un13;
 BOOL    bDOS83Name;
 DWORD   un15;
 DWORD   un16;
 BOOL    bUsePassword;
 LPCTSTR sPassword;
 BOOL    bIncludeSysHide;
 BOOL    bOnlyArchiveFile;
   BOOL    bResetArchiveAttrib;
 DWORD   un22;
 BYTE    un23[0x30];
} ZIPDATA, *LPZIPDATA;
typedef struct {
 DWORD   un1;
 DWORD   un2;                            // 1 (0)
 BOOL    bListFile;                      // 0 (1)
 DWORD   un4;                            // 1 (0)
 DWORD   un5;
 BOOL    bNotRestoreDir;
 DWORD   un6;
 BOOL    bOverwrite;
 DWORD   un7;
 DWORD   un8;                            // 1 (0)
 DWORD   un9;
 DWORD   un10;
 DWORD   un11;
 DWORD   un12;
 BOOL    bSkipOlderFiles;
 DWORD   un13;
 BOOL    bUsePassword;
 LPCTSTR sPassword;
 BOOL    bExtractAllFiles;
 LPCTSTR sZipName;
 LPCTSTR sExtractPath;
 LPCTSTR *sFilenamesExtracting;
 DWORD   un17;
 DWORD   nExtractFile;
 DWORD   un19;
 DWORD   un20;
 DWORD   un21;                           // 0x1E4 ???
 DWORD   un22;
 DWORD   un23;
 DWORD   un24;                           // 1 (0)
 DWORD   un25;
 DWORD   un26;                           // 1 (0)
 DWORD   un27;
 DWORD   un28;
 DWORD   un29;
} UNZIPDATA, *LPUNZIPDATA;
typedef struct {
 WORD    un1;
 WORD    un2;
 WORD    un3;
 WORD    un4;
 WORD    un5;
 DWORD   CRC;
 DWORD   CompressSize;
 DWORD   OriginSize;
} ZIPFILEINFO, *LPZIPFILEINFO;
typedef DWORD (*ZipCallbackFun)();
typedef DWORD (*ZipInitFun)(ZipCallbackFun , ZipCallbackFun ,
       ZipCallbackFun , ZipCallbackFun , ZipCallbackFun ,
       ZipCallbackFun , ZipCallbackFun , ZipCallbackFun ,
       ZipCallbackFun , ZipCallbackFun , ZipCallbackFun ,
       ZipCallbackFun , ZipCallbackFun , ZipCallbackFun ,
       ZipCallbackFun , LPCTSTR );
typedef DWORD (*UnZipInitFun)(ZipCallbackFun , ZipCallbackFun ,
         ZipCallbackFun , ZipCallbackFun , ZipCallbackFun ,
         ZipCallbackFun , ZipCallbackFun , ZipCallbackFun ,
         ZipCallbackFun , ZipCallbackFun , ZipCallbackFun ,
         ZipCallbackFun , LPCTSTR );
typedef BOOL (*ZipFun)(LPZIPDATA);
typedef BOOL (*UnZipFun)(LPUNZIPDATA);
typedef DWORD (*ExtractCallbackFun) (LPCTSTR sFname);
typedef DWORD (*ListFileCallbackFun) (LPZIPFILEINFO pFileInfo, LPCTSTR sFnam
e);
typedef struct tagFNAMES
{
 LPCTSTR sNextFname;
 char sFname[MAX_PATH];
} FNAMES;
class CWinzip
{
protected:
 HINSTANCE m_hDll;
public:
 CWinzip();
 ~CWinzip();
 BOOL LoadDll(LPCTSTR sDllFname);
 void UnloadDll();
 BOOL Zip(LPZIPDATA zipdata);
 BOOL Unzip(LPUNZIPDATA unzipdata, ExtractCallbackFun cbfExtractF);
 BOOL ListFile (LPUNZIPDATA unzipdata, ListFileCallbackFun cbfListFile);
};
--
大风起兮大风起兮
    云飞扬    云飞扬
威加海内兮威加海内兮
     归故乡    归故乡


※ 来源:·BBS 水木清华站 smth.org·[FROM: 202.118.6.22]
--
※ 转载:·BBS 荔园晨风站 bbs.szu.edu.cn·[FROM: 192.168.1.114]


[回到开始] [上一篇][下一篇]

荔园在线首页 友情链接:深圳大学 深大招生 荔园晨风BBS S-Term软件 网络书店