windows-nt/Source/XPSP1/NT/admin/dsutils/displayspecifierupgrade/uiarchive/finishpage.cpp
2020-09-26 16:20:57 +08:00

127 lines
2.7 KiB
C++

#include "headers.hxx"
#include "FinishPage.hpp"
#include "resource.h"
#include "common.hpp"
#include "global.hpp"
FinishPage::FinishPage
(
const bool someRepairWasRun_,
const String &logPath_
)
:
someRepairWasRun(someRepairWasRun_),
logPath(logPath_),
WizardPage(
IDD_FINISH,
IDS_FINISH_PAGE_TITLE,
IDS_FINISH_PAGE_SUBTITLE,
false)
{
LOG_CTOR(FinishPage);
}
FinishPage::~FinishPage()
{
LOG_DTOR(FinishPage);
}
bool
FinishPage::OnSetActive()
{
LOG_FUNCTION(FinishPage::OnSetActive);
// hrError was set in previous pages
if(FAILED(hrError))
{
if(someRepairWasRun)
{
Win::ShowWindow(GetDlgItem(hwnd,IDC_FILE),SW_SHOW);
Win::ShowWindow(GetDlgItem(hwnd,IDC_CLICK),SW_SHOW);
Win::SetDlgItemText( hwnd,IDC_CLICK, IDS_IDC_CLICK_FAILURE);
}
Win::PropSheet_SetWizButtons(Win::GetParent(hwnd),
PSWIZB_FINISH | PSWIZB_BACK);
if(hrError!=E_FAIL)
{
error += L"\r\n" + GetErrorMessage(hrError);
}
Win::SetDlgItemText( hwnd,IDC_RESULT, error);
Win::ShowWindow(GetDlgItem(hwnd,IDC_RESTART),SW_SHOW);
}
else
{
Win::SetDlgItemText( hwnd,IDC_RESULT,
String::format(IDC_RESULT_SUCCESS));
Win::PropSheet_SetWizButtons(Win::GetParent(hwnd),
PSWIZB_FINISH);
Win::ShowWindow(GetDlgItem(hwnd,IDC_FILE),SW_SHOW);
Win::ShowWindow(GetDlgItem(hwnd,IDC_CLICK),SW_SHOW);
Win::SetDlgItemText( hwnd,IDC_CLICK, IDS_IDC_CLICK_SUCCESS);
}
return true;
}
bool
FinishPage::OnCommand(
HWND /*windowFrom*/,
unsigned controlIdFrom,
unsigned code
)
{
LOG_FUNCTION(FinishPage::OnCommand);
switch (controlIdFrom)
{
case IDC_OPEN_LOG:
{
if (code == BN_CLICKED)
{
HRESULT hr=S_OK;
do
{
String csvLog = logPath + L"\\csv.log";
String ldifLog = logPath + L"\\ldif.log";
if (FS::FileExists(csvLog))
{
hr=Notepad(csvLog);
BREAK_ON_FAILED_HRESULT(hr);
}
if (FS::FileExists(ldifLog))
{
hr=Notepad(ldifLog);
BREAK_ON_FAILED_HRESULT(hr);
}
} while(0);
if (FAILED(hr))
{
ShowError(hr,error);
}
}
}
}
return true;
}
bool
FinishPage::OnWizBack()
{
LOG_FUNCTION(FinishPage::OnWizBack);
GetWizard().SetNextPageID(hwnd,IDD_WELCOME);
return true;
}