Leaked source code of windows server 2003
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.
 
 
 
 
 
 

312 lines
9.9 KiB

#ifndef _WIZARD_H_
#define _WIZARD_H_
#pragma warning (disable:4189) // disable local var init'd but not ref'd warning since all
// occurences in the wizard have been removed. Should be
// moved to warning.h in ..\inc when other modules have been
// fixed
// constants
#define MAX_BUF 5000
#define MAX_LINE 512
#define MAX_URL 2048
#define MAX_BUFFER_SIZE 32767
#define MAX_COPY_SIZE 32767
typedef enum tagPPAGE {
PPAGE_WELCOME = 0,
PPAGE_OCWWELCOME = 0,
PPAGE_STAGE1,
PPAGE_TARGET,
PPAGE_LANGUAGE,
PPAGE_MEDIA,
PPAGE_IEAKLITE,
PPAGE_STAGE2,
PPAGE_OPTDOWNLOAD,
PPAGE_CUSTCOMP,
PPAGE_STAGE3,
PPAGE_ISKBACK,
PPAGE_CDINFO,
PPAGE_SETUPWIZARD,
PPAGE_SILENTINSTALL,
PPAGE_COMPSEL,
PPAGE_COMPURLS,
PPAGE_ADDON,
PPAGE_INSTALLDIR,
PPAGE_CORPCUSTOM,
PPAGE_CUSTOMCUSTOM,
PPAGE_COPYCOMP,
PPAGE_ICM,
PPAGE_CABSIGN,
PPAGE_STAGE4,
PPAGE_OCWSTAGE2,
PPAGE_TITLE,
PPAGE_BTOOLBARS,
PPAGE_CUSTICON,
PPAGE_STARTSEARCH,
PPAGE_FAVORITES,
PPAGE_WELCOMEMSGS,
PPAGE_DESKTOP,
PPAGE_DTOOLBARS,
PPAGE_FOLDERMCCP,
PPAGE_UASTRDLG,
PPAGE_CONNECTSET,
PPAGE_QUERYAUTOCONFIG,
PPAGE_PROXY,
PPAGE_ADDROOT,
PPAGE_SECURITYCERT,
PPAGE_SECURITY,
PPAGE_QUERYSIGNUP,
PPAGE_SIGNUPFILES,
PPAGE_SERVERISPS,
PPAGE_ISPINS,
PPAGE_ICW,
PPAGE_STAGE5,
PPAGE_PROGRAMS,
PPAGE_MAIL,
PPAGE_IMAP,
PPAGE_OE,
PPAGE_PRECONFIG,
PPAGE_OEVIEW,
PPAGE_SIG,
PPAGE_LDAP,
PPAGE_ADMDESC,
PPAGE_ADM,
PPAGE_STATUS,
PPAGE_FINISH
};
#define NUM_PAGES PPAGE_FINISH + 1
// typedefs
typedef struct tagREVIEWINFO
{
HINSTANCE hInst; // instance handel of the resource dll
HINSTANCE hinstExe; // instance handle of this executable
TCHAR pszName[MAX_PATH];
} REVIEWINFO;
// Function prototypes
// procs
LRESULT APIENTRY MainWndProc(HWND, UINT, WPARAM, LPARAM);
INT_PTR CALLBACK About(HWND, UINT, WPARAM, LPARAM);
// Pages for Wizard
INT_PTR CALLBACK OptionalDownload(HWND, UINT, WPARAM, LPARAM);
INT_PTR CALLBACK DownloadStatusDlgProc(HWND, UINT, WPARAM, LPARAM);
INT_PTR CALLBACK CustomComponents(HWND, UINT, WPARAM, LPARAM);
INT_PTR CALLBACK CertificatePick(HWND, UINT, WPARAM, LPARAM);
INT_PTR CALLBACK ComponentSelect(HWND, UINT, WPARAM, LPARAM);
INT_PTR CALLBACK CorpCustomizeCustom(HWND, UINT, WPARAM, LPARAM);
INT_PTR CALLBACK CustomizeCustom(HWND, UINT, WPARAM, LPARAM);
INT_PTR CALLBACK CopyComp(HWND, UINT, WPARAM, LPARAM);
INT_PTR CALLBACK ComponentUrls(HWND, UINT, WPARAM, LPARAM);
INT_PTR CALLBACK CabSignDlgProc(HWND, UINT, WPARAM, LPARAM );
INT_PTR CALLBACK CustIcon(HWND, UINT, WPARAM, LPARAM);
INT_PTR CALLBACK Favorites(HWND, UINT, WPARAM, LPARAM);
INT_PTR CALLBACK QueryAutoConfigDlgProc(HWND, UINT, WPARAM, LPARAM);
INT_PTR CALLBACK ProxySettings(HWND, UINT, WPARAM, LPARAM);
INT_PTR CALLBACK ConnectSetDlgProc(HWND, UINT, WPARAM, LPARAM);
INT_PTR CALLBACK QuerySignupDlgProc(HWND, UINT, WPARAM, LPARAM);
INT_PTR CALLBACK SignupFilesDlgProc(HWND, UINT, WPARAM, LPARAM);
INT_PTR CALLBACK ServerIspsDlgProc(HWND, UINT, WPARAM, LPARAM);
INT_PTR CALLBACK SignupInsDlgProc(HWND, UINT, WPARAM, LPARAM);
INT_PTR CALLBACK NewICWDlgProc(HWND, UINT, WPARAM, LPARAM);
INT_PTR CALLBACK ProgramsDlgProc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam);
INT_PTR CALLBACK MailServer(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam);
INT_PTR CALLBACK IMAPSettings(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam);
INT_PTR CALLBACK LDAPServer(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam);
INT_PTR CALLBACK CustomizeOE(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam);
INT_PTR CALLBACK Signature(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam);
INT_PTR CALLBACK ViewSettings(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam);
INT_PTR CALLBACK PreConfigSettings(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam);
INT_PTR CALLBACK WelcomeMessageDlgProc(HWND, UINT, WPARAM, LPARAM);
INT_PTR CALLBACK InstallDirectory(HWND, UINT, WPARAM, LPARAM);
INT_PTR CALLBACK CustUserSettings(HWND, UINT, WPARAM, LPARAM);
INT_PTR CALLBACK SecurityZonesDlgProc(HWND, UINT, WPARAM, LPARAM);
INT_PTR CALLBACK SecurityCertsDlgProc(HWND, UINT, WPARAM, LPARAM);
INT_PTR CALLBACK ISPAddRootCertDlgProc(HWND, UINT, WPARAM, LPARAM);
INT_PTR CALLBACK ActiveSetupDlgProc(HWND, UINT, WPARAM, LPARAM);
INT_PTR CALLBACK BToolbarProc(HWND, UINT, WPARAM, LPARAM);
INT_PTR CALLBACK DesktopAddOneComp(HWND,UINT, WPARAM, LPARAM);
INT_PTR CALLBACK UserAgentString(HWND, UINT, WPARAM, LPARAM);
INT_PTR CALLBACK ADMDesc(HWND, UINT, WPARAM, LPARAM);
INT_PTR CALLBACK ADMParse(HWND, UINT, WPARAM, LPARAM);
INT_PTR CALLBACK InternetConnMgr(HWND, UINT, WPARAM, LPARAM);
INT_PTR CALLBACK CustomCompName(HWND, UINT, WPARAM, LPARAM);
INT_PTR CALLBACK AddOnDlgProc(HWND, UINT, WPARAM, LPARAM);
INT_PTR CALLBACK SilentInstall(HWND, UINT, WPARAM, LPARAM);
INT_PTR CALLBACK AddEditChannel(HWND, UINT, WPARAM, LPARAM);
DWORD DownloadSiteThreadProc(LPVOID);
INT_PTR CALLBACK MediaDlgProc(HWND, UINT, WPARAM, LPARAM);
INT_PTR CALLBACK TargetProc(HWND, UINT, WPARAM, LPARAM);
INT_PTR CALLBACK IEAKLiteProc(HWND, UINT, WPARAM, LPARAM);
//functions
BOOL InitApplication(HINSTANCE);
BOOL InitInstance(HINSTANCE);
int CreateWizard(HWND);
void FillInPropertyPage( int , int, LPTSTR, DLGPROC);
void GenerateReview(HWND);
void StatusDialog(UINT);
void DoBatchAdvance(HWND hDlg);
BOOL IeakPageHelp(HWND, LPCTSTR pszData);
void EnablePages();
BOOL PageEnabled(int iPage);
void PagePrev(HWND hDlg);
void PageNext(HWND hDlg);
void DoCancel();
BOOL QueryCancel(HWND hDlg);
void CheckBatchAdvance(HWND hDlg);
BOOL ADMEnablePage(); // admwizpg.cpp
void SetBannerText(HWND hDlg);
void ChangeBannerText(HWND hDlg);
// definitions for StatusDialog( )
#define SD_STEP1 1
#define SD_STEP2 2
typedef struct tagISKINFO
{
TCHAR szISKBackBitmap[MAX_PATH];
TCHAR szISKTitleBar[128];
TCHAR szISKBtnBitmap[MAX_PATH];
DWORD dwNormalColor;
DWORD dwHighlightColor;
DWORD dwNIndex;
DWORD dwHIndex;
BOOL fCoolButtons;
} ISKINFO;
INT_PTR CALLBACK ISKBackBitmap(HWND, UINT, WPARAM, LPARAM);
INT_PTR CALLBACK CDInfoProc(HWND, UINT, WPARAM, LPARAM);
#define SIGTYPE_TEXT 1
#define SIGTYPE_FILE 2
#define SIGFLAG_OUTGOING 0x10000
#define SIGFLAG_REPLY 0x20000
// Automation HookIn
#define WM_LV_GETITEMS WM_USER+21
#define IDM_WIZARD WM_USER + 3000
#define IDM_LAST WM_USER + 3001
#define IDM_EXIT WM_USER + 3002
#define IDM_INITIALIZE WM_USER + 3003
#define IDM_BATCHADVANCE WM_USER + 3004
#define IDM_SETDEFBUTTON WM_USER + 3005
#define IDM_ERROR WM_USER + 3006
#define NUMLANG 100
#define DOWN_STATE_IDLE 0
#define DOWN_STATE_ENUM_LANG 1
#define DOWN_STATE_ENUM_URL 2
#define DOWN_STATE_SAVE_URL 3
#define KEY_TYPE_STANDARD 0 // old MS mode still used for current MS builds
#define KEY_TYPE_ENHANCED 1 // old code now unused
#define KEY_TYPE_SUPER 2 // isp
#define KEY_TYPE_CORP 3 // old code now unused
#define KEY_TYPE_SUPERCORP 4 // corp
#define MAX_INSTALL_OPTS 10
typedef struct patch_info
{
DWORD dwSize;
TCHAR szVersion[32];
TCHAR szSection[32];
} PATCHINFO, *PPATCHINFO;
typedef struct tag_component
{
int iList;
DWORD dwSize;
int iType;
int iImage;
int iPlatform;
int iCompType;
int iInstallType; // 0=after IE, 1=before IE, 2=after reboot
BOOL fVisible;
BOOL fAddOnOnly;
BOOL fCustomHide;
BOOL fNoCopy;
BOOL fAVSDupe;
BOOL fIEDependency;
PATCHINFO piPatchInfo;
BOOL afInstall[MAX_INSTALL_OPTS];
TCHAR szDisplayName[80];
TCHAR szSection[32];
LPTSTR pszAVSDupeSections;
TCHAR szCommand[32];
TCHAR szUrl[80];
TCHAR szGUID[64];
TCHAR szSwitches[80];
TCHAR szUninstall[80];
TCHAR szVersion[32];
TCHAR szModes[80];
TCHAR szPath[MAX_PATH];
TCHAR szDesc[512];
tag_component * paCompRevDeps[10];
} COMPONENT, *PCOMPONENT;
extern REVIEWINFO g_rvInfo;
extern DWORD g_dwPlatformId;
extern BOOL g_fUseShortFileName;
extern HWND g_hWizard;
extern CCifRWFile_t *g_lpCifRWFile;
extern CCifFile_t *g_lpCifFileNew;
extern CCifRWFile_t *g_lpCifRWFileDest;
extern CCifRWFile_t *g_lpCifRWFileVer;
// ProcessINSFiles flags
#define PINSF_DEFAULT 0x00
#define PINSF_DELETE 0x01
#define PINSF_COPY 0x02
#define PINSF_APPLY 0x04
#define PINSF_COPYCAB 0x08
#define PINSF_FIXINS 0x10
#define PINSF_NOCLEAR 0x20
DWORD ProcessINSFiles(LPCTSTR pcszDir, DWORD dwFlags, LPCTSTR pcszOutDir);
#define GetNumberOfINSFiles(d) (ProcessINSFiles((d), PINSF_DEFAULT, NULL))
#define DeleteINSFiles(d) (ProcessINSFiles((d), PINSF_DELETE, NULL))
#define CopyINSFiles(d, o) (ProcessINSFiles((d), PINSF_COPY, (o)))
#define ApplyINSFiles(d, i) (ProcessINSFiles((d), PINSF_APPLY, (i)))
#define CopyCabFiles(d, c) (ProcessINSFiles((d), PINSF_COPYCAB, (c)))
#define FixINSFiles(d) (ProcessINSFiles((d), PINSF_FIXINS, NULL))
#define WriteNoClearToINSFiles(d) (ProcessINSFiles((d), PINSF_NOCLEAR, NULL))
// ADM constants
#define IS_ADM TEXT("ADM")
#define IK_ADMIN TEXT("Admin")
#define POSTCUSTITEMS TEXT("PostCustItems")
#define URDCOMP TEXT("URD")
#define IE55URD_EXE TEXT("ie55urd.exe")
#define URD_GUID_STR TEXT("{71F159B0-139A-4555-BE78-D728734BB5D4}")
#define IK_URD_STR URD_GUID_STR
#endif