亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? ziparchive.h

?? 允許創建
?? H
?? 第 1 頁 / 共 2 頁
字號:
// ZipArchive.h: interface for the CZipArchive class.
//
//////////////////////////////////////////////////////////////////////
//   ZipArchive 1.5.1, March 2001
// 
// 
//	 This library allows to crate ZIP files in the compatible way with 
//		PKZIP version 2.6. Some important issues:
//		- multiple disk spanning is supported
//		- encyption is not supported
//		- allows to create disk spanning archive also on non removable devices
//			and with user-defined volume size
//		- this library uses the zlib library by Jean-loup Gailly and Mark Adler
//			to perform inflate, deflate operations
// 
// 
// 
//   Copyright (C) 2000 - 2001 Tadeusz Dracz
//		
// 
//  Permission is granted to anyone to use this software for any purpose 
//  and to alter it and redistribute it freely, subject to the 
//  following restrictions:
// 
//   1. Using this software in commercial applications requires an author permission.
//      The permission will be granted to everyone excluding the cases when 
//      someone simply tries to resell the code.
// 
//   2. The origin of this software must not be misrepresented; you must not
//      claim that you wrote the original software. If you use this software
//      in a product, an acknowledgment in the product documentation would be
//      appreciated but is not required.
// 
//   3. Altered source versions must be plainly marked as such, and must not be
//      misrepresented as being the original software.
// 
//   4. This notice may not be removed or altered from any source distribution.
// 
// 
//		You can contact me at:
//		tdracz@artpol-software.com
//
//		For new versions check the site:
//		http://www.artpol-software.com
// 
//		History:
// 03.2001
// 
// - when the central directory was not located, the library throws CZipException::cdirNotFound,
// which allows distinguish from other exceptions (useful when we want to keep prompting
// the user to insert the last disk in a multi-disk spanning archive). 
//  
// 
// 02.2001 
//	Features added: 
//		- ability to reuse the archive after an exception thrown during extraction 
//		- added progress control possibilities to CZipArchive::AddNewFile, CZipArchive::ExtractFile, CZipArchive::TestFile 
// Changes: 
//		- CZipArchive::FindFile operation boosted ( thanks to Darin Warling for the idea) 
//		- library name changed to ZipArchive 
// Bugs fixed: 
//		- removed bug during extracting an encrypted file with 0 size 
//		- fixed bug when extracting a file with an extra field in a local file header (CZipFileHeader::ReadLocal) 
// 
//  01.2001
// 		- Disk numbering in a disk spanning archive begins now from PKBACK# 001 not PKBACK# 000
// 		- Adding and extracting without a full path possible in CZipArchive::AddNewFile and CZipArchive::ExtractFile.
// 		- Several minor changes and enhancements
// 		- Changed names for several classes.
// 
//  11.2000
//  	- Added support for password encryption and decryption.
// 			The encryption used in PKZIP was generously supplied by Roger
// 			Schlafly.  
// 		- Testing the archive made easier
// 		- Unicode support added
// 
//  08.2000
// 		- Bugs fixed
// 
//  06.2000
// 
// 		the code has been completely rewritten since the very beginning;
// 		the main improvements are:
// 		- multi-disk archive support
// 		- creation of the disk spanning archives with the user-defined volume size
// 		- ability to modify existing archives (add, delete files)
// 		- modification self-extracting archives
// 		- write buffer used for faster disk write operations 
// 		- one class for zip and unzip functions
// 		- fast adding, deleting and extracting files with a single function call
//  
//  03.2000
// 		- international characters in filenames inside archive are now
// 			converted in a compatible way with other archiving programs (they are stored
// 		converted to OEM inside archive).
// 
//  01.2000
// 
// 		first version; it is just modified code from zip.c and unzip.c files
// 			written by Gilles Vollant and distributed with zlib library; 
// 			the modifications are as follows:
// 		- added class' wrappers
// 		- several bugs fixed
// 		- several enhancements added
// 		- MFC support added
// 		- memory leaks eliminated when write error occurred
// 		- automatically free used memory on destruction or exception
// 		- modern error notification using exceptions
// 
//     for more info about .ZIP format, see 
//       ftp://ftp.pkware.com/appnote.zip
// 	the unpacked file (appnote.txt) from this archive is a part of this project
// 
//
//	Note: 
//  if a file added to the archive is bigger after compressing 
//	(e.g. it is an other archive) it should be delted from the archive and
//	added once again with store method (it may be done only on the files 
//  not divided between volumes)

#if !defined(AFX_ZIPARCHIVE_H__A7F528A6_1872_4071_BE66_D56CC2DDE0E6__INCLUDED_)
#define AFX_ZIPARCHIVE_H__A7F528A6_1872_4071_BE66_D56CC2DDE0E6__INCLUDED_

#include "ZipStorage.h"	// Added by ClassView
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000

#include "ZipException.h"
#include "ZipCentralDir.h"	// Added by ClassView
#include "ZipInternalInfo.h"	// Added by ClassView


//////////////////////////////////////////////////////////////////////////
/////////////////////  CZipArchive   /////////////////////////////////////

class CZipArchive  
{
public:
	static int SingleToWide(CZipAutoBuffer &szSingle, CString& szWide);
	static int WideToSingle(LPCTSTR lpWide, CZipAutoBuffer &szSingle);

// Function name	: TestFile
// Description	    : Test the file with the given index
//		the function throws CException*, but performs all the necessary cleanup
//		before, so that the next file can be tested after catchig the exception
//		and examining it for the reason of error.
// Return type		: bool 
//		return false if the incorrect action has been taken by 
//		the user or the programmer (it is when OpenFile(WORD nIndex) or 
//		GetFileInfo(CZipFileHeader & fhInfo, WORD uIndex) return false or uBufSize
//		is 0
// Argument         : WORD uIndex
//		index of the file to test
// 	Argument         : ZIPCALLBACKFUN pCallback = NULL
//		See the description at AddNewFile
// 	Argument         : void* pUserData = NULL
// Argument         : DWORD uBufSize = 65535
//		the size of the buffer used during extraction
	bool TestFile(WORD uIndex, ZIPCALLBACKFUN pCallback = NULL, void* pUserData = NULL, DWORD uBufSize = 65535);

// Function name	: CloseFileAfterTestFailed
// Description	    : Perform the necessary cleanup after the exception 
//		while testing the archive so that next files in the archive can be tested
// Return type		: void 
	void CloseFileAfterTestFailed();


// Function name	: SetPassword
// Description	    : set the password for the file that is going to be opened or created
//						use this function BEFORE opening or adding a file					
// Return type		: bool 
//						return false if the password contains ASCII characters
//						with values 128 or higher or the file inside archive is
//						opened		
// Argument         : LPCTSTR lpszPassword = NULL
//						set it to NULL to clear password
	bool SetPassword(LPCTSTR lpszPassword = NULL);

// Function name	: SetAdvanced
// Description	    :  set advanced options
// Return type		: void 
// Argument         : int iWriteBuffer = 65535
//		buffer used during write operation to the disk, the bigger, the better;
//		it is pointless, however, to set it bigger than the size of the volume;
//		the optimal size is the size of the volume
// Argument         : int iExtractBuffer = 16384
//		set the size of the buffer used in extracting and compressing files
//		default 16384, must not be < 1024
//		set it before opening the archive
// Argument         : int iSearchBuffer = 32768
//		set the size of the buffer used in searching for the central dir
//		useful with big archives, default 32768, must not be < 1024
	void SetAdvanced(int iWriteBuffer = 65535, int iExtractBuffer = 16384, int iSearchBuffer = 32768);

// Function name	: SetSpanCallback
// Description	    : set callback function used during operations on a
//		pkzip compatible disk spanning archive to change disks; 
//		set it usualy before opening the archive for reading
// Return type		: void 
// Argument         : ZIPCALLBACKFUN pFunc
//		for the description of callback function see CZipStorage.h
// Argument         : void* pData
//		user data to be passed to the callback function as the last parameter
	void SetSpanCallback(ZIPCALLBACKFUN pFunc, void* pData = NULL);

//	archive open modes	
	enum {open, openReadOnly, create, createSpan};

//		Disk spanning archive modes:
//		pkzip compatible mode (pkSpan):
//			- only on removeble devices
//			- autodetect the size of the volume
//			- write a label to the disk
//			- there is a need to set the span callback function
//		TD mode (tdSpan):
//			- may be created on non removable devices
//			- uses user-defined volume size
//			- no need to set the span callback function

// Function name	: Open
// Description	    : Open a zip archive
// Return type		: void
// Argument         : LPCTSTR szPathName
//		Path to the archive
// Argument         : int iMode= CZipArchive::open;
//		open mode flags:
//		open			open an existing archive
//		openReadOnly	open an existing archive as read only file 
//			(this mode is intended to use in self extract code)
//			if you try to add or delete a file in this mode, an exception will be thrown
//		create			create a new archive
//		createSpan		create a disk spanning archive
// Argument         : int iVolumeSize = 0
//		if iMode == createSpan and iVolumeSize <= 0 then create disk spanning 
//			archive in pkzip mode
//		if iMode == createSpan and iVolumeSize > 0 then create disk spanning 
//			archive in TD mode
//		if iMode == open and the exisitng archive is a spanned archive
//			the pkSpan mode is assumed if the archive is on a removable device
//			or tdSpan otherwise;
//			if you want to open tdSpan archive on a removable device, set iVolumeSize
//			to a value different from 0	
//		if iMode == create this argument doesn't matter
	void Open(LPCTSTR szPathName, int iMode = open, int iVolumeSize = 0);

// Function name	: Open
// Description	    : Open or create an archive in CMemFile
// Return type		: void 
// Argument         : CMemFile& mf
// Argument         : int iMode = open
//		the following modes are valid:  open, openReadOnly, create
	void Open(CMemFile& mf, int iMode = open);


// Function name	: AddNewFile
// Description	    : add quickly a new file to the archive
// Return type		: bool 
// Argument         : LPCTSTR lpszFilePath
//		file to be added
// Argument         : int iLevel = Z_DEFAULT_COMPRESSION
//		the compression level (see OpenNewFile() for detailed desciption)
// Argument			: bool bFullPath
//		if true, include full path of the file inside the archive	
// 	Argument         : ZIPCALLBACKFUN pCallback = NULL
// callback function (may be NULL)
// 	To set the callback function for this operation pass its pointer as the 
// 	argument (do not use SetSpanCallback for it - its for different purposes).
// 	The callback function, if set, is called after reading and writing one portion of data.
// 	- the first argument (DWORD):
// 			total number of bytes to read (the size of the file)
// 	- the second one (int) :
// 			total number bytes already read
// 	- the third argument (void*): 
// 		pUserData argument passed to #AddNewFile
// 	Argument         : void* pUserData = NULL
// 		user - defined data passed on to the callback function
// 		(doesn't matter if there is no callback function defined)
// Argument         : DWORD nBufSize = 65535
//		the size of the buffer used during compression

/*
*/
	bool AddNewFile(LPCTSTR lpszFilePath, int iLevel = -1, bool bFullPath = true, ZIPCALLBACKFUN pCallback = NULL, void* pUserData = NULL, unsigned long nBufSize = 65535);

// Function name	: OpenNewFile
// Description	    : add a new file to the zip archive
// Return type		: bool 
//		return false in the following cases:
//		- the lpszFilePath is not NULL and the file	attributes and data was not correctly retreived
//		- a file is already opened for extraction or compression
//		- archive is an existing disk span archive
//		- maximum file count inside archive reached (65535)
// Argument         : CZipFileHeader & header
//		structure that have addtional information; the following fields are valid:
//			- m_uMethod - file compression method; can be 0 (storing) or Z_DEFLATE (deflating)
//				otherwise Z_DEFLATE is assumed
//			- m_uModDate, m_uModTime - use SetTime method of CFileHeadeer to set them
//				if lpszFilePath is not NULL this fields are updated automaticaly
//			- m_uExternalAttr - attributes of the file
//				if lpszFilePath is not NULL this field is updated automaticaly
//			- m_szFileName - file name (may be with path) to be stored inside archive
//				to represent this file
//			- m_szComment - file comment
//			- m_pExtraField - LOCAL extra field, use SetExtraField() after opening 
//				a new file, but before closing it to set the extra field 
//				in the header in the central directory
//		other fields are ignored - they are updated automaticaly
// Argument         : int iLevel = Z_DEFAULT_COMPRESSION
//		the level of compression (-1, 0 - 9); named values:
//		Z_DEFAULT_COMPRESSION	: -1
//		Z_NO_COMPRESSION		: 0
//		Z_BEST_SPEED			: 1
//		Z_BEST_COMPRESSION		: 9
// Argument         : LPCTSTR lpszFilePath = NULL
//		the path to the file to retreive date and attributes from
	bool OpenNewFile(CZipFileHeader & header, int iLevel = Z_DEFAULT_COMPRESSION, LPCTSTR lpszFilePath = NULL);

// Function name	: WriteNewFile
// Description	    : compress the contents of the buffer and write it to a new file
// Return type		: bool 
//		return false if the new file hasn't been opened
// Argument         : void *pBuf
//		buffer containing the data to be compressed and written
// Argument         : DWORD iSize
//		the size of the buffer
	bool WriteNewFile(void *pBuf, DWORD iSize);

// Function name	: SetExtraField
// Description	    : set the extra field in the file header in the central directory
//		must be used after opening a new file in the archive, but before closing it
// Return type		: void 
// Argument         : char *pBuf
//		bufer with the data to be copied
// Argument         : DWORD iSize
//		size of the buffer
	void SetExtraField(char *pBuf, WORD iSize);

// Function name	: CloseNewFile
// Description	    : close the new file in the archive
// Return type		: bool 
//		return false if no new file is opened
// Argument         : bool bAfterException  = false
//		set it to true if you want to reuse CZipArchive after is has thrown an exception
	bool CloseNewFile();

// Function name	: ExtractFile
// Description	    : fast extracting
// Return type		: bool 

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美精品亚洲一区二区在线播放| 色综合久久久久综合体桃花网| 在线观看日韩高清av| 亚洲区小说区图片区qvod| 欧美综合在线视频| 国内成人自拍视频| 中文字幕一区二区三区在线播放 | 91免费观看视频| 亚洲综合色自拍一区| 日韩欧美美女一区二区三区| 成人夜色视频网站在线观看| 亚洲h精品动漫在线观看| 久久久精品人体av艺术| 在线观看欧美黄色| k8久久久一区二区三区| 老司机精品视频导航| 亚洲主播在线观看| 国产亚洲成年网址在线观看| 欧美久久高跟鞋激| 色视频一区二区| 色综合久久久久久久久久久| 国产成人精品三级| 国产福利91精品一区| 久久激情五月婷婷| 国产精品自拍三区| 久久精品久久综合| 久久99精品国产麻豆不卡| 亚洲国产日韩一区二区| 亚洲综合激情网| 亚洲成a人片在线不卡一二三区| 亚洲激情自拍偷拍| 亚洲影视在线观看| 日韩不卡一区二区三区| 日韩经典一区二区| 国产精品一二三区在线| 国产精品亚洲午夜一区二区三区 | 欧美大片拔萝卜| 精品国偷自产国产一区| 国产欧美日本一区二区三区| 国产免费观看久久| 亚洲综合男人的天堂| 麻豆精品在线播放| 国产精品99久| 日韩专区一卡二卡| 国产精品性做久久久久久| 99这里只有精品| 欧美美女视频在线观看| 国产亚洲综合av| 亚洲午夜视频在线观看| 久久99日本精品| 99久久伊人网影院| 欧美一区日韩一区| 亚洲婷婷综合色高清在线| 青娱乐精品视频在线| 99久久婷婷国产综合精品电影 | 国产精品自在在线| 欧美日韩一区三区| 亚洲日韩欧美一区二区在线| 精品中文字幕一区二区| 欧美日韩1234| 亚洲永久免费av| 色噜噜狠狠成人中文综合| 久久久久久久精| 精品一区二区三区在线观看| 91香蕉视频黄| 一区二区三区四区五区视频在线观看 | 日本不卡视频一二三区| 欧美在线小视频| 亚洲一区二区欧美激情| 色琪琪一区二区三区亚洲区| 中文字幕高清不卡| 99re热这里只有精品视频| 欧美激情在线观看视频免费| 国产高清亚洲一区| 国产亚洲精久久久久久| av一二三不卡影片| 自拍av一区二区三区| 91国偷自产一区二区开放时间| 国产高清久久久| 欧美日本国产一区| 美洲天堂一区二卡三卡四卡视频| 欧美丝袜丝交足nylons| 亚洲va在线va天堂| 日韩欧美一卡二卡| 国产精品996| 亚洲国产一区二区在线播放| 91精品国产综合久久香蕉的特点| 毛片av一区二区| 亚洲欧洲精品一区二区精品久久久| av在线一区二区| 久久99久国产精品黄毛片色诱| 欧美精品一区二区高清在线观看| 成人app软件下载大全免费| 亚洲综合色在线| 中文字幕中文字幕一区| 在线不卡欧美精品一区二区三区| 国产黑丝在线一区二区三区| 亚洲成a人片在线观看中文| 国产精品三级视频| 欧美日韩国产另类不卡| 色综合色狠狠天天综合色| 精品午夜一区二区三区在线观看| 亚洲日韩欧美一区二区在线| 久久综合网色—综合色88| 欧美蜜桃一区二区三区| 在线一区二区观看| 91视频免费看| 91在线播放网址| 成人app软件下载大全免费| 成人sese在线| 成人av在线电影| 99久免费精品视频在线观看| 国产高清亚洲一区| 国产91色综合久久免费分享| 麻豆久久一区二区| 国产一区不卡视频| 国产精品综合视频| 成人自拍视频在线| 不卡av免费在线观看| 91女厕偷拍女厕偷拍高清| 91久久精品一区二区三| 在线精品国精品国产尤物884a| 在线观看欧美日本| 日韩一级片网站| 国产精品久久久久久久裸模| 亚洲精品视频在线看| 日欧美一区二区| 成人丝袜18视频在线观看| 在线一区二区三区四区| 日韩欧美电影在线| 亚洲精品乱码久久久久久黑人| 午夜免费久久看| 丁香婷婷综合激情五月色| 一本色道a无线码一区v| 在线综合视频播放| 欧美激情一区在线| 日韩在线a电影| 91九色最新地址| 久久在线免费观看| 亚洲123区在线观看| 成a人片国产精品| 精品国产区一区| 亚洲欧美日韩久久| 国产不卡视频在线播放| 欧美理论片在线| 一级精品视频在线观看宜春院| 国产最新精品免费| 精品国产一区二区三区不卡| 五月激情综合婷婷| 9191久久久久久久久久久| 中文字幕视频一区二区三区久| 激情都市一区二区| 日韩美女视频在线| 久久精品国产秦先生| 日韩欧美自拍偷拍| 精品一二三四在线| 久久婷婷色综合| 国产成人精品亚洲午夜麻豆| 中文在线一区二区| 91在线码无精品| 天堂一区二区在线免费观看| 精品视频一区三区九区| 天天综合色天天综合色h| 7878成人国产在线观看| 国产做a爰片久久毛片| 成人免费小视频| 日韩一区国产二区欧美三区| 激情综合色播五月| 成人欧美一区二区三区视频网页| 99在线精品观看| 久久99深爱久久99精品| 中文字幕在线播放不卡一区| 91免费视频大全| 男女男精品网站| 亚洲欧美在线观看| 日韩欧美成人激情| 99久久99久久精品免费观看| 日韩激情视频网站| 国产精品久久午夜夜伦鲁鲁| 欧美一级高清片| 色视频一区二区| 国产二区国产一区在线观看| 亚洲黄网站在线观看| 中文在线资源观看网站视频免费不卡| 色狠狠色噜噜噜综合网| 国产超碰在线一区| 美女免费视频一区二区| 一区二区高清视频在线观看| 欧美激情中文不卡| 精品处破学生在线二十三| 欧美日韩国产天堂| 色狠狠色狠狠综合| 在线观看免费亚洲| 欧美色网一区二区| 91小视频免费看| 欧美日韩一区在线| 678五月天丁香亚洲综合网| 91国模大尺度私拍在线视频| 91欧美一区二区| 欧美三级三级三级|