[SYSSETUP]
[reactos.git] / reactos / dll / win32 / syssetup / wizard.c
index ff181e3..eeaada5 100644 (file)
@@ -45,6 +45,9 @@ SETUPDATA SetupData;
 
 
 /* FUNCTIONS ****************************************************************/
+
+extern void WINAPI Control_RunDLLW(HWND hWnd, HINSTANCE hInst, LPCWSTR cmd, DWORD nCmdShow);
+
 BOOL
 GetRosInstallCD(WCHAR *pwszPath, DWORD cchPathMax);
 
@@ -363,7 +366,7 @@ AckPageDlgProc(HWND hwndDlg,
                     PropSheet_SetWizButtons(GetParent(hwndDlg), PSWIZB_BACK | PSWIZB_NEXT);
                     if (SetupData.UnattendSetup)
                     {
-                        SetWindowLongPtr(hwndDlg, DWL_MSGRESULT, IDD_OWNERPAGE);
+                        SetWindowLongPtr(hwndDlg, DWL_MSGRESULT, IDD_LOCALEPAGE);
                         return TRUE;
                     }
                     break;
@@ -614,6 +617,7 @@ ComputerPageDlgProc(HWND hwndDlg,
                 SendMessage(GetDlgItem(hwndDlg, IDC_COMPUTERNAME), WM_SETTEXT, 0, (LPARAM)SetupData.ComputerName);
                 SendMessage(GetDlgItem(hwndDlg, IDC_ADMINPASSWORD1), WM_SETTEXT, 0, (LPARAM)SetupData.AdminPassword);
                 SendMessage(GetDlgItem(hwndDlg, IDC_ADMINPASSWORD2), WM_SETTEXT, 0, (LPARAM)SetupData.AdminPassword);
+                SetAdministratorPassword(SetupData.AdminPassword);
             }
 
         }
@@ -631,7 +635,7 @@ ComputerPageDlgProc(HWND hwndDlg,
                     PropSheet_SetWizButtons(GetParent(hwndDlg), PSWIZB_BACK | PSWIZB_NEXT);
                     if (SetupData.UnattendSetup && WriteComputerSettings(SetupData.ComputerName, hwndDlg))
                     {
-                        SetWindowLongPtr(hwndDlg, DWL_MSGRESULT, IDD_LOCALEPAGE);
+                        SetWindowLongPtr(hwndDlg, DWL_MSGRESULT, IDD_DATETIMEPAGE);
                         return TRUE;
                     }
                     break;
@@ -709,7 +713,8 @@ ComputerPageDlgProc(HWND hwndDlg,
                         Password++;
                     }
 
-                    /* FIXME: Set admin password */
+                    /* Set admin password */
+                    SetAdministratorPassword(Password1);
                     break;
 
                 case PSN_WIZBACK:
@@ -914,7 +919,7 @@ LocalePageDlgProc(HWND hwndDlg,
                             RunControlPanelApplet(hwndDlg, L"intl.cpl,,/f:\"unattend.inf\"");
                         }
 
-                        SetWindowLongPtr(hwndDlg, DWL_MSGRESULT, IDD_DATETIMEPAGE);
+                        SetWindowLongPtr(hwndDlg, DWL_MSGRESULT, IDD_OWNERPAGE);
                         return TRUE;
                     }
                     break;
@@ -1685,6 +1690,8 @@ RegistrationProc(LPVOID Parameter)
     SetupTermDefaultQueueCallback(RegistrationData->DefaultContext);
     HeapFree(GetProcessHeap(), 0, RegistrationData);
 
+    RegisterTypeLibraries(hSysSetupInf, L"TypeLibraries");
+
     // FIXME: Move this call to a separate cleanup page!
     RtlCreateBootStatusDataFile();
 
@@ -1899,7 +1906,6 @@ SetInstallationCompleted(VOID)
     }
 }
 
-
 static INT_PTR CALLBACK
 FinishDlgProc(HWND hwndDlg,
               UINT uMsg,
@@ -1911,10 +1917,11 @@ FinishDlgProc(HWND hwndDlg,
     {
         case WM_INITDIALOG:
         {
-            PSETUPDATA SetupData;
-
             /* Get pointer to the global setup data */
-            SetupData = (PSETUPDATA)((LPPROPSHEETPAGE)lParam)->lParam;
+            PSETUPDATA SetupData = (PSETUPDATA)((LPPROPSHEETPAGE)lParam)->lParam;
+
+            /* Run the Wine Gecko prompt */
+            Control_RunDLLW(GetDesktopWindow(), 0, L"appwiz.cpl install_gecko", SW_SHOW);
 
             /* Set title font */
             SendDlgItemMessage(hwndDlg,
@@ -2270,6 +2277,15 @@ InstallWizard(VOID)
     psp.pfnDlgProc = AckPageDlgProc;
     ahpsp[nPages++] = CreatePropertySheetPage(&psp);
 
+    /* Create the Locale page */
+    psp.dwFlags = PSP_DEFAULT | PSP_USEHEADERTITLE | PSP_USEHEADERSUBTITLE;
+    psp.pszHeaderTitle = MAKEINTRESOURCE(IDS_LOCALETITLE);
+    psp.pszHeaderSubTitle = MAKEINTRESOURCE(IDS_LOCALESUBTITLE);
+    psp.pfnDlgProc = LocalePageDlgProc;
+    psp.pszTemplate = MAKEINTRESOURCE(IDD_LOCALEPAGE);
+    ahpsp[nPages++] = CreatePropertySheetPage(&psp);
+
+
     /* Create the Owner page */
     psp.dwFlags = PSP_DEFAULT | PSP_USEHEADERTITLE | PSP_USEHEADERSUBTITLE;
     psp.pszHeaderTitle = MAKEINTRESOURCE(IDS_OWNERTITLE);
@@ -2287,15 +2303,6 @@ InstallWizard(VOID)
     ahpsp[nPages++] = CreatePropertySheetPage(&psp);
 
 
-    /* Create the Locale page */
-    psp.dwFlags = PSP_DEFAULT | PSP_USEHEADERTITLE | PSP_USEHEADERSUBTITLE;
-    psp.pszHeaderTitle = MAKEINTRESOURCE(IDS_LOCALETITLE);
-    psp.pszHeaderSubTitle = MAKEINTRESOURCE(IDS_LOCALESUBTITLE);
-    psp.pfnDlgProc = LocalePageDlgProc;
-    psp.pszTemplate = MAKEINTRESOURCE(IDD_LOCALEPAGE);
-    ahpsp[nPages++] = CreatePropertySheetPage(&psp);
-
-
     /* Create the DateTime page */
     psp.dwFlags = PSP_DEFAULT | PSP_USEHEADERTITLE | PSP_USEHEADERSUBTITLE;
     psp.pszHeaderTitle = MAKEINTRESOURCE(IDS_DATETIMETITLE);