荔园在线
荔园之美,在春之萌芽,在夏之绽放,在秋之收获,在冬之沉淀
[回到开始]
[上一篇][下一篇]
发信人: Deny (Deny), 信区: Visual
标 题: [转载] 使用 Winzip 的 dll 压缩文件(2)(转寄)
发信站: BBS 荔园晨风站 (Sat Dec 23 23:28:37 2000), 转信
【 以下文字转载自 Deny 的信箱 】
【 原文由 denick.bbs@smth.org 所发表 】
发信人: gBoy (DD), 信区: VisualC
标 题: 使用 Winzip 的 dll 压缩文件(2)
发信站: BBS 水木清华站 (Wed Dec 20 17:02:36 2000)
// 实现文件
// winzip.cpp
#include "stdafx.h"
#include "winzip.h"
static DWORD myfun()
{
return 0;
}
static DWORD myfun2()
{
return 1;
}
CWinzip::CWinzip()
{
m_hDll = NULL;
}
CWinzip::~CWinzip()
{
if (m_hDll) ::FreeLibrary(m_hDll);
}
BOOL CWinzip::LoadDll (LPCTSTR sDllFname)
{
if (!m_hDll) m_hDll = ::LoadLibrary(sDllFname);
return m_hDll != NULL;
}
void CWinzip::UnloadDll ()
{
if (m_hDll)
{
::FreeLibrary(m_hDll);
m_hDll = NULL;
}
}
BOOL CWinzip::Zip(LPZIPDATA zipdata)
{
BOOL r = FALSE;
if (m_hDll)
{
ZipInitFun zipinit = (ZipInitFun)::GetProcAddress(m_hDll, "zip_init");
ZipFun zip=(ZipFun)::GetProcAddress(m_hDll, "zip");
if(zipinit && zip)
{
if(zipinit(myfun, myfun, myfun, myfun, myfun,
myfun, myfun, myfun, myfun, myfun,
myfun, myfun, myfun, myfun, myfun,
"A test message") == 0)
{
zipdata->un10= 0x990; // ???
zipdata->un12= 1;
zipdata->dwCompress=0xffffffff;
zipdata->dwCompressMethod = WINZIP_NORMAL|WINZIP_COMPRESS ;
r = zip(zipdata);
}
}
}
return r;
}
BOOL CWinzip::Unzip(LPUNZIPDATA unzipdata, ExtractCallbackFun cbfExtractFile
)
{
BOOL r = FALSE;
if (m_hDll)
{
UnZipInitFun unzipinit=(UnZipInitFun)::GetProcAddress(m_hDll,"unziinit");
UnZipFun unzip=(UnZipFun)::GetProcAddress(m_hDll,"unzip");
if(unzipinit && unzip)
{
if (unzipinit(myfun, myfun, myfun, myfun, myfun,cbfExtractFile ? (ZipCall
backFun)cbfExtractFile:myfun,myfun,myfun,myfun,myfun,myfun2,myfun,"A test me
ssage") == 0)
{
unzipdata->un2 = 1;
unzipdata->un4 = 1;
unzipdata->un8 = 1;
unzipdata->un24 = 1;
unzipdata->un26 = 1;
unzipdata->un21 = 0x1e4;
r = (unzip(unzipdata) == 0);
}
}
}
return r;
}
BOOL CWinzip::ListFile (LPUNZIPDATA unzipdata,ListFileCallbackFun cbfListFi
le)
{
BOOL r = FALSE;
if (m_hDll)
{
UnZipInitFun unzipinit=(UnZipInitFun)::GetProcAddress(m_hDll,"unzipinit");
UnZipFun unzip=(UnZipFun)::GetProcAddress(m_hDll, "unzip");
if (unzipinit && unzip)
{
if (unzipinit(myfun, myfun, (ZipCallbackFun)cbfListFile,
myfun, myfun, myfun, myfun, myfun, myfun, myfun,
myfun2, myfun, "A test message") == 0)
{
unzipdata->bListFile = TRUE;
unzipdata->un21 = 0x1e4;
r = (unzip(unzipdata) == 0);
}
}
}
return r;
}
--
大风起兮大风起兮
云飞扬 云飞扬
威加海内兮威加海内兮
归故乡 归故乡
※ 来源:·BBS 水木清华站 smth.org·[FROM: 202.118.6.22]
--
※ 转载:·BBS 荔园晨风站 bbs.szu.edu.cn·[FROM: 192.168.1.114]
[回到开始]
[上一篇][下一篇]
荔园在线首页 友情链接:深圳大学 深大招生 荔园晨风BBS S-Term软件 网络书店