⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 autopatchdlg.cpp

📁 墨香最新私服
💻 CPP
📖 第 1 页 / 共 3 页
字号:
			break;
		}
		//
		//	柳青惑炔 焊咯林扁.
		dwProLv = (DWORD)(PRO_RANGE_EX * ((float)(dwi + 1) / (float)iMax));
		SendMessage( hPro_EX, PBM_SETPOS, dwProLv, 0);
		SetDlgItemInt( hDlg, IDC_STATIC_EX1, dwi + 1, FALSE );
	}
	
	g_pZip->Close();
	
	//
	//	拘绵 促捞倔肺弊 能飘费 焊捞扁.
	UpdateDialog_Extract( hDlg, FALSE);
	
	return bReturn;
}

BOOL IsSupportSSE()
{
	BOOL	bResult = TRUE;
	__try 
	{
		// 	xorps	xmm0,xmm0
        __asm _emit 0x0f 
		__asm _emit 0x57 
		__asm _emit 0xc0

    }
	__except ( EXCEPTION_EXECUTE_HANDLER) 
	{
		bResult = FALSE;
		
	}
	return bResult;
}

BOOL SelectGFunc()
{
	if (IsSupportSSE())
		CopyFile("SS3DGFuncSSE.dll","SS3DGFunc.dll",FALSE);
	else
		CopyFile("SS3DGFuncN.dll","SS3DGFunc.dll",FALSE);
	return TRUE;
}

//	内冯 角青 内靛.
BOOL RunCorum()
{
	//////////////////////////////////////////////////////////////////////////
	// YH
	{
		FILE* fp = fopen("MHAutoPatch.new","rb");
		if(fp != NULL)
		{
			fclose(fp);
			_execl("MHExecuter.exe","a",NULL);
		}
	}
	{
		FILE* fp = fopen("SS3DGFunc.new","rb");
		if(fp != NULL)
		{
			fclose(fp);
			_execl("MHExecuter.exe","a",NULL);
		}
	}

	SelectGFunc();
	
	BOOL		bReturn;
	
	STARTUPINFO	sp;
	
	memset( &sp, 0, sizeof(STARTUPINFO));
	sp.cb = sizeof(STARTUPINFO);
	sp.dwFlags = STARTF_USEPOSITION | STARTF_USESIZE | STARTF_USESTDHANDLES; //STARTF_USESHOWWINDOW 
	sp.wShowWindow = SW_SHOW; 
	
	PROCESS_INFORMATION pi;
	
	if(strlen(g_ExecutableFileName) == 0)
		return TRUE;
	else
	{
  		bReturn = CreateProcess( g_ExecutableFileName,		// name of executable module
								" anrgideoqkr",                // command line string
								NULL, // SD
								NULL,  // SD
								FALSE,                      // handle inheritance option
								CREATE_DEFAULT_ERROR_MODE | NORMAL_PRIORITY_CLASS,                     // creation flags
								NULL,                      // new environment block
								NULL,                // current directory name
								&sp,               // startup information
								&pi // process information
								);
	}
	
	if( !bReturn )
		return FALSE;
	
	CloseHandle( pi.hProcess );
	CloseHandle( pi.hThread );
	
	return TRUE;
}


//
//	Update AS Text
void Update_AS( HWND hDlg, char* pszText)
{
	SetDlgItemText( hDlg, IDC_STATIC_AS, pszText);
}

void Update_SM( HWND hDlg, char* pszText)
{
	SetDlgItemText( hDlg, IDC_STATIC_SM2, pszText);
}

void Update_ER( HWND hDlg, DWORD dwErr)
{
	//	SetDlgItemInt( hDlg, IDC_STATIC_SM3, dwErr, false);
}

//
//	UpdateDialog_DownLoad
void UpdateDialog_DownLoad( HWND hDlg, BOOL bShow)
{
	HWND	hWnd;
	int		iShow;
	
	if( bShow )
		iShow = SW_SHOW;
	else
	{
		iShow = SW_HIDE;
		SetDlgItemText( hDlg, IDC_STATIC_VER2, NULL);
	}
	SendMessage( hDlg, PBM_SETPOS, 0, 0);
	//	促款肺靛 促捞倔肺弊 能飘费 诀单捞飘.
	hWnd = GetDlgItem( hDlg, IDC_PROGRESS_DN);
	SendMessage( hWnd, PBM_SETPOS, 0, 0);		//	
	ShowWindow( hWnd, iShow );
	hWnd = GetDlgItem( hDlg, IDC_STATIC_DN1);
	ShowWindow( hWnd, iShow );
	hWnd = GetDlgItem( hDlg, IDC_STATIC_DN2);
	ShowWindow( hWnd, iShow );
	hWnd = GetDlgItem( hDlg, IDC_STATIC_DN3);
	ShowWindow( hWnd, iShow );
	hWnd = GetDlgItem( hDlg, IDC_STATIC_DN4);
	ShowWindow( hWnd, iShow );
	hWnd = GetDlgItem( hDlg, IDC_STATIC_DN5);
	ShowWindow( hWnd, iShow );
	hWnd = GetDlgItem( hDlg, IDC_STATIC_DN6);
	ShowWindow( hWnd, iShow );
	hWnd = GetDlgItem( hDlg, IDC_STATIC_DN7);
	ShowWindow( hWnd, iShow );
	hWnd = GetDlgItem( hDlg, IDC_STATIC_DN8);
	ShowWindow( hWnd, iShow );
	hWnd = GetDlgItem( hDlg, IDC_STATIC_DN9);
	ShowWindow( hWnd, iShow );
	hWnd = GetDlgItem( hDlg, IDC_STATIC_DN10);
	ShowWindow( hWnd, iShow );
	hWnd = GetDlgItem( hDlg, IDC_STATIC_DN11);
	ShowWindow( hWnd, iShow );
	
	UpdateWindow( hDlg);
}

//
//	UpdateDialog_Extract
void UpdateDialog_Extract( HWND hDlg, BOOL bShow)
{
	HWND	hWnd;
	int		iShow;
	
	if( bShow )
		iShow = SW_SHOW;
	else
		iShow = SW_HIDE;
	
	//	促款肺靛 促捞倔肺弊 能飘费 诀单捞飘.
	hWnd = GetDlgItem( hDlg, IDC_PROGRESS_EX);
	SendMessage( hWnd, PBM_SETPOS, 0, 0);
	ShowWindow( hWnd, iShow );
	hWnd = GetDlgItem( hDlg, IDC_STATIC_EX1);
	ShowWindow( hWnd, iShow );
	hWnd = GetDlgItem( hDlg, IDC_STATIC_EX2);
	ShowWindow( hWnd, iShow );
	hWnd = GetDlgItem( hDlg, IDC_STATIC_EX3);
	ShowWindow( hWnd, iShow );
	hWnd = GetDlgItem( hDlg, IDC_STATIC_EX4);
	ShowWindow( hWnd, iShow );
	
	UpdateWindow( hDlg);
}


//	俊矾皋技瘤 免仿 窃荐.
void MessageBox_Error (char* szErrorText)
{
	MessageBox( g_HDlgFTP_DownLoader, szErrorText, g_szMBErrCap, MB_OK);
}

//	俊矾皋技瘤 免仿 窃荐.
void MessageBox_Info (char* szInfoText)
{
	MessageBox( g_HDlgFTP_DownLoader, szInfoText, g_szMBInfoCap, MB_OK);
}

BOOL SelfUpdate()
{
	HANDLE			hFind;
	WIN32_FIND_DATA wfd;
	BOOL			bReturn;
	
	hFind = FindFirstFile( SELF_UPDATE_FILE, &wfd);
	if( hFind == INVALID_HANDLE_VALUE )
		return FALSE;
	
	
	STARTUPINFO	sp;
	
	memset( &sp, 0, sizeof(STARTUPINFO));
	sp.cb = sizeof(STARTUPINFO);
	
	sp.dwFlags = STARTF_USEPOSITION | STARTF_USESIZE | STARTF_USESTDHANDLES; //STARTF_USESHOWWINDOW 
	sp.wShowWindow = SW_SHOW; 
	
	PROCESS_INFORMATION pi;
	
	
	bReturn = CreateProcess( SELF_UPDATE_FILE,		// name of executable module
								NULL,                      // command line string
								NULL, // SD
								NULL,  // SD
								FALSE,                      // handle inheritance option
								CREATE_DEFAULT_ERROR_MODE | NORMAL_PRIORITY_CLASS,                     // creation flags
								NULL,                      // new environment block
								NULL,                // current directory name
								&sp,               // startup information
								&pi // process information
								);
	
	if( !bReturn )
	{
		MessageBox_Error( " SelfUpdate Fail ( Critical Error )");
		MessageBox_Error( " 歹捞惑 菩摹甫 柳青且荐 绝嚼聪促.. ");
		return TRUE;
	}
	
	CloseHandle( pi.hProcess );
	CloseHandle( pi.hThread );
	
	return TRUE;
}

BOOL Clear3DData()
{
	char CurDir[MAX_PATH];
	CStrClass datafolder = "3DData\\";
	GetCurrentDirectory(MAX_PATH,CurDir);
	BOOL bSD = SetCurrentDirectory("3ddata");
	if(bSD == FALSE)
		return TRUE;	

	CDirectoryName dirname(NULL,NULL);
	dirname.LoadChild();

	SetCurrentDirectory(CurDir);

	dirname.SetPositionHead();
	DWORD kind;
	CStrClass filename;
	CStrClass tname;	
	
	dirname.SetPositionHead();
	while((kind=dirname.GetNextFileName(&filename)) != GETNEXTFILENAME_END)
	{
		if(kind != GETNEXTFILENAME_FILE)
			continue;
		if(filename == "")
			continue;

		tname = datafolder + filename;

		BOOL rt = DeleteFile(tname);
	}
	dirname.SetPositionHead();
	while((kind=dirname.GetNextFileName(&filename)) != GETNEXTFILENAME_END)
	{
		if(kind != GETNEXTFILENAME_DIRECTORY)
			continue;
		tname = datafolder + filename;
		RemoveDirectory(tname);
	}
	RemoveDirectory(datafolder);

	return TRUE;
}

void OnInitDialog(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam)
{
	FILE* fp = fopen("../DeveloperWorking/_DONOTUSEENGINEPACK","r");
	if(fp)
	{
		g_bUsingEnginePack = FALSE;
		fclose(fp);
	}

	if(g_bUsingEnginePack)
		Clear3DData();

	//	吝居 困摹
	iX = GetSystemMetrics( SM_CXSCREEN );
	iY = GetSystemMetrics( SM_CYSCREEN );
	GetWindowRect( hDlg, &rcDlg); 
	SetWindowPos( hDlg,  
				  HWND_TOP,  
				  (iX - (rcDlg.right - rcDlg.left))/2,                 // horizontal position
				  (iY - (rcDlg.bottom - rcDlg.top))/2,                 // vertical position
				  NULL,                // width
				  NULL,                // height
				  SWP_NOSIZE            // window-positioning options
				);
	
	g_HDlgFTP_DownLoader = hDlg;


//==================
	CWnd * p = AfxGetMainWnd();
//	SetHtmlView( )
//	m_pHtmlViewNotice	= new CHtmlViewNotice;
//	m_pHtmlViewNotice->Create( NULL, NULL, WS_CHILD | WS_VISIBLE, CRect(10,60,310,370), this, 0 );
//	m_pHtmlViewNotice->Navigate2( "http://www.darkstoryonline.com" );
//==================	

	//
	//	橇肺弊贰胶官 技飘茄促.
	
	hPro_DN = GetDlgItem( hDlg, IDC_PROGRESS_DN);
	SendMessage( hPro_DN, PBM_SETRANGE32, 0, PRO_RANGE_DN);
	
	hPro_EX = GetDlgItem( hDlg, IDC_PROGRESS_EX);
	SendMessage( hPro_EX, PBM_SETRANGE32, 0, PRO_RANGE_EX);
	
	dwSession = 1;
		
		
	Update_AS( hDlg, g_sz_Connect);
	
	
	memcpy( szVersion, CorumFile, VERSION_TOTAL_LENGTH);
	szVersion[VERSION_TOTAL_LENGTH] = NULL;
	SetDlgItemText( hDlg, IDC_STATIC_VER1, szVersion);
	
	
	
		
	
	//	Connect to FTP	
	/////////////////////////////////////////////////////	FM_CONNECTED
	cd.pvExcuteContext			= (PVOID) FM_CONNECTED;
	cd.bPassiveMode				= FALSE;
	lstrcpy( cd.szServerName, g_FTPIp);
	cd.wServerPort				= g_FTPPort;
	lstrcpy( cd.szUserName,	g_FTPID);
	lstrcpy( cd.szUserPassword, g_FTPPW);

	iR = g_pFtp->Initialize( hDlg, WM_RAIN_FTP_NOTIFY, 1);
	g_hSession = g_pFtp->CreateSession();
	if( g_hSession == NULL )
	{
		EndDialog( hDlg, -1);
		return;
	}
	iR = g_pFtp->Connect( g_hSession, &cd);
	bConnecting = TRUE;
	
}
void OnConnected(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam,LPVOID pvdata)
{	
	Connect_data* pcd = (Connect_data*)pvdata;
	
	//	辑滚立加肯丰.
	//	泅力 叼泛配府甫 掘绰促.
	
	/////////////////////////////////////////////////////	FM_GET_CURRENT_DIRECTORY
	dd.pvExcuteContext			= (PVOID) FM_GET_CURRENT_DIRECTORY;
	//	lstrcpy( dd.szCurrentDirectory, FTP_FOLDER);

	iR = g_pFtp->GetCurrentDirectory( g_hSession, &dd);
	_ASSERTE( iR == 0);	
	
	bConnecting = FALSE;
}
void OnGetCurrentDirectory(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam,LPVOID pvdata)
{	
	Connect_data* pcd = (Connect_data*)pvdata;
	
	//	Get Current Directory 肯丰.
	//	Notice.txt 甫 辑滚俊辑 八祸茄促.
	
	/////////////////////////////////////////////////////	FM_GETFILELIST
	ld_zip.pvExcuteContext		= (PVOID) FM_GETFILELIST;
	ld_zip.dwFileMax			= FIND_DATA_MAX;
	ld_zip.pFile				= pwfd;
	ld_zip.pszSearchFile		= CorumFile;
	
	iR = g_pFtp->GetList( g_hSession, &ld_zip);
	_ASSERTE( iR == 0);

}
void OnGetFileList(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam,LPVOID pvdata)
{
	List_data* pld = (List_data*)pvdata;
	
	if( pld->dwFileNum == 0 )
	{
		/////////////////////////////////////////////////////	SC_DOWNLOAD_NOTICE
		fd_newversion.pvExcuteContext	= (PVOID) FM_CONFIRM;
		fd_newversion.bResume			= FALSE;
		lstrcpy( fd_newversion.szRemoteFile, newverFilename);
		lstrcpy( fd_newversion.szLocalFile, newverFilename);

		iR = g_pFtp->DownloadFile( g_hSession, &fd_newversion);
		_ASSERTE( iR == 0);
		return;
	}
	dwFileSizeMax = pld->pFile->nFileSizeLow;
	
	//	颇老沥焊 罐扁 己傍.
	SetDlgItemText( hDlg, IDC_STATIC_VER2, "Found");
	
	//	颇老 促款肺靛 .
	Update_AS( hDlg, g_sz_DownLoad);
	
	//
	//	促款肺靛 能飘费 檬扁蔼 技飘.
	hPro_DN = GetDlgItem( hDlg, IDC_PROGRESS_DN);
	SendMessage( hPro_DN, PBM_SETPOS, 0, 0);
	SetDlgItemInt( hDlg, IDC_STATIC_DN1, 0, FALSE );
	SetDlgItemInt( hDlg, IDC_STATIC_DN3, dwFileSizeMax / 1024, FALSE );
	
	//	K/Sec
	SetDlgItemInt( hDlg, IDC_STATIC_DN5, 0, FALSE );
	
	//	R.Time
	SetDlgItemText( hDlg, IDC_STATIC_DN7, NULL);
	SetDlgItemText( hDlg, IDC_STATIC_DN8, NULL);
	SetDlgItemText( hDlg, IDC_STATIC_DN9, NULL);
	SetDlgItemText( hDlg, IDC_STATIC_DN10, NULL);
	
	dwRtStatus = 0;
	//
	//	促款肺靛 促捞倔肺弊 能飘费 焊捞扁.
	UpdateDialog_DownLoad( hDlg);

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -