Leaked source code of windows server 2003
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.
 
 
 
 
 
 

174 lines
3.6 KiB

//+----------------------------------------------------------------------------
//
// Windows NT Secure Server Roles Security Configuration Wizard
//
// Microsoft Windows
// Copyright (C) Microsoft Corporation, 1992 - 2002
//
// File: SecWiz.cxx
//
// Contents: Security Configuration wizard.
//
// History: 13-Sep-01 EricB created
//
//-----------------------------------------------------------------------------
#include "pch.h"
#include "resource.h"
#include "misc.h"
#include "state.h"
#include "WelcomePage.h"
#include "SelectInputCfgPage.h"
#include "finish.h"
#include "ServerRoleSelPage.h"
#include "otherpages.h"
#include "ClientRoleSelPage.h"
#include "AdditionalFuncPage.h"
HINSTANCE hResourceModuleHandle = 0;
const wchar_t* HELPFILE_NAME = 0; // no context help available
const wchar_t* RUNTIME_NAME = L"SecWiz";
DWORD DEFAULT_LOGGING_OPTIONS =
Log::OUTPUT_TO_FILE
| Log::OUTPUT_FUNCCALLS
| Log::OUTPUT_LOGS
| Log::OUTPUT_ERRORS
| Log::OUTPUT_HEADER;
// a system modal popup thingy
Popup popup(IDS_WIZARD_TITLE, true);
BOOL RegisterCheckListWndClass(HINSTANCE hInstance); //in chklist.cxx
// these are the valid exit codes returned from the ssrwiz.exe process
enum ExitCode
{
// the operation failed.
EXIT_CODE_UNSUCCESSFUL = 0,
// the operation succeeded
EXIT_CODE_SUCCESSFUL = 1,
};
ExitCode
RunWizard()
{
LOG_FUNCTION(RunWizard);
// this is necessary to use the hotlink-style static text control.
// //
// // BOOL b = LinkWindow_RegisterClass();
// // ASSERT(b);
Wizard wiz(
IDS_WIZARD_TITLE,
IDB_BANNER16,
IDB_BANNER256,
IDB_WATERMARK16,
IDB_WATERMARK256);
// Welcome must be first
wiz.AddPage(new WelcomePage());
// These are not in any particular order...
wiz.AddPage(new SelectInputCfgPage());
wiz.AddPage(new FinishPage());
wiz.AddPage(new SecurityLevelPage());
wiz.AddPage(new PreProcessPage());
wiz.AddPage(new ServerRoleSelPage());
wiz.AddPage(new ClientRoleSelPage());
wiz.AddPage(new AdditionalFuncPage());
wiz.AddPage(new ServiceDisableMethodPage());
ExitCode exitCode = EXIT_CODE_UNSUCCESSFUL;
switch (wiz.ModalExecute(Win::GetDesktopWindow()))
{
case -1:
{
popup.Error(
Win::GetDesktopWindow(),
E_FAIL,
IDS_PROP_SHEET_FAILED);
break;
}
default:
{
// do nothing.
break;
}
}
return exitCode;
}
void
ShowCommandLineHelp()
{
// CODEWORK: replace this with WinHelp, someday
popup.MessageBox(Win::GetDesktopWindow(), IDS_COMMAND_LINE_HELP, MB_OK);
}
int WINAPI
WinMain(
HINSTANCE hInstance,
HINSTANCE /* hPrevInstance */ ,
PSTR /* lpszCmdLine */ ,
int /* nCmdShow */)
{
hResourceModuleHandle = hInstance;
ExitCode exitCode = EXIT_CODE_UNSUCCESSFUL;
HRESULT hr = S_OK;
RegisterCheckListWndClass(hInstance);
{
hr = ::CoInitialize(0);
ASSERT(SUCCEEDED(hr));
INITCOMMONCONTROLSEX icc;
icc.dwSize = sizeof(icc);
icc.dwICC = ICC_ANIMATE_CLASS | ICC_USEREX_CLASSES;
BOOL init = ::InitCommonControlsEx(&icc);
ASSERT(init);
State::Init();
if (State::GetInstance().NeedsCommandLineHelp())
{
ShowCommandLineHelp();
}
else
{
exitCode = RunWizard();
}
State::Destroy();
}
return static_cast<int>(exitCode);
}