200 lines
6 KiB
C++
200 lines
6 KiB
C++
#include "itemlist.hxx"
|
|
|
|
#ifndef _INITAPP_H_
|
|
#define _INITAPP_H_
|
|
|
|
typedef PVOID HINF;
|
|
|
|
#define USER_SPECIFIED_INFO_WWW_USER_NAME 0x00000001
|
|
#define USER_SPECIFIED_INFO_WWW_USER_PASS 0x00000002
|
|
#define USER_SPECIFIED_INFO_FTP_USER_NAME 0x00000004
|
|
#define USER_SPECIFIED_INFO_FTP_USER_PASS 0x00000008
|
|
#define USER_SPECIFIED_INFO_WAM_USER_NAME 0x00000010
|
|
#define USER_SPECIFIED_INFO_WAM_USER_PASS 0x00000020
|
|
|
|
#define USER_SPECIFIED_INFO_PATH_WWW 0x000000040
|
|
#define USER_SPECIFIED_INFO_PATH_FTP 0x000000080
|
|
#define USER_SPECIFIED_INFO_PATH_INETPUB 0x000000100
|
|
|
|
int TCPIP_Check_Temp_Hack(void);
|
|
void GetUserDomain(void);
|
|
int AreWeCurrentlyInstalled();
|
|
void Check_Custom_WWW_or_FTP_Path(void);
|
|
void Check_Custom_Users(void);
|
|
void Check_Unattend_Settings(void);
|
|
int Check_Custom_InetPub(void);
|
|
void Check_For_DebugServiceFlag(void);
|
|
|
|
|
|
class CInitApp : public CObject
|
|
{
|
|
public:
|
|
CInitApp();
|
|
~CInitApp();
|
|
public:
|
|
int m_err;
|
|
HINF m_hInfHandle;
|
|
HINF m_hInfHandleAlternate;
|
|
BOOL m_bAllowMessageBoxPopups;
|
|
BOOL m_bThereWereErrorsChkLogfile;
|
|
BOOL m_bThereWereErrorsFromMTS;
|
|
BOOL m_bWin95Migration;
|
|
|
|
// Product name and application name
|
|
CString m_csAppName;
|
|
CString m_csIISGroupName; // Start menu IIS Program Group Name
|
|
|
|
// account + passwd for anonymous user
|
|
CString m_csGuestName;
|
|
CString m_csGuestPassword;
|
|
|
|
CString m_csWAMAccountName;
|
|
CString m_csWAMAccountPassword;
|
|
CString m_csWWWAnonyName;
|
|
CString m_csWWWAnonyPassword;
|
|
CString m_csFTPAnonyName;
|
|
CString m_csFTPAnonyPassword;
|
|
|
|
// dwUnattendUserSpecified Values:
|
|
// USER_SPECIFIED_INFO_WWW_USER_NAME
|
|
// USER_SPECIFIED_INFO_WWW_USER_PASS
|
|
// USER_SPECIFIED_INFO_FTP_USER_NAME
|
|
// USER_SPECIFIED_INFO_FTP_USER_PASS
|
|
// USER_SPECIFIED_INFO_WAM_USER_NAME
|
|
// USER_SPECIFIED_INFO_WAM_USER_PASS
|
|
// USER_SPECIFIED_INFO_PATH_WWW
|
|
// USER_SPECIFIED_INFO_PATH_FTP
|
|
// USER_SPECIFIED_INFO_PATH_INETPUB
|
|
|
|
DWORD dwUnattendConfig;
|
|
|
|
// storage for the user specified unattended iwam/iusr users
|
|
CString m_csWAMAccountName_Unattend;
|
|
CString m_csWAMAccountPassword_Unattend;
|
|
CString m_csWWWAnonyName_Unattend;
|
|
CString m_csWWWAnonyPassword_Unattend;
|
|
CString m_csFTPAnonyName_Unattend;
|
|
CString m_csFTPAnonyPassword_Unattend;
|
|
|
|
// storage for the iusr/iwam accounts which need to get
|
|
// removed during a removal, this could be different from
|
|
// what is getting added -- since unattend parameters could
|
|
// have been specified!
|
|
CString m_csWAMAccountName_Remove;
|
|
CString m_csWWWAnonyName_Remove;
|
|
CString m_csFTPAnonyName_Remove;
|
|
|
|
CMapStringToString m_cmssUninstallMapList;
|
|
BOOL m_fUninstallMapList_Dirty;
|
|
|
|
// machine status
|
|
CString m_csMachineName;
|
|
CString m_csUsersDomain;
|
|
CString m_csUsersAccount;
|
|
|
|
CString m_csWinDir;
|
|
CString m_csSysDir;
|
|
CString m_csSysDrive;
|
|
|
|
CString m_csPathSource;
|
|
CString m_csPathOldInetsrv;
|
|
CString m_csPathInetsrv;
|
|
CString m_csPathInetpub;
|
|
CString m_csPathFTPRoot;
|
|
CString m_csPathWWWRoot;
|
|
CString m_csPathWebPub;
|
|
CString m_csPathProgramFiles;
|
|
CString m_csPathIISSamples;
|
|
CString m_csPathScripts;
|
|
CString m_csPathASPSamp;
|
|
CString m_csPathAdvWorks;
|
|
CString m_csPathIASDocs;
|
|
CString m_csPathOldPWSFiles;
|
|
CString m_csPathOldPWSSystemFiles;
|
|
|
|
NT_OS_TYPE m_eNTOSType;
|
|
OS m_eOS;
|
|
DWORD m_dwOSBuild;
|
|
DWORD m_dwOSServicePack;
|
|
BOOL m_fNT5; // TRUE if OS is NT
|
|
BOOL m_fW95; // TRUE if OS is NT
|
|
CString m_csPlatform; // Alpha, Mips, PPC, i386
|
|
DWORD m_dwNumberOfProcessors;
|
|
|
|
BOOL m_fTCPIP; // TRUE if TCP/IP is installed
|
|
|
|
UPGRADE_TYPE m_eUpgradeType; // UT_NONE, UT_10, UT_20, etc.
|
|
BOOL m_bUpgradeTypeHasMetabaseFlag;
|
|
INSTALL_MODE m_eInstallMode; // IM_FRESH, IM_MAINTENANCE, IM_UPGRADE
|
|
DWORD m_dwSetupMode;
|
|
BOOL m_bPleaseDoNotInstallByDefault;
|
|
BOOL m_bRefreshSettings; // FALSE: refresh files only, TRUE: refresh files + refresh all settings
|
|
|
|
ACTION_TYPE m_eAction; // AT_FRESH, AT_ADDREMOVE, AT_REINSTALL, AT_REMOVEALL, AT_UPGRADE
|
|
|
|
// Some Specific flags set from ocmanage
|
|
DWORDLONG m_fNTOperationFlags;
|
|
BOOL m_fNTGuiMode;
|
|
BOOL m_fNtWorkstation;
|
|
BOOL m_fInvokedByNT; // superset of m_fNTGuiMode and ControlPanel which contains sysoc.inf
|
|
|
|
BOOL m_fUnattended;
|
|
CString m_csUnattendFile;
|
|
HINF m_hUnattendFile;
|
|
|
|
BOOL m_fEULA;
|
|
BOOL m_fMoveInetsrv;
|
|
|
|
CString m_csPathSrcDir;
|
|
CString m_csPathNTSrcDir;
|
|
CString m_csMissingFile;
|
|
CString m_csMissingFilePath;
|
|
BOOL m_fWebDownload;
|
|
|
|
public:
|
|
// Implementation
|
|
int MsgBox(HWND hWnd, int strID, UINT nType, BOOL bGlobalTitle);
|
|
int MsgBox2(HWND hWnd, int iID,CString csInsertionString,UINT nType);
|
|
|
|
public:
|
|
BOOL InitApplication();
|
|
void DumpAppVars();
|
|
void ReGetMachineAndAccountNames();
|
|
void DefineSetupModeOnNT();
|
|
BOOL IsTCPIPInstalled();
|
|
void SetInetpubDerivatives();
|
|
void ResetWAMPassword();
|
|
void UnInstallList_Add(CString csItemUniqueKeyName,CString csDataToAdd);
|
|
void UnInstallList_DelKey(CString csItemUniqueKeyName);
|
|
void UnInstallList_DelData(CString csDataValue);
|
|
void UnInstallList_Dump();
|
|
void UnInstallList_RegRead();
|
|
void UnInstallList_RegWrite();
|
|
void UnInstallList_SetVars();
|
|
CString UnInstallList_QueryKey(CString csItemUniqueKeyName);
|
|
|
|
private:
|
|
BOOL GetSysDirs();
|
|
BOOL GetOS();
|
|
BOOL GetOSVersion();
|
|
BOOL GetOSType();
|
|
BOOL SetInstallMode();
|
|
void GetPlatform();
|
|
BOOL GetMachineStatus();
|
|
BOOL GetMachineName();
|
|
int SetUpgradeType();
|
|
|
|
void SetSetupParams();
|
|
void SetInetpubDir();
|
|
void GetOldIISDirs();
|
|
void GetOldWWWRootDir();
|
|
void DeriveInetpubFromWWWRoot();
|
|
void GetOldIISSamplesLocation();
|
|
void GetOldInetSrvDir();
|
|
int Check_Custom_InetPub();
|
|
void Check_Unattend_Settings();
|
|
};
|
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
#endif // _INITAPP_H_
|