Shouldn't this code be part of syssetup instead of reactos.exe? IMO reactos.exe should be only a very simple stub application which calls setup.exe with the appropiate parameters (which in turn use syssetup) or show a messagebox in case of any error.
In MS Windows second stage setup does most of the install process , even install the files to the hard drive (the files copied during 1st stage setup are uncompressed and copied into a temporal location) . First stage setup does the minimal required steps (load drivers , setup partition and copy files) to be able to start the second stage setup which does most of the job.
Installing reactos to a hard drive from a bootcd or installing it form a live cd (in the future) should not make any difference but the second stage wizard should shown the appropiate additional steps to emulate the first stage setup.
Regards, /Marc
-------------------------------------------------- From: mkupfer@svn.reactos.org Sent: Friday, July 18, 2008 11:07 AM To: ros-diffs@reactos.org Subject: [ros-diffs] [mkupfer] 34572: - gui template for 1st stage setup, english only - implemented, but still disabled - it's work in progress
Author: mkupfer Date: Fri Jul 18 04:07:54 2008 New Revision: 34572
URL: http://svn.reactos.org/svn/reactos?rev=34572&view=rev Log:
- gui template for 1st stage setup, english only
- implemented, but still disabled - it's work in progress
Modified: trunk/reactos/base/setup/reactos/lang/en-US.rc trunk/reactos/base/setup/reactos/reactos.c trunk/reactos/base/setup/reactos/reactos.rbuild trunk/reactos/base/setup/reactos/res/header.bmp trunk/reactos/base/setup/reactos/resource.h
Modified: trunk/reactos/base/setup/reactos/lang/en-US.rc URL: http://svn.reactos.org/svn/reactos/trunk/reactos/base/setup/reactos/lang/en-... ============================================================================== --- trunk/reactos/base/setup/reactos/lang/en-US.rc [iso-8859-1] (original) +++ trunk/reactos/base/setup/reactos/lang/en-US.rc [iso-8859-1] Fri Jul 18 04:07:54 2008 @@ -14,4 +14,109 @@ LTEXT "Click Finish to exit the Setup.", IDC_STATIC, 115, 169, 195, 17 END
+IDD_LANGSELPAGE DIALOGEX DISCARDABLE 0, 0, 317, 193 +STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU +CAPTION "ReactOS Setup" +FONT 8, "MS Shell Dlg" +BEGIN
- LTEXT "Please choose the language used for the installation process."
- , IDC_STATIC, 10, 0, 297, 10
- LTEXT "The selected language will be the default language for the
final system.", IDC_STATIC, 10, 13, 297, 10
- LISTBOX IDC_LANGUAGES, 10,28,297,142,LBS_HASSTRINGS | WS_VSCROLL
- LTEXT "Click Next to select the setup type.", IDC_STATIC, 10, 180
,297, 10 +END
+IDD_TYPEPAGE DIALOGEX DISCARDABLE 0, 0, 317, 193 +STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU +CAPTION "ReactOS Setup" +FONT 8, "MS Shell Dlg" +BEGIN
- CONTROL "Type of setup", IDC_STATIC, "Button", BS_GROUPBOX,
10,0,297,172
- CONTROL "Install ReactOS", IDC_INSTALL, "Button", BS_AUTORADIOBUTTON
| WS_TABSTOP, 20, 15, 277, 10
- CONTROL "Repair or update an installed ReactOS", IDC_SETUP, "Button",
BS_AUTORADIOBUTTON | WS_TABSTOP | WS_DISABLED , 20, 30, 277, 10
- LTEXT "Click Next to setup the devices.", IDC_STATIC, 10, 180 ,297,
10 +END
+IDD_DEVICEPAGE DIALOGEX DISCARDABLE 0, 0, 317, 193 +STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU +CAPTION "ReactOS Setup" +FONT 8, "MS Shell Dlg" +BEGIN
- CONTROL "Device settings", IDC_STATIC, "Button", BS_GROUPBOX,
10,0,297,172
- LTEXT "Computer:", IDC_STATIC, 20,15, 80, 10
- CONTROL "", IDC_COMPUTER, "ComboBox", WS_TABSTOP | CBS_DROPDOWNLIST ,
100, 15, 150, 80
- LTEXT "Display:", IDC_STATIC, 20,35, 80, 10
- CONTROL "", IDC_DISPLAY, "ComboBox", WS_TABSTOP | CBS_DROPDOWNLIST ,
100, 35, 150, 80
- LTEXT "Keyboard:", IDC_STATIC, 20,55, 80, 10
- CONTROL "", IDC_KEYBOARD, "ComboBox", WS_TABSTOP | CBS_DROPDOWNLIST ,
100, 55, 150, 80
- LTEXT "Keyboard layout:", IDC_STATIC, 20,75, 80, 10
- CONTROL "", IDC_KEYLAYOUT, "ComboBox", WS_TABSTOP | CBS_DROPDOWNLIST
, 100, 75, 150, 80
- LTEXT "Click Next setup of the installation device.", IDC_STATIC, 10,
180 ,277, 20 +END
+IDD_DRIVEPAGE DIALOGEX DISCARDABLE 0, 0, 317, 193 +STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU +CAPTION "ReactOS Setup" +FONT 8, "MS Shell Dlg" +BEGIN
- CONTROL "Partition for ReactOS installation", IDC_STATIC, "Button",
BS_GROUPBOX, 10,0,297,102
- LISTBOX IDC_PARTITION, 20,13,277,70,LBS_HASSTRINGS | WS_VSCROLL
- PUSHBUTTON "&Create" ,IDC_PARTCREATE, 20,83,50,15
- PUSHBUTTON "&Delete" ,IDC_PARTDELETE, 75,83,50,15
- CONTROL "Installation folder", IDC_STATIC, "Button", BS_GROUPBOX,
10,103,297,30
- EDITTEXT IDC_PATH, 20,113,277,12, WS_VISIBLE
- CONTROL "Boot loader installation", IDC_STATIC, "Button",
BS_GROUPBOX, 10,136,297,40
- CONTROL "Install boot loader on the hard disk (MBR)",
IDC_INSTFREELDR, "Button", BS_AUTORADIOBUTTON | WS_TABSTOP, 20, 147, 277, 10
- CONTROL "No installation of bootloader", IDC_NOINSTFREELDR, "Button",
BS_AUTORADIOBUTTON | WS_TABSTOP /* | WS_DISABLED*/ , 20, 159, 277, 10
- LTEXT "Click Next to start the installation process.", IDC_STATIC,
10, 180 ,277, 20 +END
+IDD_PROCESSPAGE DIALOGEX 0, 0, 317, 193 +STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU +CAPTION "ReactOS Setup" +FONT 8, "MS Shell Dlg" +BEGIN
- CONTROL "Setup action", IDC_ACTION, "Button", BS_GROUPBOX,
10,0,297,172
- LTEXT "Install files...", IDC_ACTIVITY, 20, 50, 277, 10
- LTEXT "test.txt", IDC_ITEM, 30, 80, 257, 10
- CONTROL "", IDC_PROCESSPROGRESS, "msctls_progress32",
PBS_SMOOTH | WS_CHILD | WS_VISIBLE | WS_BORDER, 20, 120, 277,8 +END
+IDD_RESTARTPAGE DIALOGEX DISCARDABLE 0, 0, 317, 193 +STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU +CAPTION "Completing ReactOS Setup" +FONT 8, "MS Shell Dlg" +BEGIN
- CONTROL "Completing the first stage of ReactOS Setup",
IDC_FINISHTITLE, "Button", BS_GROUPBOX, 10,0,297,172
- LTEXT "You have successfully completed the first stage of ReactOS
Setup.", IDC_STATIC, 20, 50, 277, 10
- LTEXT "When you click Finish, your computer will restart.",
IDC_STATIC, 20, 80, 277, 10
- CONTROL "", IDC_RESTART_PROGRESS, "msctls_progress32", PBS_SMOOTH |
WS_CHILD | WS_VISIBLE | WS_BORDER, 20, 120, 277, 8
- LTEXT "If there is a CD in a drive, remove it. Then, to restart "\
"your computer, click Finish.", IDC_STATIC, 10, 180, 297, 20+END
+STRINGTABLE +BEGIN
- IDS_LANGTITLE "Language Selection"
- IDS_LANGSUBTITLE "Choose language for setup and final system."
- IDS_TYPETITLE "Welcome to ReactOS Setup"
- IDS_TYPESUBTITLE "Choose setup type."
- IDS_DEVICETITLE "Setup the basic devices"
- IDS_DEVICESUBTITLE "Set the settings of display and keyboard."
- IDS_DRIVETITLE "Setup the installation partition and system folder"
- IDS_DRIVESUBTITLE "Prepare installation partition, system folder and
boot loader."
- IDS_PROCESSTITLE "Prepare partition, copy files and setup system"
- IDS_PROCESSSUBTITLE "Create and format partition, copy files, install
and setup boot loader"
- IDS_RESTARTTITLE "First stage of setup finished"
- IDS_RESTARTSUBTITLE "The first stage of setup has been completed,
restart to continue with second stage"
- IDS_ABORTSETUP "ReactOS is not completely installed on your computer. If
you quit Setup now, you will need to run Setup again to install Reactos. Really quit?"
- IDS_ABORTSETUP2 "Abort installation?"
+END /* EOF */
Modified: trunk/reactos/base/setup/reactos/reactos.c URL: http://svn.reactos.org/svn/reactos/trunk/reactos/base/setup/reactos/reactos.... ============================================================================== --- trunk/reactos/base/setup/reactos/reactos.c [iso-8859-1] (original) +++ trunk/reactos/base/setup/reactos/reactos.c [iso-8859-1] Fri Jul 18 04:07:54 2008 @@ -21,18 +21,38 @@
- COPYRIGHT: See COPYING in the top level directory
- PROJECT: ReactOS GUI first stage setup application
- FILE: subsys/system/reactos/reactos.c
- PROGRAMMERS: Eric Kohl, Matthias Kupfer
- PROGRAMMERS: Eric Kohl
Matthias Kupfer*/
#include <windows.h> #include <commctrl.h> #include <tchar.h> +#include <setupapi.h>
#include "resource.h"
/* GLOBALS ******************************************************************/
HFONT hTitleFont;
+struct +{
- LONG DestDiskNumber; // physical disk
- LONG DestPartNumber; // partition on disk
- LONG DestPartSize; // if partition doesn't exist, size of partition
- LONG FSType; // file system type on partition
- LONG MBRInstallType; // install bootloader
- LONG FormatPart; // type of format the partition
- WCHAR SelectedLangId[4]; // selected language
- WCHAR InstallationDirectory[MAX_PATH]; // installation directory on hdd
- WCHAR DefaultLang[20]; // default language
- WCHAR DefaultKBLayout[20]; // default keyboard layout
- BOOLEAN RepairUpdateFlag; // flag for update/repair an installed reactos
+} SetupData;
+TCHAR abort_msg[512],abort_title[64]; +BOOL isUnattend;
/* FUNCTIONS ****************************************************************/
@@ -106,7 +126,7 @@ SetWindowLong(hwndControl, GWL_STYLE, dwStyle & ~WS_SYSMENU);
/* Hide and disable the 'Cancel' button at the moment,
- later we use this button to cancel the setup process
- we use this button to cancel the setup process
- like F3 in usetup
*/ hwndControl = GetDlgItem(GetParent(hwndDlg), IDCANCEL); @@ -129,6 +149,7 @@ { case PSN_SETACTIVE: // Only "Finish" for closing the App PropSheet_SetWizButtons(GetParent(hwndDlg), PSWIZB_FINISH);
- //PropSheet_SetWizButtons(GetParent(hwndDlg), PSWIZB_NEXT);
break; default: break; @@ -140,6 +161,384 @@
} return FALSE; +}
+static INT_PTR CALLBACK +LangSelDlgProc(HWND hwndDlg,
UINT uMsg,WPARAM wParam,LPARAM lParam)+{
- switch (uMsg)
- {
- case WM_INITDIALOG:
- {
- HWND hwndControl;
- DWORD dwStyle;
hwndControl = GetParent(hwndDlg);- /* Center the wizard window */
CenterWindow (hwndControl);dwStyle = GetWindowLong(hwndControl, GWL_STYLE);SetWindowLong(hwndControl, GWL_STYLE, dwStyle & ~WS_SYSMENU);- hwndControl = GetDlgItem(GetParent(hwndDlg), IDCANCEL);
- ShowWindow (hwndControl, SW_SHOW);
- EnableWindow (hwndControl, TRUE);
- /* Set title font */
- /*SendDlgItemMessage(hwndDlg,
IDC_STARTTITLE,WM_SETFONT,(WPARAM)hTitleFont,(LPARAM)TRUE);*/+}
- break;
- case WM_NOTIFY:
- {
LPNMHDR lpnm = (LPNMHDR)lParam;- switch (lpnm->code)
- {
case PSN_SETACTIVE:- PropSheet_SetWizButtons(GetParent(hwndDlg), PSWIZB_NEXT | PSWIZB_BACK);
- break;
case PSN_QUERYCANCEL:SetWindowLong(hwndDlg,DWL_MSGRESULT,MessageBox(GetParent(hwndDlg), abort_msg, abort_title, MB_YESNO | MB_ICONQUESTION) != IDYES);
- return TRUE;
default:- break;
- }
- break;
- default:
- break;
- }
- }
- return FALSE;
+}
+static INT_PTR CALLBACK +TypeDlgProc(HWND hwndDlg,
UINT uMsg,WPARAM wParam,LPARAM lParam)+{
- switch (uMsg)
- {
- case WM_INITDIALOG:
- {
- HWND hwndControl;
- DWORD dwStyle;
hwndControl = GetParent(hwndDlg);- /* Center the wizard window */
CenterWindow (hwndControl);dwStyle = GetWindowLong(hwndControl, GWL_STYLE);SetWindowLong(hwndControl, GWL_STYLE, dwStyle & ~WS_SYSMENU);- CheckDlgButton(hwndDlg, IDC_INSTALL, BST_CHECKED);
- /* Set title font */
- /*SendDlgItemMessage(hwndDlg,
IDC_STARTTITLE,WM_SETFONT,(WPARAM)hTitleFont,(LPARAM)TRUE);*/+}
- break;
- case WM_NOTIFY:
- {
LPNMHDR lpnm = (LPNMHDR)lParam;- switch (lpnm->code)
- {
case PSN_SETACTIVE:- PropSheet_SetWizButtons(GetParent(hwndDlg), PSWIZB_NEXT | PSWIZB_BACK);
- break;
case PSN_QUERYCANCEL:SetWindowLong(hwndDlg,DWL_MSGRESULT,MessageBox(GetParent(hwndDlg), abort_msg, abort_title, MB_YESNO | MB_ICONQUESTION) != IDYES);
- return TRUE;
default:- break;
- }
- break;
- default:
- break;
- }
- }
- return FALSE;
+}
+static INT_PTR CALLBACK +DeviceDlgProc(HWND hwndDlg,
UINT uMsg,WPARAM wParam,LPARAM lParam)+{
- switch (uMsg)
- {
- case WM_INITDIALOG:
- {
- HWND hwndControl;
- DWORD dwStyle;
hwndControl = GetParent(hwndDlg);- /* Center the wizard window */
CenterWindow (hwndControl);dwStyle = GetWindowLong(hwndControl, GWL_STYLE);SetWindowLong(hwndControl, GWL_STYLE, dwStyle & ~WS_SYSMENU);- /* Set title font */
- /*SendDlgItemMessage(hwndDlg,
IDC_STARTTITLE,WM_SETFONT,(WPARAM)hTitleFont,(LPARAM)TRUE);*/+}
- break;
- case WM_NOTIFY:
- {
LPNMHDR lpnm = (LPNMHDR)lParam;- switch (lpnm->code)
- {
case PSN_SETACTIVE:- PropSheet_SetWizButtons(GetParent(hwndDlg), PSWIZB_NEXT | PSWIZB_BACK);
- break;
case PSN_QUERYCANCEL:SetWindowLong(hwndDlg,DWL_MSGRESULT,MessageBox(GetParent(hwndDlg), abort_msg, abort_title, MB_YESNO | MB_ICONQUESTION) != IDYES);
- return TRUE;
default:- break;
- }
- break;
- default:
- break;
- }
- }
- return FALSE;
+}
+static INT_PTR CALLBACK +DriveDlgProc(HWND hwndDlg,
UINT uMsg,WPARAM wParam,LPARAM lParam)+{
- switch (uMsg)
- {
- case WM_INITDIALOG:
- {
- HWND hwndControl;
- DWORD dwStyle;
hwndControl = GetParent(hwndDlg);- /* Center the wizard window */
CenterWindow (hwndControl);dwStyle = GetWindowLong(hwndControl, GWL_STYLE);SetWindowLong(hwndControl, GWL_STYLE, dwStyle & ~WS_SYSMENU);- CheckDlgButton(hwndDlg, IDC_INSTFREELDR, BST_CHECKED);
- /* Set title font */
- /*SendDlgItemMessage(hwndDlg,
IDC_STARTTITLE,WM_SETFONT,(WPARAM)hTitleFont,(LPARAM)TRUE);*/+}
- break;
- case WM_NOTIFY:
- {
LPNMHDR lpnm = (LPNMHDR)lParam;- switch (lpnm->code)
- {
case PSN_SETACTIVE:- PropSheet_SetWizButtons(GetParent(hwndDlg), PSWIZB_NEXT | PSWIZB_BACK);
- break;
case PSN_QUERYCANCEL:SetWindowLong(hwndDlg,DWL_MSGRESULT,MessageBox(GetParent(hwndDlg), abort_msg, abort_title, MB_YESNO | MB_ICONQUESTION) != IDYES);
- return TRUE;
default:- break;
- }
- break;
- default:
- break;
- }
- }
- return FALSE;
+}
+static INT_PTR CALLBACK +ProcessDlgProc(HWND hwndDlg,
UINT uMsg,WPARAM wParam,LPARAM lParam)+{
- switch (uMsg)
- {
- case WM_INITDIALOG:
- {
- HWND hwndControl;
- DWORD dwStyle;
hwndControl = GetParent(hwndDlg);- /* Center the wizard window */
CenterWindow (hwndControl);dwStyle = GetWindowLong(hwndControl, GWL_STYLE);SetWindowLong(hwndControl, GWL_STYLE, dwStyle & ~WS_SYSMENU);- hwndControl = GetDlgItem(GetParent(hwndDlg), IDCANCEL);
- ShowWindow (hwndControl, SW_HIDE);
- EnableWindow (hwndControl, FALSE);
- /* Set title font */
- /*SendDlgItemMessage(hwndDlg,
IDC_STARTTITLE,WM_SETFONT,(WPARAM)hTitleFont,(LPARAM)TRUE);*/+}
- break;
- case WM_NOTIFY:
- {
LPNMHDR lpnm = (LPNMHDR)lParam;- switch (lpnm->code)
- {
case PSN_SETACTIVE:- PropSheet_SetWizButtons(GetParent(hwndDlg), PSWIZB_NEXT );
- break;
default:- break;
- }
- break;
- default:
- break;
- }
- }
- return FALSE;
+}
+static INT_PTR CALLBACK +RestartDlgProc(HWND hwndDlg,
UINT uMsg,WPARAM wParam,LPARAM lParam)+{
- switch (uMsg)
- {
- case WM_INITDIALOG:
- {
- HWND hwndControl;
- DWORD dwStyle;
hwndControl = GetParent(hwndDlg);- /* Center the wizard window */
CenterWindow (hwndControl);dwStyle = GetWindowLong(hwndControl, GWL_STYLE);SetWindowLong(hwndControl, GWL_STYLE, dwStyle & ~WS_SYSMENU);- /* Set title font */
- /*SendDlgItemMessage(hwndDlg,
IDC_STARTTITLE,WM_SETFONT,(WPARAM)hTitleFont,(LPARAM)TRUE);*/- }
- 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_DESTROY:
- return TRUE;
- case WM_NOTIFY:
- {
LPNMHDR lpnm = (LPNMHDR)lParam;- switch (lpnm->code)
- {
case PSN_SETACTIVE: // Only "Finish" for closing the App- PropSheet_SetWizButtons(GetParent(hwndDlg), 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;
default:- break;
- }
- break;
- default:
- break;
- }
- }
- return FALSE;
+}
+BOOL isUnattendSetup() +{
- WCHAR szPath[MAX_PATH];
- HINF hUnattendedInf;
- INFCONTEXT InfContext;
- TCHAR szValue[MAX_PATH];
- DWORD LineLength;
- //HKEY hKey;
- BOOL result = 0;
- GetCurrentDirectoryW(MAX_PATH, szPath); // FIXME
- wcscat(szPath, L"\unattend.inf");
- hUnattendedInf = SetupOpenInfFileW(szPath, NULL, INF_STYLE_OLDNT, NULL);
- if (hUnattendedInf != INVALID_HANDLE_VALUE)
- {
- if (SetupFindFirstLine(hUnattendedInf, _T("Unattend"),
- _T("UnattendSetupEnabled"),&InfContext))
- {
- if (SetupGetStringField(&InfContext, 1, szValue,
- sizeof(szValue) / sizeof(TCHAR), &LineLength) &&
- (_tcsicmp(szValue, _T("yes"))==0))
- {
- result = 1; // unattendSetup enabled
- // read values and store in SetupData
- }
- }
- SetupCloseInfFile(hUnattendedInf);
- }
- return result;
}
int WINAPI @@ -149,11 +548,18 @@ int nCmdShow) { PROPSHEETHEADER psh;
- HPROPSHEETPAGE ahpsp[1];
- HPROPSHEETPAGE ahpsp[7]; PROPSHEETPAGE psp = {0}; UINT nPages = 0;
- /* Create the Start page */
- isUnattend = isUnattendSetup();
- if (!isUnattend)
- {
- LoadString(hInst,IDS_ABORTSETUP, abort_msg,
sizeof(abort_msg)/sizeof(TCHAR));
- LoadString(hInst,IDS_ABORTSETUP2,
abort_title,sizeof(abort_title)/sizeof(TCHAR));
- /* Create the Start page, until setup is working */ psp.dwSize = sizeof(PROPSHEETPAGE); psp.dwFlags = PSP_DEFAULT | PSP_HIDEHEADER; psp.hInstance = hInst;
@@ -162,7 +568,77 @@ psp.pszTemplate = MAKEINTRESOURCE(IDD_STARTPAGE); ahpsp[nPages++] = CreatePropertySheetPage(&psp);
- // Here we can add the next pages and switch on later
- /* Create language selection page */
- psp.dwSize = sizeof(PROPSHEETPAGE);
- psp.dwFlags = PSP_DEFAULT | PSP_USEHEADERTITLE | PSP_USEHEADERSUBTITLE;
- psp.pszHeaderTitle = MAKEINTRESOURCE(IDS_LANGTITLE);
- psp.pszHeaderSubTitle = MAKEINTRESOURCE(IDS_LANGSUBTITLE);
- psp.hInstance = hInst;
- psp.lParam = 0;
- psp.pfnDlgProc = LangSelDlgProc;
- psp.pszTemplate = MAKEINTRESOURCE(IDD_LANGSELPAGE);
- ahpsp[nPages++] = CreatePropertySheetPage(&psp);
- // Change language with "SetThreadLocale(langid)"
- /* Create install type selection page */
- psp.dwSize = sizeof(PROPSHEETPAGE);
- psp.dwFlags = PSP_DEFAULT | PSP_USEHEADERTITLE | PSP_USEHEADERSUBTITLE;
- psp.pszHeaderTitle = MAKEINTRESOURCE(IDS_TYPETITLE);
- psp.pszHeaderSubTitle = MAKEINTRESOURCE(IDS_TYPESUBTITLE);
- psp.hInstance = hInst;
- psp.lParam = 0;
- psp.pfnDlgProc = TypeDlgProc;
- psp.pszTemplate = MAKEINTRESOURCE(IDD_TYPEPAGE);
- ahpsp[nPages++] = CreatePropertySheetPage(&psp);
- /* Create device settings page */
- psp.dwSize = sizeof(PROPSHEETPAGE);
- psp.dwFlags = PSP_DEFAULT | PSP_USEHEADERTITLE | PSP_USEHEADERSUBTITLE;
- psp.pszHeaderTitle = MAKEINTRESOURCE(IDS_DEVICETITLE);
- psp.pszHeaderSubTitle = MAKEINTRESOURCE(IDS_DEVICESUBTITLE);
- psp.hInstance = hInst;
- psp.lParam = 0;
- psp.pfnDlgProc = DeviceDlgProc;
- psp.pszTemplate = MAKEINTRESOURCE(IDD_DEVICEPAGE);
- ahpsp[nPages++] = CreatePropertySheetPage(&psp);
- /* Create install device settings page / boot method / install
directory*/
psp.dwSize = sizeof(PROPSHEETPAGE);
psp.dwFlags = PSP_DEFAULT | PSP_USEHEADERTITLE | PSP_USEHEADERSUBTITLE;
psp.pszHeaderTitle = MAKEINTRESOURCE(IDS_DRIVETITLE);
psp.pszHeaderSubTitle = MAKEINTRESOURCE(IDS_DRIVESUBTITLE);
psp.hInstance = hInst;
psp.lParam = 0;
psp.pfnDlgProc = DriveDlgProc;
psp.pszTemplate = MAKEINTRESOURCE(IDD_DRIVEPAGE);
ahpsp[nPages++] = CreatePropertySheetPage(&psp);
}
/* Create installation progress page */
psp.dwSize = sizeof(PROPSHEETPAGE);
psp.dwFlags = PSP_DEFAULT | PSP_USEHEADERTITLE | PSP_USEHEADERSUBTITLE;
psp.pszHeaderTitle = MAKEINTRESOURCE(IDS_PROCESSTITLE);
psp.pszHeaderSubTitle = MAKEINTRESOURCE(IDS_PROCESSSUBTITLE);
psp.hInstance = hInst;
psp.lParam = 0;
psp.pfnDlgProc = ProcessDlgProc;
psp.pszTemplate = MAKEINTRESOURCE(IDD_PROCESSPAGE);
ahpsp[nPages++] = CreatePropertySheetPage(&psp);
if (!isUnattend)
{
/* Create finish to reboot page */
psp.dwSize = sizeof(PROPSHEETPAGE);
psp.dwFlags = PSP_DEFAULT | PSP_USEHEADERTITLE | PSP_USEHEADERSUBTITLE;
psp.pszHeaderTitle = MAKEINTRESOURCE(IDS_RESTARTTITLE);
psp.pszHeaderSubTitle = MAKEINTRESOURCE(IDS_RESTARTSUBTITLE);
psp.hInstance = hInst;
psp.lParam = 0;
psp.pfnDlgProc = RestartDlgProc;
psp.pszTemplate = MAKEINTRESOURCE(IDD_RESTARTPAGE);
ahpsp[nPages++] = CreatePropertySheetPage(&psp);
}
/* Create the property sheet */ psh.dwSize = sizeof(PROPSHEETHEADER);
Modified: trunk/reactos/base/setup/reactos/reactos.rbuild URL: http://svn.reactos.org/svn/reactos/trunk/reactos/base/setup/reactos/reactos.... ============================================================================== --- trunk/reactos/base/setup/reactos/reactos.rbuild [iso-8859-1] (original) +++ trunk/reactos/base/setup/reactos/reactos.rbuild [iso-8859-1] Fri Jul 18 04:07:54 2008 @@ -9,6 +9,7 @@ <library>gdi32</library> <library>user32</library> <library>comctl32</library>
- <library>setupapi</library>
<file>reactos.c</file> <file>reactos.rc</file>
</module>
Modified: trunk/reactos/base/setup/reactos/res/header.bmp URL: http://svn.reactos.org/svn/reactos/trunk/reactos/base/setup/reactos/res/head... ============================================================================== Binary files - no diff available.
Modified: trunk/reactos/base/setup/reactos/resource.h URL: http://svn.reactos.org/svn/reactos/trunk/reactos/base/setup/reactos/resource... ============================================================================== --- trunk/reactos/base/setup/reactos/resource.h [iso-8859-1] (original) +++ trunk/reactos/base/setup/reactos/resource.h [iso-8859-1] Fri Jul 18 04:07:54 2008 @@ -7,8 +7,47 @@
#define IDC_STATIC -1
-#define IDD_STARTPAGE 2000 -#define IDC_STARTTITLE 2001 +#define IDD_STARTPAGE 2000 +#define IDC_STARTTITLE 2001 +#define IDD_LANGSELPAGE 2002 +#define IDS_LANGTITLE 2003 +#define IDS_LANGSUBTITLE 2004 +#define IDC_LANGUAGES 2005 +#define IDD_TYPEPAGE 2006 +#define IDS_TYPETITLE 2007 +#define IDS_TYPESUBTITLE 2008 +#define IDC_INSTALL 2009 +#define IDC_SETUP 2010 +#define IDD_DEVICEPAGE 2011 +#define IDS_DEVICETITLE 2012 +#define IDS_DEVICESUBTITLE 2013 +#define IDC_COMPUTER 2014 +#define IDC_DISPLAY 2015 +#define IDC_KEYBOARD 2016 +#define IDC_KEYLAYOUT 2017 +#define IDD_DRIVEPAGE 2018 +#define IDS_DRIVETITLE 2019 +#define IDS_DRIVESUBTITLE 2020 +#define IDC_PARTITION 2021 +#define IDC_PARTCREATE 2022 +#define IDC_PARTDELETE 2023 +#define IDC_INSTFREELDR 2024 +#define IDC_NOINSTFREELDR 2025 +#define IDC_PATH 2026 +#define IDD_PROCESSPAGE 2027 +#define IDS_PROCESSTITLE 2028 +#define IDS_PROCESSSUBTITLE 2029 +#define IDC_ACTIVITY 2030 +#define IDC_ITEM 2031 +#define IDC_PROCESSPROGRESS 2032 +#define IDD_RESTARTPAGE 2033 +#define IDS_RESTARTTITLE 2034 +#define IDS_RESTARTSUBTITLE 2035 +#define IDC_FINISHTITLE 2036 +#define IDC_RESTART_PROGRESS 2037 +#define IDS_ABORTSETUP 2038 +#define IDS_ABORTSETUP2 2039 +#define IDC_ACTION 2040
#define IDI_MAIN 3000