荔园在线

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

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


发信人: 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软件 网络书店