mirror of https://github.com/tongzx/nt5src
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.
175 lines
4.5 KiB
175 lines
4.5 KiB
//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__
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|