Source code of Windows XP (NT5)
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.
|
|
// Copyright (C) 1997 Microsoft Corporation
//
// wizard state object
//
// 12-15-97 sburns
#ifndef STATE_HPP_INCLUDED
#define STATE_HPP_INCLUDED
#include "AnswerFile.hpp"
#include "UnattendSplashDialog.hpp"
class State { public:
// call from WinMain to init the global instance
static void Init();
// call from WinMain to delete the global instance
static void Destroy();
static State& GetInstance();
bool AutoConfigureDNS() const;
void SetAutoConfigureDNS(bool yesNo);
String GetNewDomainNetbiosName() const;
void SetNewDomainNetbiosName(const String& name);
String GetNewDomainDNSName() const;
void SetNewDomainDNSName(const String& name);
String GetUsername() const;
EncodedString GetPassword() const;
void SetUsername(const String& name);
void SetPassword(const EncodedString& password);
String GetDatabasePath() const;
String GetLogPath() const;
String GetSYSVOLPath() const;
String GetSiteName() const;
void SetDatabasePath(const String& path);
void SetLogPath(const String& path);
void SetSYSVOLPath(const String& path); enum RunContext { NT5_DC, // already an NT5 DC
NT5_STANDALONE_SERVER, // standalone to DC
NT5_MEMBER_SERVER, // member server to DC
BDC_UPGRADE, // NT4 BDC to NT5 DC
PDC_UPGRADE // NT4 PDC to NT5 DC
};
RunContext GetRunContext() const;
bool UsingAnswerFile() const;
static const String OPTION_ADMIN_PASSWORD; static const String OPTION_AUTO_CONFIG_DNS; static const String OPTION_CHILD_NAME; static const String OPTION_CRITICAL_REPLICATION_ONLY; static const String OPTION_DATABASE_PATH; static const String OPTION_DNS_ON_NET; static const String OPTION_ALLOW_ANON_ACCESS; static const String OPTION_IS_LAST_DC; static const String OPTION_GC_CONFIRM; static const String OPTION_LOG_PATH; static const String OPTION_NEW_DOMAIN; static const String OPTION_NEW_DOMAIN_NAME; static const String OPTION_NEW_DOMAIN_NETBIOS_NAME; static const String OPTION_PARENT_DOMAIN_NAME; static const String OPTION_PASSWORD; static const String OPTION_REBOOT; static const String OPTION_REPLICA_DOMAIN_NAME; static const String OPTION_REPLICA_OR_MEMBER; static const String OPTION_REPLICA_OR_NEW_DOMAIN; static const String OPTION_REPLICATION_SOURCE; static const String OPTION_SAFE_MODE_ADMIN_PASSWORD; static const String OPTION_SET_FOREST_VERSION; static const String OPTION_SITE_NAME; static const String OPTION_SYSVOL_PATH; static const String OPTION_SYSKEY; static const String OPTION_USERNAME; static const String OPTION_USER_DOMAIN; static const String VALUE_DOMAIN; static const String VALUE_REPLICA; static const String VALUE_TREE; static const String VALUE_CHILD; static const String VALUE_YES; static const String VALUE_NO; static const String VALUE_NO_DONT_PROMPT; static const String OPTION_SOURCE_PATH;
String GetAnswerFileOption(const String& option) const;
EncodedString GetEncodedAnswerFileOption(const String& option) const; String GetReplicaDomainDNSName() const;
enum Operation { NONE, REPLICA, FOREST, TREE, CHILD, DEMOTE, ABORT_BDC_UPGRADE };
Operation GetOperation() const;
String GetParentDomainDnsName() const;
void SetParentDomainDNSName(const String& name);
enum OperationResult { SUCCESS, FAILURE };
void SetOperationResults(OperationResult result);
OperationResult GetOperationResultsCode() const;
void SetOperationResultsMessage(const String& message);
String GetOperationResultsMessage() const;
void SetOperation(Operation oper);
void SetReplicaDomainDNSName(const String& dnsName);
void SetSiteName(const String& site); void SetUserDomainName(const String& name);
String GetUserDomainName() const;
void ClearHiddenWhileUnattended();
bool RunHiddenUnattended() const;
bool IsLastDCInDomain() const;
void SetIsLastDCInDomain(bool yesNo);
void SetAdminPassword(const EncodedString& password);
EncodedString GetAdminPassword() const;
bool IsDNSOnNetwork() const;
void SetDNSOnNetwork(bool yesNo);
String GetInstalledSite() const;
void SetInstalledSite(const String& site);
void AddFinishMessage(const String& message);
String GetFinishMessages() const;
Computer& GetComputer();
void SetFailureMessage(const String& message);
String GetFailureMessage() const;
bool ShouldInstallAndConfigureDns() const;
String GetUserForestName() const;
void SetUserForestName(const String& forest);
bool IsDomainInForest(const String& domain) const;
HRESULT ReadDomains();
DNS_NAME_COMPARE_STATUS DomainFitsInForest(const String& domain, String& conflictingDomain);
bool GetDomainReinstallFlag() const;
void SetDomainReinstallFlag(bool newValue);
// true to indicate that the RAS permissions script should be run.
bool ShouldAllowAnonymousAccess() const;
void SetShouldAllowAnonymousAccess(bool yesNo);
String GetReplicationPartnerDC() const;
void SetReplicationPartnerDC(const String dcName);
// returns true if the machine is hosts a global catalog
bool IsGlobalCatalog();
EncodedString GetSafeModeAdminPassword() const;
void SetSafeModeAdminPassword(const EncodedString& pwd);
String GetAdminToolsShortcutPath() const;
bool NeedsCommandLineHelp() const;
bool IsAdvancedMode() const;
void SetReplicateFromMedia(bool yesNo);
void SetReplicationSourcePath(const String& path);
bool ReplicateFromMedia() const;
String GetReplicationSourcePath() const;
bool IsReallyLastDcInDomain();
enum SyskeyLocation { STORED, // stored w/ backup
DISK, // look on disk
PROMPT // prompt user
};
void SetSyskeyLocation(SyskeyLocation loc);
SyskeyLocation GetSyskeyLocation() const;
void SetIsBackupGc(bool yesNo);
bool IsBackupGc() const;
void SetSyskey(const EncodedString& syskey);
EncodedString GetSyskey() const;
void SetRestoreGc(bool yesNo);
bool GetRestoreGc() const;
bool IsSafeModeAdminPwdOptionPresent() const;
bool GetDomainControllerReinstallFlag() const;
void SetDomainControllerReinstallFlag(bool newValue);
bool IsOperationRetryAllowed() const;
ULONG GetOperationResultsFlags() const;
void SetOperationResultsFlags(ULONG flags);
void SetNeedsReboot();
bool GetNeedsReboot() const;
void SetSetForestVersionFlag(bool setVersion);
bool GetSetForestVersionFlag() const; private:
// can only be created/destroyed by Init/Destroy
State();
~State();
void DetermineRunContext();
void SetupAnswerFile(const String& filename, bool isDefaultAnswerfile);
HRESULT GetDomainControllerInfoForMyDomain( DS_DOMAIN_CONTROLLER_INFO_2W*& info, DWORD& dcCount);
typedef StringList DomainList;
EncodedString adminPassword; bool allowAnonAccess; AnswerFile* answerFile; bool autoConfigDns; Computer computer; RunContext context; String dbPath; DomainList domainsInForest; String failureMessage; String finishMessages; String installedSite; bool isAdvancedMode; bool isBackupGc; bool isDnsOnNet; bool isLastDc; bool isUpgrade; String logPath; bool needsCommandLineHelp; bool needsReboot; String newDomainDnsName; String newDomainFlatName; Operation operation; String operationResultsMessage; OperationResult operationResultsStatus; ULONG operationResultsFlags; String parentDomainDnsName; EncodedString password; bool reinstallDomain; bool reinstallDomainController; String replicaDnsDomainName; bool replicateFromMedia; String replicationPartnerDc; bool restoreGc; bool runHiddenWhileUnattended; EncodedString safeModeAdminPassword; bool setForestVersion; String shortcutPath; String siteName; String sourcePath; UnattendSplashDialog* splash; String sysvolPath; EncodedString syskey; SyskeyLocation syskeyLocation; bool useCurrentCredentials; String userDomain; String userForest; String username;
// not defined: no copying.
State(const State&); State& operator=(const State&); };
#endif // STATE_HPP_INCLUDED
|