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.
265 lines
5.2 KiB
265 lines
5.2 KiB
// Copyright (C) 2002 Microsoft Corporation
|
|
//
|
|
// readme page
|
|
// NTRAID#NTBUG9-510384-2002/01/04-sburns
|
|
// To be restored in Lornhorn NTRAID#NTBUG9-524242-2002/01/22-sburns
|
|
//
|
|
// 04 January 2002 sburns
|
|
|
|
|
|
|
|
#include "headers.hxx"
|
|
#include "page.hpp"
|
|
#include "ReadmePage.hpp"
|
|
#include "resource.h"
|
|
#include "state.hpp"
|
|
#include "common.hpp"
|
|
|
|
|
|
|
|
ReadmePage::ReadmePage()
|
|
:
|
|
DCPromoWizardPage(
|
|
IDD_README,
|
|
IDS_README_PAGE_TITLE,
|
|
IDS_README_PAGE_SUBTITLE),
|
|
bulletFont(0)
|
|
{
|
|
LOG_CTOR(ReadmePage);
|
|
}
|
|
|
|
|
|
|
|
ReadmePage::~ReadmePage()
|
|
{
|
|
LOG_DTOR(ReadmePage);
|
|
|
|
if (bulletFont)
|
|
{
|
|
HRESULT hr = Win::DeleteObject(bulletFont);
|
|
ASSERT(SUCCEEDED(hr));
|
|
}
|
|
}
|
|
|
|
|
|
|
|
bool
|
|
ReadmePage::OnNotify(
|
|
HWND /* windowFrom */ ,
|
|
UINT_PTR controlIDFrom,
|
|
UINT code,
|
|
LPARAM /* lParam */ )
|
|
{
|
|
// LOG_FUNCTION(ReadmePage::OnNotify);
|
|
|
|
bool result = false;
|
|
|
|
switch (code)
|
|
{
|
|
case NM_CLICK:
|
|
case NM_RETURN:
|
|
{
|
|
switch (controlIDFrom)
|
|
{
|
|
case IDC_PRIMER_LINK:
|
|
{
|
|
Win::HtmlHelp(
|
|
hwnd,
|
|
L"adconcepts.chm::/sag_AD_DCInstallTopNode.htm",
|
|
HH_DISPLAY_TOPIC,
|
|
0);
|
|
result = true;
|
|
break;
|
|
}
|
|
case IDC_DEPLOY_LINK:
|
|
{
|
|
HRESULT hr =
|
|
Win32ToHresult(
|
|
(DWORD) (UINT_PTR) ShellExecute(
|
|
0,
|
|
L"open",
|
|
L"http://www.microsoft.com/activedirectory",
|
|
0,
|
|
0,
|
|
|
|
// this brings the new window to the foreground
|
|
// with focus
|
|
|
|
SW_SHOWNORMAL ));
|
|
if (FAILED(hr))
|
|
{
|
|
LOG(
|
|
String::format(
|
|
L"Failed to launch webpage: hr = 0x%1!x!",
|
|
hr));
|
|
}
|
|
|
|
result = true;
|
|
break;
|
|
}
|
|
default:
|
|
{
|
|
// do nothing
|
|
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
default:
|
|
{
|
|
// do nothing
|
|
|
|
break;
|
|
}
|
|
}
|
|
|
|
return result;
|
|
}
|
|
|
|
|
|
|
|
void
|
|
ReadmePage::OnInit()
|
|
{
|
|
LOG_FUNCTION(ReadmePage::OnInit);
|
|
|
|
InitializeBullets();
|
|
}
|
|
|
|
|
|
|
|
void
|
|
ReadmePage::InitializeBullets()
|
|
{
|
|
LOG_FUNCTION(BeforeBeginPage::InitializeBulletedList);
|
|
ASSERT(!bulletFont);
|
|
|
|
bulletFont =
|
|
::CreateFont(
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
FW_NORMAL,
|
|
0,
|
|
0,
|
|
0,
|
|
SYMBOL_CHARSET,
|
|
OUT_CHARACTER_PRECIS,
|
|
CLIP_CHARACTER_PRECIS,
|
|
PROOF_QUALITY,
|
|
VARIABLE_PITCH | FF_DONTCARE,
|
|
L"Marlett");
|
|
|
|
if (bulletFont)
|
|
{
|
|
Win::SetWindowFont(Win::GetDlgItem(hwnd, IDC_BULLET1), bulletFont, true);
|
|
Win::SetWindowFont(Win::GetDlgItem(hwnd, IDC_BULLET2), bulletFont, true);
|
|
Win::SetWindowFont(Win::GetDlgItem(hwnd, IDC_BULLET3), bulletFont, true);
|
|
}
|
|
else
|
|
{
|
|
LOG(String::format(
|
|
L"Failed to create font for bullet list: hr = %1!x!",
|
|
Win::GetLastErrorAsHresult()));
|
|
}
|
|
}
|
|
|
|
|
|
|
|
bool
|
|
ReadmePage::OnSetActive()
|
|
{
|
|
LOG_FUNCTION(ReadmePage::OnSetActive);
|
|
|
|
Win::PropSheet_SetWizButtons(
|
|
Win::GetParent(hwnd),
|
|
PSWIZB_BACK | PSWIZB_NEXT);
|
|
|
|
Win::PostMessage(
|
|
Win::GetParent(hwnd),
|
|
WM_NEXTDLGCTL,
|
|
(WPARAM) Win::GetDlgItem(Win::GetParent(hwnd), Wizard::NEXT_BTN_ID),
|
|
TRUE);
|
|
|
|
State& state = State::GetInstance();
|
|
if (state.RunHiddenUnattended())
|
|
{
|
|
int nextPage = Validate();
|
|
if (nextPage != -1)
|
|
{
|
|
GetWizard().SetNextPageID(hwnd, nextPage);
|
|
}
|
|
else
|
|
{
|
|
state.ClearHiddenWhileUnattended();
|
|
}
|
|
|
|
}
|
|
|
|
return true;
|
|
}
|
|
|
|
|
|
|
|
int
|
|
ReadmePage::Validate()
|
|
{
|
|
LOG_FUNCTION(ReadmePage::Validate);
|
|
int nextPage = -1;
|
|
|
|
State& state = State::GetInstance();
|
|
switch (state.GetRunContext())
|
|
{
|
|
case State::PDC_UPGRADE:
|
|
case State::NT5_STANDALONE_SERVER:
|
|
case State::NT5_MEMBER_SERVER:
|
|
{
|
|
nextPage = IDD_INSTALL_TCPIP;
|
|
break;
|
|
}
|
|
case State::BDC_UPGRADE:
|
|
{
|
|
nextPage = IDD_REPLICA_OR_MEMBER;
|
|
break;
|
|
}
|
|
case State::NT5_DC:
|
|
{
|
|
// The welcome page should not have sent the user to this page
|
|
// in the demote case.
|
|
|
|
ASSERT(false);
|
|
|
|
state.SetOperation(State::DEMOTE);
|
|
|
|
// NTRAID#NTBUG9-496409-2001/11/29-sburns
|
|
|
|
if (state.IsForcedDemotion())
|
|
{
|
|
nextPage = IDD_FORCE_DEMOTE;
|
|
}
|
|
else
|
|
{
|
|
nextPage = IDD_DEMOTE;
|
|
}
|
|
break;
|
|
}
|
|
default:
|
|
{
|
|
ASSERT(false);
|
|
break;
|
|
}
|
|
}
|
|
|
|
return nextPage;
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|