|
|
// Copyright (c) 1997-2001 Microsoft Corporation
//
// File: InstallationUnit.h
//
// Synopsis: Declares an InstallationUnit
// An InstallationUnit represents a single
// entity that can be installed. (i.e. DHCP, IIS, etc.)
//
// History: 02/03/2001 JeffJon Created
#ifndef __CYS_INSTALLATIONUNIT_H
#define __CYS_INSTALLATIONUNIT_H
#include "pch.h"
// These are the values that can be returned from
// InstallationUnit::InstallService()
typedef enum { INSTALL_SUCCESS, INSTALL_FAILURE,
// this means that there should be no
// logging and reboot is handled by DCPromo
// or Terminal Services installation
INSTALL_SUCCESS_REBOOT, // this means that the finish page should
// prompt the user to reboot
INSTALL_SUCCESS_PROMPT_REBOOT,
// No changes were selected while going
// through the wizard
INSTALL_NO_CHANGES,
// Installation was cancelled
INSTALL_CANCELLED
} InstallationReturnType;
// This array of strings if for the UI log debugging only
// It should match the values in the InstallationReturnType
// above. The values of the enum are used to index this array
extern String installReturnTypeStrings[];
// This macro is used to make it easier to log the return value from
// the InstallService() methods. It takes a InstallationReturnType
// and uses that to index into the installReturnTypeStrings to get
// a string that is then logged to the the UI debug logfile
#define LOG_INSTALL_RETURN(returnType) LOG(installReturnTypeStrings[returnType]);
// This enum defines the installation unit types. It is used as the key to
// the map in the InstallationUnitProvider to get the InstallationUnit
// associated with the type
typedef enum { DNS_INSTALL, DHCP_INSTALL, WINS_INSTALL, RRAS_INSTALL, NETWORKSERVER_INSTALL, APPLICATIONSERVER_INSTALL, FILESERVER_INSTALL, PRINTSERVER_INSTALL, SHAREPOINT_INSTALL, MEDIASERVER_INSTALL, WEBSERVER_INSTALL, EXPRESS_INSTALL, DC_INSTALL, CLUSTERSERVER_INSTALL, NO_INSTALL } InstallationUnitType;
class InstallationUnit { public:
// Constructor
InstallationUnit( unsigned int serviceNameID, unsigned int serviceDescriptionID, const String finishPageHelpString, InstallationUnitType newInstallType = NO_INSTALL);
// Destructor
virtual ~InstallationUnit() {}
// Installation virtual method
virtual InstallationReturnType InstallService(HANDLE logfileHandle, HWND hwnd) = 0;
virtual bool IsServiceInstalled() { return false; }
// Return true if the installation unit will make some
// changes during InstallService. Return false if
// if it will not
virtual bool GetFinishText(String& message) = 0;
// Data accessors
virtual String GetServiceName();
virtual String GetServiceDescription();
virtual String GetFinishHelp();
InstallationUnitType GetInstallationUnitType() { return installationUnitType; }
protected:
String name; String description; String finishHelp;
unsigned int nameID; unsigned int descriptionID;
private:
InstallationUnitType installationUnitType; };
#endif // __CYS_INSTALLATIONUNIT_H
|