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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? ziparchive.h

?? 這是一個用VC++編寫的靜態(tài)庫
?? 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人在线观看导航| 色又黄又爽网站www久久| 欧美日韩国产高清一区二区三区| 国产精品久久久久7777按摩| 94-欧美-setu| 亚洲一二三区在线观看| 91麻豆精品国产91久久久久久| 日本不卡123| 亚洲国产成人在线| 91同城在线观看| 日韩二区三区四区| 中文字幕av不卡| 欧美曰成人黄网| 日本成人在线网站| 国产精品无码永久免费888| 色国产综合视频| 天天综合日日夜夜精品| 久久香蕉国产线看观看99| 成人av集中营| 日韩综合在线视频| 国产欧美日韩麻豆91| 欧美性猛交xxxx乱大交退制版| 蜜桃一区二区三区在线| 国产精品久久综合| 51精品国自产在线| 成人av在线一区二区| 五月天精品一区二区三区| 国产亚洲福利社区一区| 欧美性xxxxx极品少妇| 极品少妇xxxx精品少妇| 亚洲最大成人综合| 精品国产乱码久久久久久蜜臀| 91蜜桃在线免费视频| 久久成人免费网站| 亚洲精品国产成人久久av盗摄| 精品日韩欧美在线| 91国产精品成人| 国产一区二区电影| 日本美女一区二区三区| 亚洲三级电影网站| 久久这里只有精品视频网| 欧美色区777第一页| 成人午夜大片免费观看| 免费视频最近日韩| 亚洲欧美日韩久久精品| 久久久精品国产免费观看同学| 91.com视频| 在线观看视频一区| 成人av片在线观看| 国产乱码精品一区二区三| 日日摸夜夜添夜夜添亚洲女人| 亚洲乱码一区二区三区在线观看| 久久女同精品一区二区| 日韩欧美一二区| 欧美日韩你懂得| 日本高清不卡视频| 91在线国内视频| 高清免费成人av| 久久er99精品| 奇米色777欧美一区二区| 一区二区三区在线影院| 国产精品不卡一区二区三区| 久久蜜桃av一区二区天堂| 精品日韩99亚洲| 日韩免费电影网站| 日韩一二三区视频| 日韩一区二区免费电影| 欧美一卡2卡3卡4卡| 欧美日韩国产免费一区二区| 欧美综合色免费| 欧美吻胸吃奶大尺度电影 | 国产色产综合色产在线视频 | 国产一区二区毛片| 久久精品国产99| 极品尤物av久久免费看| 久久99久久99| 精彩视频一区二区| 国产精品99久久久久久久vr | 国产精品久久久久久久裸模| 欧美激情中文字幕| 日韩美女精品在线| 亚洲日穴在线视频| 亚洲一区二区三区视频在线| 亚洲不卡一区二区三区| 婷婷中文字幕综合| 麻豆传媒一区二区三区| 国产一区二区在线免费观看| 国产一区二区三区| 成人免费三级在线| 91在线国内视频| 欧美三级视频在线播放| 欧美电影一区二区三区| 日韩欧美一级精品久久| 久久久久久夜精品精品免费| 中文字幕精品一区| 一区二区视频在线看| 日韩国产精品久久| 国产真实乱偷精品视频免| 成人三级在线视频| 色伊人久久综合中文字幕| 欧美老人xxxx18| 26uuu亚洲综合色| 中文字幕在线观看一区| 亚洲大型综合色站| 麻豆精品一区二区三区| 成人综合婷婷国产精品久久蜜臀| 99re8在线精品视频免费播放| 欧美日韩一区二区三区在线| 日韩精品中文字幕一区二区三区 | 日韩av中文字幕一区二区三区| 亚洲成年人影院| 亚洲激情男女视频| 午夜国产不卡在线观看视频| 日本不卡视频一二三区| 成人一区二区视频| 欧美三区在线观看| 国产性做久久久久久| 洋洋av久久久久久久一区| 韩国视频一区二区| 欧美性受xxxx黑人xyx性爽| 久久一区二区三区四区| 亚洲一区二区四区蜜桃| 久久er99精品| 欧美日韩一区久久| 国产精品三级在线观看| 日本vs亚洲vs韩国一区三区二区| 99久久精品国产网站| 日韩你懂的在线播放| 亚洲精品中文字幕在线观看| 狠狠色狠狠色综合系列| 在线中文字幕一区| 国产三区在线成人av| 日韩一区精品字幕| 色婷婷亚洲一区二区三区| 国产情人综合久久777777| 日韩黄色在线观看| 91香蕉视频mp4| 国产亚洲精品中文字幕| 久久精品国产色蜜蜜麻豆| 91成人免费在线| 成人欧美一区二区三区白人| 国产真实乱对白精彩久久| 91精品国产色综合久久不卡蜜臀 | 国精产品一区一区三区mba桃花| 91免费视频网址| 国产午夜久久久久| 麻豆国产精品视频| 欧美巨大另类极品videosbest | 欧美一二三四在线| 亚洲综合久久久| 91视视频在线观看入口直接观看www | 欧美在线观看视频一区二区三区 | 亚洲视频小说图片| 国产超碰在线一区| 久久综合久久综合久久综合| 成人精品高清在线| 精品成人私密视频| 美国十次综合导航| 欧美色爱综合网| 亚洲美女电影在线| av一区二区三区黑人| 久久久亚洲午夜电影| 久久99精品网久久| 91精品国产91久久久久久一区二区| 亚洲色图制服丝袜| 日本韩国视频一区二区| 亚洲精品日日夜夜| 色婷婷亚洲一区二区三区| 中文字幕日韩一区二区| 国产成人福利片| 日本一区二区动态图| 黑人精品欧美一区二区蜜桃| 2021国产精品久久精品| 韩国毛片一区二区三区| 国产亚洲欧美在线| 99视频一区二区| 亚洲一区在线观看视频| 欧美色偷偷大香| 日本亚洲三级在线| 欧美成人a视频| 国产精品一级二级三级| 中文一区一区三区高中清不卡| 成人黄页在线观看| 亚洲精品乱码久久久久久久久 | 久久精品亚洲精品国产欧美kt∨| 国产在线播放一区三区四| 中文乱码免费一区二区| 色网综合在线观看| 日本欧美大码aⅴ在线播放| 精品毛片乱码1区2区3区| 国产91丝袜在线观看| 亚洲欧美激情插| 7777精品伊人久久久大香线蕉经典版下载 | 久久久久久久久一| 成人综合婷婷国产精品久久| 亚洲精品久久嫩草网站秘色| 欧美人妖巨大在线| 国产一区二区免费在线| 亚洲激情在线激情| 在线成人小视频|