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

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

?? filebackup.cpp

?? 實時文件備份
?? CPP
?? 第 1 頁 / 共 2 頁
字號:
// FileBackupE.cpp: implementation of the CFileBackup class.
//
//////////////////////////////////////////////////////////////////////

#include "stdafx.h"
#include "FileBackup.h"

#ifdef _DEBUG
#undef THIS_FILE
static char THIS_FILE[]=__FILE__;
#define new DEBUG_NEW
#endif

BOOL CFileBackup::m_fIsInitialized			= FALSE;
DWORD CFileBackup::m_dwOSVersion			= ::GetVersion();
UINT CFileBackup::m_nCurrentANSICodePage	= ::GetACP();

BOOL CFileBackup::CFilenameMaskListA::CFilenameMaskA::IsSubNameMatchA(LPCSTR pcsMask, LPCSTR pcsName)
{
	LPCSTR pMask = pcsMask, pName = pcsName;
	LPCSTR pTempMask, pTempName;
	int nCharLimit = 0;

	while ( 1 )
	{
		if ( *pMask == '*' )
			nCharLimit = INT_MAX;
		else if ( *pMask == '?' )
		{
			if ( nCharLimit != INT_MAX )
				nCharLimit++;
		}
		else
			break;
		pMask++;
	}
	if ( *pMask == NULL )
		return ::strlen(pName) <= (unsigned int)nCharLimit;

	while ( nCharLimit-- >= 0 && *pName != NULL )
	{
		pTempMask = pMask;
		pTempName = pName;

		while ( 1 )
		{
			if ( *pTempMask == '*' || *pTempMask == '?' )
			{
				if ( IsSubNameMatchA(pTempMask, pTempName) )
					return TRUE;
				else
					break;
			}
			else
			{
				if ( *pTempMask != *pTempName )
					break;
				else if ( *pTempMask == NULL )
					return TRUE;
			}
			pTempMask++;
			pTempName++;
		}

		pName++;
	}

	return FALSE;
}

BOOL CFileBackup::CFilenameMaskListA::CFilenameMaskA::IsSubNameMatchWithoutDotA(LPCSTR pcsMask, LPCSTR pcsName)
{
	LPCSTR pMask = pcsMask, pName = pcsName;
	LPCSTR pTempMask, pTempName;
	int nCharLimit = 0;

	while ( 1 )
	{
		if ( *pMask == '*' )
			nCharLimit = INT_MAX;
		else if ( *pMask == '?' )
		{
			if ( nCharLimit != INT_MAX )
				nCharLimit++;
		}
		else
			break;
		pMask++;
	}
	if ( *pMask == NULL )
		return ::strlen(pName) <= (unsigned int)nCharLimit;

	pTempMask = pMask;
	pTempName = pName;
	while ( nCharLimit-- >= 0 && *pName != NULL )
	{
		while ( 1 )
		{
			if ( *pTempMask == '*' || *pTempMask == '?' )
			{
				if ( IsSubNameMatchWithoutDotA(pTempMask, pTempName) )
					return TRUE;
				else
					break;
			}
			else
			{
				if ( *pTempMask != *pTempName )
				{
					if ( *pTempName == NULL && *pTempMask == '.' && *(pTempMask + 1) == NULL )
						return TRUE;
					else
						break;
				}
				else if ( *pTempMask == NULL )
					return TRUE;
			}
			pTempMask++;
			pTempName++;
		}

		pTempMask = pMask;
		pTempName = ++pName;
	}
	return *pName == 0 && *pTempMask == '.' && *(pTempMask + 1) == NULL;
}

BOOL CFileBackup::CFilenameMaskListW::CFilenameMaskW::IsSubNameMatchW(LPCWSTR pcwsMask, LPCWSTR pcwsName)
{
	LPCWSTR pMask = pcwsMask, pName = pcwsName;
	LPCWSTR pTempMask, pTempName;
	int nCharLimit = 0;

	while ( 1 )
	{
		if ( *pMask == L'*' )
			nCharLimit = INT_MAX;
		else if ( *pMask == L'?' )
		{
			if ( nCharLimit != INT_MAX )
				nCharLimit++;
		}
		else
			break;
		pMask++;
	}
	if ( *pMask == NULL )
		return ::wcslen(pName) <= (unsigned int)nCharLimit;

	while ( nCharLimit-- >= 0 && *pName != NULL )
	{
		pTempMask = pMask;
		pTempName = pName;

		while ( 1 )
		{
			if ( *pTempMask == L'*' || *pTempMask == L'?' )
			{
				if ( IsSubNameMatchW(pTempMask, pTempName) )
					return TRUE;
				else
					break;
			}
			else
			{
				if ( *pTempMask != *pTempName )
					break;
				else if ( *pTempMask == NULL )
					return TRUE;
			}
			pTempMask++;
			pTempName++;
		}

		pName++;
	}

	return FALSE;
}

BOOL CFileBackup::CFilenameMaskListW::CFilenameMaskW::IsSubNameMatchWithoutDotW(LPCWSTR pcwsMask, LPCWSTR pcwsName)
{
	LPCWSTR pMask = pcwsMask, pName = pcwsName;
	LPCWSTR pTempMask, pTempName;
	int nCharLimit = 0;

	while ( 1 )
	{
		if ( *pMask == L'*' )
			nCharLimit = INT_MAX;
		else if ( *pMask == L'?' )
		{
			if ( nCharLimit != INT_MAX )
				nCharLimit++;
		}
		else
			break;
		pMask++;
	}
	if ( *pMask == NULL )
		return ::wcslen(pName) <= (unsigned int)nCharLimit;

	pTempMask = pMask;
	pTempName = pName;
	while ( nCharLimit-- >= 0 && *pName != NULL )
	{
		while ( 1 )
		{
			if ( *pTempMask == L'*' || *pTempMask == L'?' )
			{
				if ( IsSubNameMatchWithoutDotW(pTempMask, pTempName) )
					return TRUE;
				else
					break;
			}
			else
			{
				if ( *pTempMask != *pTempName )
				{
					if ( *pTempName == NULL && *pTempMask == L'.' && *(pTempMask + 1) == NULL )
						return TRUE;
					else
						break;
				}
				else if ( *pTempMask == NULL )
					return TRUE;
			}
			pTempMask++;
			pTempName++;
		}

		pTempMask = pMask;
		pTempName = ++pName;
	}
	return *pName == 0 && *pTempMask == L'.' && *(pTempMask + 1) == NULL;
}

UINT CFileBackup::CWorkerThread::DummyThreadProc(CWorkerThread* pThis)
{
	UINT nRet = pThis->m_pfnCustomThreadProc(pThis->m_pCustomThreadProcParam);

	if ( nRet == ERROR_SUCCESS )
		return pThis->ExitInstance();
	else
	{
		pThis->ExitInstance();
		return nRet;
	}
}

BOOL CFileBackup::CFileFilterA::CParsedPathItemA::AddIncludePath(LPCSTR pcsPath, LPCSTR pcsFilenameMask, BOOL fIsIncludeFilenameMask, DWORD* pdwFileAttributesMask, BOOL fIsIncludeFileAttributesMask)
{
	if ( (m_dwFlags & CParsedPathItemA::ITEM_TYPE_MASK) != CParsedPathItemA::INTERMEDIA_ITEM )
		return FALSE;

	switch ( m_dwFlags & CParsedPathItemA::ITEM_MASK )
	{
	case CParsedPathItemA::ROOT_ITEM:
		{
			CParsedPathItemA *pPrevChild, *pChild;
			int nDrive;
			BOOL fIsLastName;
			DWORD dwFlags = 0;

			if ( pcsPath[1] != ':' || pcsPath[2] != NULL && pcsPath[2] != '\\' )
				return FALSE;
			else if ( *pcsPath >= 'A' && *pcsPath <= 'Z' )
				nDrive = *pcsPath - 'A';
			else if ( *pcsPath >= 'a' && *pcsPath <= 'z' )
				nDrive = *pcsPath - 'a';
			else
				return FALSE;
			if ( (fIsLastName = pcsPath[2] == NULL || pcsPath[2] == '\\' && pcsPath[3] == NULL) )
			{
				dwFlags = CParsedPathItemA::DRIVE_ITEM | CParsedPathItemA::INCLUDE_ITEM;
				if ( pcsFilenameMask )
					dwFlags |= fIsIncludeFilenameMask ? CParsedPathItemA::INCLUDE_FILENAME_MASK : CParsedPathItemA::EXCLUDE_FILENAME_MASK;
				if ( pdwFileAttributesMask )
					dwFlags |= fIsIncludeFileAttributesMask ? CParsedPathItemA::INCLUDE_FILE_ATTRIBUTES_MASK : CParsedPathItemA::EXCLUDE_FILE_ATTRIBUTES_MASK;
			}
			else
				dwFlags = CParsedPathItemA::DRIVE_ITEM | CParsedPathItemA::INTERMEDIA_ITEM;

			pPrevChild = NULL;
			pChild = m_pFirstChild;
			while ( pChild && (int)pChild->m_psName < nDrive )
			{
				pPrevChild = pChild;
				pChild = pChild->m_pNextSibling;
			}
			if ( pChild && nDrive == (int)pChild->m_psName )
			{
				if ( fIsLastName )

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
91麻豆福利精品推荐| 国产欧美日韩久久| 石原莉奈在线亚洲二区| 欧美日韩黄色影视| 视频一区二区三区入口| 欧美成va人片在线观看| 国内外成人在线视频| 国产亚洲综合在线| 99久久久国产精品| 一区二区三区毛片| 91麻豆精品国产91久久久资源速度| 日本不卡中文字幕| 久久久精品中文字幕麻豆发布| 国产河南妇女毛片精品久久久| 亚洲欧洲日产国产综合网| 欧美性生活大片视频| 麻豆精品国产传媒mv男同| 久久久噜噜噜久噜久久综合| 99精品桃花视频在线观看| 亚洲成人av免费| 久久久亚洲国产美女国产盗摄 | 99在线热播精品免费| 亚洲精品你懂的| 日韩一区二区高清| bt7086福利一区国产| 午夜伊人狠狠久久| 久久精品亚洲麻豆av一区二区| av影院午夜一区| 午夜婷婷国产麻豆精品| 国产亚洲精品福利| 在线观看日韩高清av| 精品一区二区在线看| 亚洲免费资源在线播放| 欧美mv日韩mv亚洲| 日本电影亚洲天堂一区| 精品综合免费视频观看| 亚洲色图在线视频| 精品少妇一区二区三区免费观看 | 亚洲欧洲综合另类| 欧美一区二区三区四区久久| av不卡在线播放| 激情五月婷婷综合| 无吗不卡中文字幕| 亚洲少妇最新在线视频| 精品88久久久久88久久久| 欧美性色黄大片| 成人免费精品视频| 精品一区二区免费看| 亚洲成a人片在线不卡一二三区| 国产日本一区二区| 日韩午夜中文字幕| 欧美日韩国产乱码电影| 91网页版在线| 粉嫩一区二区三区性色av| 日日夜夜免费精品| 依依成人综合视频| 中文字幕日韩精品一区| 国产香蕉久久精品综合网| 日韩三级.com| 在线综合亚洲欧美在线视频| 欧美日韩一区二区三区在线 | 亚洲日本电影在线| 亚洲国产精品高清| 久久精品在这里| 久久综合色8888| 精品久久久久久久一区二区蜜臀| 欧美久久久久久久久| 欧美体内she精高潮| 91丨porny丨最新| av资源网一区| 97精品久久久午夜一区二区三区| 福利一区在线观看| 国产a级毛片一区| 国产成人综合网站| 国产精品亚洲一区二区三区妖精| 韩国欧美国产1区| 久久99国产精品免费网站| 久久精品国内一区二区三区| 琪琪久久久久日韩精品| 欧美aaaaa成人免费观看视频| 日本成人在线视频网站| 青草国产精品久久久久久| 日韩av在线播放中文字幕| 日本不卡123| 激情偷乱视频一区二区三区| 国产在线观看一区二区| 国产中文一区二区三区| 国产jizzjizz一区二区| 99热在这里有精品免费| 日本久久一区二区| 欧美综合在线视频| 欧美高清你懂得| 精品国产一区二区三区久久久蜜月 | 亚洲免费av高清| 一区二区三区蜜桃| 日韩福利视频导航| 国产专区综合网| av不卡在线播放| 欧美日韩在线不卡| 精品欧美一区二区三区精品久久| 久久久久久久电影| 1000精品久久久久久久久| 亚洲一二三四在线| 美女网站色91| 成人永久免费视频| 亚洲精品一区二区在线观看| 久久青草欧美一区二区三区| 国产精品国模大尺度视频| 一区二区日韩av| 蜜臀av性久久久久蜜臀aⅴ四虎 | 欧美午夜电影在线播放| 欧美一级一区二区| 中文字幕不卡在线| 亚洲国产成人高清精品| 黄网站免费久久| 91天堂素人约啪| 欧美一卡2卡三卡4卡5免费| 国产亚洲美州欧州综合国| 亚洲欧美视频在线观看| 轻轻草成人在线| 99久久99久久精品免费看蜜桃| 欧美剧在线免费观看网站| 26uuu精品一区二区| 亚洲欧美日韩在线| 久久不见久久见免费视频1| 99久久99久久精品免费看蜜桃| 在线综合视频播放| 亚洲视频每日更新| 国产一区日韩二区欧美三区| 欧美在线免费视屏| 国产欧美日韩精品在线| 日本成人在线电影网| 色综合天天综合给合国产| www国产亚洲精品久久麻豆| 亚洲综合色网站| 国产.欧美.日韩| 日韩欧美中文字幕一区| 亚洲精品高清在线| 国产a级毛片一区| 精品久久五月天| 亚洲sss视频在线视频| jiyouzz国产精品久久| 亚洲精品一区在线观看| 日韩精品一二区| 色94色欧美sute亚洲13| 国产精品久久久99| 国产尤物一区二区| 欧美一区二区三区四区高清| 亚洲午夜激情网页| 91免费观看在线| 日本一区二区成人在线| 国产一区二区在线影院| 日韩一级黄色片| 视频一区在线播放| 中文字幕亚洲一区二区av在线| 免费在线观看一区| 欧美日产国产精品| 亚洲一区二区精品视频| 91免费看`日韩一区二区| 国产精品免费aⅴ片在线观看| 国产综合色视频| 日韩欧美激情四射| 免费在线观看一区二区三区| 在线综合视频播放| 日韩成人一区二区| 91精品免费观看| 日韩在线观看一区二区| 欧美在线观看禁18| 亚洲午夜在线电影| 欧美色倩网站大全免费| 亚洲主播在线观看| 欧洲激情一区二区| 亚洲一区av在线| 欧美日韩色一区| 青娱乐精品视频| 久久综合中文字幕| 国产一区二区美女| 国产亚洲午夜高清国产拍精品| 国产精华液一区二区三区| 欧美极品另类videosde| av亚洲精华国产精华精| 亚洲精品国久久99热| 在线看一区二区| 天天爽夜夜爽夜夜爽精品视频| 欧美一区二区大片| 国产精品一区二区91| 中文字幕国产精品一区二区| 99v久久综合狠狠综合久久| 亚洲蜜臀av乱码久久精品蜜桃| 欧美色手机在线观看| 日韩精品五月天| 欧美精品一区二区在线播放| 成人夜色视频网站在线观看| 亚洲婷婷在线视频| 欧美日韩性生活| 韩国理伦片一区二区三区在线播放| 国产女主播视频一区二区| 97久久精品人人做人人爽| 午夜日韩在线电影| 久久久www成人免费无遮挡大片|