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

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

?? ziparchive.h

?? 允許創(chuàng)建
?? H
?? 第 1 頁(yè) / 共 2 頁(yè)
字號(hào):
// Argument         : WORD uIndex
//		the index of the file
// Argument         : LPCTSTR lpszPath
//		PATH only to extract the file to
// Argument			: bool bFullPath = true
//		extract the file with full path (if there is a path stored with the filename)
//		or just with the filename alone
//		(it means that the resulting file path is lpszPath + one of the above)	
// Argument			: LPCTSTR lpszNewName = NULL
//			if NULL the default file name is taken (from the archive)
// 	Argument         : ZIPCALLBACKFUN pCallback = NULL
//		See the description at AddNewFile
// 	Argument         : void* pUserData = NULL
// Argument         : DWORD nBufSize = 65535
//		the size of the buffer used during extraction
	bool ExtractFile(WORD uIndex, LPCTSTR lpszPath, bool bFullPath = true, LPCTSTR lpszNewName = NULL, ZIPCALLBACKFUN pCallback = NULL, void* pUserData = NULL, DWORD nBufSize = 65535);

// Function name	: OpenFile
// Description	    : open the file with the given index in the archive for extracting
// Argument         : WORD uIndex
// Return type		: bool 
	bool OpenFile(WORD uIndex);

// Function name	: ReadFile
// Description	    : decompress currently opened file to the bufor
// Return type		: DWORD 
//		number of bytes read			
// Argument         : void *pBuf
//		buffer to receive data
// Argument         : DWORD iSize
//		the size of the buffer
	DWORD ReadFile(void *pBuf, DWORD iSize);

// Function name	: GetLocalExtraField
// Description	    : get the local extra filed of the currently opened 
//					  for extraction file in the archive
// Return type		: int 
//		if pBuf == NULL return the size of the local extra field
// Argument         : char* pBuf
//		the buffer to receive the data
// Argument         : int iSize
//		the size of the buffer
	int GetLocalExtraField(char* pBuf, int iSize);

// Function name	: CloseFile
// Description	    : close current file  and update
//		date and attribute information of CFile, closes CFile
// Return type		: int
//		see below
// Argument         : CFile & file
//		OPENED CFile structure of the extracted file
	int CloseFile(CFile &file);


/**
	Close the file opened for extraction in the archive and copy its date and 
	attributes to the file pointed by \e lpszFilePath
	\param	lpszFilePath 
		Points to the path of the file to have the date and attributes information updated.
	\param bAfterException
		Set to \c true to close the file inside archive after an exception has been 
		thrown, to allow futher operations on the archive.
	\warning Close the file pointed by \e lpszFilePath before using this method, 
		because the system may not be able to retrieve information from it.
	\return		
	-  "1" = ok
	-  "-1" = some bytes left to uncompress - probably due to a bad password
	-  "-2" = setting extracted file date and attributes was not successful	
	\note Throws exceptions.
*/	
	int CloseFile(LPCTSTR lpszFilePath = NULL, bool bAfterException = false);

// Function name	: DeleteFile
// Description	    : delete the file with the given index
// Return type		: bool 
// Argument         : WORD uIndex
//		index of the file to be deleted
	bool DeleteFile(WORD uIndex);

/*	delete files from the archive opened in the Delete mode specified by aIndexes
	or aNames

	aIndexes is a array of indexes of the files inside the archive;
		the index no. 0 is the first file in the archive

	aNames is a array of file names inside the archive; they must be the 
	same as they apppear in the archive (the name and the path (if persists) 
	is required, lower and upper case are not distinguished)

*/
	void DeleteFiles(CWordArray &aIndexes);
	void DeleteFiles(CStringArray &aNames, bool bCaseSensitive = false);


// Function name	: SetGlobalComment
// Description	    : set the global comment in the archive
// Return type		: bool 
//		return false if the archive is closed or if it is an existing disk spanning archive
// Argument         : const CString& szComment
	bool SetGlobalComment(const CString& szComment);

// Function name	: GetGlobalComment
// Description	    : get the global commment
// Return type		: CString 
//		return an empty string if the archive is closed
	CString GetGlobalComment();


// Function name	: SetFileComment
// Description	    : set the comment of the file with the given index
// Return type		: bool 
//		return false if the comment change is imposible
// Argument         : WORD uIndex
//		index of the file
// Argument         : CString szComment
//		comment to add
	bool SetFileComment(WORD uIndex, CString szComment);

// Function name	: GetArchivePath
// Description	    : return the path of the currently opended archive volume
// Return type		: CString 
	CString GetArchivePath();

// Function name	: GetCurrentDisk
// Description	    : return the zero-base number of the current disk
// Return type		: int 
//		return -1 if there is no current disk (archive is closed)
	int GetCurrentDisk();

// Function name	: GetSpanMode
// Description	    : return the disk spanning mode of the cuurrent archive
// Return type		: int 
//		CZipStorage::tdSpan		 == - 2 - exisitng TD compatible disk spanning
//		CZipStorage::pkzipSpan	 == - 1 - exisitng pkzip compatible disk spanning
//		CZipStorage::noSpan		 ==	  0 - no disk spanning
//		CZipStorage::pkzipSpan	 ==   1 - pkzip compatible disk spanning in creation
//		CZipStorage::tdSpan		 ==   2 - TD compatible disk spanning in creation
	int GetSpanMode();

// Function name	: IsFileDirectory
// Description	    : check if the file with the given index is a directory
// Argument         : WORD uIndex
//		index of the file
// Return type		: bool 
//		return true if the file is a directory
//		return false if the file is not a directory or if there is no file
//		with the given index
	bool IsFileDirectory(WORD uIndex);

// Function name	: FindFile
// Description	    : find the file in the archive
// 	This function requires CZipCentralDir::m_bFindFastEnabled set to true
// 	Use EnableFindFast()
// Return type		: int
//		the index of the file found or -1 if no file was found
// Argument         : CString szFileName
//		the name of the file to be found
// Argument         : bool bCaseSensitive = false
//		if true - perform case sensitive search
	int FindFile(CString szFileName, bool bCaseSensitive = false);


/*
	Function name	: EnableFindFast
	Description	    : 
	 	Enable fast finding by the file name of the files inside the archive.
 		Set CZipCentralDir::m_bFindFastEnabled to true, which is required by FindFile.
		Do not enable it, if you don't plan to use FindFile function

	Return type		: void 
	Argument         : bool bEnable = true
*/
	void EnableFindFast(bool bEnable = true);


/*
	Function name	: SetConvertAfterOpen
	Description	    : Set CZipCentralDir::m_bConvertAfterOpen value. Use before opening the archive
	see CZipCentralDir::m_bConvertAfterOpen
	Return type		: void
	Argument         : bool bConvertAfterOpen
*/
	void SetConvertAfterOpen (bool bConvertAfterOpen)
	{
		if (!IsClosed())
		{
			TRACE(_T("Set it before opening the archive"));
			return;
		}
		m_centralDir.m_bConvertAfterOpen = bConvertAfterOpen;

	}


// Function name	: GetFileInfo
// Description	    : get the info of the file with the given index
// Return type		: bool 
//		true if successful
// Argument         : CZipFileHeader & fhInfo
//		structure to receive info
// Argument         : WORD uIndex
//		zero-based index of the file
	bool GetFileInfo(CZipFileHeader & fhInfo, WORD uIndex);


// Function name	: GetNoEntries
// Description	    : get number of files in the archive
// Return type		: int 
	int GetNoEntries();

// Function name	: Close
// Description	    : close archive
// Return type		: void 
// Argument         : bool bAfterException  = false
//		set it to true if you want to close and reuse CZipArchive after is has thrown an exception
//		( it doesn't write any data to the file but only makes some cleaning then)
	void Close(bool bAfterException = false);



// Function name	: IsClosed
// Description	    : test if the archive or the current volume file is closed
// Return type		: bool 
// Argument         : bool bArchive = true
//		if true test for the whole archive, if false - for the volume file only
	bool IsClosed(bool bArchive = true);

// specify whether to control memory allocation and freeing by zlib library
// strongly suggested to set it to true (default)
// set it before opening a file (new or current) in the archive
	bool m_bDetectZlibMemoryLeaks;


	CZipArchive();
	virtual ~CZipArchive();

////////////////////////////////////////////////////////////////////////
//////////////////////  static helper functions  ///////////////////////
////////////////////////////////////////////////////////////////////////

// Function name	: GetFileTitle
// Description	    : get the title of the file
// Return type		: CString 
// Argument         : LPCTSTR lpszFilePath
	static CString GetFileTitle(LPCTSTR lpszFilePath);

// Function name	: GetFileDirAndName
// Description	    : get the directory and the file name from the file path
// Return type		: static CString 
// Argument         : LPCTSTR lpszFilePath
	static CString GetFileDirAndName(LPCTSTR lpszFilePath);

// Function name	: GetDrive
// Description	    : return the (drive:) part from the path
// Return type		: static CString 
// Argument         : LPCTSTR lpszFilePath
	static CString GetDrive(LPCTSTR lpszFilePath);

// Function name	: IsDriveRemovable
// Description	    : return true if the file, path or (disk:) specified by the
//		argument is (on) a removable drive
// Return type		: static bool 
// Argument         : LPCTSTR lpszFilePath
	static bool IsDriveRemovable(LPCTSTR lpszFilePath);

// Function name	: DirectoryExists
// Description	    : check if the given directory exists
// Return type		: static bool 
// Argument         : LPCTSTR lpszDir
	static bool DirectoryExists(LPCTSTR lpszDir);


// Function name	: FileExists
// Description	    : check if the given file or directory exists
// Return type		: static int 
//		return -1 if the given file is a directory, 1 if is a file
//		or 0 if there is no such a file
// Argument         : LPCTSTR lpszName
	static int FileExists(LPCTSTR lpszName);

// Function name	: ForceDirectory
// Description	    : create nested directories with a single command
// Return type		: static bool 
// Argument         : LPCTSTR lpDirectory
	static bool ForceDirectory(LPCTSTR lpDirectory);

// Function name	: GetFilePath
// Description	    : get the path of the given file
// Return type		: static CString 
// Argument         : LPCTSTR strFilePath
	static CString GetFilePath(LPCTSTR lpszFilePath);


// Function name	: GetFileExt
// Description	    : return the file extension
// Return type		: static CString 
// Argument         : LPCTSTR lpszFilePath
	static CString GetFileExt(LPCTSTR lpszFilePath);


// Function name	: GetFileName
// Description	    : return the name of the file (title + extension)
// Return type		: static CString 
// Argument         : LPCTSTR lpszFilePath
	static CString GetFileName(LPCTSTR lpszFilePath);

	// just a helper for a various purposes
	static const DWORD* GetCRCTable();
	// function for a VERY advanced use - you normally never need that
	CZipStorage* GetStorage(){return &m_storage;}
	
protected:
	void EmptyPtrList();
	void CryptDecodeBuffer(DWORD uCount);
	void CryptEncodeBuffer();
	void CryptEncode(char &c);
	void CryptCryptHeader(long iCrc, CZipAutoBuffer& buf);
	DWORD CryptCRC32(DWORD l, char c);
	void CryptDecode(char &c);
	char CryptDecryptByte();
	bool CryptCheck();
	void CryptUpdateKeys(char c);
	void CryptInitKeys();
	CZipAutoBuffer m_pszPassword;
	DWORD m_keys[3];

	static int CompareWords(const void *pArg1, const void *pArg2);
	bool IsDirectory(DWORD uAttr);
	void DeleteInternal(WORD uIndex);
	DWORD RemovePackedFile(DWORD uStartOffset, DWORD uEndOffset);
	CZipFileHeader* CurrentFile();
	void CheckForError(int iErr);
	CZipInternalInfo m_info;
	CZipStorage m_storage;
	CPtrList m_list;
	static void* myalloc(void* opaque, UINT items, UINT size);
	static void myfree(void* opaque, void* address);
	enum {extract = -1, nothing, compress};
	// 0 - no file inside archive opened
	// -1 - current opened for extract
	// 1 - new opened for compression
	char m_iFileOpened;
	void ThrowError(int err);
	CZipCentralDir m_centralDir;
	static TCHAR m_gszCopyright[];
};

#endif // !defined(AFX_ZIPARCHIVE_H__A7F528A6_1872_4071_BE66_D56CC2DDE0E6__INCLUDED_)

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美一级爆毛片| 亚洲柠檬福利资源导航| 国产精品视频在线看| 伊人色综合久久天天| 美美哒免费高清在线观看视频一区二区| 国产一区在线看| 欧美日韩国产精品成人| 国产精品毛片高清在线完整版| 亚洲一区在线看| 高清国产午夜精品久久久久久| 欧美色网站导航| 国产精品国产自产拍高清av王其| 美女一区二区视频| 欧美日韩精品一区视频| 亚洲色欲色欲www| 国产精品88888| 日韩精品一区二区三区在线观看| 中文字幕日韩欧美一区二区三区| 韩日av一区二区| 日韩欧美中文字幕公布| 亚洲高清在线视频| 在线看不卡av| 亚洲免费电影在线| 99久久精品免费看国产免费软件| 精品国产91亚洲一区二区三区婷婷 | 欧美日韩亚洲综合在线| 中文字幕一区二区三区av| 国产乱人伦精品一区二区在线观看| 日韩一区二区三区av| 日韩精品亚洲一区| 7777精品伊人久久久大香线蕉的 | 极品少妇xxxx偷拍精品少妇| 91精品蜜臀在线一区尤物| 香蕉av福利精品导航| 在线观看免费一区| 午夜免费久久看| 欧美电影一区二区| 青草av.久久免费一区| 日韩欧美亚洲国产另类| 天天综合日日夜夜精品| 欧美福利电影网| 久久99精品久久只有精品| 日韩免费福利电影在线观看| 久久不见久久见中文字幕免费| 日韩一区二区三区免费看| 日本sm残虐另类| 精品电影一区二区三区| 国产一区二区三区最好精华液| 精品国产乱码久久| 国产福利一区二区| 中文字幕一区二区三区在线观看| 99re这里只有精品首页| 一区二区三区欧美| 7777女厕盗摄久久久| 精品一区二区三区日韩| 久久久三级国产网站| 成人性生交大片免费看在线播放| 国产精品欧美精品| 欧美色区777第一页| 美女看a上一区| 国产婷婷色一区二区三区四区 | 欧美丰满美乳xxx高潮www| 秋霞电影一区二区| 国产精品久久久久国产精品日日 | 成人午夜免费av| 亚洲精品精品亚洲| 日韩三级在线观看| 丁香五精品蜜臀久久久久99网站 | 国产精品欧美久久久久无广告| 色94色欧美sute亚洲线路二| 男女男精品网站| 国产女人水真多18毛片18精品视频| 91免费观看视频在线| 秋霞国产午夜精品免费视频| 久久久国产午夜精品 | 国产亚洲欧美一级| 99国产精品视频免费观看| 天堂在线一区二区| 欧美国产日本韩| 欧美一区二区三区在| 成人av网站在线| 青青草一区二区三区| 亚洲色图另类专区| 久久综合视频网| 欧美视频在线播放| 99麻豆久久久国产精品免费优播| 免费观看久久久4p| 亚洲精品免费在线观看| 久久免费精品国产久精品久久久久| 在线亚洲+欧美+日本专区| 国产中文字幕精品| 秋霞午夜鲁丝一区二区老狼| 樱桃国产成人精品视频| 中文字幕av资源一区| 日韩情涩欧美日韩视频| 欧美日韩电影一区| 色综合天天综合网天天看片| 国产成人午夜视频| 激情五月婷婷综合网| 午夜国产不卡在线观看视频| 欧美一区二区精美| 欧美亚洲日本一区| 91精彩视频在线观看| 成人av手机在线观看| 风间由美性色一区二区三区| 精品一区二区三区欧美| 乱一区二区av| 免费在线欧美视频| 久久电影网电视剧免费观看| 日韩中文字幕1| 亚洲高清免费观看| 亚洲一区二区av在线| 亚洲精品日产精品乱码不卡| 17c精品麻豆一区二区免费| 国产精品三级av| 久久久99精品免费观看| 精品国产乱码久久久久久闺蜜| 日韩午夜三级在线| 日韩精品一区二区三区三区免费| 日韩视频在线观看一区二区| 欧美一区二区三区在线看| 日韩一区二区影院| 欧美成人午夜电影| 久久精品夜夜夜夜久久| 日本一区二区三区免费乱视频| 欧美激情一区二区三区不卡 | 五月综合激情日本mⅴ| 天天综合色天天综合色h| 日韩国产欧美一区二区三区| 蜜桃久久久久久久| 激情成人午夜视频| 高潮精品一区videoshd| 成人av动漫网站| 91福利区一区二区三区| 欧美日韩国产中文| 欧美成人一区二区三区在线观看| 久久免费的精品国产v∧| 国产精品久久久久久久蜜臀| 亚洲欧美另类小说视频| 午夜影院久久久| 精品夜夜嗨av一区二区三区| 成人三级在线视频| 欧美亚洲一区三区| 欧美成人国产一区二区| 国产精品美女久久久久久久久久久 | 国产欧美日韩在线看| 亚洲欧美怡红院| 天天综合色天天| 国产精一品亚洲二区在线视频| 成人激情免费电影网址| 在线亚洲人成电影网站色www| 日韩一区二区免费高清| 国产精品情趣视频| 亚洲成a人v欧美综合天堂下载| 美国欧美日韩国产在线播放| 成人av在线网| 91精品国产欧美日韩| **性色生活片久久毛片| 麻豆国产精品一区二区三区| 99精品视频在线观看| 日韩一区二区三区高清免费看看| 亚洲欧美综合色| 国产一区二区免费在线| 欧美三级蜜桃2在线观看| 国产亚洲精品aa| 日本不卡免费在线视频| av午夜一区麻豆| 日韩欧美亚洲一区二区| 亚洲视频在线观看一区| 国产一区二区毛片| 欧美日韩国产高清一区二区 | 欧美一区2区视频在线观看| 国产精品无遮挡| 麻豆精品视频在线| 欧美欧美午夜aⅴ在线观看| 国产精品欧美经典| 九一久久久久久| 制服丝袜av成人在线看| 亚洲精品日韩综合观看成人91| 国产成人无遮挡在线视频| 日韩欧美亚洲国产精品字幕久久久| 亚洲精品国产无套在线观| 国产福利视频一区二区三区| 91精品国产色综合久久| 午夜亚洲福利老司机| 色婷婷亚洲综合| 亚洲色欲色欲www| 成人激情黄色小说| 国产精品剧情在线亚洲| 黄页视频在线91| 精品精品国产高清一毛片一天堂| 午夜亚洲福利老司机| 欧美性大战久久久| 一个色综合网站| 欧美午夜一区二区三区| 亚洲午夜精品网| 欧美日韩亚洲综合在线 欧美亚洲特黄一级| 亚洲人成网站影音先锋播放| 波多野结衣亚洲| 亚洲色图20p|