2025-04-27 07:49:33 -04:00

142 lines
3.9 KiB
C++

#ifndef _INITAPP_H_
#define _INITAPP_H_
typedef PVOID HINF;
class CInitApp : public CObject
{
public:
CInitApp();
~CInitApp();
public:
int m_err;
HINSTANCE m_hDllHandle;
HINF m_hInfHandle[MC_MAXMC];
BOOL m_fIsMcis; // TRUE if doing MCIS setup, FALSE for K2
// Note: this is conditionally-compiled, not
// run time.
BOOL m_fK2SmtpInstalled;
BOOL m_fSetModeToAddRemove;
// Product name and application name
CString m_csProdName; // IIS or PWS
CString m_csAppName; // equal to m_csProdName + "Setup"
CString m_csGroupName; // Start menu Program Group Name
// machine status
CString m_csMachineName;
CString m_csCleanMachineName;
CString m_csWinDir;
CString m_csSysDir;
CString m_csSysDrive;
WORD m_wLanguage;
CString m_csPathSource;
CString m_csPathInetsrv;
CString m_csPathInetpub;
BOOL m_fExistingMailroot;
CString m_csPathMailroot;
CString m_csPathNntpRoot;
CString m_csPathNntpFile;
BOOL m_fMailPathSet;
BOOL m_fNntpPathSet;
CString m_csPathExchangeDS;
CString m_csExcEnterprise;
CString m_csExcSite;
CString m_csExcUserName;
CString m_csExcPassword;
CString m_csDsaUsername;
CString m_csDsaDomain;
BOOL m_fExchangeDSInstalled;
BOOL m_fExistingDSACredentials;
CString m_csDsaAccount;
CString m_csDsaPassword;
CString m_csDsaBindType;
CString m_csPostmasterName;
CString m_csNtfsVolume; // Drive that contains NTFS partition
NT_OS_TYPE m_eNTOSType;
OS m_eOS;
BOOL m_fNT4; // TRUE if OS is NT
BOOL m_fNT5; // TRUE if OS is NT
BOOL m_fW95; // TRUE if OS is NT
CString m_csPlatform; // Alpha, Mips, PPC, i386
BOOL m_fTCPIP; // TRUE if TCP/IP is installed
UPGRADE_TYPE m_eUpgradeType; // UT_NONE, UT_OLDFTP, UT_10, UT_20
INSTALL_MODE m_eInstallMode; // IM_FRESH, IM_MAINTENANCE, IM_UPGRADE
DWORD m_dwSetupMode;
DWORD m_dwCompId; // Stores the current top-level component
BOOL m_fWizpagesCreated; // TRUE if wizard pages already created
BOOL m_fSelected[SC_MAXSC];
BOOL m_fActive[MC_MAXMC][SC_MAXSC];
INSTALL_MODE m_eState[SC_MAXSC];
BOOL m_fValidSetupString[SC_MAXSC];
BOOL m_fW3Started;
BOOL m_fFtpStarted;
BOOL m_fSpoolerStarted;
BOOL m_fSnmpStarted;
BOOL m_fCIStarted;
BOOL m_fU2Started;
BOOL m_fU2LdapStarted;
BOOL m_fStarted[MC_MAXMC];
// Some Specific flags set from ocmanage
BOOL m_fNTUpgrade_Mode;
BOOL m_fNTGuiMode;
BOOL m_fNtWorkstation;
BOOL m_fInvokedByNT; // superset of m_fNTGuiMode and ControlPanel which contains sysoc.inf
BOOL m_fEULA;
BOOL m_fIsUnattended;
BOOL m_fSuppressSmtp; // TRUE if another SMTP server is detected and we
// should not install on top of it.
BOOL m_fMailGroupInstalled; // TRUE if the Mail program grp has been installed by an earlier comp.
ACTION_TYPE m_eAction; // AT_FRESH, AT_ADDREMOVE, AT_REINSTALL, AT_REMOVEALL, AT_UPGRADE
BOOL m_bAllowMessageBoxPopups; // Allow MessageBox popup? Default to NO for NT5
CString m_csLogFileFormats;
public:
// Implementation
int MsgBox(HWND hWnd, int strID, UINT nType);
public:
BOOL InitApplication();
BOOL GetMachineStatus();
INSTALL_MODE DetermineInstallMode(DWORD dwComponent);
BOOL GetLogFileFormats();
private:
BOOL GetMachineName();
BOOL GetSysDirs();
BOOL GetOS();
BOOL GetOSVersion();
BOOL GetOSType();
BOOL IsTCPIPInstalled();
BOOL SetInstallMode();
BOOL DetectPreviousInstallations();
BOOL CheckForADSIFile();
BOOL DetectADSI();
BOOL VerifyOSForSetup();
void SetSetupParams();
void GetPlatform();
};
/////////////////////////////////////////////////////////////////////////////
#endif // _INITAPP_H_