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

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

?? general.cpp

?? 最新visualC++編程200例書籍源碼包括對數據庫的操作
?? CPP
?? 第 1 頁 / 共 4 頁
字號:
		}
		else{
			if(hDisk[i+0x80])
				CloseHandle(hDisk[i+0x80]);
			char TmpStr[26] = "\\\\.\\PHYSICALDRIVE0";
			TmpStr[17] = i+'0';
			if((hDisk[i+0x80]=CreateFile(TmpStr, GENERIC_READ|GENERIC_WRITE, FILE_SHARE_READ, NULL, OPEN_EXISTING, FILE_FLAG_NO_BUFFERING, NULL))==INVALID_HANDLE_VALUE)
				break;
		}
		wsprintf(TmpStr, "Hard Disk %lu", i+1);
		TvI.mask = TVIF_CHILDREN | TVIF_TEXT | TVIF_PARAM;
		TvI.pszText = TmpStr;
		TvI.cChildren = 1;
		TvI.lParam = (long)DrivePacket;
		DrivePacket->Drive = 0x80+i;
		DrivePacket->Cylinder = 0;
		DrivePacket->Head = 0;
		DrivePacket->Sector = 1;
		DrivePacket->NumSectors = 1;
		DrivePacket->Type = PART_TABLE;
		DrivePacket->RelativeSector = 0;
		DrivePacket->NTRelativeSector = 0;
		if(gOSWin95)
			DrivePacket->Flag = (DllCheckInt13Extension)(0x80+i);
		else
			DrivePacket->Flag = 0;

		NumHards++;

		TvIns.item = TvI;
		TvIns.hParent = TVI_ROOT;
		TvIns.hInsertAfter = TVI_LAST;
		hPrevHD = DiskTree->InsertItem((LPTVINSERTSTRUCT) &TvIns);
		DrivePacket++;
	}
	m_wndStatusBarCtrl->SetText("", 0, 0);
}

void DisplaySubDir(DRIVEPACKET *DrivePacket)
{
	WORD i;					  
	m_wndStatusBarCtrl->SetText("Wait....", 0, 0);
	DeleteColumns();
	gListViewType = SUB_DIR;
	ListView->InsertColumn(MS_DOS, "MS-DOS Name", LVCFMT_LEFT, 100, 0);
	ListView->InsertColumn(LFN, "Long File Name", LVCFMT_LEFT, 200, 0);
	ListView->InsertColumn(START_CLUS, "Starting Cluster", LVCFMT_LEFT, 100, 0);
	ListView->InsertColumn(ATTR, "Attributes", LVCFMT_LEFT, 75, 0);
	ListView->InsertColumn(SIZE, "Size", LVCFMT_LEFT, 75, 0);
	ListView->InsertColumn(DATETIME, "Modified Date", LVCFMT_LEFT, 125, 0);
	ListView->InsertColumn(CREATEDATE, "Created Date", LVCFMT_LEFT, 125, 0);
	ListView->InsertColumn(ACCESSDATE, "Accessed Date", LVCFMT_LEFT, 125, 0);
	DIRECTORY *Directory=(DIRECTORY *)Buffer;
	hMemFilePacket = LocalAlloc(LMEM_MOVEABLE | LMEM_DISCARDABLE, DrivePacket->NumSectors * 512 + DrivePacket->NumSectors * 8 /*For LFN & .*/);
	if(hMemFilePacket == NULL){
		AfxMessageBox("Unable to allocate memory");
		return;
	}
	FILEPACKET *FilePacket = (FILEPACKET *) LocalLock(hMemFilePacket);
	for(i=0; i<(DrivePacket->NumSectors*16); i++){
		if((Directory->Attributes & 0xF) == 0xF){
			Directory++;				//Its a LFN Skip it
			continue;
		}
		if(Directory->Name[0] == 0)
			break;
		if((Directory->Attributes & ATTR_SUBDIR) && (Directory->Name[0]=='.')){
			Directory++;				//Its a . or .. Skip it
			continue;
		}
//		if(((BYTE)Directory->Name[0] != 0xE5) && (Directory->Name[0] != 0x05)){
//			Directory++;
//			continue;
//		}
		memmove(FilePacket->Name, Directory->Name, 8);
		FilePacket->Name[8] = '.';
		memmove(&(FilePacket->Name[9]), Directory->Extension, 3);
		FilePacket->Name[12]=0;
		FilePacket->Attributes = Directory->Attributes;
		FilePacket->Date = Directory->Date;
		FilePacket->CreateDate = Directory->CreateDate;
		FilePacket->AccessDate = Directory->AccessDate;
		FilePacket->Size = Directory->Size;
		FilePacket->StartCluster = (DWORD) Directory->StartCluster + (((DrivePacket->FatType == FAT32) ? (DWORD) Directory->StartClusterHi:0)<<16);
		FilePacket->Time = Directory->Time;
		FilePacket->Lfn = (char *) (FilePacket+1);
		WORD TmpVal=0;
		if(Directory != (DIRECTORY *)Buffer)
			TmpVal=FormLongFileName(Directory, (char *)(FilePacket+1));
		FilePacket++;
		*((char *) FilePacket+TmpVal)=0;
		Directory++;
		ListView->InsertItem(LVIF_TEXT|LVIF_PARAM, i, LPSTR_TEXTCALLBACK, 0, 0, i, (LPARAM) (FilePacket-1));
		FilePacket = (FILEPACKET *)((char *) FilePacket+TmpVal+1);
	}
	m_wndStatusBarCtrl->SetText("", 0, 0);
}

DWORD CountFatEntries(DWORD StartCluster, WORD FatType, LPBYTE Buffer)
{
	if(!(StartCluster & 0xFFFFFFF))
		return 0;
	switch(FatType)
	{
	case FAT16:
		if(StartCluster == 0xFFFF)
			return 0;
		break;
	case FAT12:
		if(StartCluster == 0xFFF)
			return 0;
		break;
	case FAT32:
		if((StartCluster & 0xFFFFFFF) == 0xFFFFFFF)
			return 0;
		break;
	}
	DWORD NumFatEntries = 1, NextCluster = StartCluster;
	while(TRUE){
		switch(FatType)
		{
		case FAT16:
			NextCluster = (WORD)Buffer[NextCluster*2]+(WORD)Buffer[NextCluster*2+1]*256;
			if(!NextCluster)
				return NumFatEntries;
			if(NextCluster == 0xFFFF)
				return NumFatEntries;
			break;
		case FAT12:{
			DWORD TmpVal = (WORD)Buffer[(NextCluster*3)/2]+(WORD)Buffer[(NextCluster*3)/2+1]*256;
			NextCluster = (NextCluster % 2) ? (TmpVal >> 4):(TmpVal & 0xFFF);
			if(!NextCluster)
				return NumFatEntries;
			if(NextCluster == 0xFFF)
				return NumFatEntries;
			break;
			}
		case FAT32:
			NextCluster &= 0xFFFFFFF;
			NextCluster = (DWORD)Buffer[NextCluster*4]+(((DWORD)Buffer[NextCluster*4+1])<<8) + 
				(((DWORD)Buffer[NextCluster*4+2])<<16) + (((DWORD)Buffer[NextCluster*4+3])<<24);
			NextCluster &= 0xFFFFFFF;
			if(!NextCluster)
				return NumFatEntries;
			if(NextCluster == 0xFFFFFFF)
				return NumFatEntries;
			break;
		}
		NumFatEntries++;
	}
}

void StoreFatEntries(DWORD StartCluster, WORD FatType, LPDWORD FatEntries, DWORD NumFatEntries, LPBYTE Buffer)
{
	DWORD NextCluster = StartCluster;
	for(DWORD i=0; i<NumFatEntries; i++){
		switch(FatType)
		{
		case FAT16:
			FatEntries[i] = NextCluster;
			NextCluster = (WORD)Buffer[NextCluster*2]+(WORD)Buffer[NextCluster*2+1]*256;
			break;
		case FAT12:{
			FatEntries[i] = NextCluster;
			DWORD TmpVal = (WORD)Buffer[(NextCluster*3)/2]+(WORD)Buffer[(NextCluster*3)/2+1]*256;
			NextCluster = (NextCluster % 2) ? (TmpVal >> 4):(TmpVal & 0xFFF);
			break;
			}
		case FAT32:
			NextCluster &= 0xFFFFFFF;
			FatEntries[i] = NextCluster;
			NextCluster = (DWORD)Buffer[NextCluster*4]+(((DWORD)Buffer[NextCluster*4+1])<<8) + 
				(((DWORD)Buffer[NextCluster*4+2])<<16) + (((DWORD)Buffer[NextCluster*4+3])<<24);
			NextCluster &= 0xFFFFFFF;
			break;
		}
	}
}

BOOL ReadDirBuffer(LPDWORD FatBuffer, DRIVEPACKET *DrivePacket, DWORD NumFatEntries, LPBYTE Buffer)
{
	DRIVEPACKET TmpDrivePacket;
	DWORD TmpVal=0;
	for(DWORD i=0; i<NumFatEntries; i++){
		memcpy(&TmpDrivePacket, DrivePacket, sizeof(DRIVEPACKET));
		TmpDrivePacket.RelativeSector += DrivePacket->SectorsPerCluster * (FatBuffer[TmpVal++]-2);
		TmpDrivePacket.NumSectors = DrivePacket->SectorsPerCluster;
		if(!LoadSectors(&TmpDrivePacket, &CylHeadSect, Buffer))
			return FALSE;
		Buffer += DrivePacket->SectorsPerCluster * 512;
	}
	return TRUE;
}

BOOL WriteDirBuffer(LPDWORD FatBuffer, DRIVEPACKET *DrivePacket, DWORD NumFatEntries, LPBYTE Buffer)
{
	DRIVEPACKET TmpDrivePacket;
	DWORD TmpVal=0;
	for(DWORD i=0; i<NumFatEntries; i++){
		memcpy(&TmpDrivePacket, DrivePacket, sizeof(DRIVEPACKET));
		TmpDrivePacket.RelativeSector += DrivePacket->SectorsPerCluster * (FatBuffer[TmpVal++]-2);
		TmpDrivePacket.NumSectors = DrivePacket->SectorsPerCluster;
		if(!WriteSectors(&TmpDrivePacket, &CylHeadSect, Buffer))
			return FALSE;
		Buffer += DrivePacket->SectorsPerCluster * 512;
	}
	return TRUE;
}

void DisplayFilesFolders(DRIVEPACKET *TmpDrivePacket)
{
	DRIVEPACKET DrivePacket;
	memcpy(&DrivePacket, TmpDrivePacket, sizeof(DRIVEPACKET));
	DRIVEPACKET FatDrivePacket;
//	gListViewType = 0;
	memcpy(&FatDrivePacket, TmpDrivePacket, sizeof(DRIVEPACKET));
	FatDrivePacket.RelativeSector = DrivePacket.FatRelativeSector;
	FatDrivePacket.NumSectors = DrivePacket.NumFatSectors;
	if(!LoadSectors(&FatDrivePacket, &CylHeadSect, Buffer)){
		FatDrivePacket.RelativeSector += DrivePacket.NumFatSectors;
		if(!LoadSectors(&FatDrivePacket, &CylHeadSect, Buffer)){
			AfxMessageBox("FAT not accessible!");
			return;
		}
	}
	DWORD NumFatEntries = CountFatEntries(FatDrivePacket.StartCluster, FatDrivePacket.FatType, Buffer);
	if(!NumFatEntries)
		return;
	HLOCAL hMemBufferFatEntries = LocalAlloc(LMEM_MOVEABLE|LMEM_DISCARDABLE|LMEM_ZEROINIT, NumFatEntries*4);
	if(hMemBufferFatEntries == NULL){
		AfxMessageBox("Fatal Error!  Not able to allocate a buffer for FAT Entries!");
		return;
	}
	LPDWORD BufferFatEntries = (LPDWORD) LocalLock(hMemBufferFatEntries);
	StoreFatEntries(FatDrivePacket.StartCluster, FatDrivePacket.FatType, BufferFatEntries, NumFatEntries, Buffer);
	LocalUnlock(hMemBuffer);
	LocalFree(hMemBuffer);
	hMemBuffer = LocalAlloc(LMEM_MOVEABLE|LMEM_DISCARDABLE|LMEM_ZEROINIT, NumFatEntries * DrivePacket.SectorsPerCluster * 512);
	if(hMemBuffer == NULL){
		AfxMessageBox("Fatal Error!  Not able to allocate a buffer!");
		LocalUnlock(hMemBufferFatEntries);
		LocalFree(hMemBufferFatEntries);
		return;
	}
	Buffer = (LPBYTE) LocalLock(hMemBuffer);
	if(!ReadDirBuffer(BufferFatEntries, &DrivePacket, NumFatEntries, Buffer)){
		AfxMessageBox("Not able to fully load the sub-directory");
	}
	LocalUnlock(hMemBuffer);
	Buffer = (LPBYTE) LocalLock(hMemBuffer);
	DrivePacket.NumSectors = NumFatEntries * DrivePacket.SectorsPerCluster;
	DisplaySubDir(&DrivePacket);
	wsprintf(TmpStr, "Current Cluster Number: 0x%08X, Current Sector Number: %lu", BufferFatEntries[gCurrentIndex], DrivePacket.RelativeSector+(BufferFatEntries[gCurrentIndex]-2)*DrivePacket.SectorsPerCluster);
	m_wndStatusBarCtrl->SetText(TmpStr, 1, 0);
	LocalUnlock(hMemBufferFatEntries);
	LocalFree(hMemBufferFatEntries);
}

void DisplayFile(DRIVEPACKET *DrivePacket)
{
	WORD i;					  
	m_wndStatusBarCtrl->SetText("Wait....", 0, 0);
	DeleteColumns();
	gListViewType = FILES_FOLDERS;
	ItsFile = true;
	ListView->InsertColumn(0, "Offset", LVCFMT_LEFT, 85, 0);
	for(i=0; i<16; i++){ 
		wsprintf(TmpStr, "%02X", i);
		ListView->InsertColumn(i+1, TmpStr, LVCFMT_LEFT, 30, i+1);
	}
	ListView->InsertColumn(i+1, "", LVCFMT_LEFT, 15, i+1);
	i++;

	for(int j=0; (i-17) < 16; i++, j++){ 
		wsprintf(TmpStr, "%01X", j);
		ListView->InsertColumn(i+1, TmpStr, LVCFMT_LEFT, 20, i+1);
	}
	DRIVEPACKET FatDrivePacket;
	memcpy(&FatDrivePacket, DrivePacket, sizeof(DRIVEPACKET));
	memcpy(&gDrivePacket, DrivePacket, sizeof(DRIVEPACKET));
	FatDrivePacket.RelativeSector = DrivePacket->FatRelativeSector;
	FatDrivePacket.NumSectors = DrivePacket->NumFatSectors;
	if(!LoadSectors(&FatDrivePacket, &CylHeadSect, Buffer)){
		FatDrivePacket.RelativeSector += DrivePacket->NumFatSectors;
		if(!LoadSectors(&FatDrivePacket, &CylHeadSect, Buffer)){
			AfxMessageBox("FAT not accessible!");
			return;
		}
	}
	gNumFatEntries = CountFatEntries(FatDrivePacket.StartCluster, FatDrivePacket.FatType, Buffer);
	if(!gNumFatEntries)
		return;
	if(hMemBufferFatEntries){
		LocalUnlock(hMemBufferFatEntries);
		LocalFree(hMemBufferFatEntries);
	}
	hMemBufferFatEntries = LocalAlloc(LMEM_MOVEABLE|LMEM_DISCARDABLE|LMEM_ZEROINIT, gNumFatEntries*4);
	if(hMemBufferFatEntries == NULL){
		AfxMessageBox("Fatal Error!  Not able to allocate a buffer for FAT Entries!");
		return;
	}
	BufferFatEntries = (LPDWORD) LocalLock(hMemBufferFatEntries);
	StoreFatEntries(FatDrivePacket.StartCluster, FatDrivePacket.FatType, BufferFatEntries, gNumFatEntries, Buffer);
	gSectorsPerCluster = DrivePacket->SectorsPerCluster;
	gCurrentIndex = 0;
	if(hMemBuffer){
		LocalUnlock(hMemBuffer);
		LocalFree(hMemBuffer);
	}
	hMemBuffer = LocalAlloc(LMEM_MOVEABLE|LMEM_DISCARDABLE|LMEM_ZEROINIT, gSectorsPerCluster * 512);
	if(hMemBuffer == NULL){
		AfxMessageBox("Fatal Error!  Not able to allocate a Buffer!");
		LocalUnlock(hMemBufferFatEntries);
		LocalFree(hMemBufferFatEntries);
		return;
	}
	Buffer = (LPBYTE) LocalLock(hMemBuffer);
	memcpy(&FatDrivePacket, DrivePacket, sizeof(DRIVEPACKET));
	FatDrivePacket.RelativeSector += (BufferFatEntries[gCurrentIndex]-2) * gSectorsPerCluster;  //Now load the first cluster of file
	FatDrivePacket.NumSectors = DrivePacket->SectorsPerCluster;
	if(!LoadSectors(&FatDrivePacket, &CylHeadSect, Buffer)){
		AfxMessageBox("Cluster not accessible!");
	}
	for(i=0; i<gSectorsPerCluster * 32; i++){

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
在线电影院国产精品| 伊人色综合久久天天人手人婷| 国产亚洲欧洲一区高清在线观看| 中文字幕中文字幕在线一区| 舔着乳尖日韩一区| 99精品欧美一区二区三区综合在线| 欧美性高清videossexo| 欧美国产欧美综合| 久久精品国产亚洲aⅴ| 欧洲一区在线电影| 国产精品家庭影院| 国产又黄又大久久| 欧美久久久久免费| 亚洲一级二级在线| 色网站国产精品| 国产精品色在线观看| 精品一区二区三区的国产在线播放| 91久久香蕉国产日韩欧美9色| 久久精品视频在线免费观看| 日韩福利视频导航| 精品视频色一区| 亚洲精品欧美在线| av成人老司机| 国产精品免费丝袜| 国产福利一区二区三区视频| 欧美大片一区二区三区| 日韩福利电影在线| 欧美一区二区三区日韩| 婷婷综合五月天| 欧美亚洲动漫精品| 亚洲综合色区另类av| 在线精品视频一区二区| 亚洲欧美日韩中文播放| jvid福利写真一区二区三区| 久久久久久久久久久电影| 国产老女人精品毛片久久| 精品国产不卡一区二区三区| 久久国产乱子精品免费女| 日韩欧美电影一二三| 精品亚洲成a人| 久久久久久久av麻豆果冻| 国产盗摄一区二区| 国产精品久久久久一区二区三区 | 日韩欧美激情四射| 奇米色777欧美一区二区| 欧美人狂配大交3d怪物一区| 亚洲r级在线视频| 日韩欧美一级在线播放| 精品午夜久久福利影院| 久久久久久久久99精品| 成人免费视频视频在线观看免费| 国产女人水真多18毛片18精品视频| 国产成人精品免费视频网站| 国产精品素人一区二区| 99在线精品视频| 亚洲一区二区三区国产| 欧美一级片在线| 国产99久久久精品| 一区二区三区四区在线| 欧美嫩在线观看| 精品一区二区久久| 亚洲三级在线免费观看| 欧美人xxxx| 成av人片一区二区| 五月激情综合网| 欧美国产日韩精品免费观看| 欧美性videosxxxxx| 韩国成人精品a∨在线观看| 国产精品免费人成网站| 在线区一区二视频| 国产曰批免费观看久久久| 综合欧美亚洲日本| 日韩一级大片在线观看| 国产一区亚洲一区| 亚洲一区二区影院| 久久综合色一综合色88| 色噜噜狠狠成人中文综合| 久久精品国产77777蜜臀| 亚洲男人天堂一区| 精品欧美久久久| 在线一区二区三区| 国产精品99久久久久久久女警| 亚洲欧美另类小说| 久久综合给合久久狠狠狠97色69| 91久久精品一区二区二区| 国产一区二区三区在线观看精品| 亚洲福中文字幕伊人影院| 国产精品欧美一级免费| 日韩欧美成人午夜| 欧美视频一二三区| a在线播放不卡| 国产在线日韩欧美| 青青草原综合久久大伊人精品| 国产精品大尺度| 久久综合久久综合九色| 91麻豆精品91久久久久久清纯| 99精品视频一区二区| 国产成人av影院| 久久精品国产亚洲aⅴ| 午夜伦理一区二区| 一区二区三国产精华液| 国产精品麻豆网站| 国产欧美一区二区在线观看| 欧美一区二区三级| 欧美福利电影网| 久久久av毛片精品| 欧美一区二区三区四区在线观看 | 韩国女主播成人在线观看| 亚洲国产精品嫩草影院| 一区二区三区日韩欧美精品| 国产精品色噜噜| 欧美国产视频在线| 国产精品欧美一级免费| 中文字幕va一区二区三区| 中文字幕免费一区| 久久久不卡网国产精品二区 | 欧美精品1区2区3区| 欧美日韩一区 二区 三区 久久精品| 9色porny自拍视频一区二区| 国产a久久麻豆| hitomi一区二区三区精品| thepron国产精品| 99久久国产免费看| 日本高清视频一区二区| 欧美四级电影在线观看| 欧美日韩亚洲丝袜制服| 欧美午夜视频网站| 在线播放视频一区| 欧美电影免费观看高清完整版在线 | 久久精品人人做人人综合| 久久综合色综合88| 国产三区在线成人av| 国产精品久久久久久亚洲伦| 中文字幕一区二区三区不卡| 亚洲老妇xxxxxx| 婷婷国产在线综合| 激情欧美一区二区三区在线观看| 国产精品 日产精品 欧美精品| 成人av电影在线观看| 欧美做爰猛烈大尺度电影无法无天| 欧美午夜不卡视频| 欧美tk丨vk视频| 中文字幕在线不卡一区 | 免费成人深夜小野草| 国产精品综合在线视频| 99热这里都是精品| 91精品免费在线观看| 久久久久久久久久久黄色| 亚洲欧美一区二区三区极速播放 | 中文字幕乱码一区二区免费| 亚洲女性喷水在线观看一区| 日韩精品成人一区二区在线| 国产大陆a不卡| 欧美亚洲国产一区在线观看网站 | 在线观看成人免费视频| 欧美久久久久久久久| 久久免费精品国产久精品久久久久| 中文成人综合网| 日本欧美韩国一区三区| 99国产精品久久久久久久久久 | 日韩高清一区二区| www.爱久久.com| 日韩一区二区三区四区五区六区| 久久精品日产第一区二区三区高清版 | 久久综合av免费| 中文字幕在线不卡| 久久91精品久久久久久秒播| 色成人在线视频| 欧美高清一级片在线观看| 天堂av在线一区| 97国产一区二区| 久久久噜噜噜久久人人看 | 亚洲国产高清aⅴ视频| 亚洲成人免费观看| 国产91精品一区二区| 日韩免费一区二区| 亚洲大片免费看| 91视频在线观看| 国产欧美日本一区视频| 美女mm1313爽爽久久久蜜臀| 色美美综合视频| 国产精品亲子伦对白| 精品亚洲aⅴ乱码一区二区三区| 欧美日韩黄色影视| 亚洲最大成人网4388xx| av亚洲精华国产精华精| 久久久久久久精| 国产综合色在线视频区| 日韩丝袜美女视频| 视频精品一区二区| 欧美日韩免费高清一区色橹橹| 国产精品第一页第二页第三页| 高潮精品一区videoshd| 久久精品亚洲国产奇米99| 美国毛片一区二区| 精品福利av导航| 久久成人av少妇免费| 日韩午夜在线影院| 韩国三级在线一区| 久久久99免费|