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

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

?? publicfunction.h

?? ◆◆◆ 《FTP、HTTP 多線程斷點續傳下載文件》◆◆◆ FlashGet、網絡螞蟻想必大家都很熟悉
?? H
字號:
// PublicFunction.h: interface for the CPublicFunction class.
//
//////////////////////////////////////////////////////////////////////

#if !defined(AFX_PUBLICFUNCTION_H__654F176C_F11F_4843_AEA0_F53676D52341__INCLUDED_)
#define AFX_PUBLICFUNCTION_H__654F176C_F11F_4843_AEA0_F53676D52341__INCLUDED_

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000

// 日志級別
#define L_VERBOSE			0x00000000		// 詳細,一般是調試信息
#define L_NORMAL			0x00000001		// 正常,程序運行時顯示的一般信息,紀錄運行過程
#define L_WARNING			0x00000002		// 警告,程序運行有錯誤,但不是致命錯誤,程序仍然可以繼續運行下去
#define L_ERROR				0x00000003		// 錯誤,程序運行出現了嚴重錯誤,程序必須立即終止執行
#define L_DEBUG				0x00000004		// 調試,程序在調試版里輸出的日志,在Publish版里就沒有了
#define L_LOGNUM			5				// 日志級別的數量

// 輸出位置
#define L_OUT_CONSOLE		0x00000100		// 輸出到控制臺
#define L_OUT_DLG			0x00000200		// 輸出到對話框
#define L_ONLY_LOGFILE		0x00000400		// 只保存到日志文件,不提示任何信息
#define L_NOTCLOSEPREV		0x00000800		// 當開啟對話框的時候不關閉原來的對話框

#define SLEEP_RETURN(x)\
{\
	if ( ::WaitForSingleObject ( m_hEvtEndModule, x ) == WAIT_OBJECT_0 )\
		return FALSE;\
}
#define SLEEP_BREAK(x)\
{\
	if ( ::WaitForSingleObject ( m_hEvtEndModule, x ) == WAIT_OBJECT_0 )\
		break;\
}
// 進入臨間區
#define EnterCRIT(pCRIT,CRITName,FileName,Line) \
{\
	(pCRIT)->Lock ();\
	TRACE ( "--------> %s , EnterCriticalSection ,%s ( %d )\n", CRITName, FileName, Line );\
}
// 離開臨間區
#define LeaveCRIT(pCRIT,CRITName,FileName,Line) \
{\
	TRACE ( "<-------- %s , LeaveCriticalSection ,%s ( %d )\n", CRITName, FileName, Line );\
	(pCRIT)->Unlock();\
}

class CHwDir  
{
public:
	CHwDir(
		LPCTSTR lpszBasePathOrFile,
		BOOL bSerachSubDir = TRUE,		// 搜索子目錄
		BOOL bAbsolutePath =TRUE,		// 是絕對路徑
		CHwDir **ppHwDir=NULL			// 將這個類的指針傳出去給調用者
	);
	virtual ~CHwDir();

public:
	ULONGLONG GetAmountBytes();
	CStringArray *m_pStrAryResFile, *m_pStrArySubDirectory;
	char m_szBasePathFile[MAX_PATH];
	void Cancel();
private:
	DWORD FindAllFileUnderOneDir(LPCTSTR lpszFileName,LPCTSTR lpszDirectory,BOOL bFindDir);
	DWORD Dir();
	int HandleOneFile(LPCTSTR lpszDirectory, WIN32_FIND_DATA* pFindData,BOOL bFindDir);
	DWORD FindDirAndFile(LPCTSTR lpszDirectory);
private:
	BOOL m_bCancel;
	CStringArray *m_pStrArySubDirectory_Private;
	DWORD m_dwDirNum;
	ULONGLONG m_AmountBytes;
	BOOL m_bSerachSubDir;
	BOOL m_bAbsolutePath;			//是否要保存絕對路徑
	DWORD m_dwRelativePathStartPos;	//相對路徑的起始位置
	char m_strFilter[MAX_PATH/2];
};


class CHwDirEx  
{
public:
	CHwDirEx(
		LPCTSTR lpszMultiFindPath,					// 要搜索的路徑,如“E:\\winnt\\;d:\temp\\;”
		LPCTSTR lpszMultiFindFilter,				// 要搜索的過濾條件,如“*.bmp;*.exe;”
		LPCTSTR lpszMultiExcludeFilter=NULL,		// 要排除的過濾條件,如“*.bmp;*.exe;”
		BOOL bSerachSubDir = TRUE,					// 搜索子目錄
		BOOL bAbsolutePath =TRUE,					// 是絕對路徑
		CHwDirEx **ppHwDirEx=NULL					// 將這個類的指針傳出去給調用者
);
	ULONGLONG GetAmountBytes();
	virtual ~CHwDirEx();
	void Cancel();

	CStringArray *m_pStrAryResFile, *m_pStrArySubDirectory;
private:
	CHwDir* m_pHwDir;
	BOOL m_bCancel;
	void DirAll(
		LPCTSTR lpszFindPath,						// 要搜索的路徑,如“E:\\winnt\\”
		LPCTSTR lpszMultiFindFilter,				// 要搜索的過濾條件,如“*.bmp;*.exe;”
		LPCTSTR lpszMultiExcludeFilter=NULL,		// 要排除的過濾條件,如“*.bmp;*.exe;”
		BOOL bSerachSubDir = TRUE,					// 搜索子目錄
		BOOL bAbsolutePath =TRUE					// 是絕對路徑
);
	void Dir(
		LPCTSTR lpszFindPath,						// 要搜索的路徑,如“E:\\winnt\\”
		LPCTSTR lpszMultiFindFilter,				// 要搜索的過濾條件,如“*.bmp;*.exe;”
		CStringArray &StrAryResFile,				// 搜索的文件保存到此
		CStringArray &StrArySubDirectory,			// 搜索的子目錄保存到此
		DWORD &dwAmountBytes,						// 總字節數保存到此
		BOOL bSerachSubDir = TRUE,					// 搜索子目錄
		BOOL bAbsolutePath =TRUE					// 是絕對路徑
);
	DWORD m_dwDirNum;
	ULONGLONG m_AmountBytes;
};
//==========================================================================
// 常用操作宏
//==========================================================================
#define GET_VALID_STRING_FROM_TOW(cs1,cs2) ( (cs1.GetLength()>0)?cs1:cs2 )
#define GET_SAFE_STRING(str) ( (str)?(str):"" )
#define NULL_STRING_FOR_DB ""
#define GET_VALID_CSTRING(cs) ( (cs).GetLength()>0?(cs):((cs),(cs)=NULL_STRING_FOR_DB) )
#define GET_VALID_CSTRING_P(csp) ( (csp)?(*(csp)):"" )
#define STRNCPY_CS(sz,cs) strncpy((char*)(sz),(cs).GetBuffer(0),sizeof(sz))
#define STRNCPY_SZ(sz1,sz2) strncpy(((char*)(sz1)),(sz2)?((char*)(sz2)):"",sizeof(sz1))
#define STRNCPY(sz1,sz2,size) \
{\
	strncpy(((char*)(sz1)),(sz2)?((char*)(sz2)):"",(size));\
	((char*)(sz1))[(size)-1] = '\0';\
}
// 時間類型的數據長度
#define DATETIME_TYPE_LENGTH				20
#define STRCPY(sz1,sz2) strcpy ( (char*)(sz1), (char*)((sz2)?(sz2):"") )
#define STRLEN_SZ(sz) ((sz)?strlen((char*)(sz)):0)
#define COPMNC_CS_SZ(cs,sz) ( (sz) && ((cs).CompareNoCase(sz)==0) )
#define STRCMP_SAFE(sz1,sz2) (strcmp((char*)GET_SAFE_STRING(sz1),(char*)GET_SAFE_STRING(sz2)))
#define STRLEN_SAFE(sz) ((sz)?strlen((char*)(sz)):0)
#define ATOI_SAFE(sz) (atoi((const char*)(GET_SAFE_STRING((char*)(sz)))))
#define ASSERT_ADDRESS(p,size) ASSERT((p)!=NULL && AfxIsValidAddress((p),(size),TRUE))
#define VALID_IP_PORT(ip,port) ((STRLEN_SAFE(ip)>0) && (port)>1000)
#define LENGTH(x) sizeof(x)/sizeof(x[0])
#define MIN(x,y) (((DWORD)(x)<(DWORD)(y))?(x):(y))
#define MAX(x,y) (((DWORD)(x)>(DWORD)(y))?(x):(y))
// 有效的句柄
#define HANDLE_IS_VALID(h) ((HANDLE)(h) && ((HANDLE)(h)!=INVALID_HANDLE_VALUE))
// 關閉句柄
#define CLOSE_HANDLE(h)\
{\
	if ( HANDLE_IS_VALID(h) )\
	{\
		::CloseHandle ( h );\
		(h) = NULL;\
	}\
}

int ConvertStrToCTime(char *chtime, CTime &cTime );
CString GetOneLine ( CString &str );
void Log ( UINT nLevel, LPCTSTR lpszFormat, ... );
int GetMouthByShortStr ( LPCTSTR lpszShortMonth );
CString hwFormatMessage ( DWORD dwErrorCode );
int WriteDataToFile(LPCTSTR filename,char* data,long size,LPCTSTR mode, int nStartPos=-1 );
CString Data2HexString ( int nOffset, char *data, int size );
void DbgLog ( LPCTSTR lpszFormat, ... );
int ReadDataFromFile(LPCTSTR filename,char* data,long size, int nStartPos=-1);
char* MakeSureDirectory(LPCTSTR lpszDirName);
int hwSnprintf ( char *buffer, int count, const char *format, ... );
BOOL PartPathAndFileAndExtensionName (
		IN LPCTSTR lpszFilePath,			// 全路徑名(包含文件名)
		OUT CString *pcsOnlyPath,			// 輸出光路徑(沒有文件名)
		OUT CString *pcsOnlyFileName,		// 輸出光文件名(沒有路徑)
		OUT CString *pcsExtensionName		// 輸出擴展名
	);
BOOL PartFileAndPathByFullPath (
		LPCTSTR lpszFilePath,
		char *szOnlyFileName,
		int nFileNameSize,
		char *szOnlyPath =NULL,
		int nPathSize=0
);

template<class T1, class T2>
int FindFromArray ( IN T1 &Ary, IN T2 Find )
{
	int nCount = Ary.GetSize();
	for ( int i=0; i<nCount; i++ )
	{
		if ( Ary.GetAt(i) == Find )
			return i;
	}
	return -1;
}

template<class T1, class T2, class T3, class T4>
int FindFromArray ( IN T1 &Ary, IN T2 Find, IN T3 &AppAry, IN T4 AppFind )
{
	int nCount = Ary.GetSize();
	for ( int i=0; i<nCount; i++ )
	{
		if ( Ary.GetAt(i) == Find && 
			AppAry.GetAt(i) == AppFind )
		{
			return i;
		}
	}
	return -1;
}
void StandardizationPathBuffer ( char *szPath, int nSize, char cFlagChar='\\' );
CString StandardizationFileForPathName ( LPCTSTR lpszFileOrPathName, BOOL bIsFileName, char cReplaceChar='_' );
char *hwStrrChr ( const char *string, int c );
char *hwStrChr ( const char *string, int c );
BOOL PartFileAndExtensionName (
		IN LPCTSTR lpszFileName,
		OUT char *szFileName,
		IN int nFileNameSize,
		OUT char *szExtensionName=NULL,
		IN int nExtensionNameSize=0 );
BOOL hwDeleteFolder ( LPCTSTR lpszFolder );
BOOL CopyFileAppend ( LPCTSTR lpszFileName_Src, LPCTSTR lpszFileName_Dst, int nOffset );
BOOL CreateNullFile ( LPCTSTR lpszFileName, int nFileSize );
BOOL WaitForThreadEnd ( HANDLE hThread, DWORD dwWaitTime=5000 );
DWORD SelectPathByCommonDlg(LPSTR lpszPathName,HWND hwndOwner=NULL);
BOOL SelectPathByCommonDlg ( CWnd *pDlg, UINT nEditID );

#endif // !defined(AFX_PUBLICFUNCTION_H__654F176C_F11F_4843_AEA0_F53676D52341__INCLUDED_)

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
麻豆久久一区二区| 午夜视频一区二区三区| 日韩色在线观看| 欧美做爰猛烈大尺度电影无法无天| 国内外成人在线视频| 日本一区中文字幕| 日韩av中文字幕一区二区三区| 亚洲国产精品久久久久婷婷884| 国产精品天天摸av网| 欧美激情一区不卡| 亚洲视频在线一区| 亚洲成av人综合在线观看| 一区二区不卡在线视频 午夜欧美不卡在| 亚洲欧洲美洲综合色网| 亚洲日本va午夜在线电影| 中文字幕人成不卡一区| 亚洲欧美区自拍先锋| 亚洲综合一二区| 午夜精品久久久久| 国产一区二区按摩在线观看| 成人教育av在线| 97久久精品人人做人人爽| av一区二区久久| 91成人网在线| 日韩欧美高清一区| 国产精品天天看| 五月婷婷激情综合网| 老司机午夜精品99久久| 成人自拍视频在线观看| 欧美熟乱第一页| 精品卡一卡二卡三卡四在线| 国产精品久久久久久久久免费丝袜| 亚洲精品视频观看| 日本亚洲三级在线| av在线免费不卡| 69p69国产精品| 国产精品欧美综合在线| 婷婷国产在线综合| 成人免费毛片a| 91.xcao| 国产欧美综合色| 午夜精品福利一区二区蜜股av | 婷婷综合另类小说色区| 国产精品456| 欧美日韩精品专区| 国产精品久99| 韩国av一区二区三区在线观看| 色综合天天狠狠| 久久美女艺术照精彩视频福利播放| 亚洲精品乱码久久久久久黑人| 久久99国产精品免费网站| 色一情一乱一乱一91av| 国产清纯白嫩初高生在线观看91| 首页欧美精品中文字幕| 色综合久久天天综合网| 国产精品女上位| 国内成人精品2018免费看| 欧美亚洲综合网| 亚洲精品乱码久久久久久| 国产盗摄一区二区| 久久综合成人精品亚洲另类欧美 | 国内精品嫩模私拍在线| 欧美伊人久久久久久午夜久久久久| 久久噜噜亚洲综合| 国产一区二区精品久久91| 欧美一区二区在线视频| 亚洲成av人片在线| 欧美在线你懂得| 亚洲精品视频在线观看网站| 盗摄精品av一区二区三区| www久久精品| 精品一二三四区| 久久女同性恋中文字幕| 久久99最新地址| 欧美α欧美αv大片| 日本亚洲视频在线| 欧美电视剧免费全集观看| 日本在线不卡视频| 亚洲精品在线电影| 国产精品白丝av| 国产精品免费久久| 91亚洲精品乱码久久久久久蜜桃| 中文在线免费一区三区高中清不卡| 国产一区在线不卡| 国产精品亲子乱子伦xxxx裸| aaa欧美大片| 一区二区欧美国产| 欧美精选一区二区| 久久精品国产久精国产爱| 久久人人爽人人爽| av成人老司机| 图片区日韩欧美亚洲| 日韩一级片网址| 国产成人av电影在线播放| 国产精品麻豆久久久| 91久久久免费一区二区| 日韩电影免费在线看| 精品久久人人做人人爽| 成人免费不卡视频| 亚洲午夜电影在线观看| 日韩一区二区三区观看| 国产精品1区2区3区| 亚洲三级在线观看| 日韩亚洲欧美成人一区| 成人美女在线观看| 婷婷综合另类小说色区| 久久先锋资源网| 色系网站成人免费| 美国精品在线观看| 中文字幕中文在线不卡住| 欧美日韩不卡一区| 成人性色生活片| 日本少妇一区二区| 国产精品成人一区二区三区夜夜夜| 在线观看欧美精品| 国产白丝精品91爽爽久久| 亚洲五码中文字幕| 欧美激情资源网| 日韩美一区二区三区| 91丨porny丨首页| 国产一区二区中文字幕| 亚洲一区影音先锋| 中文字幕乱码久久午夜不卡| 欧美一区二区国产| 91福利国产精品| 北条麻妃一区二区三区| 麻豆精品视频在线观看视频| 一区二区三区中文字幕| 久久精品日产第一区二区三区高清版 | 亚洲精品成a人| 国产亚洲精品中文字幕| 9191成人精品久久| 欧美系列亚洲系列| 97久久精品人人做人人爽50路| 久久66热re国产| 日韩不卡手机在线v区| 亚洲综合精品久久| 亚洲欧美日韩精品久久久久| 久久一留热品黄| 精品欧美黑人一区二区三区| 欧美羞羞免费网站| 色综合久久天天| 99精品一区二区| 成人激情免费视频| 国产成人免费视频网站高清观看视频| 久久精品国产免费| 精品一区二区三区视频| 免费观看在线色综合| 日本不卡一区二区三区| 五月天国产精品| 日韩精品亚洲一区| 日本va欧美va瓶| 蜜臀av在线播放一区二区三区| 午夜av一区二区| 日韩国产高清影视| 美女一区二区视频| 久久精品久久综合| 激情五月婷婷综合| 国产一区二区三区四| 国产精选一区二区三区| 成人综合激情网| 色综合久久综合| 欧美日韩视频在线观看一区二区三区| 欧美亚洲一区二区在线| 欧美剧在线免费观看网站 | 国产精品麻豆欧美日韩ww| 国产欧美日韩另类一区| 中文字幕在线一区| 亚洲免费视频成人| 日韩成人一级片| 国产在线视频一区二区| 丰满少妇在线播放bd日韩电影| 高清国产午夜精品久久久久久| av在线综合网| 91精品婷婷国产综合久久竹菊| 欧美一区二区三区系列电影| 欧美电视剧免费观看| 中文字幕一区av| 视频一区二区国产| 国产成人免费网站| 欧美日韩国产经典色站一区二区三区| 欧美一区二区三区四区视频| 国产欧美视频在线观看| 亚洲综合精品久久| 国产一二精品视频| 在线免费一区三区| 久久亚洲影视婷婷| 一区二区三区日韩精品视频| 日产精品久久久久久久性色| 国产精品一二三四| 欧美日韩aaaaa| 国产精品福利在线播放| 肉丝袜脚交视频一区二区| 中文字幕在线观看一区| 婷婷中文字幕一区三区| 国产精品18久久久久久vr| 欧美最新大片在线看| 久久精品亚洲精品国产欧美| 亚洲国产毛片aaaaa无费看 | 欧美精品亚洲二区|