#pragma once #include #include "VarSetBase.h" //--------------------------------------------------------------------------- // VarSet Options Class //--------------------------------------------------------------------------- class CVarSetOptions : public CVarSet { public: CVarSetOptions(const CVarSet& rVarSet) : CVarSet(rVarSet) { Put(DCTVS_Options_AppendToLogs, true); Put(DCTVS_Options_DontBeginNewLog, true); Put(DCTVS_Options_Logfile, GetMigrationLogPath()); Put(DCTVS_Options_DispatchLog, GetDispatchLogPath()); Put(DCTVS_Options_AutoCloseHideDialogs, 2L); } // void SetTest(bool bTest) { Put(DCTVS_Options_NoChange, bTest); } void SetUndo(bool bUndo) { Put(DCTVS_Options_Undo, bUndo); } void SetWizard(LPCTSTR pszWizard) { Put(DCTVS_Options_Wizard, pszWizard); } void SetIntraForest(bool bIntraForest) { Put(DCTVS_Options_IsIntraforest, bIntraForest); } void SetSourceDomain(LPCTSTR pszNameFlat, LPCTSTR pszNameDns, LPCTSTR pszSid = NULL) { Put(DCTVS_Options_SourceDomain, (pszNameDns && pszNameDns[0]) ? pszNameDns : pszNameFlat); Put(DCTVS_Options_SourceDomainDns, (pszNameDns && pszNameDns[0]) ? pszNameDns : (LPCTSTR)NULL); Put(DCTVS_Options_SourceDomainFlat, pszNameFlat); if (pszSid) { Put(DCTVS_Options_SourceDomainSid, pszSid); } } void SetTargetDomain(LPCTSTR pszNameFlat, LPCTSTR pszNameDns) { Put(DCTVS_Options_TargetDomain, pszNameDns); Put(DCTVS_Options_TargetDomainDns, pszNameDns); Put(DCTVS_Options_TargetDomainFlat, pszNameFlat); } void SetTargetOu(LPCTSTR pszOu) { Put(DCTVS_Options_OuPath, pszOu); } void SetTargetServer(LPCTSTR pszServerFlat, LPCTSTR pszServerDns) { Put(DCTVS_Options_TargetServerOverride, pszServerFlat); Put(DCTVS_Options_TargetServerOverrideDns, pszServerDns); } void SetRenameOptions(long lOption, LPCTSTR pszPrefixOrSuffix) { switch (lOption) { case admtRenameWithPrefix: { if (pszPrefixOrSuffix && (_tcslen(pszPrefixOrSuffix) > 0)) { if (IsValidPrefixOrSuffix(pszPrefixOrSuffix)) { Put(DCTVS_Options_Prefix, pszPrefixOrSuffix); Put(DCTVS_Options_Suffix, (LPCTSTR)NULL); } else { AdmtThrowError(GUID_NULL, GUID_NULL, E_INVALIDARG, IDS_E_INVALID_RENAME_PREFIX_SUFFIX); } } else { AdmtThrowError(GUID_NULL, GUID_NULL, E_INVALIDARG, IDS_E_NO_RENAME_PREFIX); } break; } case admtRenameWithSuffix: { if (pszPrefixOrSuffix && (_tcslen(pszPrefixOrSuffix) > 0)) { if (IsValidPrefixOrSuffix(pszPrefixOrSuffix)) { Put(DCTVS_Options_Prefix, (LPCTSTR)NULL); Put(DCTVS_Options_Suffix, pszPrefixOrSuffix); } else { AdmtThrowError(GUID_NULL, GUID_NULL, E_INVALIDARG, IDS_E_INVALID_RENAME_PREFIX_SUFFIX); } } else { AdmtThrowError(GUID_NULL, GUID_NULL, E_INVALIDARG, IDS_E_RENAME_NO_SUFFIX); } break; } } } void SetRestartDelay(long lTime) { Put(DCTVS_Options_GuiOnlyRebootSaver, lTime); } };