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

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

?? general.cpp

?? 最新visualC++編程200例書籍源碼包括對數(shù)據(jù)庫的操作
?? CPP
?? 第 1 頁 / 共 4 頁
字號:
		ListView->InsertItem(LVIF_TEXT|LVIF_PARAM, i, LPSTR_TEXTCALLBACK, 0, 0, i, (LPARAM) i);
	}
	wsprintf(TmpStr, "Current Cluster Number: 0x%08X, Current Sector Number: %lu", BufferFatEntries[gCurrentIndex], FatDrivePacket.RelativeSector);
	m_wndStatusBarCtrl->SetText(TmpStr, 1, 0);
	m_wndStatusBarCtrl->SetText("", 0, 0);
	gbPrevSector = FALSE;
	if(gCurrentIndex == (gNumFatEntries-1))
		gbNextSector = FALSE;
	else
		gbNextSector = TRUE;
	return;
}

void	DisplayFilesFoldersSectors(DRIVEPACKET *TmpDrivePacket)
{
	DRIVEPACKET DrivePacket;
	char TmpStr[100];
	gListViewType = 0;
	m_wndStatusBarCtrl->SetText("Wait....", 0, 0);
	memcpy(&DrivePacket, TmpDrivePacket, sizeof(DRIVEPACKET));
	DRIVEPACKET FatDrivePacket;
	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;
		}
	}
	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;
	if(hMemBuffer){
		LocalUnlock(hMemBuffer);
		LocalFree(hMemBuffer);
	}
	hMemBuffer = LocalAlloc(LMEM_MOVEABLE|LMEM_DISCARDABLE|LMEM_ZEROINIT, DrivePacket.SectorsPerCluster * 512);
	if(hMemBuffer == NULL){
		AfxMessageBox("Fatal Error!  Not able to allocate a buffer!");
		LocalUnlock(hMemBufferFatEntries);
		LocalFree(hMemBufferFatEntries);
		return;
	}
	Buffer = (LPBYTE) LocalLock(hMemBuffer);
	gCurrentIndex = 0;
	gListViewType = FILES_FOLDERS;
	gSectorsPerCluster = DrivePacket.SectorsPerCluster;
	DrivePacket.RelativeSector += (BufferFatEntries[gCurrentIndex]-2) * gSectorsPerCluster;  //Now load the first cluster of file
	DrivePacket.NumSectors = gSectorsPerCluster;
	if(!LoadSectors(&DrivePacket, &CylHeadSect, Buffer)){
		AfxMessageBox("Cluster not accessible!");
	}
	DeleteColumns();
	ListView->InsertColumn(0, "Offset", LVCFMT_LEFT, 100, 0);
	for(int 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);
	}
	for(i=0; i<gSectorsPerCluster * 32; i++){
		ListView->InsertItem(LVIF_TEXT|LVIF_PARAM, i, LPSTR_TEXTCALLBACK, 0, 0, i, (LPARAM) i);
	}
	wsprintf(TmpStr, "Current Cluster Number: 0x%08X, Current Sector Number: %lu", BufferFatEntries[gCurrentIndex], DrivePacket.RelativeSector);
	m_wndStatusBarCtrl->SetText(TmpStr, 1, 0);
	m_wndStatusBarCtrl->SetText("", 0, 0);
	gbPrevSector = FALSE;
	if(gCurrentIndex == (gNumFatEntries-1))
		gbNextSector = FALSE;
	else
		gbNextSector = TRUE;
}

void	DisplaySectors(DRIVEPACKET *DrivePacket)
{
	DeleteColumns();
	ListView->InsertColumn(0, "Offset", LVCFMT_LEFT, 100, 0);
	for(int 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);
	}
	gListViewType = SECTORS_DUMP;
	gSectorsPerCluster = 1;
	if(hMemBuffer){
		LocalUnlock(hMemBuffer);
		LocalFree(hMemBuffer);
	}
	hMemBuffer = LocalAlloc(LMEM_MOVEABLE|LMEM_DISCARDABLE|LMEM_ZEROINIT, 512);
	if(hMemBuffer == NULL){
		AfxMessageBox("Fatal Error! Not able to allocate a buffer!");
		LocalUnlock(hMemBufferFatEntries);
		LocalFree(hMemBufferFatEntries);
		return;
	}
	Buffer = (LPBYTE) LocalLock(hMemBuffer);
	DisplayOneSector(DrivePacket);
	gCurrentIndex = 0;
	gbPrevSector = FALSE;
	if(gCurrentIndex == (DrivePacket->NumSectors-1))
		gbNextSector = FALSE;
	else
		gbNextSector = TRUE;
	memcpy(&gDrivePacket, DrivePacket, sizeof(DRIVEPACKET));
}

void DisplayOneSector(DRIVEPACKET *DrivePacket)
{
	DRIVEPACKET TmpDrivePacket;
	char TmpStr[100];
	memcpy(&TmpDrivePacket, DrivePacket, sizeof(DRIVEPACKET));
	TmpDrivePacket.NumSectors = 1;
	if(TmpDrivePacket.RelativeSector == 0){
		BufferNet = Buffer;
		NetEvent = BUFFER_FILL;
		memcpy(&gDrivePacket, DrivePacket, sizeof(gDrivePacket));
		BytesToFill = DrivePacket->NumSectors * 512;
		if(DrivePacket->Net){
			NetCall.Function = LOAD_SECTOR;
			NetCall.Cylinder = DrivePacket->Cylinder;
			NetCall.Drive = DrivePacket->Drive;
			NetCall.Head = DrivePacket->Head;
			NetCall.Sector = DrivePacket->Sector;
			NetCall.NumSectors = DrivePacket->NumSectors;
			NetCall.NTRelativeSector = DrivePacket->NTRelativeSector;
			NetCall.RelativeSector = DrivePacket->RelativeSector;
			NetCall.Flag = DrivePacket->Flag;
			send(SocketNum, (char *) &NetCall, sizeof(SECTOR_FUNC), 0);
			CallNet();
		}
		else if(gOSWin95){
			if(!(DllThunk32)(TmpDrivePacket.Drive, TmpDrivePacket.Cylinder, TmpDrivePacket.Head, TmpDrivePacket.Sector, TmpDrivePacket.NumSectors, (LPBYTE)Buffer, TmpDrivePacket.NTRelativeSector, TmpDrivePacket.Flag)){
				AfxMessageBox("Sector not accessible!");
				return;
			}
		}
		else{
			__int64 Tmp64 = ((__int64) DrivePacket->NTRelativeSector) * 512;
			long TmpVal = Tmp64 & 0xFFFFFFFF;
			long TmpValHi = (Tmp64 >> 32);
			SetFilePointer(hDisk[DrivePacket->Drive], TmpVal, &TmpValHi, FILE_BEGIN);
			TmpVal = 0;
			ReadFile(hDisk[DrivePacket->Drive], Buffer, DrivePacket->NumSectors * 512, (DWORD *) &TmpVal, NULL);
			if((!TmpVal) && (DrivePacket->Drive < 0x80)){
				CloseHandle(hDisk[DrivePacket->Drive]);
				char TmpStr[100];
				wsprintf(TmpStr, "\\\\.\\%c:", DrivePacket->Drive+'A');
				if((hDisk[DrivePacket->Drive]=CreateFile(TmpStr, GENERIC_READ|GENERIC_WRITE, FILE_SHARE_READ, NULL, OPEN_EXISTING, FILE_FLAG_NO_BUFFERING, NULL))==INVALID_HANDLE_VALUE){
					return;
				}
				Tmp64 = (((__int64) DrivePacket->NTRelativeSector) + ((__int64) DrivePacket->RelativeSector)) * 512;
				TmpVal = Tmp64 & 0xFFFFFFFF;
				TmpValHi = (Tmp64 >> 32);
				SetFilePointer(hDisk[DrivePacket->Drive], TmpVal, &TmpValHi, FILE_BEGIN);
				TmpVal = 0;
				ReadFile(hDisk[DrivePacket->Drive], Buffer, DrivePacket->NumSectors * 512, (DWORD *) &TmpVal, NULL);
			}
			if(TmpVal != (DrivePacket->NumSectors * 512)){
				AfxMessageBox("Boot Record not accessible!");
				return;
			}
		}
	}
	else{
		TmpDrivePacket.RelativeSector += gCurrentIndex;
		if(!LoadSectors(&TmpDrivePacket, &CylHeadSect, Buffer)){
			AfxMessageBox("Sector not accessible!");
			return;
		}
	}
	for(int i=0; i<32; i++){
		ListView->InsertItem(LVIF_TEXT|LVIF_PARAM, i, LPSTR_TEXTCALLBACK, 0, 0, i, (LPARAM) i);
	}
	wsprintf(TmpStr, "Current Sector Number: %lu", TmpDrivePacket.RelativeSector);
	m_wndStatusBarCtrl->SetText(TmpStr, 1, 0);
}


void CheckFatForBadCluster(LPBYTE pMemFat, LPDWORD CurrentCluster, WORD FatType)
{
	DWORD NextCluster, TmpVal;
	while(TRUE){
		switch(FatType)
		{
		case FAT12:
			TmpVal = (WORD)pMemFat[((*CurrentCluster)*3)/2]+(WORD)pMemFat[((*CurrentCluster)*3)/2+1]*256;
			NextCluster = ((*CurrentCluster) % 2) ? (TmpVal >> 4):(TmpVal & 0xFFF);
			if(NextCluster != 0xFF7)
				return;
			break;
		case FAT16:
			NextCluster = (WORD)pMemFat[(*CurrentCluster)*2]+(WORD)pMemFat[(*CurrentCluster)*2+1]*256;
			if(NextCluster != 0xFFF7)
				return;
			break;
		}
		(*CurrentCluster)++;
	}
}

DWORD GetNextCluster(DWORD CurrentCluster, WORD FatType, LPBYTE Buffer)
{
	if(!(CurrentCluster & 0xFFFFFFF))
		return 0;
	switch(FatType)
	{
	case FAT16:
		if(CurrentCluster == 0xFFFF)
			return 0;
		break;
	case FAT12:
		if(CurrentCluster == 0xFFF)
			return 0;
		break;
	case FAT32:
		if((CurrentCluster & 0xFFFFFFF) == 0xFFFFFFF)
			return 0;
		break;
	}
	DWORD NextCluster=CurrentCluster;
	switch(FatType)
	{
	case FAT16:
		NextCluster = (WORD)Buffer[NextCluster*2]+(WORD)Buffer[NextCluster*2+1]*256;
		if((NextCluster == 0xFFF7))
			NextCluster = 0xFFFFFFF7;
		if(NextCluster == 0xFFFF)
			NextCluster = 0xFFFFFFFF;
		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 == 0xFF7))
			NextCluster = 0xFFFFFFF7;
		if(NextCluster == 0xFFF)
			NextCluster = 0xFFFFFFFF;
		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 == 0xFFFFFF7))
			NextCluster = 0xFFFFFFF7;
		if(NextCluster == 0xFFFFFFF)
			NextCluster = 0xFFFFFFFF;
		break;
	}
	return NextCluster;
}

void OccupyFATCluster(DWORD NextCluster, DWORD CurrentFreeCluster, WORD FatType, LPBYTE pFat)
{
	WORD TmpVal;
	switch(FatType)
	{
	case FAT12:
		TmpVal = (WORD)pFat[(CurrentFreeCluster*3)/2]+(WORD)pFat[(CurrentFreeCluster*3)/2+1]*256;
		if(CurrentFreeCluster % 2) {
			TmpVal &= 0xF;
			TmpVal |= (NextCluster << 4);
		}
		else{
			TmpVal &= 0xF000;
			TmpVal |= (NextCluster & 0xFFF);
		}
		pFat[(CurrentFreeCluster*3)/2] = LOBYTE(TmpVal);
		pFat[(CurrentFreeCluster*3)/2+1] = HIBYTE(TmpVal);
		FatChanged = TRUE;
		break;
	case FAT16:
		pFat[CurrentFreeCluster*2] = LOBYTE(NextCluster);
		pFat[CurrentFreeCluster*2+1] = HIBYTE(NextCluster);
		FatChanged = TRUE;
		break;
	case FAT32:
		pFat[CurrentFreeCluster*2] = LOBYTE(NextCluster);
		pFat[CurrentFreeCluster*2+1] = HIBYTE(NextCluster);
		pFat[CurrentFreeCluster*2+2] = (BYTE) (NextCluster >> 16);
		pFat[CurrentFreeCluster*2+3] &= 0xF0;
		pFat[CurrentFreeCluster*2+3] |= (BYTE) (NextCluster >> 24);
		FatChanged = TRUE;
		break;
	}
}

void CallNet(void)
{
	MSG Msg;
	while(!BufferRead){
		PeekMessage(&Msg, NULL, 0, 0, PM_REMOVE);
		TranslateMessage(&Msg);
		DispatchMessage(&Msg);
	}
	BufferRead = FALSE;
}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲黄色在线视频| 欧美不卡一二三| 蜜桃久久av一区| 国产网站一区二区| 欧美日韩国产成人在线91| 国产99久久久国产精品潘金| 在线视频你懂得一区二区三区| 91精品国产综合久久精品麻豆| 国产精品亚洲一区二区三区在线 | 97se亚洲国产综合自在线观| 偷拍亚洲欧洲综合| 日韩理论片在线| 久久免费午夜影院| 欧美二区在线观看| 91视视频在线观看入口直接观看www | 欧美久久久影院| 91影院在线观看| 国产精品亚洲第一区在线暖暖韩国| 日韩不卡一二三区| 亚洲一区二区欧美激情| 欧美日本在线视频| 丁香亚洲综合激情啪啪综合| 日韩高清国产一区在线| 亚洲影院在线观看| 亚洲色图制服丝袜| 国产精品美女久久久久久久久久久 | 韩国一区二区视频| 亚洲成人av一区二区| 最新欧美精品一区二区三区| 国产日韩欧美a| 欧美成人精品高清在线播放| 正在播放一区二区| 欧美午夜影院一区| 色狠狠综合天天综合综合| 91在线一区二区| 国产99久久久国产精品免费看 | 亚洲精品一二三| 国产精品女同互慰在线看| 久久久久久久网| 欧美精品一区在线观看| 国产精品嫩草影院av蜜臀| 精品久久一区二区三区| 国产激情视频一区二区在线观看| 蜜臀久久99精品久久久久久9| 日日骚欧美日韩| 秋霞电影网一区二区| 日韩av一级电影| 日本成人在线不卡视频| 日本欧美韩国一区三区| 亚洲va欧美va天堂v国产综合| 亚洲五码中文字幕| 视频一区视频二区中文字幕| 香港成人在线视频| 日韩精品电影一区亚洲| 麻豆精品视频在线观看视频| 久草这里只有精品视频| 国内久久精品视频| 成人午夜碰碰视频| 99re亚洲国产精品| 欧美亚洲禁片免费| 欧美日韩国产大片| 精品久久久久久久久久久院品网| 久久中文字幕电影| 亚洲国产高清不卡| 亚洲精品中文在线观看| 婷婷成人综合网| 美女高潮久久久| 成人免费高清在线观看| 色婷婷久久久综合中文字幕| 欧美日韩色一区| 欧美mv日韩mv国产网站| 国产日韩欧美在线一区| 亚洲欧美日韩国产综合在线| 午夜久久电影网| 经典一区二区三区| 99精品国产一区二区三区不卡| 在线看国产一区二区| 欧美一卡2卡3卡4卡| 国产欧美精品区一区二区三区 | 亚洲国产裸拍裸体视频在线观看乱了| 调教+趴+乳夹+国产+精品| 狠狠网亚洲精品| 色婷婷精品大在线视频 | 中文字幕一区二| 五月综合激情网| 国产不卡一区视频| 在线视频你懂得一区| 久久先锋影音av鲁色资源网| 日韩毛片精品高清免费| 日韩二区三区四区| 成人精品鲁一区一区二区| 欧美日韩精品福利| 国产日产亚洲精品系列| 亚洲超碰97人人做人人爱| 成人综合婷婷国产精品久久蜜臀| 欧美性猛交xxxx乱大交退制版 | 免费成人在线影院| av午夜精品一区二区三区| 欧美一区二区久久久| 亚洲美女在线一区| 国产一区二区三区免费播放| 欧美羞羞免费网站| 国产精品乱人伦| 久久99久久久欧美国产| 欧美亚日韩国产aⅴ精品中极品| 国产喷白浆一区二区三区| 爽好久久久欧美精品| 99久久精品一区二区| 日韩精品专区在线影院重磅| 亚洲午夜激情网页| 91尤物视频在线观看| 国产三级精品视频| 另类人妖一区二区av| 欧亚一区二区三区| 国产精品私人影院| 九九精品视频在线看| 欧美日韩国产乱码电影| 亚洲三级电影网站| 国产成人精品1024| 精品国产露脸精彩对白| 偷拍与自拍一区| 欧美性猛交xxxx黑人交| 亚洲免费观看高清完整版在线| 国产麻豆精品一区二区| 日韩午夜三级在线| 日韩精品视频网| 欧美色偷偷大香| 伊人开心综合网| 91丨九色porny丨蝌蚪| 国产精品久久影院| 成人开心网精品视频| 国产午夜亚洲精品不卡| 久久精品噜噜噜成人av农村| 欧美人与禽zozo性伦| 亚洲一区二区三区精品在线| 色婷婷精品久久二区二区蜜臂av | 青青草97国产精品免费观看 | 精品99一区二区| 久久国产福利国产秒拍| 日韩一区二区在线观看视频| 日韩av中文字幕一区二区三区| 欧美日韩视频不卡| 天堂久久一区二区三区| 欧美精品粉嫩高潮一区二区| 日韩专区中文字幕一区二区| 欧美日韩www| 免费一区二区视频| 精品人在线二区三区| 狠狠色丁香久久婷婷综| 久久久777精品电影网影网 | 欧美群妇大交群中文字幕| 亚洲图片有声小说| 538在线一区二区精品国产| 天堂精品中文字幕在线| 欧美一区二区三区公司| 精品影视av免费| 国产日韩精品一区二区三区在线| 成人av免费在线| 亚洲综合偷拍欧美一区色| 欧美欧美欧美欧美首页| 久久精品国内一区二区三区| 国产人伦精品一区二区| 波多野洁衣一区| 伊人婷婷欧美激情| 日韩一区二区精品葵司在线| 激情成人午夜视频| 国产精品国产a| 在线精品亚洲一区二区不卡| 日韩av网站免费在线| 久久久久成人黄色影片| 成人av在线网| 亚洲国产aⅴ天堂久久| 日韩一区二区电影在线| 成人免费视频app| 亚洲伊人伊色伊影伊综合网| 日韩欧美在线综合网| 丁香婷婷深情五月亚洲| 亚洲一区二区三区中文字幕在线| 欧美一区二区视频在线观看2022| 国产综合色产在线精品| 亚洲激情自拍偷拍| 欧美精品一区二区三区久久久 | 九九视频精品免费| 亚洲乱码国产乱码精品精小说| 欧美精品日韩精品| 国产精品99久久久久久久vr| 一区二区视频在线| 日韩美女在线视频 | 精品国产一二三区| 94-欧美-setu| 久久超碰97人人做人人爱| 成人欧美一区二区三区白人 | 精品国产一区二区三区av性色 | 欧美美女bb生活片| 国产91在线观看丝袜| 日韩中文字幕一区二区三区| 国产精品美女久久久久aⅴ国产馆| 精品婷婷伊人一区三区三| 国产成人综合视频| 视频一区在线播放|