diff --git a/reactos/lib/syssetup/install.c b/reactos/lib/syssetup/install.c index 68dd96c1b21..d7b1ad19207 100644 --- a/reactos/lib/syssetup/install.c +++ b/reactos/lib/syssetup/install.c @@ -50,8 +50,6 @@ #include "globals.h" #include "resource.h" -#define VMWINST - /* GLOBALS ******************************************************************/ @@ -80,30 +78,6 @@ DebugPrint(char* fmt,...) } -#ifdef VMWINST -static BOOL -RunVMWInstall(VOID) -{ - PROCESS_INFORMATION ProcInfo; - STARTUPINFO si; - WCHAR InstallName[] = L"vmwinst.exe"; - - ZeroMemory(&si, sizeof(STARTUPINFO)); - si.cb = sizeof(STARTUPINFO); - - if(CreateProcess(NULL, InstallName, NULL, NULL, TRUE, NORMAL_PRIORITY_CLASS, - NULL, NULL, &si, &ProcInfo)) - { - WaitForSingleObject(ProcInfo.hProcess, INFINITE); - CloseHandle(ProcInfo.hThread); - CloseHandle(ProcInfo.hProcess); - return TRUE; - } - return FALSE; -} -#endif - - HRESULT CreateShellLink(LPCTSTR linkPath, LPCTSTR cmd, LPCTSTR arg, LPCTSTR dir, LPCTSTR iconPath, int icon_nr, LPCTSTR comment) { IShellLink* psl; @@ -561,15 +535,6 @@ InstallReactOS (HINSTANCE hInstance) SetupCloseInfFile(hSysSetupInf); -#ifdef VMWINST - RunVMWInstall(); -#endif - - DialogBox(hDllInstance, - MAKEINTRESOURCE(IDD_RESTART), - NULL, - RestartDlgProc); - return 0; } diff --git a/reactos/lib/syssetup/resource.h b/reactos/lib/syssetup/resource.h index 886be065eed..1b233101508 100644 --- a/reactos/lib/syssetup/resource.h +++ b/reactos/lib/syssetup/resource.h @@ -57,10 +57,7 @@ #define IDD_FINISHPAGE 1070 #define IDC_FINISHTITLE 1071 - - -#define IDD_RESTART 2000 -#define IDC_RESTART_PROGRESS 2001 +#define IDC_RESTART_PROGRESS 1072 #define IDD_GPL 2100 #define IDC_GPL_TEXT 2101 diff --git a/reactos/lib/syssetup/syssetup_Cz.rc b/reactos/lib/syssetup/syssetup_Cz.rc index 57567a548cf..4c6cfae4e39 100644 --- a/reactos/lib/syssetup/syssetup_Cz.rc +++ b/reactos/lib/syssetup/syssetup_Cz.rc @@ -144,24 +144,12 @@ BEGIN LTEXT "Completing the ReactOS Setup Wizard",IDC_FINISHTITLE,115,9,195,37 LTEXT "You have successfully completed ReactOS Setup.\n\n" \ "When you click Finish, your computer will restart.", IDC_STATIC, 115, 58, 195, 100 + CONTROL "", IDC_RESTART_PROGRESS, "msctls_progress32", PBS_SMOOTH | WS_CHILD | WS_VISIBLE | WS_BORDER, 115, 138, 188, 12 LTEXT "If there is a CD in a drive, remove it. Then, to restart "\ "your computer, click Finish.", IDC_STATIC, 115, 160, 195, 31 END -IDD_RESTART DIALOG 6, 18, 245, 116 -STYLE DS_MODALFRAME | DS_CENTER | WS_POPUP | WS_VISIBLE | WS_CAPTION -CAPTION "Instatalace ReactOSu" -FONT 8, "MS Shell Dlg" -BEGIN - LTEXT "Instalace ReactOSu byla spn dokonena.", -1, 13, 12, 212, 16 - LTEXT "Pro pokraovn potebuje instalan program restartovat V pota. Pota bude automaticky restartovn za 15 sekund nebo zmknete-li tlatko Restartovat.", -1, 13, 33, 212, 32 -/* GROUPBOX "", -1, 7, 3, 231, 106 */ - CONTROL "", IDC_RESTART_PROGRESS, "msctls_progress32", PBS_SMOOTH | WS_CHILD | WS_VISIBLE | WS_BORDER, 13, 70, 212, 8 - PUSHBUTTON "&Restartovat", IDOK, 98, 87, 50, 14 -END - - IDD_GPL DIALOG 0, 0, 333, 230 STYLE DS_CENTER | DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU CAPTION "GNU General Public License" diff --git a/reactos/lib/syssetup/syssetup_De.rc b/reactos/lib/syssetup/syssetup_De.rc index 436b07a7b51..d42c23cec5e 100644 --- a/reactos/lib/syssetup/syssetup_De.rc +++ b/reactos/lib/syssetup/syssetup_De.rc @@ -146,26 +146,12 @@ BEGIN LTEXT "Fertigstellung des ReactOS Setup Assistenten",IDC_FINISHTITLE,115,9,195,37 LTEXT "Das ReactOS Setup wurde erfolgreich fertiggestellt.\n\n" \ "Wenn Sie auf Fertig klicken, wird der Computer neu gestartet.", IDC_STATIC, 115, 58, 195, 100 + CONTROL "", IDC_RESTART_PROGRESS, "msctls_progress32", PBS_SMOOTH | WS_CHILD | WS_VISIBLE | WS_BORDER, 115, 138, 188, 12 LTEXT "Entfernen Sie die CD, wenn vorhanden. Danach klicken Sie "\ "auf Fertig, um den Computer neu zu starten.", IDC_STATIC, 115, 160, 195, 31 END -IDD_RESTART DIALOG 6, 18, 245, 116 -STYLE DS_MODALFRAME | DS_CENTER | WS_POPUP | WS_VISIBLE | WS_CAPTION -CAPTION "ReactOS Installation" -FONT 8, "MS Shell Dlg" -BEGIN - LTEXT "Die Installation von ReactOS wurde erfolgreich fertiggestellt.", IDC_STATIC, 13, 12, 212, 16 - LTEXT "Um fortzufahren muss Ihr Computer neu gestartet werden. "\ - "Der Computer wird in 15 Minuten automatisch neu gestartet oder wenn Sie auf "\ - "Neustart klicken.", IDC_STATIC, 13, 33, 212, 32 -/* GROUPBOX "", -1, 7, 3, 231, 106 */ - CONTROL "", IDC_RESTART_PROGRESS, "msctls_progress32", PBS_SMOOTH | WS_CHILD | WS_VISIBLE | WS_BORDER, 13, 70, 212, 8 - PUSHBUTTON "&Neustart", IDOK, 98, 87, 50, 14 -END - - IDD_GPL DIALOG 0, 0, 333, 230 STYLE DS_CENTER | DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU CAPTION "GNU General Public License" diff --git a/reactos/lib/syssetup/syssetup_En.rc b/reactos/lib/syssetup/syssetup_En.rc index 4f4d63651e6..e0068e8e3d5 100644 --- a/reactos/lib/syssetup/syssetup_En.rc +++ b/reactos/lib/syssetup/syssetup_En.rc @@ -147,26 +147,12 @@ BEGIN LTEXT "Completing the ReactOS Setup Wizard", IDC_FINISHTITLE, 115, 8, 195, 24 LTEXT "You have successfully completed ReactOS Setup.\n\n" \ "When you click Finish, your computer will restart.", IDC_STATIC, 115, 40, 195, 100 + CONTROL "", IDC_RESTART_PROGRESS, "msctls_progress32", PBS_SMOOTH | WS_CHILD | WS_VISIBLE | WS_BORDER, 115, 138, 188, 12 LTEXT "If there is a CD in a drive, remove it. Then, to restart "\ "your computer, click Finish.", IDC_STATIC, 115, 169, 195, 17 END -IDD_RESTART DIALOG 6, 18, 245, 116 -STYLE DS_MODALFRAME | DS_CENTER | WS_POPUP | WS_VISIBLE | WS_CAPTION -CAPTION "ReactOS Installation" -FONT 8, "MS Shell Dlg" -BEGIN - LTEXT "Installation of ReactOS was successfully completed.", IDC_STATIC, 13, 12, 212, 16 - LTEXT "In order to continue, the installation program needs to restart your computer. "\ - "The computer will be automatically restarted in 15 seconds or if you press the "\ - "Restart button.", IDC_STATIC, 13, 33, 212, 32 -/* GROUPBOX "", -1, 7, 3, 231, 106 */ - CONTROL "", IDC_RESTART_PROGRESS, "msctls_progress32", PBS_SMOOTH | WS_CHILD | WS_VISIBLE | WS_BORDER, 13, 70, 212, 8 - PUSHBUTTON "&Restart", IDOK, 98, 87, 50, 14 -END - - IDD_GPL DIALOG 0, 0, 333, 230 STYLE DS_CENTER | DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU CAPTION "GNU General Public License" diff --git a/reactos/lib/syssetup/syssetup_Fr.rc b/reactos/lib/syssetup/syssetup_Fr.rc index 141d96fcc21..d941d459e6e 100644 --- a/reactos/lib/syssetup/syssetup_Fr.rc +++ b/reactos/lib/syssetup/syssetup_Fr.rc @@ -147,26 +147,12 @@ BEGIN LTEXT "L'assistant d'installation de ReactOS est termin.",IDC_FINISHTITLE,115,9,195,37 LTEXT "Vous avez install avec succs ReactOS.\n\n" \ "En cliquant sur Terminer, votre ordinateur va redmarrer.", IDC_STATIC, 115, 58, 195, 100 + CONTROL "", IDC_RESTART_PROGRESS, "msctls_progress32", PBS_SMOOTH | WS_CHILD | WS_VISIBLE | WS_BORDER, 115, 138, 188, 12 LTEXT "S'il y a un CD dans un lecteur, enlevez-le. Puis, pour redmarrer "\ "votre ordinateur, cliquez sur Terminer.", IDC_STATIC, 115, 160, 195, 31 END -IDD_RESTART DIALOG 6, 18, 245, 116 -STYLE DS_MODALFRAME | DS_CENTER | WS_POPUP | WS_VISIBLE | WS_CAPTION -CAPTION "Installation de ReactOS" -FONT 8, "MS Shell Dlg" -BEGIN - LTEXT "L'assistant d'installation de ReactOS est termin.", IDC_STATIC, 13, 12, 212, 16 - LTEXT "Pour continuer, l'assistant a besoin de redmarrer votre ordinateur. "\ - "L'ordinateur redmarrera automatiquement dans 15 secondes, ou quand vous appuyerez "\ - "sur le bouton Redmarrer.", IDC_STATIC, 13, 33, 212, 32 -/* GROUPBOX "", -1, 7, 3, 231, 106 */ - CONTROL "", IDC_RESTART_PROGRESS, "msctls_progress32", PBS_SMOOTH | WS_CHILD | WS_VISIBLE | WS_BORDER, 13, 70, 212, 8 - PUSHBUTTON "&Redmarrer", IDOK, 98, 87, 50, 14 -END - - IDD_GPL DIALOG 0, 0, 333, 230 STYLE DS_CENTER | DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU CAPTION "GNU General Public License" diff --git a/reactos/lib/syssetup/syssetup_Ja.rc b/reactos/lib/syssetup/syssetup_Ja.rc index 4eba1e02886..27810f16241 100644 --- a/reactos/lib/syssetup/syssetup_Ja.rc +++ b/reactos/lib/syssetup/syssetup_Ja.rc @@ -147,26 +147,12 @@ BEGIN LTEXT "ReactOS ZbgAbv EBU[h܂", IDC_FINISHTITLE, 115, 8, 195, 24 LTEXT "ReactOS ZbgAbvɊ܂B\n\n" \ "[] NbNƁARs[^ċN܂B", IDC_STATIC, 115, 40, 195, 100 + CONTROL "", IDC_RESTART_PROGRESS, "msctls_progress32", PBS_SMOOTH | WS_CHILD | WS_VISIBLE | WS_BORDER, 115, 138, 188, 12 LTEXT "hCu CD Ăꍇ́ACD oĂBCD o"\ "A[] NbNăRs[^ċNĂB", IDC_STATIC, 115, 169, 195, 17 END -IDD_RESTART DIALOG 6, 18, 245, 116 -STYLE DS_MODALFRAME | DS_CENTER | WS_POPUP | WS_VISIBLE | WS_CAPTION -CAPTION "ReactOS ̃CXg[" -FONT 9, "MS UI Gothic" -BEGIN - LTEXT "ReactOS ͐ɃCXg[܂B", IDC_STATIC, 13, 12, 212, 16 - LTEXT "CXg[ vO𑱂ɂ́ARs[^ċNKv܂B"\ - "Rs[^ 15 bɎIɍċN܂BċNɂ"\ - "[ċN] {^NbNĂB", IDC_STATIC, 13, 33, 212, 32 -/* GROUPBOX "", -1, 7, 3, 231, 106 */ - CONTROL "", IDC_RESTART_PROGRESS, "msctls_progress32", PBS_SMOOTH | WS_CHILD | WS_VISIBLE | WS_BORDER, 13, 70, 212, 8 - PUSHBUTTON "ċN(&R)", IDOK, 98, 87, 50, 14 -END - - IDD_GPL DIALOG 0, 0, 333, 230 STYLE DS_CENTER | DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU CAPTION "GNU General Public License" diff --git a/reactos/lib/syssetup/syssetup_Nl.rc b/reactos/lib/syssetup/syssetup_Nl.rc index 5678d8b3dc3..f00701fa0ab 100644 --- a/reactos/lib/syssetup/syssetup_Nl.rc +++ b/reactos/lib/syssetup/syssetup_Nl.rc @@ -147,26 +147,12 @@ BEGIN LTEXT "Completing the ReactOS Setup Wizard", IDC_FINISHTITLE, 115, 8, 195, 24 LTEXT "You have successfully completed ReactOS Setup.\n\n" \ "When you click Finish, your computer will restart.", IDC_STATIC, 115, 40, 195, 100 + CONTROL "", IDC_RESTART_PROGRESS, "msctls_progress32", PBS_SMOOTH | WS_CHILD | WS_VISIBLE | WS_BORDER, 115, 138, 188, 12 LTEXT "If there is a CD in a drive, remove it. Then, to restart "\ "your computer, click Finish.", IDC_STATIC, 115, 169, 195, 17 END -IDD_RESTART DIALOG 6, 18, 245, 116 -STYLE DS_MODALFRAME | DS_CENTER | WS_POPUP | WS_VISIBLE | WS_CAPTION -CAPTION "ReactOS Installation" -FONT 8, "MS Shell Dlg" -BEGIN - LTEXT "Installation of ReactOS was successfully completed.", IDC_STATIC, 13, 12, 212, 16 - LTEXT "In order to continue, the installation program needs to restart your computer. "\ - "The computer will be automatically restarted in 15 seconds or if you press the "\ - "Restart button.", IDC_STATIC, 13, 33, 212, 32 -/* GROUPBOX "", -1, 7, 3, 231, 106 */ - CONTROL "", IDC_RESTART_PROGRESS, "msctls_progress32", PBS_SMOOTH | WS_CHILD | WS_VISIBLE | WS_BORDER, 13, 70, 212, 8 - PUSHBUTTON "&Restart", IDOK, 98, 87, 50, 14 -END - - IDD_GPL DIALOG 0, 0, 333, 230 STYLE DS_CENTER | DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU CAPTION "GNU General Public License" diff --git a/reactos/lib/syssetup/wizard.c b/reactos/lib/syssetup/wizard.c index d52409113da..3d246c30bfa 100644 --- a/reactos/lib/syssetup/wizard.c +++ b/reactos/lib/syssetup/wizard.c @@ -38,6 +38,7 @@ #include "globals.h" #include "resource.h" +#define VMWINST /* GLOBALS ******************************************************************/ @@ -46,6 +47,47 @@ static SETUPDATA SetupData; /* FUNCTIONS ****************************************************************/ +#ifdef VMWINST +static BOOL +RunVMWInstall(HWND hWnd) +{ + PROCESS_INFORMATION ProcInfo; + MSG msg; + DWORD ret; + STARTUPINFO si = {0}; + WCHAR InstallName[] = L"vmwinst.exe"; + + si.cb = sizeof(STARTUPINFO); + + if(CreateProcess(NULL, InstallName, NULL, NULL, TRUE, NORMAL_PRIORITY_CLASS, + NULL, NULL, &si, &ProcInfo)) + { + EnableWindow(hWnd, FALSE); + for (;;) + { + while (PeekMessage(&msg, NULL, 0, 0, PM_REMOVE)) + { + if (msg.message == WM_QUIT) + goto done; + TranslateMessage(&msg); + DispatchMessage(&msg); + } + + ret = MsgWaitForMultipleObjects(1, &ProcInfo.hProcess, FALSE, INFINITE, QS_ALLEVENTS | QS_ALLINPUT); + if (ret == WAIT_OBJECT_0) + break; + } +done: + EnableWindow(hWnd, TRUE); + + CloseHandle(ProcInfo.hThread); + CloseHandle(ProcInfo.hProcess); + return TRUE; + } + return FALSE; +} +#endif + static VOID CenterWindow(HWND hWnd) { @@ -96,7 +138,7 @@ CreateTitleFont(VOID) } -INT_PTR CALLBACK +static INT_PTR CALLBACK GplDlgProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, @@ -165,7 +207,7 @@ GplDlgProc(HWND hwndDlg, } -INT_PTR CALLBACK +static INT_PTR CALLBACK WelcomeDlgProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, @@ -231,7 +273,7 @@ WelcomeDlgProc(HWND hwndDlg, } -INT_PTR CALLBACK +static INT_PTR CALLBACK AckPageDlgProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, @@ -323,7 +365,7 @@ AckPageDlgProc(HWND hwndDlg, } -INT_PTR CALLBACK +static INT_PTR CALLBACK OwnerPageDlgProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, @@ -413,7 +455,7 @@ OwnerPageDlgProc(HWND hwndDlg, } -INT_PTR CALLBACK +static INT_PTR CALLBACK ComputerPageDlgProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, @@ -576,8 +618,8 @@ SetKeyboardLayoutName(HWND hwnd) static VOID RunInputLocalePage(HWND hwnd) { - PROPSHEETPAGE psp; - PROPSHEETHEADER psh; + PROPSHEETPAGE psp = {0}; + PROPSHEETHEADER psh = {0}; HMODULE hDll; // TCHAR Caption[256]; @@ -585,7 +627,6 @@ RunInputLocalePage(HWND hwnd) if (hDll == NULL) return; - ZeroMemory(&psp, sizeof(PROPSHEETPAGE)); psp.dwSize = sizeof(PROPSHEETPAGE); psp.dwFlags = PSP_DEFAULT; psp.hInstance = hDll; @@ -594,7 +635,6 @@ RunInputLocalePage(HWND hwnd) // LoadString(hDll, IDS_CPLNAME, Caption, sizeof(Caption) / sizeof(TCHAR)); - ZeroMemory(&psh, sizeof(PROPSHEETHEADER)); psh.dwSize = sizeof(PROPSHEETHEADER); psh.dwFlags = PSH_PROPSHEETPAGE | PSH_PROPTITLE; // psh.hwndParent = hwnd; @@ -611,7 +651,7 @@ RunInputLocalePage(HWND hwnd) } -INT_PTR CALLBACK +static INT_PTR CALLBACK LocalePageDlgProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, @@ -1178,7 +1218,7 @@ SetSystemLocalTime(HWND hwnd, PSETUPDATA SetupData) } -INT_PTR CALLBACK +static INT_PTR CALLBACK DateTimePageDlgProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, @@ -1252,7 +1292,7 @@ DateTimePageDlgProc(HWND hwndDlg, } -INT_PTR CALLBACK +static INT_PTR CALLBACK ProcessPageDlgProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, @@ -1280,12 +1320,24 @@ ProcessPageDlgProc(HWND hwndDlg, hWndProgress = GetDlgItem(hwndDlg, IDC_PROCESSPROGRESS); Position = SendMessage(hWndProgress, PBM_GETPOS, 0, 0); - if (Position == 300) + if (Position == 2) { + KillTimer(hwndDlg, 1); + + /* Enable the Back and Next buttons */ + PropSheet_SetWizButtons(GetParent(hwndDlg), PSWIZB_NEXT); PropSheet_PressButton(GetParent(hwndDlg), PSBTN_NEXT); } else { +#ifdef VMWINST + if (Position == 1) + { + KillTimer(hwndDlg, 1); + RunVMWInstall(GetParent(hwndDlg)); + SetTimer(hwndDlg, 1, 50, NULL); + } +#endif SendMessage(hWndProgress, PBM_SETPOS, Position + 1, 0); } } @@ -1302,14 +1354,11 @@ ProcessPageDlgProc(HWND hwndDlg, PropSheet_SetWizButtons(GetParent(hwndDlg), 0); SendDlgItemMessage(hwndDlg, IDC_PROCESSPROGRESS, PBM_SETRANGE, 0, - MAKELPARAM(0, 300)); + MAKELPARAM(0, 2)); SetTimer(hwndDlg, 1, 50, NULL); break; case PSN_WIZNEXT: - - /* Enable the Back and Next buttons */ - PropSheet_SetWizButtons(GetParent(hwndDlg), PSWIZB_BACK | PSWIZB_NEXT); break; default: @@ -1327,7 +1376,7 @@ ProcessPageDlgProc(HWND hwndDlg, -INT_PTR CALLBACK +static INT_PTR CALLBACK FinishDlgProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, @@ -1352,6 +1401,25 @@ FinishDlgProc(HWND hwndDlg, } break; + case WM_TIMER: + { + INT Position; + HWND hWndProgress; + + hWndProgress = GetDlgItem(hwndDlg, IDC_RESTART_PROGRESS); + Position = SendMessage(hWndProgress, PBM_GETPOS, 0, 0); + if (Position == 300) + { + KillTimer(hwndDlg, 1); + PropSheet_PressButton(GetParent(hwndDlg), PSBTN_FINISH); + } + else + { + SendMessage(hWndProgress, PBM_SETPOS, Position + 1, 0); + } + } + return TRUE; + case WM_NOTIFY: { LPNMHDR lpnm = (LPNMHDR)lParam; @@ -1361,11 +1429,21 @@ FinishDlgProc(HWND hwndDlg, case PSN_SETACTIVE: /* Enable the correct buttons on for the active page */ PropSheet_SetWizButtons(GetParent(hwndDlg), PSWIZB_BACK | PSWIZB_FINISH); + + SendDlgItemMessage(hwndDlg, IDC_RESTART_PROGRESS, PBM_SETRANGE, 0, + MAKELPARAM(0, 300)); + SendDlgItemMessage(hwndDlg, IDC_RESTART_PROGRESS, PBM_SETPOS, 0, 0); + SetTimer(hwndDlg, 1, 50, NULL); break; case PSN_WIZBACK: /* Handle a Back button click, if necessary */ - break; + KillTimer(hwndDlg, 1); + + /* Skip the progress page */ + PropSheet_SetCurSelByID(GetParent(hwndDlg), IDD_DATETIMEPAGE); + SetWindowLong(hwndDlg, DWL_MSGRESULT, -1); + return TRUE; case PSN_WIZFINISH: /* Handle a Finish button click, if necessary */ @@ -1390,20 +1468,20 @@ InstallWizard(VOID) { PROPSHEETHEADER psh; HPROPSHEETPAGE ahpsp[8]; - PROPSHEETPAGE psp; + PROPSHEETPAGE psp = {0}; + UINT nPages = 0; /* Clear setup data */ ZeroMemory(&SetupData, sizeof(SETUPDATA)); /* Create the Welcome page */ - ZeroMemory (&psp, sizeof(PROPSHEETPAGE)); psp.dwSize = sizeof(PROPSHEETPAGE); psp.dwFlags = PSP_DEFAULT | PSP_HIDEHEADER; psp.hInstance = hDllInstance; psp.lParam = (LPARAM)&SetupData; psp.pfnDlgProc = WelcomeDlgProc; psp.pszTemplate = MAKEINTRESOURCE(IDD_WELCOMEPAGE); - ahpsp[0] = CreatePropertySheetPage(&psp); + ahpsp[nPages++] = CreatePropertySheetPage(&psp); /* Create the Acknowledgements page */ psp.dwFlags = PSP_DEFAULT | PSP_USEHEADERTITLE | PSP_USEHEADERSUBTITLE; @@ -1411,7 +1489,7 @@ InstallWizard(VOID) psp.pszHeaderSubTitle = MAKEINTRESOURCE(IDS_ACKSUBTITLE); psp.pszTemplate = MAKEINTRESOURCE(IDD_ACKPAGE); psp.pfnDlgProc = AckPageDlgProc; - ahpsp[1] = CreatePropertySheetPage(&psp); + ahpsp[nPages++] = CreatePropertySheetPage(&psp); /* Create the Owner page */ psp.dwFlags = PSP_DEFAULT | PSP_USEHEADERTITLE | PSP_USEHEADERSUBTITLE; @@ -1419,7 +1497,7 @@ InstallWizard(VOID) psp.pszHeaderSubTitle = MAKEINTRESOURCE(IDS_OWNERSUBTITLE); psp.pszTemplate = MAKEINTRESOURCE(IDD_OWNERPAGE); psp.pfnDlgProc = OwnerPageDlgProc; - ahpsp[2] = CreatePropertySheetPage(&psp); + ahpsp[nPages++] = CreatePropertySheetPage(&psp); /* Create the Computer page */ psp.dwFlags = PSP_DEFAULT | PSP_USEHEADERTITLE | PSP_USEHEADERSUBTITLE; @@ -1427,7 +1505,7 @@ InstallWizard(VOID) psp.pszHeaderSubTitle = MAKEINTRESOURCE(IDS_COMPUTERSUBTITLE); psp.pfnDlgProc = ComputerPageDlgProc; psp.pszTemplate = MAKEINTRESOURCE(IDD_COMPUTERPAGE); - ahpsp[3] = CreatePropertySheetPage(&psp); + ahpsp[nPages++] = CreatePropertySheetPage(&psp); /* Create the Locale page */ @@ -1436,7 +1514,7 @@ InstallWizard(VOID) psp.pszHeaderSubTitle = MAKEINTRESOURCE(IDS_LOCALESUBTITLE); psp.pfnDlgProc = LocalePageDlgProc; psp.pszTemplate = MAKEINTRESOURCE(IDD_LOCALEPAGE); - ahpsp[4] = CreatePropertySheetPage(&psp); + ahpsp[nPages++] = CreatePropertySheetPage(&psp); /* Create the DateTime page */ @@ -1445,32 +1523,30 @@ InstallWizard(VOID) psp.pszHeaderSubTitle = MAKEINTRESOURCE(IDS_DATETIMESUBTITLE); psp.pfnDlgProc = DateTimePageDlgProc; psp.pszTemplate = MAKEINTRESOURCE(IDD_DATETIMEPAGE); - ahpsp[5] = CreatePropertySheetPage(&psp); + ahpsp[nPages++] = CreatePropertySheetPage(&psp); /* Create the Process page */ -#if 0 psp.dwFlags = PSP_DEFAULT | PSP_USEHEADERTITLE | PSP_USEHEADERSUBTITLE; psp.pszHeaderTitle = MAKEINTRESOURCE(IDS_PROCESSTITLE); psp.pszHeaderSubTitle = MAKEINTRESOURCE(IDS_PROCESSSUBTITLE); psp.pfnDlgProc = ProcessPageDlgProc; psp.pszTemplate = MAKEINTRESOURCE(IDD_PROCESSPAGE); - ahpsp[6] = CreatePropertySheetPage(&psp); -#endif + ahpsp[nPages++] = CreatePropertySheetPage(&psp); /* Create the Finish page */ psp.dwFlags = PSP_DEFAULT | PSP_HIDEHEADER; psp.pfnDlgProc = FinishDlgProc; psp.pszTemplate = MAKEINTRESOURCE(IDD_FINISHPAGE); - ahpsp[6] = CreatePropertySheetPage(&psp); + ahpsp[nPages++] = CreatePropertySheetPage(&psp); /* Create the property sheet */ psh.dwSize = sizeof(PROPSHEETHEADER); psh.dwFlags = PSH_WIZARD97 | PSH_WATERMARK | PSH_HEADER; psh.hInstance = hDllInstance; psh.hwndParent = NULL; - psh.nPages = 7; + psh.nPages = nPages; psh.nStartPage = 0; psh.phpage = ahpsp; psh.pszbmWatermark = MAKEINTRESOURCE(IDB_WATERMARK);