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

  1. #ifndef _WIZARD_H_
  2. #define _WIZARD_H_
  3. #pragma warning (disable:4189) // disable local var init'd but not ref'd warning since all
  4. // occurences in the wizard have been removed. Should be
  5. // moved to warning.h in ..\inc when other modules have been
  6. // fixed
  7. // constants
  8. #define MAX_BUF 5000
  9. #define MAX_LINE 512
  10. #define MAX_URL 2048
  11. #define MAX_BUFFER_SIZE 32767
  12. #define MAX_COPY_SIZE 32767
  13. typedef enum tagPPAGE {
  14. PPAGE_WELCOME = 0,
  15. PPAGE_OCWWELCOME = 0,
  16. PPAGE_STAGE1,
  17. PPAGE_TARGET,
  18. PPAGE_LANGUAGE,
  19. PPAGE_MEDIA,
  20. PPAGE_IEAKLITE,
  21. PPAGE_STAGE2,
  22. PPAGE_OPTDOWNLOAD,
  23. PPAGE_CUSTCOMP,
  24. PPAGE_STAGE3,
  25. PPAGE_ISKBACK,
  26. PPAGE_CDINFO,
  27. PPAGE_SETUPWIZARD,
  28. PPAGE_SILENTINSTALL,
  29. PPAGE_COMPSEL,
  30. PPAGE_COMPURLS,
  31. PPAGE_ADDON,
  32. PPAGE_INSTALLDIR,
  33. PPAGE_CORPCUSTOM,
  34. PPAGE_CUSTOMCUSTOM,
  35. PPAGE_COPYCOMP,
  36. PPAGE_ICM,
  37. PPAGE_CABSIGN,
  38. PPAGE_STAGE4,
  39. PPAGE_OCWSTAGE2,
  40. PPAGE_TITLE,
  41. PPAGE_BTOOLBARS,
  42. PPAGE_CUSTICON,
  43. PPAGE_STARTSEARCH,
  44. PPAGE_FAVORITES,
  45. PPAGE_WELCOMEMSGS,
  46. PPAGE_DESKTOP,
  47. PPAGE_DTOOLBARS,
  48. PPAGE_FOLDERMCCP,
  49. PPAGE_UASTRDLG,
  50. PPAGE_CONNECTSET,
  51. PPAGE_QUERYAUTOCONFIG,
  52. PPAGE_PROXY,
  53. PPAGE_ADDROOT,
  54. PPAGE_SECURITYCERT,
  55. PPAGE_SECURITY,
  56. PPAGE_QUERYSIGNUP,
  57. PPAGE_SIGNUPFILES,
  58. PPAGE_SERVERISPS,
  59. PPAGE_ISPINS,
  60. PPAGE_ICW,
  61. PPAGE_STAGE5,
  62. PPAGE_PROGRAMS,
  63. PPAGE_MAIL,
  64. PPAGE_IMAP,
  65. PPAGE_OE,
  66. PPAGE_PRECONFIG,
  67. PPAGE_OEVIEW,
  68. PPAGE_SIG,
  69. PPAGE_LDAP,
  70. PPAGE_ADMDESC,
  71. PPAGE_ADM,
  72. PPAGE_STATUS,
  73. PPAGE_FINISH
  74. };
  75. #define NUM_PAGES PPAGE_FINISH + 1
  76. // typedefs
  77. typedef struct tagREVIEWINFO
  78. {
  79. HINSTANCE hInst; // instance handel of the resource dll
  80. HINSTANCE hinstExe; // instance handle of this executable
  81. TCHAR pszName[MAX_PATH];
  82. } REVIEWINFO;
  83. // Function prototypes
  84. // procs
  85. LRESULT APIENTRY MainWndProc(HWND, UINT, WPARAM, LPARAM);
  86. INT_PTR CALLBACK About(HWND, UINT, WPARAM, LPARAM);
  87. // Pages for Wizard
  88. INT_PTR CALLBACK OptionalDownload(HWND, UINT, WPARAM, LPARAM);
  89. INT_PTR CALLBACK DownloadStatusDlgProc(HWND, UINT, WPARAM, LPARAM);
  90. INT_PTR CALLBACK CustomComponents(HWND, UINT, WPARAM, LPARAM);
  91. INT_PTR CALLBACK CertificatePick(HWND, UINT, WPARAM, LPARAM);
  92. INT_PTR CALLBACK ComponentSelect(HWND, UINT, WPARAM, LPARAM);
  93. INT_PTR CALLBACK CorpCustomizeCustom(HWND, UINT, WPARAM, LPARAM);
  94. INT_PTR CALLBACK CustomizeCustom(HWND, UINT, WPARAM, LPARAM);
  95. INT_PTR CALLBACK CopyComp(HWND, UINT, WPARAM, LPARAM);
  96. INT_PTR CALLBACK ComponentUrls(HWND, UINT, WPARAM, LPARAM);
  97. INT_PTR CALLBACK CabSignDlgProc(HWND, UINT, WPARAM, LPARAM );
  98. INT_PTR CALLBACK CustIcon(HWND, UINT, WPARAM, LPARAM);
  99. INT_PTR CALLBACK Favorites(HWND, UINT, WPARAM, LPARAM);
  100. INT_PTR CALLBACK QueryAutoConfigDlgProc(HWND, UINT, WPARAM, LPARAM);
  101. INT_PTR CALLBACK ProxySettings(HWND, UINT, WPARAM, LPARAM);
  102. INT_PTR CALLBACK ConnectSetDlgProc(HWND, UINT, WPARAM, LPARAM);
  103. INT_PTR CALLBACK QuerySignupDlgProc(HWND, UINT, WPARAM, LPARAM);
  104. INT_PTR CALLBACK SignupFilesDlgProc(HWND, UINT, WPARAM, LPARAM);
  105. INT_PTR CALLBACK ServerIspsDlgProc(HWND, UINT, WPARAM, LPARAM);
  106. INT_PTR CALLBACK SignupInsDlgProc(HWND, UINT, WPARAM, LPARAM);
  107. INT_PTR CALLBACK NewICWDlgProc(HWND, UINT, WPARAM, LPARAM);
  108. INT_PTR CALLBACK ProgramsDlgProc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam);
  109. INT_PTR CALLBACK MailServer(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam);
  110. INT_PTR CALLBACK IMAPSettings(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam);
  111. INT_PTR CALLBACK LDAPServer(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam);
  112. INT_PTR CALLBACK CustomizeOE(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam);
  113. INT_PTR CALLBACK Signature(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam);
  114. INT_PTR CALLBACK ViewSettings(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam);
  115. INT_PTR CALLBACK PreConfigSettings(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam);
  116. INT_PTR CALLBACK WelcomeMessageDlgProc(HWND, UINT, WPARAM, LPARAM);
  117. INT_PTR CALLBACK InstallDirectory(HWND, UINT, WPARAM, LPARAM);
  118. INT_PTR CALLBACK CustUserSettings(HWND, UINT, WPARAM, LPARAM);
  119. INT_PTR CALLBACK SecurityZonesDlgProc(HWND, UINT, WPARAM, LPARAM);
  120. INT_PTR CALLBACK SecurityCertsDlgProc(HWND, UINT, WPARAM, LPARAM);
  121. INT_PTR CALLBACK ISPAddRootCertDlgProc(HWND, UINT, WPARAM, LPARAM);
  122. INT_PTR CALLBACK ActiveSetupDlgProc(HWND, UINT, WPARAM, LPARAM);
  123. INT_PTR CALLBACK BToolbarProc(HWND, UINT, WPARAM, LPARAM);
  124. INT_PTR CALLBACK DesktopAddOneComp(HWND,UINT, WPARAM, LPARAM);
  125. INT_PTR CALLBACK UserAgentString(HWND, UINT, WPARAM, LPARAM);
  126. INT_PTR CALLBACK ADMDesc(HWND, UINT, WPARAM, LPARAM);
  127. INT_PTR CALLBACK ADMParse(HWND, UINT, WPARAM, LPARAM);
  128. INT_PTR CALLBACK InternetConnMgr(HWND, UINT, WPARAM, LPARAM);
  129. INT_PTR CALLBACK CustomCompName(HWND, UINT, WPARAM, LPARAM);
  130. INT_PTR CALLBACK AddOnDlgProc(HWND, UINT, WPARAM, LPARAM);
  131. INT_PTR CALLBACK SilentInstall(HWND, UINT, WPARAM, LPARAM);
  132. INT_PTR CALLBACK AddEditChannel(HWND, UINT, WPARAM, LPARAM);
  133. DWORD DownloadSiteThreadProc(LPVOID);
  134. INT_PTR CALLBACK MediaDlgProc(HWND, UINT, WPARAM, LPARAM);
  135. INT_PTR CALLBACK TargetProc(HWND, UINT, WPARAM, LPARAM);
  136. INT_PTR CALLBACK IEAKLiteProc(HWND, UINT, WPARAM, LPARAM);
  137. //functions
  138. BOOL InitApplication(HINSTANCE);
  139. BOOL InitInstance(HINSTANCE);
  140. int CreateWizard(HWND);
  141. void FillInPropertyPage( int , int, LPTSTR, DLGPROC);
  142. void GenerateReview(HWND);
  143. void StatusDialog(UINT);
  144. void DoBatchAdvance(HWND hDlg);
  145. BOOL IeakPageHelp(HWND, LPCTSTR pszData);
  146. void EnablePages();
  147. BOOL PageEnabled(int iPage);
  148. void PagePrev(HWND hDlg);
  149. void PageNext(HWND hDlg);
  150. void DoCancel();
  151. BOOL QueryCancel(HWND hDlg);
  152. void CheckBatchAdvance(HWND hDlg);
  153. BOOL ADMEnablePage(); // admwizpg.cpp
  154. void SetBannerText(HWND hDlg);
  155. void ChangeBannerText(HWND hDlg);
  156. // definitions for StatusDialog( )
  157. #define SD_STEP1 1
  158. #define SD_STEP2 2
  159. typedef struct tagISKINFO
  160. {
  161. TCHAR szISKBackBitmap[MAX_PATH];
  162. TCHAR szISKTitleBar[128];
  163. TCHAR szISKBtnBitmap[MAX_PATH];
  164. DWORD dwNormalColor;
  165. DWORD dwHighlightColor;
  166. DWORD dwNIndex;
  167. DWORD dwHIndex;
  168. BOOL fCoolButtons;
  169. } ISKINFO;
  170. INT_PTR CALLBACK ISKBackBitmap(HWND, UINT, WPARAM, LPARAM);
  171. INT_PTR CALLBACK CDInfoProc(HWND, UINT, WPARAM, LPARAM);
  172. #define SIGTYPE_TEXT 1
  173. #define SIGTYPE_FILE 2
  174. #define SIGFLAG_OUTGOING 0x10000
  175. #define SIGFLAG_REPLY 0x20000
  176. // Automation HookIn
  177. #define WM_LV_GETITEMS WM_USER+21
  178. #define IDM_WIZARD WM_USER + 3000
  179. #define IDM_LAST WM_USER + 3001
  180. #define IDM_EXIT WM_USER + 3002
  181. #define IDM_INITIALIZE WM_USER + 3003
  182. #define IDM_BATCHADVANCE WM_USER + 3004
  183. #define IDM_SETDEFBUTTON WM_USER + 3005
  184. #define IDM_ERROR WM_USER + 3006
  185. #define NUMLANG 100
  186. #define DOWN_STATE_IDLE 0
  187. #define DOWN_STATE_ENUM_LANG 1
  188. #define DOWN_STATE_ENUM_URL 2
  189. #define DOWN_STATE_SAVE_URL 3
  190. #define KEY_TYPE_STANDARD 0 // old MS mode still used for current MS builds
  191. #define KEY_TYPE_ENHANCED 1 // old code now unused
  192. #define KEY_TYPE_SUPER 2 // isp
  193. #define KEY_TYPE_CORP 3 // old code now unused
  194. #define KEY_TYPE_SUPERCORP 4 // corp
  195. #define MAX_INSTALL_OPTS 10
  196. typedef struct patch_info
  197. {
  198. DWORD dwSize;
  199. TCHAR szVersion[32];
  200. TCHAR szSection[32];
  201. } PATCHINFO, *PPATCHINFO;
  202. typedef struct tag_component
  203. {
  204. int iList;
  205. DWORD dwSize;
  206. int iType;
  207. int iImage;
  208. int iPlatform;
  209. int iCompType;
  210. int iInstallType; // 0=after IE, 1=before IE, 2=after reboot
  211. BOOL fVisible;
  212. BOOL fAddOnOnly;
  213. BOOL fCustomHide;
  214. BOOL fNoCopy;
  215. BOOL fAVSDupe;
  216. BOOL fIEDependency;
  217. PATCHINFO piPatchInfo;
  218. BOOL afInstall[MAX_INSTALL_OPTS];
  219. TCHAR szDisplayName[80];
  220. TCHAR szSection[32];
  221. LPTSTR pszAVSDupeSections;
  222. TCHAR szCommand[32];
  223. TCHAR szUrl[80];
  224. TCHAR szGUID[64];
  225. TCHAR szSwitches[80];
  226. TCHAR szUninstall[80];
  227. TCHAR szVersion[32];
  228. TCHAR szModes[80];
  229. TCHAR szPath[MAX_PATH];
  230. TCHAR szDesc[512];
  231. tag_component * paCompRevDeps[10];
  232. } COMPONENT, *PCOMPONENT;
  233. extern REVIEWINFO g_rvInfo;
  234. extern DWORD g_dwPlatformId;
  235. extern BOOL g_fUseShortFileName;
  236. extern HWND g_hWizard;
  237. extern CCifRWFile_t *g_lpCifRWFile;
  238. extern CCifFile_t *g_lpCifFileNew;
  239. extern CCifRWFile_t *g_lpCifRWFileDest;
  240. extern CCifRWFile_t *g_lpCifRWFileVer;
  241. // ProcessINSFiles flags
  242. #define PINSF_DEFAULT 0x00
  243. #define PINSF_DELETE 0x01
  244. #define PINSF_COPY 0x02
  245. #define PINSF_APPLY 0x04
  246. #define PINSF_COPYCAB 0x08
  247. #define PINSF_FIXINS 0x10
  248. #define PINSF_NOCLEAR 0x20
  249. DWORD ProcessINSFiles(LPCTSTR pcszDir, DWORD dwFlags, LPCTSTR pcszOutDir);
  250. #define GetNumberOfINSFiles(d) (ProcessINSFiles((d), PINSF_DEFAULT, NULL))
  251. #define DeleteINSFiles(d) (ProcessINSFiles((d), PINSF_DELETE, NULL))
  252. #define CopyINSFiles(d, o) (ProcessINSFiles((d), PINSF_COPY, (o)))
  253. #define ApplyINSFiles(d, i) (ProcessINSFiles((d), PINSF_APPLY, (i)))
  254. #define CopyCabFiles(d, c) (ProcessINSFiles((d), PINSF_COPYCAB, (c)))
  255. #define FixINSFiles(d) (ProcessINSFiles((d), PINSF_FIXINS, NULL))
  256. #define WriteNoClearToINSFiles(d) (ProcessINSFiles((d), PINSF_NOCLEAR, NULL))
  257. // ADM constants
  258. #define IS_ADM TEXT("ADM")
  259. #define IK_ADMIN TEXT("Admin")
  260. #define POSTCUSTITEMS TEXT("PostCustItems")
  261. #define URDCOMP TEXT("URD")
  262. #define IE55URD_EXE TEXT("ie55urd.exe")
  263. #define URD_GUID_STR TEXT("{71F159B0-139A-4555-BE78-D728734BB5D4}")
  264. #define IK_URD_STR URD_GUID_STR
  265. #endif