mirror of https://github.com/tongzx/nt5src
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
153 lines
2.6 KiB
153 lines
2.6 KiB
// Copyright (C) 1997-2001 Microsoft Corporation
|
|
//
|
|
// allow user to set forest version
|
|
// NTRAID#NTBUG9-159663-2001/04/18-sburns
|
|
//
|
|
// 18 Apr 2001 sburns
|
|
|
|
|
|
|
|
#include "headers.hxx"
|
|
#include "resource.h"
|
|
#include "page.hpp"
|
|
#include "ForestVersionPage.hpp"
|
|
#include "state.hpp"
|
|
|
|
|
|
|
|
ForestVersionPage::ForestVersionPage()
|
|
:
|
|
DCPromoWizardPage(
|
|
IDD_FOREST_VERSION,
|
|
IDS_FOREST_VERSION_PAGE_TITLE,
|
|
IDS_FOREST_VERSION_PAGE_SUBTITLE)
|
|
{
|
|
LOG_CTOR(ForestVersionPage);
|
|
}
|
|
|
|
|
|
|
|
ForestVersionPage::~ForestVersionPage()
|
|
{
|
|
LOG_DTOR(ForestVersionPage);
|
|
}
|
|
|
|
|
|
|
|
void
|
|
ForestVersionPage::OnInit()
|
|
{
|
|
LOG_FUNCTION(ForestVersionPage::OnInit);
|
|
|
|
State& state = State::GetInstance();
|
|
if (state.UsingAnswerFile())
|
|
{
|
|
String option =
|
|
state.GetAnswerFileOption(State::OPTION_SET_FOREST_VERSION);
|
|
if (option.icompare(State::VALUE_YES) == 0)
|
|
{
|
|
Win::CheckDlgButton(hwnd, IDC_SET_VERSION, BST_CHECKED);
|
|
return;
|
|
}
|
|
}
|
|
|
|
Win::CheckDlgButton(hwnd, IDC_SET_VERSION, BST_UNCHECKED);
|
|
}
|
|
|
|
|
|
|
|
bool
|
|
ForestVersionPage::OnCommand(
|
|
HWND /* windowFrom */ ,
|
|
unsigned controlIDFrom,
|
|
unsigned code)
|
|
{
|
|
// LOG_FUNCTION(ForestVersionPage::OnCommand);
|
|
|
|
switch (controlIDFrom)
|
|
{
|
|
case IDC_SET_VERSION:
|
|
{
|
|
if (code == BN_CLICKED)
|
|
{
|
|
SetChanged(controlIDFrom);
|
|
return true;
|
|
}
|
|
}
|
|
default:
|
|
{
|
|
// do nothing
|
|
|
|
break;
|
|
}
|
|
}
|
|
|
|
return false;
|
|
}
|
|
|
|
|
|
|
|
bool
|
|
ForestVersionPage::OnSetActive()
|
|
{
|
|
LOG_FUNCTION(ForestVersionPage::OnSetActive);
|
|
ASSERT(State::GetInstance().GetOperation() == State::FOREST);
|
|
|
|
Win::PropSheet_SetWizButtons(
|
|
Win::GetParent(hwnd),
|
|
PSWIZB_BACK | PSWIZB_NEXT);
|
|
|
|
State& state = State::GetInstance();
|
|
if (state.RunHiddenUnattended())
|
|
{
|
|
// skip the page.
|
|
|
|
LOG(L"skipping ForestVersionPage");
|
|
|
|
Wizard& wiz = GetWizard();
|
|
|
|
if (wiz.IsBacktracking())
|
|
{
|
|
// backup once again
|
|
|
|
wiz.Backtrack(hwnd);
|
|
return true;
|
|
}
|
|
|
|
int nextPage = ForestVersionPage::Validate();
|
|
if (nextPage != -1)
|
|
{
|
|
GetWizard().SetNextPageID(hwnd, nextPage);
|
|
}
|
|
else
|
|
{
|
|
state.ClearHiddenWhileUnattended();
|
|
}
|
|
|
|
}
|
|
|
|
return true;
|
|
}
|
|
|
|
|
|
|
|
int
|
|
ForestVersionPage::Validate()
|
|
{
|
|
LOG_FUNCTION(ForestVersionPage::Validate);
|
|
|
|
State& state = State::GetInstance();
|
|
|
|
int nextPage = IDD_PATHS;
|
|
state.SetSetForestVersionFlag(Win::IsDlgButtonChecked(hwnd, IDC_SET_VERSION));
|
|
|
|
LOG(String::format(L"next = %1!d!", nextPage));
|
|
|
|
return nextPage;
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|