integrate the reboot dialog into the wizard
Modified: trunk/reactos/lib/syssetup/install.c
Modified: trunk/reactos/lib/syssetup/resource.h
Modified: trunk/reactos/lib/syssetup/syssetup_Cz.rc
Modified: trunk/reactos/lib/syssetup/syssetup_De.rc
Modified: trunk/reactos/lib/syssetup/syssetup_En.rc
Modified: trunk/reactos/lib/syssetup/syssetup_Fr.rc
Modified: trunk/reactos/lib/syssetup/syssetup_Ja.rc
Modified: trunk/reactos/lib/syssetup/syssetup_Nl.rc
Modified: trunk/reactos/lib/syssetup/wizard.c
_____
Modified: trunk/reactos/lib/syssetup/install.c
--- trunk/reactos/lib/syssetup/install.c 2005-10-27 22:16:52 UTC
(rev 18812)
+++ trunk/reactos/lib/syssetup/install.c 2005-10-27 22:33:17 UTC
(rev 18813)
@@ -50,9 +50,7 @@
#include "globals.h"
#include "resource.h"
-#define VMWINST
-
/* GLOBALS
******************************************************************/
PSID DomainSid = NULL;
@@ -80,30 +78,6 @@
}
-#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 @@
SetupCloseInfFile(hSysSetupInf);
-#ifdef VMWINST
- RunVMWInstall();
-#endif
-
- DialogBox(hDllInstance,
- MAKEINTRESOURCE(IDD_RESTART),
- NULL,
- RestartDlgProc);
-
return 0;
}
_____
Modified: trunk/reactos/lib/syssetup/resource.h
--- trunk/reactos/lib/syssetup/resource.h 2005-10-27 22:16:52 UTC
(rev 18812)
+++ trunk/reactos/lib/syssetup/resource.h 2005-10-27 22:33:17 UTC
(rev 18813)
@@ -57,11 +57,8 @@
#define IDD_FINISHPAGE 1070
#define IDC_FINISHTITLE 1071
+#define IDC_RESTART_PROGRESS 1072
-
-#define IDD_RESTART 2000
-#define IDC_RESTART_PROGRESS 2001
-
#define IDD_GPL 2100
#define IDC_GPL_TEXT 2101
_____
Modified: trunk/reactos/lib/syssetup/syssetup_Cz.rc
--- trunk/reactos/lib/syssetup/syssetup_Cz.rc 2005-10-27 22:16:52 UTC
(rev 18812)
+++ trunk/reactos/lib/syssetup/syssetup_Cz.rc 2005-10-27 22:33:17 UTC
(rev 18813)
@@ -144,24 +144,12 @@
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 ·spýÜný dokonÞena.", -1, 13, 12,
212, 16
- LTEXT "Pro pokraÞovßnÝ pot°ebuje instalaÞnÝ program restartovat VßÜ
poÞÝtaÞ. PoÞÝtaÞ bude automaticky restartovßn za 15 sekund nebo
zmßÞknete-li tlaÞÝtko 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"
_____
Modified: trunk/reactos/lib/syssetup/syssetup_De.rc
--- trunk/reactos/lib/syssetup/syssetup_De.rc 2005-10-27 22:16:52 UTC
(rev 18812)
+++ trunk/reactos/lib/syssetup/syssetup_De.rc 2005-10-27 22:33:17 UTC
(rev 18813)
@@ -146,26 +146,12 @@
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"
_____
Modified: trunk/reactos/lib/syssetup/syssetup_En.rc
--- trunk/reactos/lib/syssetup/syssetup_En.rc 2005-10-27 22:16:52 UTC
(rev 18812)
+++ trunk/reactos/lib/syssetup/syssetup_En.rc 2005-10-27 22:33:17 UTC
(rev 18813)
@@ -147,26 +147,12 @@
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"
_____
Modified: trunk/reactos/lib/syssetup/syssetup_Fr.rc
--- trunk/reactos/lib/syssetup/syssetup_Fr.rc 2005-10-27 22:16:52 UTC
(rev 18812)
+++ trunk/reactos/lib/syssetup/syssetup_Fr.rc 2005-10-27 22:33:17 UTC
(rev 18813)
@@ -147,26 +147,12 @@
LTEXT "L'assistant d'installation de ReactOS est
terminÚ.",IDC_FINISHTITLE,115,9,195,37
LTEXT "Vous avez installÚ avec succÞs ReactOS.\n\n" \
"En cliquant sur Terminer, votre ordinateur va redÚmarrer.",
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
redÚmarrer "\
"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 redÚmarrer votre
ordinateur. "\
- "L'ordinateur redÚmarrera automatiquement dans 15 secondes, ou
quand vous appuyerez "\
- "sur le bouton RedÚmarrer.", 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 "&RedÚmarrer", 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"
_____
Modified: trunk/reactos/lib/syssetup/syssetup_Ja.rc
--- trunk/reactos/lib/syssetup/syssetup_Ja.rc 2005-10-27 22:16:52 UTC
(rev 18812)
+++ trunk/reactos/lib/syssetup/syssetup_Ja.rc 2005-10-27 22:33:17 UTC
(rev 18813)
@@ -147,26 +147,12 @@
LTEXT "ReactOS âZâbâgâAâbâv âEâBâUü[âhé¬è«ù?éÁé?éÁé¢",
IDC_FINISHTITLE, 115, 8, 195, 24
LTEXT "ReactOS âZâbâgâAâbâvé¬É?ÅÝé?è«ù?éÁé?éÁé¢üB\n\n" \
"[è«ù?] éâNâèâbâNéÀéÚéãüAâRâôâsâàü[â^éì?ï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 "âhâëâCâué? CD é¬ô³é?é?éóéÚÅÛìçé?üACD éĵéÞÅoéÁé?é¡é¥é?
éóüBCD éĵéÞÅoéÁ"\
"é¢éþüA[è«ù?] éâNâèâbâNéÁé?âRâôâsâàü[â^éì?ï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 é?âCâôâXâgü[âï"
-FONT 9, "MS UI Gothic"
-BEGIN
- LTEXT "ReactOS é?É?ÅÝé?âCâôâXâgü[âïé?éÛé?éÁé¢üB", IDC_STATIC, 13,
12, 212, 16
- LTEXT "âCâôâXâgü[âï âvâìâOâëâÇéæ?é»éÚé?é?üAâRâôâsâàü[â^éì?
ïNô«éÀéÚòKùvé¬éáéÞé?éÀüB"\
- "âRâôâsâàü[â^é? 15 òbîÒé?Ä®ô«ôIé?ì?ïNô«éÁé?éÀüBìíéÀé«ì?
ïNô«éÀéÚé?é?"\
- "[ì?ïNô«] â{â^âôéâNâèâbâNéÁé?é¡é¥é?éóü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"
_____
Modified: trunk/reactos/lib/syssetup/syssetup_Nl.rc
--- trunk/reactos/lib/syssetup/syssetup_Nl.rc 2005-10-27 22:16:52 UTC
(rev 18812)
+++ trunk/reactos/lib/syssetup/syssetup_Nl.rc 2005-10-27 22:33:17 UTC
(rev 18813)
@@ -147,26 +147,12 @@
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"
_____
Modified: trunk/reactos/lib/syssetup/wizard.c
--- trunk/reactos/lib/syssetup/wizard.c 2005-10-27 22:16:52 UTC (rev
18812)
+++ trunk/reactos/lib/syssetup/wizard.c 2005-10-27 22:33:17 UTC (rev
18813)
@@ -38,6 +38,7 @@
#include "globals.h"
#include "resource.h"
+#define VMWINST
/* GLOBALS
******************************************************************/
@@ -46,6 +47,47 @@
/* 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 @@
}
-INT_PTR CALLBACK
+static INT_PTR CALLBACK
GplDlgProc(HWND hwndDlg,
UINT uMsg,
WPARAM wParam,
@@ -165,7 +207,7 @@
}
-INT_PTR CALLBACK
+static INT_PTR CALLBACK
WelcomeDlgProc(HWND hwndDlg,
UINT uMsg,
WPARAM wParam,
@@ -231,7 +273,7 @@
}
-INT_PTR CALLBACK
+static INT_PTR CALLBACK
AckPageDlgProc(HWND hwndDlg,
UINT uMsg,
WPARAM wParam,
@@ -323,7 +365,7 @@
}
-INT_PTR CALLBACK
+static INT_PTR CALLBACK
OwnerPageDlgProc(HWND hwndDlg,
UINT uMsg,
WPARAM wParam,
@@ -413,7 +455,7 @@
}
-INT_PTR CALLBACK
+static INT_PTR CALLBACK
ComputerPageDlgProc(HWND hwndDlg,
UINT uMsg,
WPARAM wParam,
@@ -576,8 +618,8 @@
static VOID
RunInputLocalePage(HWND hwnd)
{
- PROPSHEETPAGE psp;
- PROPSHEETHEADER psh;
+ PROPSHEETPAGE psp = {0};
+ PROPSHEETHEADER psh = {0};
HMODULE hDll;
// TCHAR Caption[256];
@@ -585,7 +627,6 @@
if (hDll == NULL)
return;
- ZeroMemory(&psp, sizeof(PROPSHEETPAGE));
psp.dwSize = sizeof(PROPSHEETPAGE);
psp.dwFlags = PSP_DEFAULT;
psp.hInstance = hDll;
@@ -594,7 +635,6 @@
// 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 @@
}
-INT_PTR CALLBACK
+static INT_PTR CALLBACK
LocalePageDlgProc(HWND hwndDlg,
UINT uMsg,
WPARAM wParam,
@@ -1178,7 +1218,7 @@
}
-INT_PTR CALLBACK
+static INT_PTR CALLBACK
DateTimePageDlgProc(HWND hwndDlg,
UINT uMsg,
WPARAM wParam,
@@ -1252,7 +1292,7 @@
}
-INT_PTR CALLBACK
+static INT_PTR CALLBACK
ProcessPageDlgProc(HWND hwndDlg,
UINT uMsg,
WPARAM wParam,
@@ -1280,12 +1320,24 @@
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 @@
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 @@
-INT_PTR CALLBACK
+static INT_PTR CALLBACK
FinishDlgProc(HWND hwndDlg,
UINT uMsg,
WPARAM wParam,
@@ -1352,6 +1401,25 @@
}
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,12 +1429,22 @@
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 */
break;
@@ -1390,20 +1468,20 @@
{
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 @@
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 @@
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 @@
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 @@
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 @@
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);