windows-nt/Source/XPSP1/NT/termsrv/setup/dll/state.h
2020-09-26 16:20:57 +08:00

176 lines
4.5 KiB
C++

//Copyright (c) 1998 - 1999 Microsoft Corporation
/*
*
* State.h
*
* Routines to gather various state information.
*
*/
#ifndef __TSOC_STATE_H__
#define __TSOC_STATE_H__
//
// Type Definitions
//
typedef enum {
PERM_WIN2K = 0,
PERM_TS4 = 1
} EPermMode;
//
// OC State Function Prototypes
//
DWORD SetTSVersion (LPCTSTR pszVersion);
PSETUP_INIT_COMPONENT GetSetupData(VOID);
enum ETSInstallType
{
eFreshInstallTS, // it could be an upgrade, but from non TS machine.
eUpgradeFrom40TS,
eUpgradeFrom50TS,
eUpgradeFrom51TS,
eStandAloneSetup
};
enum ETSMode
{
eTSDisabled,
eRemoteAdmin,
eAppServer,
ePersonalTS
};
// This must be in the same order as IDs in lscore
enum ETSLicensingMode
{
eLicPTS,
eLicRemoteAdmin,
eLicPerSeat,
eLicInternetConnector, // not supported in Whistler
eLicPerSession,
eLicUnset
};
class TSState
{
public:
TSState ();
virtual ~TSState ();
BOOL Initialize (PSETUP_INIT_COMPONENT pSetupData);
const PSETUP_INIT_COMPONENT GetSetupData() const;
ETSInstallType GetInstalltype () const;
ETSMode OriginalTSMode () const;
ETSMode CurrentTSMode () const;
EPermMode OriginalPermMode () const;
EPermMode CurrentPermMode () const;
ETSLicensingMode NewLicMode () const;
BOOL IsUpgrade () const;
BOOL IsFreshInstall () const;
BOOL IsTSFreshInstall () const;
BOOL IsUpgradeFrom40TS () const;
BOOL IsUpgradeFrom50TS () const;
BOOL IsUpgradeFrom51TS () const;
BOOL IsUnattended () const;
BOOL IsGuiModeSetup () const;
BOOL IsStandAlone () const;
BOOL IsWorkstation () const;
BOOL IsServer () const;
BOOL IsSBS () const;
BOOL CanInstallAppServer () const;
BOOL IsAdvServerOrHigher () const;
BOOL IsPersonal () const;
BOOL IsProfessional () const;
BOOL IsX86 () const;
BOOL IsCheckedBuild () const;
BOOL WasTSInstalled () const;
BOOL WasTSEnabled () const;
BOOL WasItAppServer () const;
BOOL WasItRemoteAdmin () const;
BOOL IsAppSrvModeSwitch () const;
BOOL IsTSModeChanging () const;
BOOL IsItAppServer () const;
BOOL IsAppServerSelected () const;
BOOL IsItRemoteAdmin () const;
BOOL HasChanged () const;
BOOL IsTSEnableSelected () const;
void SetCurrentTSMode (ETSMode eNewMode);
void SetCurrentPermMode (EPermMode eNewMode);
void SetNewLicMode (ETSLicensingMode eNewMode);
void UpdateState ();
BOOL Assert () const;
BOOL LogState () const;
BOOL GetCurrentConnAllowed () const;
BOOL GetOrigConnAllowed () const;
private:
ETSInstallType m_eInstallType;
ETSMode m_eOriginalTSMode;
ETSMode m_eCurrentTSMode;
EPermMode m_eOriginalPermMode;
EPermMode m_eCurrentPermMode;
BOOL m_bCurrentConnAllowed;
BOOL m_bOrigConnAllowed;
BOOL m_bNewStateValid;
ETSLicensingMode m_eNewLicMode;
PSETUP_INIT_COMPONENT m_gpInitComponentData;
OSVERSIONINFOEX m_osVersion;
BOOL GetNTType ();
BOOL SetSetupData (PSETUP_INIT_COMPONENT pSetupData);
ETSInstallType ReadInstallType () const;
ETSMode ReadTSMode () const;
EPermMode ReadPermMode () const;
BOOL AreConnectionsAllowed () const;
void SetCurrentConnAllowed (BOOL bAllowed);
};
extern TSState StateObject;
#endif // __TSOC_STATE_H__