亚洲欧美第一页_禁久久精品乱码_粉嫩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一区二区三区免费野_久草精品视频
国内外成人在线| 亚洲精品成人少妇| 欧美精品vⅰdeose4hd| 色国产综合视频| 欧美亚州韩日在线看免费版国语版| 成人免费av在线| 成人精品免费视频| 91麻豆国产自产在线观看| 99久久99久久精品免费观看| 91丨九色丨国产丨porny| 一本久道久久综合中文字幕| 色一情一乱一乱一91av| 欧美丝袜自拍制服另类| 欧美一区二区三区播放老司机| 91精选在线观看| 2020日本不卡一区二区视频| 国产精品免费网站在线观看| 亚洲嫩草精品久久| 石原莉奈在线亚洲三区| 国产精品一区二区免费不卡 | 日韩毛片视频在线看| 亚洲欧洲精品一区二区三区 | 国产一区二区三区高清播放| 国产成人超碰人人澡人人澡| 色老综合老女人久久久| 欧美一级在线观看| 欧美国产日韩精品免费观看| 亚洲老妇xxxxxx| 国内精品写真在线观看| 99久久久久久| 欧美mv和日韩mv的网站| 国产精品视频看| 秋霞午夜av一区二区三区| 高清国产一区二区三区| 欧美久久久久久蜜桃| 国产欧美综合在线| 日本最新不卡在线| 91香蕉视频黄| 欧美精品一区二区高清在线观看| 欧美精品一卡二卡| 亚洲三级在线看| 91丨九色丨国产丨porny| 国产成+人+日韩+欧美+亚洲 | 日韩视频一区在线观看| 国产色产综合色产在线视频| 亚洲午夜久久久久久久久电影网 | 亚洲精品一区二区三区精华液 | 国内成人精品2018免费看| 白白色亚洲国产精品| 日韩一区二区免费高清| 亚洲视频1区2区| 国产在线精品一区二区不卡了 | 日韩视频在线永久播放| 亚洲免费成人av| 国产精品一区2区| 欧美性大战久久久久久久蜜臀| 国产色婷婷亚洲99精品小说| 日韩精品电影一区亚洲| 在线影院国内精品| 综合在线观看色| 成人激情视频网站| 久久久天堂av| 精品一区二区三区免费观看| 精品婷婷伊人一区三区三| 亚洲欧美一区二区三区极速播放| 成人精品小蝌蚪| 国产欧美日韩亚州综合| 国产又黄又大久久| 26uuu精品一区二区| 激情成人综合网| 久久久久久久免费视频了| 国产一区二区不卡在线| 久久久欧美精品sm网站| 国产成人福利片| 中文字幕 久热精品 视频在线 | 国产a区久久久| 国产人成亚洲第一网站在线播放| 国产精品一区二区三区网站| 精品国产一区二区三区av性色| 免费人成网站在线观看欧美高清| 欧美少妇性性性| 亚洲一级二级在线| 欧美三级电影在线看| 亚洲1区2区3区4区| 欧美一区二区三区小说| 奇米影视一区二区三区| 精品国产亚洲在线| 国产成人日日夜夜| 国产精品久久久一区麻豆最新章节| 国产ts人妖一区二区| 亚洲人成网站影音先锋播放| 91国模大尺度私拍在线视频| 丝袜美腿亚洲色图| 精品处破学生在线二十三| 国产精一品亚洲二区在线视频| 国产亲近乱来精品视频| 91麻豆成人久久精品二区三区| 一区二区三区免费| 日韩精品一区二区三区视频 | 狠狠狠色丁香婷婷综合久久五月| 久久精品亚洲乱码伦伦中文| 成人av影院在线| 手机精品视频在线观看| 久久奇米777| 91精品91久久久中77777| 久久精品99国产精品| 亚洲午夜在线观看视频在线| 国产一区二区调教| 亚洲精品国产精华液| 91精品国产综合久久久久久久久久| 亚洲欧洲韩国日本视频| 欧美日韩三级视频| 国产欧美日本一区二区三区| 91九色最新地址| 国产精品99精品久久免费| 亚洲黄色尤物视频| 国产亚洲va综合人人澡精品| 在线免费观看成人短视频| 激情六月婷婷综合| 亚洲国产精品久久人人爱蜜臀| 久久久久久久av麻豆果冻| 欧美在线观看禁18| av在线播放不卡| 国产一区二区免费在线| 亚洲国产一区二区三区青草影视| 久久久一区二区三区| 这里只有精品99re| 久久精品人人做人人综合| 91精品欧美一区二区三区综合在| 丝袜美腿成人在线| 国产高清不卡二三区| 日韩亚洲欧美高清| 日本精品一级二级| 国产曰批免费观看久久久| 日日摸夜夜添夜夜添国产精品| 国产精品久久777777| 久久久精品影视| 欧美成人乱码一区二区三区| 欧美日韩黄色一区二区| 91麻豆免费视频| 99精品视频在线播放观看| 久久99国产乱子伦精品免费| 亚洲高清免费一级二级三级| 亚洲另类中文字| 国产精品卡一卡二| 国产精品久久久久永久免费观看| 精品区一区二区| 欧美一区二区三区啪啪| 欧美高清激情brazzers| 911精品国产一区二区在线| 中文字幕日韩一区二区| 欧美三级午夜理伦三级中视频| 亚洲第一福利视频在线| 亚洲成a人片在线不卡一二三区| 亚洲欧洲日产国码二区| 亚洲欧洲成人精品av97| 国产精品第13页| 18欧美乱大交hd1984| 亚洲天堂av老司机| 亚洲免费电影在线| 一区二区三区欧美久久| 亚洲国产欧美一区二区三区丁香婷| 亚洲免费av在线| 亚洲一区二区三区中文字幕在线 | 日韩电影一区二区三区四区| 亚洲成人免费观看| 麻豆精品一区二区综合av| 久久精品国内一区二区三区| 国产一区二区中文字幕| 国产福利精品一区| a级高清视频欧美日韩| 欧美主播一区二区三区| 欧美一激情一区二区三区| 久久久久免费观看| 国产精品色一区二区三区| 有坂深雪av一区二区精品| 日韩电影一区二区三区| 国产老肥熟一区二区三区| 99精品久久99久久久久| 在线观看网站黄不卡| 91精品国产色综合久久久蜜香臀| 亚洲h精品动漫在线观看| 久久久亚洲欧洲日产国码αv| 欧美日韩中文字幕精品| 欧美r级电影在线观看| 亚洲日本免费电影| 久久国产人妖系列| 91麻豆自制传媒国产之光| 91精品黄色片免费大全| 国产精品美女久久久久aⅴ国产馆 国产精品美女久久久久av爽李琼 国产精品美女久久久久高潮 | 狠狠色2019综合网| 色先锋aa成人| 久久在线观看免费| 亚洲小少妇裸体bbw| 国产成人一区在线| 91精品在线免费| 自拍偷拍国产亚洲| 国内成人精品2018免费看| 欧美吞精做爰啪啪高潮| 亚洲国产成人在线|