123 lines
3.0 KiB
C++
123 lines
3.0 KiB
C++
//---------------------------------------------------------------------------
|
|
|
|
#include <vcl.h>
|
|
#include <stdio.h>
|
|
#pragma hdrstop
|
|
|
|
#include "UpgradeThread.h"
|
|
#include "UpgradeUnit.h"
|
|
//---------------------------------------------------------------------------
|
|
#pragma package(smart_init)
|
|
#pragma resource "*.dfm"
|
|
TUpgradeForm *UpgradeForm;
|
|
|
|
//---------------------------------------------------------------------------
|
|
__fastcall TUpgradeForm::TUpgradeForm(TComponent* Owner)
|
|
: TForm(Owner)
|
|
{
|
|
m_pThread = NULL;
|
|
}
|
|
//---------------------------------------------------------------------------
|
|
|
|
void __fastcall TUpgradeForm::CreateParams(TCreateParams &Params)
|
|
{
|
|
TForm::CreateParams(Params);
|
|
|
|
// wcscpy(Params.WinClassName.data, (LPCTSTR)APPNAME);
|
|
wcscpy(Params.WinClassName, (LPCTSTR)APPNAME);
|
|
}
|
|
// ---------------------------------------------------------------------------
|
|
|
|
|
|
void __fastcall TUpgradeForm::FormDestroy(TObject *Sender)
|
|
{
|
|
if( m_pThread ){
|
|
((TUpgradeThread*)m_pThread)->Cancel();
|
|
m_pThread->WaitFor();
|
|
|
|
delete m_pThread;
|
|
m_pThread = NULL;
|
|
}
|
|
}
|
|
//---------------------------------------------------------------------------
|
|
|
|
void __fastcall TUpgradeForm::FormCloseQuery(TObject *Sender, bool &CanClose)
|
|
{
|
|
if( m_pThread ){
|
|
String msg = m_iMode==1 ? L"正在处理中,确认退出程序?"
|
|
: L"正在升级中,是否确定中止?";
|
|
|
|
int mrRet = MessageBox(Handle, msg.c_str(), L"退出",
|
|
MB_ICONQUESTION | MB_YESNO);;
|
|
|
|
if( mrRet==mrNo )
|
|
CanClose = false;
|
|
}
|
|
}
|
|
//---------------------------------------------------------------------------
|
|
|
|
void __fastcall TUpgradeForm::FormShow(TObject *Sender)
|
|
{
|
|
Caption = m_iMode==0 ? L"自动升级程序"
|
|
: L"MD5生成程序";
|
|
|
|
m_pThread = new TUpgradeThread(true, m_iMode, m_idSoft, m_sVar, Handle );
|
|
m_pThread->Start();
|
|
}
|
|
//---------------------------------------------------------------------------
|
|
|
|
void __fastcall TUpgradeForm::UMShowText(TMessage &msg)
|
|
{
|
|
TCHAR* str = (TCHAR*)msg.LParam;
|
|
if( msg.WParam==0 )
|
|
m_lblTxt->Caption = str;
|
|
else if( msg.WParam==1 )
|
|
m_lblFileCount->Caption = str;
|
|
else
|
|
m_lblFileName->Caption = str;
|
|
}
|
|
//---------------------------------------------------------------------------
|
|
|
|
void __fastcall TUpgradeForm::UMProgress(TMessage &msg)
|
|
{
|
|
if( msg.WParam==0 ){
|
|
m_progCount->Position = msg.LParam;
|
|
m_progCount->Update();
|
|
}
|
|
else{
|
|
m_progFile->Position = msg.LParam;
|
|
m_progFile->Update();
|
|
}
|
|
}
|
|
//---------------------------------------------------------------------------
|
|
|
|
void __fastcall TUpgradeForm::UMComplete(TMessage &msg)
|
|
{
|
|
if( m_pThread ){
|
|
m_pThread->WaitFor();
|
|
|
|
delete m_pThread;
|
|
m_pThread = NULL;
|
|
}
|
|
|
|
if( m_iMode==0 ){
|
|
if( msg.WParam!=0 )
|
|
ShowMessage( "本次更新未能完成" );
|
|
}
|
|
else if( m_iMode==1 ){
|
|
if( msg.WParam==0 )
|
|
ShowMessage( "处理完毕" );
|
|
else
|
|
ShowMessage( "异常中止" );
|
|
}
|
|
|
|
Close();
|
|
}
|
|
//---------------------------------------------------------------------------
|
|
void __fastcall TUpgradeForm::CancelClick(TObject *Sender)
|
|
{
|
|
Close();
|
|
}
|
|
//---------------------------------------------------------------------------
|
|
|