https://git.reactos.org/?p=reactos.git;a=commitdiff;h=48160c74b724395105b14958d0b3bf4ff4487e14

commit 48160c74b724395105b14958d0b3bf4ff4487e14
Author:     Katayama Hirofumi MZ <[email protected]>
AuthorDate: Mon Feb 10 11:10:42 2020 +0900
Commit:     GitHub <[email protected]>
CommitDate: Mon Feb 10 11:10:42 2020 +0900

    [SHELL32][SYSSETUP] Add Product Options page to ReactOS Setup (#2315)
    
    - Add "Product Options" wizard page into ReactOS Setup.
    - Implement CSIDL_Type_InMyDocuments CSIDL type.
    - If the product type is workstation, then some special folders will be in 
My Documents.
    CORE-13795
---
 dll/win32/shell32/wine/shellpath.c           | 111 ++++++++++++++++-
 dll/win32/syssetup/lang/bg-BG.rc             |  28 +++++
 dll/win32/syssetup/lang/cs-CZ.rc             |  28 +++++
 dll/win32/syssetup/lang/da-DK.rc             |  28 +++++
 dll/win32/syssetup/lang/de-DE.rc             |  28 +++++
 dll/win32/syssetup/lang/el-GR.rc             |  29 +++++
 dll/win32/syssetup/lang/en-US.rc             |  28 +++++
 dll/win32/syssetup/lang/es-ES.rc             |  28 +++++
 dll/win32/syssetup/lang/et-EE.rc             |  28 +++++
 dll/win32/syssetup/lang/fi-FI.rc             |  28 +++++
 dll/win32/syssetup/lang/fr-FR.rc             |  28 +++++
 dll/win32/syssetup/lang/he-IL.rc             |  28 +++++
 dll/win32/syssetup/lang/hi-IN.rc             |  28 +++++
 dll/win32/syssetup/lang/hu-HU.rc             |  28 +++++
 dll/win32/syssetup/lang/id-ID.rc             |  28 +++++
 dll/win32/syssetup/lang/it-IT.rc             |  28 +++++
 dll/win32/syssetup/lang/ja-JP.rc             |  28 +++++
 dll/win32/syssetup/lang/lt-LT.rc             |  28 +++++
 dll/win32/syssetup/lang/nl-NL.rc             |  28 +++++
 dll/win32/syssetup/lang/no-NO.rc             |  28 +++++
 dll/win32/syssetup/lang/pl-PL.rc             |  28 +++++
 dll/win32/syssetup/lang/pt-BR.rc             |  28 +++++
 dll/win32/syssetup/lang/pt-PT.rc             |  28 +++++
 dll/win32/syssetup/lang/ro-RO.rc             |  28 +++++
 dll/win32/syssetup/lang/ru-RU.rc             |  28 +++++
 dll/win32/syssetup/lang/sk-SK.rc             |  28 +++++
 dll/win32/syssetup/lang/sq-AL.rc             |  28 +++++
 dll/win32/syssetup/lang/sv-SE.rc             |  28 +++++
 dll/win32/syssetup/lang/th-TH.rc             |  28 +++++
 dll/win32/syssetup/lang/tr-TR.rc             |  28 +++++
 dll/win32/syssetup/lang/uk-UA.rc             |  28 +++++
 dll/win32/syssetup/lang/zh-CN.rc             |  28 +++++
 dll/win32/syssetup/lang/zh-TW.rc             |  28 +++++
 dll/win32/syssetup/resource.h                |  14 +++
 dll/win32/syssetup/wizard.c                  | 175 ++++++++++++++++++++++++++-
 sdk/include/reactos/libs/syssetup/syssetup.h |   8 ++
 36 files changed, 1203 insertions(+), 2 deletions(-)

diff --git a/dll/win32/shell32/wine/shellpath.c 
b/dll/win32/shell32/wine/shellpath.c
index 9ca628f4bbe..5bf0c98e617 100644
--- a/dll/win32/shell32/wine/shellpath.c
+++ b/dll/win32/shell32/wine/shellpath.c
@@ -3,7 +3,7 @@
  *
  * Copyright 1998, 1999, 2000 Juergen Schmied
  * Copyright 2004 Juan Lang
- * Copyright 2018-2019 Katayama Hirofumi MZ
+ * Copyright 2018-2020 Katayama Hirofumi MZ
  *
  * This library is free software; you can redistribute it and/or
  * modify it under the terms of the GNU Lesser General Public
@@ -54,6 +54,52 @@ WINE_DEFAULT_DEBUG_CHANNEL(shell);
 
 static const BOOL is_win64 = sizeof(void *) > sizeof(int);
 
+#ifdef __REACTOS__
+/* FIXME: Remove this */
+typedef enum _NT_PRODUCT_TYPE
+{
+    NtProductWinNt = 1,
+    NtProductLanManNt,
+    NtProductServer
+} NT_PRODUCT_TYPE, *PNT_PRODUCT_TYPE;
+
+/* FIXME: We cannot refresh the RtlGetNtProductType value before reboot. */
+static BOOL
+DoGetProductType(PNT_PRODUCT_TYPE ProductType)
+{
+    static const WCHAR ProductOptions[] = 
L"System\\CurrentControlSet\\Control\\ProductOptions";
+    HKEY hKey;
+    LONG error;
+    WCHAR szValue[32];
+    DWORD cbValue;
+    static DWORD s_dwProductType = 0;
+
+    if (s_dwProductType != 0)
+    {
+        *ProductType = s_dwProductType;
+        return TRUE;
+    }
+
+    *ProductType = NtProductServer;
+
+    error = RegOpenKeyExW(HKEY_LOCAL_MACHINE, ProductOptions, 0, KEY_READ, 
&hKey);
+    if (error)
+        return FALSE;
+
+    cbValue = sizeof(szValue);
+    error = RegQueryValueExW(hKey, L"ProductType", NULL, NULL, 
(LPBYTE)szValue, &cbValue);
+    if (!error)
+    {
+        if (lstrcmpW(szValue, L"WinNT") == 0)
+            *ProductType = NtProductWinNt;
+    }
+
+    s_dwProductType = *ProductType;
+
+    RegCloseKey(hKey);
+    return TRUE;
+}
+#endif
 /*
        ########## Combining and Constructing paths ##########
 */
@@ -648,6 +694,9 @@ static const WCHAR AllUsersW[] = 
{'P','u','b','l','i','c',0};
 
 typedef enum _CSIDL_Type {
     CSIDL_Type_User,
+#ifdef __REACTOS__
+    CSIDL_Type_InMyDocuments,
+#endif
     CSIDL_Type_AllUsers,
     CSIDL_Type_CurrVer,
     CSIDL_Type_Disallowed,
@@ -767,14 +816,22 @@ static const CSIDL_DATA CSIDL_Data[] =
     },
     { /* 0x0d - CSIDL_MYMUSIC */
         &FOLDERID_Music,
+#ifdef __REACTOS__
+        CSIDL_Type_InMyDocuments,
+#else
         CSIDL_Type_User,
+#endif
         My_MusicW,
         MAKEINTRESOURCEW(IDS_MYMUSIC),
         -IDI_SHELL_MY_MUSIC
     },
     { /* 0x0e - CSIDL_MYVIDEO */
         &FOLDERID_Videos,
+#ifdef __REACTOS__
+        CSIDL_Type_InMyDocuments,
+#else
         CSIDL_Type_User,
+#endif
         My_VideoW,
         MAKEINTRESOURCEW(IDS_MYVIDEO),
         -IDI_SHELL_MY_MOVIES
@@ -938,7 +995,11 @@ static const CSIDL_DATA CSIDL_Data[] =
     },
     { /* 0x27 - CSIDL_MYPICTURES */
         &FOLDERID_Pictures,
+#ifdef __REACTOS__
+        CSIDL_Type_InMyDocuments,
+#else
         CSIDL_Type_User,
+#endif
         My_PicturesW,
         MAKEINTRESOURCEW(IDS_MYPICTURES),
         -IDI_SHELL_MY_PICTURES
@@ -1142,7 +1203,11 @@ static const CSIDL_DATA CSIDL_Data[] =
     },
     { /* 0x47 - CSIDL_DOWNLOADS */
         &FOLDERID_Downloads,
+#ifdef __REACTOS__
+        CSIDL_Type_InMyDocuments,
+#else
         CSIDL_Type_User,
+#endif
         NULL,
         DownloadsW
     },
@@ -1549,6 +1614,9 @@ static HRESULT _SHGetDefaultValue(HANDLE hToken, BYTE 
folder, LPWSTR pszPath)
 {
     HRESULT hr;
     WCHAR resourcePath[MAX_PATH];
+#ifdef __REACTOS__
+    NT_PRODUCT_TYPE ProductType;
+#endif
 
     TRACE("0x%02x,%p\n", folder, pszPath);
 
@@ -1589,6 +1657,26 @@ static HRESULT _SHGetDefaultValue(HANDLE hToken, BYTE 
folder, LPWSTR pszPath)
         case CSIDL_Type_User:
             strcpyW(pszPath, UserProfileW);
             break;
+#ifdef __REACTOS__
+        case CSIDL_Type_InMyDocuments:
+            strcpyW(pszPath, UserProfileW);
+            if (DoGetProductType(&ProductType) && ProductType == 
NtProductWinNt)
+            {
+                if 
(IS_INTRESOURCE(CSIDL_Data[CSIDL_MYDOCUMENTS].szDefaultPath))
+                {
+                    WCHAR szItem[MAX_PATH];
+                    LoadStringW(shell32_hInstance,
+                                
LOWORD(CSIDL_Data[CSIDL_MYDOCUMENTS].szDefaultPath),
+                                szItem, ARRAY_SIZE(szItem));
+                    PathAppendW(pszPath, szItem);
+                }
+                else
+                {
+                    PathAppendW(pszPath, 
CSIDL_Data[CSIDL_MYDOCUMENTS].szDefaultPath);
+                }
+            }
+            break;
+#endif
         case CSIDL_Type_AllUsers:
 #ifndef __REACTOS__
             strcpyW(pszPath, PublicProfileW);
@@ -1756,8 +1844,15 @@ static HRESULT _SHGetUserProfilePath(HANDLE hToken, 
DWORD dwFlags, BYTE folder,
 
     if (folder >= ARRAY_SIZE(CSIDL_Data))
         return E_INVALIDARG;
+#ifdef __REACTOS__
+    if (CSIDL_Data[folder].type != CSIDL_Type_User &&
+        CSIDL_Data[folder].type != CSIDL_Type_InMyDocuments)
+#else
     if (CSIDL_Data[folder].type != CSIDL_Type_User)
+#endif
+    {
         return E_INVALIDARG;
+    }
     if (!pszPath)
         return E_INVALIDARG;
 
@@ -2222,6 +2317,9 @@ HRESULT WINAPI SHGetFolderPathAndSubDirW(
             hr = _SHGetCurrentVersionPath(dwFlags, folder, szTemp);
             break;
         case CSIDL_Type_User:
+#ifdef __REACTOS__
+        case CSIDL_Type_InMyDocuments:
+#endif
             hr = _SHGetUserProfilePath(hToken, dwFlags, folder, szTemp);
             break;
         case CSIDL_Type_AllUsers:
@@ -2387,7 +2485,13 @@ static HRESULT _SHRegisterFolders(HKEY hRootKey, HANDLE 
hToken,
 
         /* For CSIDL_Type_User we also use the GUID if no szValueName is 
provided */
         szValueName = CSIDL_Data[folders[i]].szValueName;
+#ifdef __REACTOS__
+        if (!szValueName &&
+            (CSIDL_Data[folders[i]].type == CSIDL_Type_User ||
+             CSIDL_Data[folders[i]].type == CSIDL_Type_InMyDocuments))
+#else
         if (!szValueName && CSIDL_Data[folders[i]].type == CSIDL_Type_User)
+#endif
         {
             StringFromGUID2( CSIDL_Data[folders[i]].id, buffer, 39 );
             szValueName = &buffer[0];
@@ -2403,7 +2507,12 @@ static HRESULT _SHRegisterFolders(HKEY hRootKey, HANDLE 
hToken,
         else
         {
             *path = '\0';
+#ifdef __REACTOS__
+            if (CSIDL_Data[folders[i]].type == CSIDL_Type_User ||
+                CSIDL_Data[folders[i]].type == CSIDL_Type_InMyDocuments)
+#else
             if (CSIDL_Data[folders[i]].type == CSIDL_Type_User)
+#endif
                 _SHGetUserProfilePath(hToken, SHGFP_TYPE_CURRENT, folders[i],
                  path);
             else if (CSIDL_Data[folders[i]].type == CSIDL_Type_AllUsers)
diff --git a/dll/win32/syssetup/lang/bg-BG.rc b/dll/win32/syssetup/lang/bg-BG.rc
index b5022a60af3..7085c419204 100644
--- a/dll/win32/syssetup/lang/bg-BG.rc
+++ b/dll/win32/syssetup/lang/bg-BG.rc
@@ -22,6 +22,24 @@ BEGIN
     LTEXT "Натиснете „Напред“ за продължаване на настройката.", IDC_STATIC, 
15, 136, 195, 17
 END
 
+IDD_PRODUCT DIALOGEX 0, 0, 317, 143
+CAPTION "ReactOS Setup"
+STYLE DS_MODALFRAME | DS_SHELLFONT | WS_POPUPWINDOW | WS_CAPTION | WS_VISIBLE
+FONT 8, "MS Shell Dlg"
+BEGIN
+    ICON "", IDC_PRODUCT_ICON, 5, 5, 20, 20
+    LTEXT "Please choose a product option:", IDC_STATIC, 35, 7, 230, 12
+    LTEXT "Product &Options:", IDC_STATIC, 5, 32, 85, 10
+    COMBOBOX IDC_PRODUCT_OPTIONS, 95, 30, 135, 300, CBS_HASSTRINGS | 
CBS_AUTOHSCROLL | CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
+    GROUPBOX "Product Information", IDC_STATIC, 5, 50, 305, 85
+    LTEXT "ProductSuite:", IDC_STATIC, 20, 62, 70, 10
+    EDITTEXT IDC_PRODUCT_SUITE, 95, 60, 175, 14, ES_READONLY | ES_AUTOHSCROLL
+    LTEXT "ProductType:", IDC_STATIC, 20, 82, 70, 10
+    EDITTEXT IDC_PRODUCT_TYPE, 95, 80, 110, 14, ES_READONLY | ES_AUTOHSCROLL
+    LTEXT "Description:", IDC_STATIC, 20, 102, 70, 10
+    EDITTEXT IDC_PRODUCT_DESCRIPTION, 95, 99, 205, 30, ES_READONLY | 
ES_AUTOVSCROLL | ES_MULTILINE | WS_VSCROLL
+END
+
 IDD_OWNERPAGE DIALOGEX 0, 0, 317, 143
 STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | 
WS_SYSMENU
 CAPTION "Настройка на РеактОС"
@@ -224,3 +242,13 @@ BEGIN
     IDS_LUNAR "Lunar"
     IDS_MIZU "Mizu"
 END
+
+STRINGTABLE
+BEGIN
+    IDS_PRODUCTTITLE "Product Options"
+    IDS_PRODUCTSUBTITLE "You can choose a product option that affects the 
behaviour of the system."
+    IDS_PRODUCTSERVERNAME "ReactOS Server (Default)"
+    IDS_PRODUCTWORKSTATIONNAME "ReactOS Workstation"
+    IDS_PRODUCTSERVERINFO "The system will be recognized as a server. Private 
folders ""My Pictures"", ""My Videos"" and ""My Music"" are independent from 
""My Documents""."
+    IDS_PRODUCTWORKSTATIONINFO "The system will be recognized as a 
workstation. Private folders ""My Pictures"", ""My Videos"" and ""My Music"" 
are in ""My Documents""."
+END
diff --git a/dll/win32/syssetup/lang/cs-CZ.rc b/dll/win32/syssetup/lang/cs-CZ.rc
index 99a4505e586..1b2852bf952 100644
--- a/dll/win32/syssetup/lang/cs-CZ.rc
+++ b/dll/win32/syssetup/lang/cs-CZ.rc
@@ -28,6 +28,24 @@ BEGIN
     LTEXT "Kliknutím na Další pokračujte v instalaci.", IDC_STATIC, 15, 136, 
195, 17
 END
 
+IDD_PRODUCT DIALOGEX 0, 0, 317, 143
+CAPTION "ReactOS Setup"
+STYLE DS_MODALFRAME | DS_SHELLFONT | WS_POPUPWINDOW | WS_CAPTION | WS_VISIBLE
+FONT 8, "MS Shell Dlg"
+BEGIN
+    ICON "", IDC_PRODUCT_ICON, 5, 5, 20, 20
+    LTEXT "Please choose a product option:", IDC_STATIC, 35, 7, 230, 12
+    LTEXT "Product &Options:", IDC_STATIC, 5, 32, 85, 10
+    COMBOBOX IDC_PRODUCT_OPTIONS, 95, 30, 135, 300, CBS_HASSTRINGS | 
CBS_AUTOHSCROLL | CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
+    GROUPBOX "Product Information", IDC_STATIC, 5, 50, 305, 85
+    LTEXT "ProductSuite:", IDC_STATIC, 20, 62, 70, 10
+    EDITTEXT IDC_PRODUCT_SUITE, 95, 60, 175, 14, ES_READONLY | ES_AUTOHSCROLL
+    LTEXT "ProductType:", IDC_STATIC, 20, 82, 70, 10
+    EDITTEXT IDC_PRODUCT_TYPE, 95, 80, 110, 14, ES_READONLY | ES_AUTOHSCROLL
+    LTEXT "Description:", IDC_STATIC, 20, 102, 70, 10
+    EDITTEXT IDC_PRODUCT_DESCRIPTION, 95, 99, 205, 30, ES_READONLY | 
ES_AUTOVSCROLL | ES_MULTILINE | WS_VSCROLL
+END
+
 IDD_OWNERPAGE DIALOGEX 0, 0, 317, 143
 STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | 
WS_SYSMENU
 CAPTION "ReactOS Instalátor"
@@ -230,3 +248,13 @@ BEGIN
     IDS_LUNAR "Lunar"
     IDS_MIZU "Mizu"
 END
+
+STRINGTABLE
+BEGIN
+    IDS_PRODUCTTITLE "Product Options"
+    IDS_PRODUCTSUBTITLE "You can choose a product option that affects the 
behaviour of the system."
+    IDS_PRODUCTSERVERNAME "ReactOS Server (Default)"
+    IDS_PRODUCTWORKSTATIONNAME "ReactOS Workstation"
+    IDS_PRODUCTSERVERINFO "The system will be recognized as a server. Private 
folders ""My Pictures"", ""My Videos"" and ""My Music"" are independent from 
""My Documents""."
+    IDS_PRODUCTWORKSTATIONINFO "The system will be recognized as a 
workstation. Private folders ""My Pictures"", ""My Videos"" and ""My Music"" 
are in ""My Documents""."
+END
diff --git a/dll/win32/syssetup/lang/da-DK.rc b/dll/win32/syssetup/lang/da-DK.rc
index 44678b4e1d9..39fd84a4d29 100644
--- a/dll/win32/syssetup/lang/da-DK.rc
+++ b/dll/win32/syssetup/lang/da-DK.rc
@@ -41,6 +41,24 @@ BEGIN
     LTEXT "Click Next to continue with Setup.", IDC_STATIC, 15, 136, 195, 17
 END
 
+IDD_PRODUCT DIALOGEX 0, 0, 317, 143
+CAPTION "ReactOS Setup"
+STYLE DS_MODALFRAME | DS_SHELLFONT | WS_POPUPWINDOW | WS_CAPTION | WS_VISIBLE
+FONT 8, "MS Shell Dlg"
+BEGIN
+    ICON "", IDC_PRODUCT_ICON, 5, 5, 20, 20
+    LTEXT "Please choose a product option:", IDC_STATIC, 35, 7, 230, 12
+    LTEXT "Product &Options:", IDC_STATIC, 5, 32, 85, 10
+    COMBOBOX IDC_PRODUCT_OPTIONS, 95, 30, 135, 300, CBS_HASSTRINGS | 
CBS_AUTOHSCROLL | CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
+    GROUPBOX "Product Information", IDC_STATIC, 5, 50, 305, 85
+    LTEXT "ProductSuite:", IDC_STATIC, 20, 62, 70, 10
+    EDITTEXT IDC_PRODUCT_SUITE, 95, 60, 175, 14, ES_READONLY | ES_AUTOHSCROLL
+    LTEXT "ProductType:", IDC_STATIC, 20, 82, 70, 10
+    EDITTEXT IDC_PRODUCT_TYPE, 95, 80, 110, 14, ES_READONLY | ES_AUTOHSCROLL
+    LTEXT "Description:", IDC_STATIC, 20, 102, 70, 10
+    EDITTEXT IDC_PRODUCT_DESCRIPTION, 95, 99, 205, 30, ES_READONLY | 
ES_AUTOVSCROLL | ES_MULTILINE | WS_VSCROLL
+END
+
 IDD_OWNERPAGE DIALOGEX 0, 0, 317, 143
 STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | 
WS_SYSMENU
 CAPTION "ReactOS Setup"
@@ -243,3 +261,13 @@ BEGIN
     IDS_LUNAR "Lunar"
     IDS_MIZU "Mizu"
 END
+
+STRINGTABLE
+BEGIN
+    IDS_PRODUCTTITLE "Product Options"
+    IDS_PRODUCTSUBTITLE "You can choose a product option that affects the 
behaviour of the system."
+    IDS_PRODUCTSERVERNAME "ReactOS Server (Default)"
+    IDS_PRODUCTWORKSTATIONNAME "ReactOS Workstation"
+    IDS_PRODUCTSERVERINFO "The system will be recognized as a server. Private 
folders ""My Pictures"", ""My Videos"" and ""My Music"" are independent from 
""My Documents""."
+    IDS_PRODUCTWORKSTATIONINFO "The system will be recognized as a 
workstation. Private folders ""My Pictures"", ""My Videos"" and ""My Music"" 
are in ""My Documents""."
+END
diff --git a/dll/win32/syssetup/lang/de-DE.rc b/dll/win32/syssetup/lang/de-DE.rc
index 22f6486d0ae..494f16a19df 100644
--- a/dll/win32/syssetup/lang/de-DE.rc
+++ b/dll/win32/syssetup/lang/de-DE.rc
@@ -22,6 +22,24 @@ BEGIN
     LTEXT "Klicken Sie auf Weiter, um mit der Einrichtung fortzufahren.", 
IDC_STATIC, 15, 136, 195, 17
 END
 
+IDD_PRODUCT DIALOGEX 0, 0, 317, 143
+CAPTION "ReactOS Setup"
+STYLE DS_MODALFRAME | DS_SHELLFONT | WS_POPUPWINDOW | WS_CAPTION | WS_VISIBLE
+FONT 8, "MS Shell Dlg"
+BEGIN
+    ICON "", IDC_PRODUCT_ICON, 5, 5, 20, 20
+    LTEXT "Please choose a product option:", IDC_STATIC, 35, 7, 230, 12
+    LTEXT "Product &Options:", IDC_STATIC, 5, 32, 85, 10
+    COMBOBOX IDC_PRODUCT_OPTIONS, 95, 30, 135, 300, CBS_HASSTRINGS | 
CBS_AUTOHSCROLL | CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
+    GROUPBOX "Product Information", IDC_STATIC, 5, 50, 305, 85
+    LTEXT "ProductSuite:", IDC_STATIC, 20, 62, 70, 10
+    EDITTEXT IDC_PRODUCT_SUITE, 95, 60, 175, 14, ES_READONLY | ES_AUTOHSCROLL
+    LTEXT "ProductType:", IDC_STATIC, 20, 82, 70, 10
+    EDITTEXT IDC_PRODUCT_TYPE, 95, 80, 110, 14, ES_READONLY | ES_AUTOHSCROLL
+    LTEXT "Description:", IDC_STATIC, 20, 102, 70, 10
+    EDITTEXT IDC_PRODUCT_DESCRIPTION, 95, 99, 205, 30, ES_READONLY | 
ES_AUTOVSCROLL | ES_MULTILINE | WS_VSCROLL
+END
+
 IDD_OWNERPAGE DIALOGEX 0, 0, 317, 143
 STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | 
WS_SYSMENU
 CAPTION "ReactOS-Installation"
@@ -224,3 +242,13 @@ BEGIN
     IDS_LUNAR "Lunar"
     IDS_MIZU "Mizu"
 END
+
+STRINGTABLE
+BEGIN
+    IDS_PRODUCTTITLE "Product Options"
+    IDS_PRODUCTSUBTITLE "You can choose a product option that affects the 
behaviour of the system."
+    IDS_PRODUCTSERVERNAME "ReactOS Server (Default)"
+    IDS_PRODUCTWORKSTATIONNAME "ReactOS Workstation"
+    IDS_PRODUCTSERVERINFO "The system will be recognized as a server. Private 
folders ""My Pictures"", ""My Videos"" and ""My Music"" are independent from 
""My Documents""."
+    IDS_PRODUCTWORKSTATIONINFO "The system will be recognized as a 
workstation. Private folders ""My Pictures"", ""My Videos"" and ""My Music"" 
are in ""My Documents""."
+END
diff --git a/dll/win32/syssetup/lang/el-GR.rc b/dll/win32/syssetup/lang/el-GR.rc
index 5754105de1a..2c049b8e793 100644
--- a/dll/win32/syssetup/lang/el-GR.rc
+++ b/dll/win32/syssetup/lang/el-GR.rc
@@ -22,6 +22,24 @@ BEGIN
     LTEXT "Πατήστε το κουμπί 'Επόμενο' για να συνεχίσετε.", IDC_STATIC, 15, 
136, 195, 17
 END
 
+IDD_PRODUCT DIALOGEX 0, 0, 317, 143
+CAPTION "ReactOS Setup"
+STYLE DS_MODALFRAME | DS_SHELLFONT | WS_POPUPWINDOW | WS_CAPTION | WS_VISIBLE
+FONT 8, "MS Shell Dlg"
+BEGIN
+    ICON "", IDC_PRODUCT_ICON, 5, 5, 20, 20
+    LTEXT "Please choose a product option:", IDC_STATIC, 35, 7, 230, 12
+    LTEXT "Product &Options:", IDC_STATIC, 5, 32, 85, 10
+    COMBOBOX IDC_PRODUCT_OPTIONS, 95, 30, 135, 300, CBS_HASSTRINGS | 
CBS_AUTOHSCROLL | CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
+    GROUPBOX "Product Information", IDC_STATIC, 5, 50, 305, 85
+    LTEXT "ProductSuite:", IDC_STATIC, 20, 62, 70, 10
+    EDITTEXT IDC_PRODUCT_SUITE, 95, 60, 175, 14, ES_READONLY | ES_AUTOHSCROLL
+    LTEXT "ProductType:", IDC_STATIC, 20, 82, 70, 10
+    EDITTEXT IDC_PRODUCT_TYPE, 95, 80, 110, 14, ES_READONLY | ES_AUTOHSCROLL
+    LTEXT "Description:", IDC_STATIC, 20, 102, 70, 10
+    EDITTEXT IDC_PRODUCT_DESCRIPTION, 95, 99, 205, 30, ES_READONLY | 
ES_AUTOVSCROLL | ES_MULTILINE | WS_VSCROLL
+END
+
 IDD_OWNERPAGE DIALOGEX 0, 0, 317, 143
 STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | 
WS_SYSMENU
 CAPTION "Εγκατάσταση του ReactOS"
@@ -222,4 +240,15 @@ BEGIN
     IDS_CLASSIC "Classic"
     IDS_LAUTUS "Lautus"
     IDS_LUNAR "Lunar"
+    IDS_MIZU "Mizu"
+END
+
+STRINGTABLE
+BEGIN
+    IDS_PRODUCTTITLE "Product Options"
+    IDS_PRODUCTSUBTITLE "You can choose a product option that affects the 
behaviour of the system."
+    IDS_PRODUCTSERVERNAME "ReactOS Server (Default)"
+    IDS_PRODUCTWORKSTATIONNAME "ReactOS Workstation"
+    IDS_PRODUCTSERVERINFO "The system will be recognized as a server. Private 
folders ""My Pictures"", ""My Videos"" and ""My Music"" are independent from 
""My Documents""."
+    IDS_PRODUCTWORKSTATIONINFO "The system will be recognized as a 
workstation. Private folders ""My Pictures"", ""My Videos"" and ""My Music"" 
are in ""My Documents""."
 END
diff --git a/dll/win32/syssetup/lang/en-US.rc b/dll/win32/syssetup/lang/en-US.rc
index bd37f8f4ad2..2414e315d11 100644
--- a/dll/win32/syssetup/lang/en-US.rc
+++ b/dll/win32/syssetup/lang/en-US.rc
@@ -41,6 +41,24 @@ BEGIN
     LTEXT "Click Next to continue with Setup.", IDC_STATIC, 15, 136, 195, 17
 END
 
+IDD_PRODUCT DIALOGEX 0, 0, 317, 143
+CAPTION "ReactOS Setup"
+STYLE DS_MODALFRAME | DS_SHELLFONT | WS_POPUPWINDOW | WS_CAPTION | WS_VISIBLE
+FONT 8, "MS Shell Dlg"
+BEGIN
+    ICON "", IDC_PRODUCT_ICON, 5, 5, 20, 20
+    LTEXT "Please choose a product option:", IDC_STATIC, 35, 7, 230, 12
+    LTEXT "Product &Options:", IDC_STATIC, 5, 32, 85, 10
+    COMBOBOX IDC_PRODUCT_OPTIONS, 95, 30, 135, 300, CBS_HASSTRINGS | 
CBS_AUTOHSCROLL | CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
+    GROUPBOX "Product Information", IDC_STATIC, 5, 50, 305, 85
+    LTEXT "ProductSuite:", IDC_STATIC, 20, 62, 70, 10
+    EDITTEXT IDC_PRODUCT_SUITE, 95, 60, 175, 14, ES_READONLY | ES_AUTOHSCROLL
+    LTEXT "ProductType:", IDC_STATIC, 20, 82, 70, 10
+    EDITTEXT IDC_PRODUCT_TYPE, 95, 80, 110, 14, ES_READONLY | ES_AUTOHSCROLL
+    LTEXT "Description:", IDC_STATIC, 20, 102, 70, 10
+    EDITTEXT IDC_PRODUCT_DESCRIPTION, 95, 99, 205, 30, ES_READONLY | 
ES_AUTOVSCROLL | ES_MULTILINE | WS_VSCROLL
+END
+
 IDD_OWNERPAGE DIALOGEX 0, 0, 317, 143
 STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | 
WS_SYSMENU
 CAPTION "ReactOS Setup"
@@ -244,3 +262,13 @@ BEGIN
     IDS_LUNAR "Lunar"
     IDS_MIZU "Mizu"
 END
+
+STRINGTABLE
+BEGIN
+    IDS_PRODUCTTITLE "Product Options"
+    IDS_PRODUCTSUBTITLE "You can choose a product option that affects the 
behaviour of the system."
+    IDS_PRODUCTSERVERNAME "ReactOS Server (Default)"
+    IDS_PRODUCTWORKSTATIONNAME "ReactOS Workstation"
+    IDS_PRODUCTSERVERINFO "The system will be recognized as a server. Private 
folders ""My Pictures"", ""My Videos"" and ""My Music"" are independent from 
""My Documents""."
+    IDS_PRODUCTWORKSTATIONINFO "The system will be recognized as a 
workstation. Private folders ""My Pictures"", ""My Videos"" and ""My Music"" 
are in ""My Documents""."
+END
diff --git a/dll/win32/syssetup/lang/es-ES.rc b/dll/win32/syssetup/lang/es-ES.rc
index 3a83a1870f8..90abbfed4ef 100644
--- a/dll/win32/syssetup/lang/es-ES.rc
+++ b/dll/win32/syssetup/lang/es-ES.rc
@@ -30,6 +30,24 @@ BEGIN
     LTEXT "Pulse Siguiente para continuar con la instalación.", IDC_STATIC, 
15, 136, 195, 17
 END
 
+IDD_PRODUCT DIALOGEX 0, 0, 317, 143
+CAPTION "ReactOS Setup"
+STYLE DS_MODALFRAME | DS_SHELLFONT | WS_POPUPWINDOW | WS_CAPTION | WS_VISIBLE
+FONT 8, "MS Shell Dlg"
+BEGIN
+    ICON "", IDC_PRODUCT_ICON, 5, 5, 20, 20
+    LTEXT "Please choose a product option:", IDC_STATIC, 35, 7, 230, 12
+    LTEXT "Product &Options:", IDC_STATIC, 5, 32, 85, 10
+    COMBOBOX IDC_PRODUCT_OPTIONS, 95, 30, 135, 300, CBS_HASSTRINGS | 
CBS_AUTOHSCROLL | CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
+    GROUPBOX "Product Information", IDC_STATIC, 5, 50, 305, 85
+    LTEXT "ProductSuite:", IDC_STATIC, 20, 62, 70, 10
+    EDITTEXT IDC_PRODUCT_SUITE, 95, 60, 175, 14, ES_READONLY | ES_AUTOHSCROLL
+    LTEXT "ProductType:", IDC_STATIC, 20, 82, 70, 10
+    EDITTEXT IDC_PRODUCT_TYPE, 95, 80, 110, 14, ES_READONLY | ES_AUTOHSCROLL
+    LTEXT "Description:", IDC_STATIC, 20, 102, 70, 10
+    EDITTEXT IDC_PRODUCT_DESCRIPTION, 95, 99, 205, 30, ES_READONLY | 
ES_AUTOVSCROLL | ES_MULTILINE | WS_VSCROLL
+END
+
 IDD_OWNERPAGE DIALOGEX 0, 0, 317, 143
 STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | 
WS_SYSMENU
 CAPTION "Instalación de ReactOS"
@@ -232,3 +250,13 @@ BEGIN
     IDS_LUNAR "Lunar"
     IDS_MIZU "Mizu"
 END
+
+STRINGTABLE
+BEGIN
+    IDS_PRODUCTTITLE "Product Options"
+    IDS_PRODUCTSUBTITLE "You can choose a product option that affects the 
behaviour of the system."
+    IDS_PRODUCTSERVERNAME "ReactOS Server (Default)"
+    IDS_PRODUCTWORKSTATIONNAME "ReactOS Workstation"
+    IDS_PRODUCTSERVERINFO "The system will be recognized as a server. Private 
folders ""My Pictures"", ""My Videos"" and ""My Music"" are independent from 
""My Documents""."
+    IDS_PRODUCTWORKSTATIONINFO "The system will be recognized as a 
workstation. Private folders ""My Pictures"", ""My Videos"" and ""My Music"" 
are in ""My Documents""."
+END
diff --git a/dll/win32/syssetup/lang/et-EE.rc b/dll/win32/syssetup/lang/et-EE.rc
index e5a3c41a6ef..f88511359bc 100644
--- a/dll/win32/syssetup/lang/et-EE.rc
+++ b/dll/win32/syssetup/lang/et-EE.rc
@@ -22,6 +22,24 @@ BEGIN
     LTEXT "Vajuta Edasi paigaldamise jätkamiseks.", IDC_STATIC, 15, 136, 195, 
17
 END
 
+IDD_PRODUCT DIALOGEX 0, 0, 317, 143
+CAPTION "ReactOS Setup"
+STYLE DS_MODALFRAME | DS_SHELLFONT | WS_POPUPWINDOW | WS_CAPTION | WS_VISIBLE
+FONT 8, "MS Shell Dlg"
+BEGIN
+    ICON "", IDC_PRODUCT_ICON, 5, 5, 20, 20
+    LTEXT "Please choose a product option:", IDC_STATIC, 35, 7, 230, 12
+    LTEXT "Product &Options:", IDC_STATIC, 5, 32, 85, 10
+    COMBOBOX IDC_PRODUCT_OPTIONS, 95, 30, 135, 300, CBS_HASSTRINGS | 
CBS_AUTOHSCROLL | CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
+    GROUPBOX "Product Information", IDC_STATIC, 5, 50, 305, 85
+    LTEXT "ProductSuite:", IDC_STATIC, 20, 62, 70, 10
+    EDITTEXT IDC_PRODUCT_SUITE, 95, 60, 175, 14, ES_READONLY | ES_AUTOHSCROLL
+    LTEXT "ProductType:", IDC_STATIC, 20, 82, 70, 10
+    EDITTEXT IDC_PRODUCT_TYPE, 95, 80, 110, 14, ES_READONLY | ES_AUTOHSCROLL
+    LTEXT "Description:", IDC_STATIC, 20, 102, 70, 10
+    EDITTEXT IDC_PRODUCT_DESCRIPTION, 95, 99, 205, 30, ES_READONLY | 
ES_AUTOVSCROLL | ES_MULTILINE | WS_VSCROLL
+END
+
 IDD_OWNERPAGE DIALOGEX 0, 0, 317, 143
 STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | 
WS_SYSMENU
 CAPTION "ReactOS'i paigaldus"
@@ -224,3 +242,13 @@ BEGIN
     IDS_LUNAR "Lunar"
     IDS_MIZU "Mizu"
 END
+
+STRINGTABLE
+BEGIN
+    IDS_PRODUCTTITLE "Product Options"
+    IDS_PRODUCTSUBTITLE "You can choose a product option that affects the 
behaviour of the system."
+    IDS_PRODUCTSERVERNAME "ReactOS Server (Default)"
+    IDS_PRODUCTWORKSTATIONNAME "ReactOS Workstation"
+    IDS_PRODUCTSERVERINFO "The system will be recognized as a server. Private 
folders ""My Pictures"", ""My Videos"" and ""My Music"" are independent from 
""My Documents""."
+    IDS_PRODUCTWORKSTATIONINFO "The system will be recognized as a 
workstation. Private folders ""My Pictures"", ""My Videos"" and ""My Music"" 
are in ""My Documents""."
+END
diff --git a/dll/win32/syssetup/lang/fi-FI.rc b/dll/win32/syssetup/lang/fi-FI.rc
index 1c132723381..a1c5f140666 100644
--- a/dll/win32/syssetup/lang/fi-FI.rc
+++ b/dll/win32/syssetup/lang/fi-FI.rc
@@ -41,6 +41,24 @@ BEGIN
     LTEXT "Click Next to continue with Setup.", IDC_STATIC, 15, 136, 195, 17
 END
 
+IDD_PRODUCT DIALOGEX 0, 0, 317, 143
+CAPTION "ReactOS Setup"
+STYLE DS_MODALFRAME | DS_SHELLFONT | WS_POPUPWINDOW | WS_CAPTION | WS_VISIBLE
+FONT 8, "MS Shell Dlg"
+BEGIN
+    ICON "", IDC_PRODUCT_ICON, 5, 5, 20, 20
+    LTEXT "Please choose a product option:", IDC_STATIC, 35, 7, 230, 12
+    LTEXT "Product &Options:", IDC_STATIC, 5, 32, 85, 10
+    COMBOBOX IDC_PRODUCT_OPTIONS, 95, 30, 135, 300, CBS_HASSTRINGS | 
CBS_AUTOHSCROLL | CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
+    GROUPBOX "Product Information", IDC_STATIC, 5, 50, 305, 85
+    LTEXT "ProductSuite:", IDC_STATIC, 20, 62, 70, 10
+    EDITTEXT IDC_PRODUCT_SUITE, 95, 60, 175, 14, ES_READONLY | ES_AUTOHSCROLL
+    LTEXT "ProductType:", IDC_STATIC, 20, 82, 70, 10
+    EDITTEXT IDC_PRODUCT_TYPE, 95, 80, 110, 14, ES_READONLY | ES_AUTOHSCROLL
+    LTEXT "Description:", IDC_STATIC, 20, 102, 70, 10
+    EDITTEXT IDC_PRODUCT_DESCRIPTION, 95, 99, 205, 30, ES_READONLY | 
ES_AUTOVSCROLL | ES_MULTILINE | WS_VSCROLL
+END
+
 IDD_OWNERPAGE DIALOGEX 0, 0, 317, 143
 STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | 
WS_SYSMENU
 CAPTION "ReactOS Setup"
@@ -243,3 +261,13 @@ BEGIN
     IDS_LUNAR "Lunar"
     IDS_MIZU "Mizu"
 END
+
+STRINGTABLE
+BEGIN
+    IDS_PRODUCTTITLE "Product Options"
+    IDS_PRODUCTSUBTITLE "You can choose a product option that affects the 
behaviour of the system."
+    IDS_PRODUCTSERVERNAME "ReactOS Server (Default)"
+    IDS_PRODUCTWORKSTATIONNAME "ReactOS Workstation"
+    IDS_PRODUCTSERVERINFO "The system will be recognized as a server. Private 
folders ""My Pictures"", ""My Videos"" and ""My Music"" are independent from 
""My Documents""."
+    IDS_PRODUCTWORKSTATIONINFO "The system will be recognized as a 
workstation. Private folders ""My Pictures"", ""My Videos"" and ""My Music"" 
are in ""My Documents""."
+END
diff --git a/dll/win32/syssetup/lang/fr-FR.rc b/dll/win32/syssetup/lang/fr-FR.rc
index 1050e7e2aab..04171476ba9 100644
--- a/dll/win32/syssetup/lang/fr-FR.rc
+++ b/dll/win32/syssetup/lang/fr-FR.rc
@@ -22,6 +22,24 @@ BEGIN
     LTEXT "Cliquez sur Suivant pour continuer l'installation.", IDC_STATIC, 
15, 136, 195, 17
 END
 
+IDD_PRODUCT DIALOGEX 0, 0, 317, 143
+CAPTION "ReactOS Setup"
+STYLE DS_MODALFRAME | DS_SHELLFONT | WS_POPUPWINDOW | WS_CAPTION | WS_VISIBLE
+FONT 8, "MS Shell Dlg"
+BEGIN
+    ICON "", IDC_PRODUCT_ICON, 5, 5, 20, 20
+    LTEXT "Please choose a product option:", IDC_STATIC, 35, 7, 230, 12
+    LTEXT "Product &Options:", IDC_STATIC, 5, 32, 85, 10
+    COMBOBOX IDC_PRODUCT_OPTIONS, 95, 30, 135, 300, CBS_HASSTRINGS | 
CBS_AUTOHSCROLL | CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
+    GROUPBOX "Product Information", IDC_STATIC, 5, 50, 305, 85
+    LTEXT "ProductSuite:", IDC_STATIC, 20, 62, 70, 10
+    EDITTEXT IDC_PRODUCT_SUITE, 95, 60, 175, 14, ES_READONLY | ES_AUTOHSCROLL
+    LTEXT "ProductType:", IDC_STATIC, 20, 82, 70, 10
+    EDITTEXT IDC_PRODUCT_TYPE, 95, 80, 110, 14, ES_READONLY | ES_AUTOHSCROLL
+    LTEXT "Description:", IDC_STATIC, 20, 102, 70, 10
+    EDITTEXT IDC_PRODUCT_DESCRIPTION, 95, 99, 205, 30, ES_READONLY | 
ES_AUTOVSCROLL | ES_MULTILINE | WS_VSCROLL
+END
+
 IDD_OWNERPAGE DIALOGEX 0, 0, 317, 143
 STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | 
WS_SYSMENU
 CAPTION "Installation de ReactOS"
@@ -224,3 +242,13 @@ BEGIN
     IDS_LUNAR "Lunar"
     IDS_MIZU "Mizu"
 END
+
+STRINGTABLE
+BEGIN
+    IDS_PRODUCTTITLE "Product Options"
+    IDS_PRODUCTSUBTITLE "You can choose a product option that affects the 
behaviour of the system."
+    IDS_PRODUCTSERVERNAME "ReactOS Server (Default)"
+    IDS_PRODUCTWORKSTATIONNAME "ReactOS Workstation"
+    IDS_PRODUCTSERVERINFO "The system will be recognized as a server. Private 
folders ""My Pictures"", ""My Videos"" and ""My Music"" are independent from 
""My Documents""."
+    IDS_PRODUCTWORKSTATIONINFO "The system will be recognized as a 
workstation. Private folders ""My Pictures"", ""My Videos"" and ""My Music"" 
are in ""My Documents""."
+END
diff --git a/dll/win32/syssetup/lang/he-IL.rc b/dll/win32/syssetup/lang/he-IL.rc
index 351bb266ac5..e1076999634 100644
--- a/dll/win32/syssetup/lang/he-IL.rc
+++ b/dll/win32/syssetup/lang/he-IL.rc
@@ -22,6 +22,24 @@ BEGIN
     LTEXT "לחץ על הבא כדי להמשיך עם ההתקנה", IDC_STATIC, 15, 136, 195, 17
 END
 
+IDD_PRODUCT DIALOGEX 0, 0, 317, 143
+CAPTION "ReactOS Setup"
+STYLE DS_MODALFRAME | DS_SHELLFONT | WS_POPUPWINDOW | WS_CAPTION | WS_VISIBLE
+FONT 8, "MS Shell Dlg"
+BEGIN
+    ICON "", IDC_PRODUCT_ICON, 5, 5, 20, 20
+    LTEXT "Please choose a product option:", IDC_STATIC, 35, 7, 230, 12
+    LTEXT "Product &Options:", IDC_STATIC, 5, 32, 85, 10
+    COMBOBOX IDC_PRODUCT_OPTIONS, 95, 30, 135, 300, CBS_HASSTRINGS | 
CBS_AUTOHSCROLL | CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
+    GROUPBOX "Product Information", IDC_STATIC, 5, 50, 305, 85
+    LTEXT "ProductSuite:", IDC_STATIC, 20, 62, 70, 10
+    EDITTEXT IDC_PRODUCT_SUITE, 95, 60, 175, 14, ES_READONLY | ES_AUTOHSCROLL
+    LTEXT "ProductType:", IDC_STATIC, 20, 82, 70, 10
+    EDITTEXT IDC_PRODUCT_TYPE, 95, 80, 110, 14, ES_READONLY | ES_AUTOHSCROLL
+    LTEXT "Description:", IDC_STATIC, 20, 102, 70, 10
+    EDITTEXT IDC_PRODUCT_DESCRIPTION, 95, 99, 205, 30, ES_READONLY | 
ES_AUTOVSCROLL | ES_MULTILINE | WS_VSCROLL
+END
+
 IDD_OWNERPAGE DIALOGEX 0, 0, 317, 143
 STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | 
WS_SYSMENU
 CAPTION "התקנת ReactOS"
@@ -224,3 +242,13 @@ BEGIN
     IDS_LUNAR "Lunar"
     IDS_MIZU "Mizu"
 END
+
+STRINGTABLE
+BEGIN
+    IDS_PRODUCTTITLE "Product Options"
+    IDS_PRODUCTSUBTITLE "You can choose a product option that affects the 
behaviour of the system."
+    IDS_PRODUCTSERVERNAME "ReactOS Server (Default)"
+    IDS_PRODUCTWORKSTATIONNAME "ReactOS Workstation"
+    IDS_PRODUCTSERVERINFO "The system will be recognized as a server. Private 
folders ""My Pictures"", ""My Videos"" and ""My Music"" are independent from 
""My Documents""."
+    IDS_PRODUCTWORKSTATIONINFO "The system will be recognized as a 
workstation. Private folders ""My Pictures"", ""My Videos"" and ""My Music"" 
are in ""My Documents""."
+END
diff --git a/dll/win32/syssetup/lang/hi-IN.rc b/dll/win32/syssetup/lang/hi-IN.rc
index aca7e2365fd..c7d9da274bb 100644
--- a/dll/win32/syssetup/lang/hi-IN.rc
+++ b/dll/win32/syssetup/lang/hi-IN.rc
@@ -29,6 +29,24 @@ BEGIN
     LTEXT "सेटअप के साथ जारी रखने के लिए अगला क्लिक करें।", IDC_STATIC, 15, 
136, 195, 17
 END
 
+IDD_PRODUCT DIALOGEX 0, 0, 317, 143
+CAPTION "ReactOS Setup"
+STYLE DS_MODALFRAME | DS_SHELLFONT | WS_POPUPWINDOW | WS_CAPTION | WS_VISIBLE
+FONT 8, "MS Shell Dlg"
+BEGIN
+    ICON "", IDC_PRODUCT_ICON, 5, 5, 20, 20
+    LTEXT "Please choose a product option:", IDC_STATIC, 35, 7, 230, 12
+    LTEXT "Product &Options:", IDC_STATIC, 5, 32, 85, 10
+    COMBOBOX IDC_PRODUCT_OPTIONS, 95, 30, 135, 300, CBS_HASSTRINGS | 
CBS_AUTOHSCROLL | CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
+    GROUPBOX "Product Information", IDC_STATIC, 5, 50, 305, 85
+    LTEXT "ProductSuite:", IDC_STATIC, 20, 62, 70, 10
+    EDITTEXT IDC_PRODUCT_SUITE, 95, 60, 175, 14, ES_READONLY | ES_AUTOHSCROLL
+    LTEXT "ProductType:", IDC_STATIC, 20, 82, 70, 10
+    EDITTEXT IDC_PRODUCT_TYPE, 95, 80, 110, 14, ES_READONLY | ES_AUTOHSCROLL
+    LTEXT "Description:", IDC_STATIC, 20, 102, 70, 10
+    EDITTEXT IDC_PRODUCT_DESCRIPTION, 95, 99, 205, 30, ES_READONLY | 
ES_AUTOVSCROLL | ES_MULTILINE | WS_VSCROLL
+END
+
 IDD_OWNERPAGE DIALOGEX 0, 0, 317, 143
 STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | 
WS_SYSMENU
 CAPTION "रिऐक्ट ओएस सेटअप"
@@ -232,3 +250,13 @@ BEGIN
     IDS_LUNAR "Lunar"
     IDS_MIZU "Mizu"
 END
+
+STRINGTABLE
+BEGIN
+    IDS_PRODUCTTITLE "Product Options"
+    IDS_PRODUCTSUBTITLE "You can choose a product option that affects the 
behaviour of the system."
+    IDS_PRODUCTSERVERNAME "ReactOS Server (Default)"
+    IDS_PRODUCTWORKSTATIONNAME "ReactOS Workstation"
+    IDS_PRODUCTSERVERINFO "The system will be recognized as a server. Private 
folders ""My Pictures"", ""My Videos"" and ""My Music"" are independent from 
""My Documents""."
+    IDS_PRODUCTWORKSTATIONINFO "The system will be recognized as a 
workstation. Private folders ""My Pictures"", ""My Videos"" and ""My Music"" 
are in ""My Documents""."
+END
diff --git a/dll/win32/syssetup/lang/hu-HU.rc b/dll/win32/syssetup/lang/hu-HU.rc
index efef37f952d..362d203bb78 100644
--- a/dll/win32/syssetup/lang/hu-HU.rc
+++ b/dll/win32/syssetup/lang/hu-HU.rc
@@ -22,6 +22,24 @@ BEGIN
     LTEXT "Kattintson a Tovább gombra a folytatáshoz.", IDC_STATIC, 15, 136, 
170, 17
 END
 
+IDD_PRODUCT DIALOGEX 0, 0, 317, 143
+CAPTION "ReactOS Setup"
+STYLE DS_MODALFRAME | DS_SHELLFONT | WS_POPUPWINDOW | WS_CAPTION | WS_VISIBLE
+FONT 8, "MS Shell Dlg"
+BEGIN
+    ICON "", IDC_PRODUCT_ICON, 5, 5, 20, 20
+    LTEXT "Please choose a product option:", IDC_STATIC, 35, 7, 230, 12
+    LTEXT "Product &Options:", IDC_STATIC, 5, 32, 85, 10
+    COMBOBOX IDC_PRODUCT_OPTIONS, 95, 30, 135, 300, CBS_HASSTRINGS | 
CBS_AUTOHSCROLL | CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
+    GROUPBOX "Product Information", IDC_STATIC, 5, 50, 305, 85
+    LTEXT "ProductSuite:", IDC_STATIC, 20, 62, 70, 10
+    EDITTEXT IDC_PRODUCT_SUITE, 95, 60, 175, 14, ES_READONLY | ES_AUTOHSCROLL
+    LTEXT "ProductType:", IDC_STATIC, 20, 82, 70, 10
+    EDITTEXT IDC_PRODUCT_TYPE, 95, 80, 110, 14, ES_READONLY | ES_AUTOHSCROLL
+    LTEXT "Description:", IDC_STATIC, 20, 102, 70, 10
+    EDITTEXT IDC_PRODUCT_DESCRIPTION, 95, 99, 205, 30, ES_READONLY | 
ES_AUTOVSCROLL | ES_MULTILINE | WS_VSCROLL
+END
+
 IDD_OWNERPAGE DIALOGEX 0, 0, 317, 143
 STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | 
WS_SYSMENU
 CAPTION "ReactOS telepítő"
@@ -223,3 +241,13 @@ BEGIN
     IDS_LUNAR "Lunar"
     IDS_MIZU "Mizu"
 END
+
+STRINGTABLE
+BEGIN
+    IDS_PRODUCTTITLE "Product Options"
+    IDS_PRODUCTSUBTITLE "You can choose a product option that affects the 
behaviour of the system."
+    IDS_PRODUCTSERVERNAME "ReactOS Server (Default)"
+    IDS_PRODUCTWORKSTATIONNAME "ReactOS Workstation"
+    IDS_PRODUCTSERVERINFO "The system will be recognized as a server. Private 
folders ""My Pictures"", ""My Videos"" and ""My Music"" are independent from 
""My Documents""."
+    IDS_PRODUCTWORKSTATIONINFO "The system will be recognized as a 
workstation. Private folders ""My Pictures"", ""My Videos"" and ""My Music"" 
are in ""My Documents""."
+END
diff --git a/dll/win32/syssetup/lang/id-ID.rc b/dll/win32/syssetup/lang/id-ID.rc
index 89269861501..aef4e7ce0e1 100644
--- a/dll/win32/syssetup/lang/id-ID.rc
+++ b/dll/win32/syssetup/lang/id-ID.rc
@@ -22,6 +22,24 @@ BEGIN
     LTEXT "Klik Lanjut untuk melanjutkan Penyetelan.", IDC_STATIC, 15, 136, 
195, 17
 END
 
+IDD_PRODUCT DIALOGEX 0, 0, 317, 143
+CAPTION "ReactOS Setup"
+STYLE DS_MODALFRAME | DS_SHELLFONT | WS_POPUPWINDOW | WS_CAPTION | WS_VISIBLE
+FONT 8, "MS Shell Dlg"
+BEGIN
+    ICON "", IDC_PRODUCT_ICON, 5, 5, 20, 20
+    LTEXT "Please choose a product option:", IDC_STATIC, 35, 7, 230, 12
+    LTEXT "Product &Options:", IDC_STATIC, 5, 32, 85, 10
+    COMBOBOX IDC_PRODUCT_OPTIONS, 95, 30, 135, 300, CBS_HASSTRINGS | 
CBS_AUTOHSCROLL | CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
+    GROUPBOX "Product Information", IDC_STATIC, 5, 50, 305, 85
+    LTEXT "ProductSuite:", IDC_STATIC, 20, 62, 70, 10
+    EDITTEXT IDC_PRODUCT_SUITE, 95, 60, 175, 14, ES_READONLY | ES_AUTOHSCROLL
+    LTEXT "ProductType:", IDC_STATIC, 20, 82, 70, 10
+    EDITTEXT IDC_PRODUCT_TYPE, 95, 80, 110, 14, ES_READONLY | ES_AUTOHSCROLL
+    LTEXT "Description:", IDC_STATIC, 20, 102, 70, 10
+    EDITTEXT IDC_PRODUCT_DESCRIPTION, 95, 99, 205, 30, ES_READONLY | 
ES_AUTOVSCROLL | ES_MULTILINE | WS_VSCROLL
+END
+
 IDD_OWNERPAGE DIALOGEX 0, 0, 317, 143
 STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | 
WS_SYSMENU
 CAPTION "Penyetelan ReactOS"
@@ -224,3 +242,13 @@ BEGIN
     IDS_LUNAR "Lunar"
     IDS_MIZU "Mizu"
 END
+
+STRINGTABLE
+BEGIN
+    IDS_PRODUCTTITLE "Product Options"
+    IDS_PRODUCTSUBTITLE "You can choose a product option that affects the 
behaviour of the system."
+    IDS_PRODUCTSERVERNAME "ReactOS Server (Default)"
+    IDS_PRODUCTWORKSTATIONNAME "ReactOS Workstation"
+    IDS_PRODUCTSERVERINFO "The system will be recognized as a server. Private 
folders ""My Pictures"", ""My Videos"" and ""My Music"" are independent from 
""My Documents""."
+    IDS_PRODUCTWORKSTATIONINFO "The system will be recognized as a 
workstation. Private folders ""My Pictures"", ""My Videos"" and ""My Music"" 
are in ""My Documents""."
+END
diff --git a/dll/win32/syssetup/lang/it-IT.rc b/dll/win32/syssetup/lang/it-IT.rc
index c30141ca067..333044dc9a5 100644
--- a/dll/win32/syssetup/lang/it-IT.rc
+++ b/dll/win32/syssetup/lang/it-IT.rc
@@ -22,6 +22,24 @@ BEGIN
     LTEXT "Selezionare Avanti per proseguire con la configurazione.", 
IDC_STATIC, 15, 136, 195, 17
 END
 
+IDD_PRODUCT DIALOGEX 0, 0, 317, 143
+CAPTION "ReactOS Setup"
+STYLE DS_MODALFRAME | DS_SHELLFONT | WS_POPUPWINDOW | WS_CAPTION | WS_VISIBLE
+FONT 8, "MS Shell Dlg"
+BEGIN
+    ICON "", IDC_PRODUCT_ICON, 5, 5, 20, 20
+    LTEXT "Please choose a product option:", IDC_STATIC, 35, 7, 230, 12
+    LTEXT "Product &Options:", IDC_STATIC, 5, 32, 85, 10
+    COMBOBOX IDC_PRODUCT_OPTIONS, 95, 30, 135, 300, CBS_HASSTRINGS | 
CBS_AUTOHSCROLL | CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
+    GROUPBOX "Product Information", IDC_STATIC, 5, 50, 305, 85
+    LTEXT "ProductSuite:", IDC_STATIC, 20, 62, 70, 10
+    EDITTEXT IDC_PRODUCT_SUITE, 95, 60, 175, 14, ES_READONLY | ES_AUTOHSCROLL
+    LTEXT "ProductType:", IDC_STATIC, 20, 82, 70, 10
+    EDITTEXT IDC_PRODUCT_TYPE, 95, 80, 110, 14, ES_READONLY | ES_AUTOHSCROLL
+    LTEXT "Description:", IDC_STATIC, 20, 102, 70, 10
+    EDITTEXT IDC_PRODUCT_DESCRIPTION, 95, 99, 205, 30, ES_READONLY | 
ES_AUTOVSCROLL | ES_MULTILINE | WS_VSCROLL
+END
+
 IDD_OWNERPAGE DIALOGEX 0, 0, 317, 143
 STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | 
WS_SYSMENU
 CAPTION "Installazione di ReactOS"
@@ -224,3 +242,13 @@ BEGIN
     IDS_LUNAR "Lunar"
     IDS_MIZU "Mizu"
 END
+
+STRINGTABLE
+BEGIN
+    IDS_PRODUCTTITLE "Product Options"
+    IDS_PRODUCTSUBTITLE "You can choose a product option that affects the 
behaviour of the system."
+    IDS_PRODUCTSERVERNAME "ReactOS Server (Default)"
+    IDS_PRODUCTWORKSTATIONNAME "ReactOS Workstation"
+    IDS_PRODUCTSERVERINFO "The system will be recognized as a server. Private 
folders ""My Pictures"", ""My Videos"" and ""My Music"" are independent from 
""My Documents""."
+    IDS_PRODUCTWORKSTATIONINFO "The system will be recognized as a 
workstation. Private folders ""My Pictures"", ""My Videos"" and ""My Music"" 
are in ""My Documents""."
+END
diff --git a/dll/win32/syssetup/lang/ja-JP.rc b/dll/win32/syssetup/lang/ja-JP.rc
index 6d1581d80c6..9984cff78ee 100644
--- a/dll/win32/syssetup/lang/ja-JP.rc
+++ b/dll/win32/syssetup/lang/ja-JP.rc
@@ -22,6 +22,24 @@ BEGIN
     LTEXT "セットアップを続行するには [次へ] をクリックして下さい。", IDC_STATIC, 15, 136, 195, 17
 END
 
+IDD_PRODUCT DIALOGEX 0, 0, 317, 143
+CAPTION "ReactOS Setup"
+STYLE DS_MODALFRAME | DS_SHELLFONT | WS_POPUPWINDOW | WS_CAPTION | WS_VISIBLE
+FONT 8, "MS Shell Dlg"
+BEGIN
+    ICON "", IDC_PRODUCT_ICON, 5, 5, 20, 20
+    LTEXT "Please choose a product option:", IDC_STATIC, 35, 7, 230, 12
+    LTEXT "Product &Options:", IDC_STATIC, 5, 32, 85, 10
+    COMBOBOX IDC_PRODUCT_OPTIONS, 95, 30, 135, 300, CBS_HASSTRINGS | 
CBS_AUTOHSCROLL | CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
+    GROUPBOX "Product Information", IDC_STATIC, 5, 50, 305, 85
+    LTEXT "ProductSuite:", IDC_STATIC, 20, 62, 70, 10
+    EDITTEXT IDC_PRODUCT_SUITE, 95, 60, 175, 14, ES_READONLY | ES_AUTOHSCROLL
+    LTEXT "ProductType:", IDC_STATIC, 20, 82, 70, 10
+    EDITTEXT IDC_PRODUCT_TYPE, 95, 80, 110, 14, ES_READONLY | ES_AUTOHSCROLL
+    LTEXT "Description:", IDC_STATIC, 20, 102, 70, 10
+    EDITTEXT IDC_PRODUCT_DESCRIPTION, 95, 99, 205, 30, ES_READONLY | 
ES_AUTOVSCROLL | ES_MULTILINE | WS_VSCROLL
+END
+
 IDD_OWNERPAGE DIALOGEX 0, 0, 317, 143
 STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | 
WS_SYSMENU
 CAPTION "ReactOS セットアップ"
@@ -224,3 +242,13 @@ BEGIN
     IDS_LUNAR "Lunar"
     IDS_MIZU "Mizu"
 END
+
+STRINGTABLE
+BEGIN
+    IDS_PRODUCTTITLE "Product Options"
+    IDS_PRODUCTSUBTITLE "You can choose a product option that affects the 
behaviour of the system."
+    IDS_PRODUCTSERVERNAME "ReactOS Server (Default)"
+    IDS_PRODUCTWORKSTATIONNAME "ReactOS Workstation"
+    IDS_PRODUCTSERVERINFO "The system will be recognized as a server. Private 
folders ""My Pictures"", ""My Videos"" and ""My Music"" are independent from 
""My Documents""."
+    IDS_PRODUCTWORKSTATIONINFO "The system will be recognized as a 
workstation. Private folders ""My Pictures"", ""My Videos"" and ""My Music"" 
are in ""My Documents""."
+END
diff --git a/dll/win32/syssetup/lang/lt-LT.rc b/dll/win32/syssetup/lang/lt-LT.rc
index ef56bcff3be..0307968d8ba 100644
--- a/dll/win32/syssetup/lang/lt-LT.rc
+++ b/dll/win32/syssetup/lang/lt-LT.rc
@@ -41,6 +41,24 @@ BEGIN
     LTEXT "Click Next to continue with Setup.", IDC_STATIC, 15, 136, 195, 17
 END
 
+IDD_PRODUCT DIALOGEX 0, 0, 317, 143
+CAPTION "ReactOS Setup"
+STYLE DS_MODALFRAME | DS_SHELLFONT | WS_POPUPWINDOW | WS_CAPTION | WS_VISIBLE
+FONT 8, "MS Shell Dlg"
+BEGIN
+    ICON "", IDC_PRODUCT_ICON, 5, 5, 20, 20
+    LTEXT "Please choose a product option:", IDC_STATIC, 35, 7, 230, 12
+    LTEXT "Product &Options:", IDC_STATIC, 5, 32, 85, 10
+    COMBOBOX IDC_PRODUCT_OPTIONS, 95, 30, 135, 300, CBS_HASSTRINGS | 
CBS_AUTOHSCROLL | CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
+    GROUPBOX "Product Information", IDC_STATIC, 5, 50, 305, 85
+    LTEXT "ProductSuite:", IDC_STATIC, 20, 62, 70, 10
+    EDITTEXT IDC_PRODUCT_SUITE, 95, 60, 175, 14, ES_READONLY | ES_AUTOHSCROLL
+    LTEXT "ProductType:", IDC_STATIC, 20, 82, 70, 10
+    EDITTEXT IDC_PRODUCT_TYPE, 95, 80, 110, 14, ES_READONLY | ES_AUTOHSCROLL
+    LTEXT "Description:", IDC_STATIC, 20, 102, 70, 10
+    EDITTEXT IDC_PRODUCT_DESCRIPTION, 95, 99, 205, 30, ES_READONLY | 
ES_AUTOVSCROLL | ES_MULTILINE | WS_VSCROLL
+END
+
 IDD_OWNERPAGE DIALOGEX 0, 0, 317, 143
 STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | 
WS_SYSMENU
 CAPTION "ReactOS Setup"
@@ -243,3 +261,13 @@ BEGIN
     IDS_LUNAR "Lunar"
     IDS_MIZU "Mizu"
 END
+
+STRINGTABLE
+BEGIN
+    IDS_PRODUCTTITLE "Product Options"
+    IDS_PRODUCTSUBTITLE "You can choose a product option that affects the 
behaviour of the system."
+    IDS_PRODUCTSERVERNAME "ReactOS Server (Default)"
+    IDS_PRODUCTWORKSTATIONNAME "ReactOS Workstation"
+    IDS_PRODUCTSERVERINFO "The system will be recognized as a server. Private 
folders ""My Pictures"", ""My Videos"" and ""My Music"" are independent from 
""My Documents""."
+    IDS_PRODUCTWORKSTATIONINFO "The system will be recognized as a 
workstation. Private folders ""My Pictures"", ""My Videos"" and ""My Music"" 
are in ""My Documents""."
+END
diff --git a/dll/win32/syssetup/lang/nl-NL.rc b/dll/win32/syssetup/lang/nl-NL.rc
index 3a4ccc69d0b..01f6bb3b858 100644
--- a/dll/win32/syssetup/lang/nl-NL.rc
+++ b/dll/win32/syssetup/lang/nl-NL.rc
@@ -22,6 +22,24 @@ BEGIN
     LTEXT "Klik op Volgende om voort te gaan met de installatie.", IDC_STATIC, 
15, 136, 195, 17
 END
 
+IDD_PRODUCT DIALOGEX 0, 0, 317, 143
+CAPTION "ReactOS Setup"
+STYLE DS_MODALFRAME | DS_SHELLFONT | WS_POPUPWINDOW | WS_CAPTION | WS_VISIBLE
+FONT 8, "MS Shell Dlg"
+BEGIN
+    ICON "", IDC_PRODUCT_ICON, 5, 5, 20, 20
+    LTEXT "Please choose a product option:", IDC_STATIC, 35, 7, 230, 12
+    LTEXT "Product &Options:", IDC_STATIC, 5, 32, 85, 10
+    COMBOBOX IDC_PRODUCT_OPTIONS, 95, 30, 135, 300, CBS_HASSTRINGS | 
CBS_AUTOHSCROLL | CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
+    GROUPBOX "Product Information", IDC_STATIC, 5, 50, 305, 85
+    LTEXT "ProductSuite:", IDC_STATIC, 20, 62, 70, 10
+    EDITTEXT IDC_PRODUCT_SUITE, 95, 60, 175, 14, ES_READONLY | ES_AUTOHSCROLL
+    LTEXT "ProductType:", IDC_STATIC, 20, 82, 70, 10
+    EDITTEXT IDC_PRODUCT_TYPE, 95, 80, 110, 14, ES_READONLY | ES_AUTOHSCROLL
+    LTEXT "Description:", IDC_STATIC, 20, 102, 70, 10
+    EDITTEXT IDC_PRODUCT_DESCRIPTION, 95, 99, 205, 30, ES_READONLY | 
ES_AUTOVSCROLL | ES_MULTILINE | WS_VSCROLL
+END
+
 IDD_OWNERPAGE DIALOGEX 0, 0, 317, 143
 STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | 
WS_SYSMENU
 CAPTION "ReactOS Setup"
@@ -224,3 +242,13 @@ BEGIN
     IDS_LUNAR "Lunar"
     IDS_MIZU "Mizu"
 END
+
+STRINGTABLE
+BEGIN
+    IDS_PRODUCTTITLE "Product Options"
+    IDS_PRODUCTSUBTITLE "You can choose a product option that affects the 
behaviour of the system."
+    IDS_PRODUCTSERVERNAME "ReactOS Server (Default)"
+    IDS_PRODUCTWORKSTATIONNAME "ReactOS Workstation"
+    IDS_PRODUCTSERVERINFO "The system will be recognized as a server. Private 
folders ""My Pictures"", ""My Videos"" and ""My Music"" are independent from 
""My Documents""."
+    IDS_PRODUCTWORKSTATIONINFO "The system will be recognized as a 
workstation. Private folders ""My Pictures"", ""My Videos"" and ""My Music"" 
are in ""My Documents""."
+END
diff --git a/dll/win32/syssetup/lang/no-NO.rc b/dll/win32/syssetup/lang/no-NO.rc
index d3b30cb7d01..bd436c889a7 100644
--- a/dll/win32/syssetup/lang/no-NO.rc
+++ b/dll/win32/syssetup/lang/no-NO.rc
@@ -22,6 +22,24 @@ BEGIN
     LTEXT "Klikk Neste for å fortsette installasjonen.", IDC_STATIC, 15, 136, 
195, 17
 END
 
+IDD_PRODUCT DIALOGEX 0, 0, 317, 143
+CAPTION "ReactOS Setup"
+STYLE DS_MODALFRAME | DS_SHELLFONT | WS_POPUPWINDOW | WS_CAPTION | WS_VISIBLE
+FONT 8, "MS Shell Dlg"
+BEGIN
+    ICON "", IDC_PRODUCT_ICON, 5, 5, 20, 20
+    LTEXT "Please choose a product option:", IDC_STATIC, 35, 7, 230, 12
+    LTEXT "Product &Options:", IDC_STATIC, 5, 32, 85, 10
+    COMBOBOX IDC_PRODUCT_OPTIONS, 95, 30, 135, 300, CBS_HASSTRINGS | 
CBS_AUTOHSCROLL | CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
+    GROUPBOX "Product Information", IDC_STATIC, 5, 50, 305, 85
+    LTEXT "ProductSuite:", IDC_STATIC, 20, 62, 70, 10
+    EDITTEXT IDC_PRODUCT_SUITE, 95, 60, 175, 14, ES_READONLY | ES_AUTOHSCROLL
+    LTEXT "ProductType:", IDC_STATIC, 20, 82, 70, 10
+    EDITTEXT IDC_PRODUCT_TYPE, 95, 80, 110, 14, ES_READONLY | ES_AUTOHSCROLL
+    LTEXT "Description:", IDC_STATIC, 20, 102, 70, 10
+    EDITTEXT IDC_PRODUCT_DESCRIPTION, 95, 99, 205, 30, ES_READONLY | 
ES_AUTOVSCROLL | ES_MULTILINE | WS_VSCROLL
+END
+
 IDD_OWNERPAGE DIALOGEX 0, 0, 317, 143
 STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | 
WS_SYSMENU
 CAPTION "ReactOS installasjon"
@@ -224,3 +242,13 @@ BEGIN
     IDS_LUNAR "Lunar"
     IDS_MIZU "Mizu"
 END
+
+STRINGTABLE
+BEGIN
+    IDS_PRODUCTTITLE "Product Options"
+    IDS_PRODUCTSUBTITLE "You can choose a product option that affects the 
behaviour of the system."
+    IDS_PRODUCTSERVERNAME "ReactOS Server (Default)"
+    IDS_PRODUCTWORKSTATIONNAME "ReactOS Workstation"
+    IDS_PRODUCTSERVERINFO "The system will be recognized as a server. Private 
folders ""My Pictures"", ""My Videos"" and ""My Music"" are independent from 
""My Documents""."
+    IDS_PRODUCTWORKSTATIONINFO "The system will be recognized as a 
workstation. Private folders ""My Pictures"", ""My Videos"" and ""My Music"" 
are in ""My Documents""."
+END
diff --git a/dll/win32/syssetup/lang/pl-PL.rc b/dll/win32/syssetup/lang/pl-PL.rc
index 7646291ae48..4b8013bd391 100644
--- a/dll/win32/syssetup/lang/pl-PL.rc
+++ b/dll/win32/syssetup/lang/pl-PL.rc
@@ -22,6 +22,24 @@ BEGIN
     LTEXT "Kliknij Dalej, by kontynuować.", IDC_STATIC, 15, 135, 195, 17
 END
 
+IDD_PRODUCT DIALOGEX 0, 0, 317, 143
+CAPTION "ReactOS Setup"
+STYLE DS_MODALFRAME | DS_SHELLFONT | WS_POPUPWINDOW | WS_CAPTION | WS_VISIBLE
+FONT 8, "MS Shell Dlg"
+BEGIN
+    ICON "", IDC_PRODUCT_ICON, 5, 5, 20, 20
+    LTEXT "Please choose a product option:", IDC_STATIC, 35, 7, 230, 12
+    LTEXT "Product &Options:", IDC_STATIC, 5, 32, 85, 10
+    COMBOBOX IDC_PRODUCT_OPTIONS, 95, 30, 135, 300, CBS_HASSTRINGS | 
CBS_AUTOHSCROLL | CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
+    GROUPBOX "Product Information", IDC_STATIC, 5, 50, 305, 85
+    LTEXT "ProductSuite:", IDC_STATIC, 20, 62, 70, 10
+    EDITTEXT IDC_PRODUCT_SUITE, 95, 60, 175, 14, ES_READONLY | ES_AUTOHSCROLL
+    LTEXT "ProductType:", IDC_STATIC, 20, 82, 70, 10
+    EDITTEXT IDC_PRODUCT_TYPE, 95, 80, 110, 14, ES_READONLY | ES_AUTOHSCROLL
+    LTEXT "Description:", IDC_STATIC, 20, 102, 70, 10
+    EDITTEXT IDC_PRODUCT_DESCRIPTION, 95, 99, 205, 30, ES_READONLY | 
ES_AUTOVSCROLL | ES_MULTILINE | WS_VSCROLL
+END
+
 IDD_OWNERPAGE DIALOGEX 0, 0, 317, 143
 STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | 
WS_SYSMENU
 CAPTION "Instalator systemu ReactOS"
@@ -224,3 +242,13 @@ BEGIN
     IDS_LUNAR "Lunar"
     IDS_MIZU "Mizu"
 END
+
+STRINGTABLE
+BEGIN
+    IDS_PRODUCTTITLE "Product Options"
+    IDS_PRODUCTSUBTITLE "You can choose a product option that affects the 
behaviour of the system."
+    IDS_PRODUCTSERVERNAME "ReactOS Server (Default)"
+    IDS_PRODUCTWORKSTATIONNAME "ReactOS Workstation"
+    IDS_PRODUCTSERVERINFO "The system will be recognized as a server. Private 
folders ""My Pictures"", ""My Videos"" and ""My Music"" are independent from 
""My Documents""."
+    IDS_PRODUCTWORKSTATIONINFO "The system will be recognized as a 
workstation. Private folders ""My Pictures"", ""My Videos"" and ""My Music"" 
are in ""My Documents""."
+END
diff --git a/dll/win32/syssetup/lang/pt-BR.rc b/dll/win32/syssetup/lang/pt-BR.rc
index 9b065c57f40..7b79334b32a 100644
--- a/dll/win32/syssetup/lang/pt-BR.rc
+++ b/dll/win32/syssetup/lang/pt-BR.rc
@@ -22,6 +22,24 @@ BEGIN
     LTEXT "Clique Avançar para continuar com a instalação.", IDC_STATIC, 15, 
136, 195, 17
 END
 
+IDD_PRODUCT DIALOGEX 0, 0, 317, 143
+CAPTION "ReactOS Setup"
+STYLE DS_MODALFRAME | DS_SHELLFONT | WS_POPUPWINDOW | WS_CAPTION | WS_VISIBLE
+FONT 8, "MS Shell Dlg"
+BEGIN
+    ICON "", IDC_PRODUCT_ICON, 5, 5, 20, 20
+    LTEXT "Please choose a product option:", IDC_STATIC, 35, 7, 230, 12
+    LTEXT "Product &Options:", IDC_STATIC, 5, 32, 85, 10
+    COMBOBOX IDC_PRODUCT_OPTIONS, 95, 30, 135, 300, CBS_HASSTRINGS | 
CBS_AUTOHSCROLL | CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
+    GROUPBOX "Product Information", IDC_STATIC, 5, 50, 305, 85
+    LTEXT "ProductSuite:", IDC_STATIC, 20, 62, 70, 10
+    EDITTEXT IDC_PRODUCT_SUITE, 95, 60, 175, 14, ES_READONLY | ES_AUTOHSCROLL
+    LTEXT "ProductType:", IDC_STATIC, 20, 82, 70, 10
+    EDITTEXT IDC_PRODUCT_TYPE, 95, 80, 110, 14, ES_READONLY | ES_AUTOHSCROLL
+    LTEXT "Description:", IDC_STATIC, 20, 102, 70, 10
+    EDITTEXT IDC_PRODUCT_DESCRIPTION, 95, 99, 205, 30, ES_READONLY | 
ES_AUTOVSCROLL | ES_MULTILINE | WS_VSCROLL
+END
+
 IDD_OWNERPAGE DIALOGEX 0, 0, 317, 143
 STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | 
WS_SYSMENU
 CAPTION "Instalação do ReactOS"
@@ -224,3 +242,13 @@ BEGIN
     IDS_LUNAR "Lunar"
     IDS_MIZU "Mizu"
 END
+
+STRINGTABLE
+BEGIN
+    IDS_PRODUCTTITLE "Product Options"
+    IDS_PRODUCTSUBTITLE "You can choose a product option that affects the 
behaviour of the system."
+    IDS_PRODUCTSERVERNAME "ReactOS Server (Default)"
+    IDS_PRODUCTWORKSTATIONNAME "ReactOS Workstation"
+    IDS_PRODUCTSERVERINFO "The system will be recognized as a server. Private 
folders ""My Pictures"", ""My Videos"" and ""My Music"" are independent from 
""My Documents""."
+    IDS_PRODUCTWORKSTATIONINFO "The system will be recognized as a 
workstation. Private folders ""My Pictures"", ""My Videos"" and ""My Music"" 
are in ""My Documents""."
+END
diff --git a/dll/win32/syssetup/lang/pt-PT.rc b/dll/win32/syssetup/lang/pt-PT.rc
index be85577b0a4..71b3c00a849 100644
--- a/dll/win32/syssetup/lang/pt-PT.rc
+++ b/dll/win32/syssetup/lang/pt-PT.rc
@@ -22,6 +22,24 @@ BEGIN
     LTEXT "Clique Avançar para continuar com a instalação.", IDC_STATIC, 15, 
136, 195, 17
 END
 
+IDD_PRODUCT DIALOGEX 0, 0, 317, 143
+CAPTION "ReactOS Setup"
+STYLE DS_MODALFRAME | DS_SHELLFONT | WS_POPUPWINDOW | WS_CAPTION | WS_VISIBLE
+FONT 8, "MS Shell Dlg"
+BEGIN
+    ICON "", IDC_PRODUCT_ICON, 5, 5, 20, 20
+    LTEXT "Please choose a product option:", IDC_STATIC, 35, 7, 230, 12
+    LTEXT "Product &Options:", IDC_STATIC, 5, 32, 85, 10
+    COMBOBOX IDC_PRODUCT_OPTIONS, 95, 30, 135, 300, CBS_HASSTRINGS | 
CBS_AUTOHSCROLL | CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
+    GROUPBOX "Product Information", IDC_STATIC, 5, 50, 305, 85
+    LTEXT "ProductSuite:", IDC_STATIC, 20, 62, 70, 10
+    EDITTEXT IDC_PRODUCT_SUITE, 95, 60, 175, 14, ES_READONLY | ES_AUTOHSCROLL
+    LTEXT "ProductType:", IDC_STATIC, 20, 82, 70, 10
+    EDITTEXT IDC_PRODUCT_TYPE, 95, 80, 110, 14, ES_READONLY | ES_AUTOHSCROLL
+    LTEXT "Description:", IDC_STATIC, 20, 102, 70, 10
+    EDITTEXT IDC_PRODUCT_DESCRIPTION, 95, 99, 205, 30, ES_READONLY | 
ES_AUTOVSCROLL | ES_MULTILINE | WS_VSCROLL
+END
+
 IDD_OWNERPAGE DIALOGEX 0, 0, 317, 143
 STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | 
WS_SYSMENU
 CAPTION "Instalação do ReactOS"
@@ -224,3 +242,13 @@ BEGIN
     IDS_LUNAR "Lunar"
     IDS_MIZU "Mizu"
 END
+
+STRINGTABLE
+BEGIN
+    IDS_PRODUCTTITLE "Product Options"
+    IDS_PRODUCTSUBTITLE "You can choose a product option that affects the 
behaviour of the system."
+    IDS_PRODUCTSERVERNAME "ReactOS Server (Default)"
+    IDS_PRODUCTWORKSTATIONNAME "ReactOS Workstation"
+    IDS_PRODUCTSERVERINFO "The system will be recognized as a server. Private 
folders ""My Pictures"", ""My Videos"" and ""My Music"" are independent from 
""My Documents""."
+    IDS_PRODUCTWORKSTATIONINFO "The system will be recognized as a 
workstation. Private folders ""My Pictures"", ""My Videos"" and ""My Music"" 
are in ""My Documents""."
+END
diff --git a/dll/win32/syssetup/lang/ro-RO.rc b/dll/win32/syssetup/lang/ro-RO.rc
index 4a0369ea026..4c8f51e1711 100644
--- a/dll/win32/syssetup/lang/ro-RO.rc
+++ b/dll/win32/syssetup/lang/ro-RO.rc
@@ -31,6 +31,24 @@ BEGIN
     LTEXT "Apăsați „Înainte” pentru a continua.", IDC_STATIC, 15, 136, 195, 17
 END
 
+IDD_PRODUCT DIALOGEX 0, 0, 317, 143
+CAPTION "ReactOS Setup"
+STYLE DS_MODALFRAME | DS_SHELLFONT | WS_POPUPWINDOW | WS_CAPTION | WS_VISIBLE
+FONT 8, "MS Shell Dlg"
+BEGIN
+    ICON "", IDC_PRODUCT_ICON, 5, 5, 20, 20
+    LTEXT "Please choose a product option:", IDC_STATIC, 35, 7, 230, 12
+    LTEXT "Product &Options:", IDC_STATIC, 5, 32, 85, 10
+    COMBOBOX IDC_PRODUCT_OPTIONS, 95, 30, 135, 300, CBS_HASSTRINGS | 
CBS_AUTOHSCROLL | CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
+    GROUPBOX "Product Information", IDC_STATIC, 5, 50, 305, 85
+    LTEXT "ProductSuite:", IDC_STATIC, 20, 62, 70, 10
+    EDITTEXT IDC_PRODUCT_SUITE, 95, 60, 175, 14, ES_READONLY | ES_AUTOHSCROLL
+    LTEXT "ProductType:", IDC_STATIC, 20, 82, 70, 10
+    EDITTEXT IDC_PRODUCT_TYPE, 95, 80, 110, 14, ES_READONLY | ES_AUTOHSCROLL
+    LTEXT "Description:", IDC_STATIC, 20, 102, 70, 10
+    EDITTEXT IDC_PRODUCT_DESCRIPTION, 95, 99, 205, 30, ES_READONLY | 
ES_AUTOVSCROLL | ES_MULTILINE | WS_VSCROLL
+END
+
 IDD_OWNERPAGE DIALOGEX 0, 0, 317, 143
 STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | 
WS_SYSMENU
 CAPTION "Asistent de instalare ReactOS"
@@ -233,3 +251,13 @@ BEGIN
     IDS_LUNAR "Lunar"
     IDS_MIZU "Mizu"
 END
+
+STRINGTABLE
+BEGIN
+    IDS_PRODUCTTITLE "Product Options"
+    IDS_PRODUCTSUBTITLE "You can choose a product option that affects the 
behaviour of the system."
+    IDS_PRODUCTSERVERNAME "ReactOS Server (Default)"
+    IDS_PRODUCTWORKSTATIONNAME "ReactOS Workstation"
+    IDS_PRODUCTSERVERINFO "The system will be recognized as a server. Private 
folders ""My Pictures"", ""My Videos"" and ""My Music"" are independent from 
""My Documents""."
+    IDS_PRODUCTWORKSTATIONINFO "The system will be recognized as a 
workstation. Private folders ""My Pictures"", ""My Videos"" and ""My Music"" 
are in ""My Documents""."
+END
diff --git a/dll/win32/syssetup/lang/ru-RU.rc b/dll/win32/syssetup/lang/ru-RU.rc
index 4b3d7f3e4ca..3c2d9d18864 100644
--- a/dll/win32/syssetup/lang/ru-RU.rc
+++ b/dll/win32/syssetup/lang/ru-RU.rc
@@ -24,6 +24,24 @@ BEGIN
     LTEXT "Нажмите ""Далее"" для продолжения установки.", IDC_STATIC, 15, 136, 
195, 17
 END
 
+IDD_PRODUCT DIALOGEX 0, 0, 317, 143
+CAPTION "ReactOS Setup"
+STYLE DS_MODALFRAME | DS_SHELLFONT | WS_POPUPWINDOW | WS_CAPTION | WS_VISIBLE
+FONT 8, "MS Shell Dlg"
+BEGIN
+    ICON "", IDC_PRODUCT_ICON, 5, 5, 20, 20
+    LTEXT "Please choose a product option:", IDC_STATIC, 35, 7, 230, 12
+    LTEXT "Product &Options:", IDC_STATIC, 5, 32, 85, 10
+    COMBOBOX IDC_PRODUCT_OPTIONS, 95, 30, 135, 300, CBS_HASSTRINGS | 
CBS_AUTOHSCROLL | CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
+    GROUPBOX "Product Information", IDC_STATIC, 5, 50, 305, 85
+    LTEXT "ProductSuite:", IDC_STATIC, 20, 62, 70, 10
+    EDITTEXT IDC_PRODUCT_SUITE, 95, 60, 175, 14, ES_READONLY | ES_AUTOHSCROLL
+    LTEXT "ProductType:", IDC_STATIC, 20, 82, 70, 10
+    EDITTEXT IDC_PRODUCT_TYPE, 95, 80, 110, 14, ES_READONLY | ES_AUTOHSCROLL
+    LTEXT "Description:", IDC_STATIC, 20, 102, 70, 10
+    EDITTEXT IDC_PRODUCT_DESCRIPTION, 95, 99, 205, 30, ES_READONLY | 
ES_AUTOVSCROLL | ES_MULTILINE | WS_VSCROLL
+END
+
 IDD_OWNERPAGE DIALOGEX 0, 0, 317, 143
 STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | 
WS_SYSMENU
 CAPTION "Установка ReactOS"
@@ -226,3 +244,13 @@ BEGIN
     IDS_LUNAR "Тема ""Lunar"""
     IDS_MIZU "Тема ""Mizu"""
 END
+
+STRINGTABLE
+BEGIN
+    IDS_PRODUCTTITLE "Product Options"
+    IDS_PRODUCTSUBTITLE "You can choose a product option that affects the 
behaviour of the system."
+    IDS_PRODUCTSERVERNAME "ReactOS Server (Default)"
+    IDS_PRODUCTWORKSTATIONNAME "ReactOS Workstation"
+    IDS_PRODUCTSERVERINFO "The system will be recognized as a server. Private 
folders ""My Pictures"", ""My Videos"" and ""My Music"" are independent from 
""My Documents""."
+    IDS_PRODUCTWORKSTATIONINFO "The system will be recognized as a 
workstation. Private folders ""My Pictures"", ""My Videos"" and ""My Music"" 
are in ""My Documents""."
+END
diff --git a/dll/win32/syssetup/lang/sk-SK.rc b/dll/win32/syssetup/lang/sk-SK.rc
index a85cae8db79..12f30a74604 100644
--- a/dll/win32/syssetup/lang/sk-SK.rc
+++ b/dll/win32/syssetup/lang/sk-SK.rc
@@ -28,6 +28,24 @@ BEGIN
     LTEXT "Kliknutím na Ďalej pokračujte v inštalácii.", IDC_STATIC, 15, 136, 
195, 17
 END
 
+IDD_PRODUCT DIALOGEX 0, 0, 317, 143
+CAPTION "ReactOS Setup"
+STYLE DS_MODALFRAME | DS_SHELLFONT | WS_POPUPWINDOW | WS_CAPTION | WS_VISIBLE
+FONT 8, "MS Shell Dlg"
+BEGIN
+    ICON "", IDC_PRODUCT_ICON, 5, 5, 20, 20
+    LTEXT "Please choose a product option:", IDC_STATIC, 35, 7, 230, 12
+    LTEXT "Product &Options:", IDC_STATIC, 5, 32, 85, 10
+    COMBOBOX IDC_PRODUCT_OPTIONS, 95, 30, 135, 300, CBS_HASSTRINGS | 
CBS_AUTOHSCROLL | CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
+    GROUPBOX "Product Information", IDC_STATIC, 5, 50, 305, 85
+    LTEXT "ProductSuite:", IDC_STATIC, 20, 62, 70, 10
+    EDITTEXT IDC_PRODUCT_SUITE, 95, 60, 175, 14, ES_READONLY | ES_AUTOHSCROLL
+    LTEXT "ProductType:", IDC_STATIC, 20, 82, 70, 10
+    EDITTEXT IDC_PRODUCT_TYPE, 95, 80, 110, 14, ES_READONLY | ES_AUTOHSCROLL
+    LTEXT "Description:", IDC_STATIC, 20, 102, 70, 10
+    EDITTEXT IDC_PRODUCT_DESCRIPTION, 95, 99, 205, 30, ES_READONLY | 
ES_AUTOVSCROLL | ES_MULTILINE | WS_VSCROLL
+END
+
 IDD_OWNERPAGE DIALOGEX 0, 0, 317, 143
 STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | 
WS_SYSMENU
 CAPTION "Inštalátor systému ReactOS"
@@ -230,3 +248,13 @@ BEGIN
     IDS_LUNAR "Lunar"
     IDS_MIZU "Mizu"
 END
+
+STRINGTABLE
+BEGIN
+    IDS_PRODUCTTITLE "Product Options"
+    IDS_PRODUCTSUBTITLE "You can choose a product option that affects the 
behaviour of the system."
+    IDS_PRODUCTSERVERNAME "ReactOS Server (Default)"
+    IDS_PRODUCTWORKSTATIONNAME "ReactOS Workstation"
+    IDS_PRODUCTSERVERINFO "The system will be recognized as a server. Private 
folders ""My Pictures"", ""My Videos"" and ""My Music"" are independent from 
""My Documents""."
+    IDS_PRODUCTWORKSTATIONINFO "The system will be recognized as a 
workstation. Private folders ""My Pictures"", ""My Videos"" and ""My Music"" 
are in ""My Documents""."
+END
diff --git a/dll/win32/syssetup/lang/sq-AL.rc b/dll/win32/syssetup/lang/sq-AL.rc
index dd71148eb36..d34e7d26a9c 100644
--- a/dll/win32/syssetup/lang/sq-AL.rc
+++ b/dll/win32/syssetup/lang/sq-AL.rc
@@ -41,6 +41,24 @@ BEGIN
     LTEXT "Klikoni Tjetër për të vazhduar me Ndërtimin.", IDC_STATIC, 15, 136, 
195, 17
 END
 
+IDD_PRODUCT DIALOGEX 0, 0, 317, 143
+CAPTION "ReactOS Setup"
+STYLE DS_MODALFRAME | DS_SHELLFONT | WS_POPUPWINDOW | WS_CAPTION | WS_VISIBLE
+FONT 8, "MS Shell Dlg"
+BEGIN
+    ICON "", IDC_PRODUCT_ICON, 5, 5, 20, 20
+    LTEXT "Please choose a product option:", IDC_STATIC, 35, 7, 230, 12
+    LTEXT "Product &Options:", IDC_STATIC, 5, 32, 85, 10
+    COMBOBOX IDC_PRODUCT_OPTIONS, 95, 30, 135, 300, CBS_HASSTRINGS | 
CBS_AUTOHSCROLL | CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
+    GROUPBOX "Product Information", IDC_STATIC, 5, 50, 305, 85
+    LTEXT "ProductSuite:", IDC_STATIC, 20, 62, 70, 10
+    EDITTEXT IDC_PRODUCT_SUITE, 95, 60, 175, 14, ES_READONLY | ES_AUTOHSCROLL
+    LTEXT "ProductType:", IDC_STATIC, 20, 82, 70, 10
+    EDITTEXT IDC_PRODUCT_TYPE, 95, 80, 110, 14, ES_READONLY | ES_AUTOHSCROLL
+    LTEXT "Description:", IDC_STATIC, 20, 102, 70, 10
+    EDITTEXT IDC_PRODUCT_DESCRIPTION, 95, 99, 205, 30, ES_READONLY | 
ES_AUTOVSCROLL | ES_MULTILINE | WS_VSCROLL
+END
+
 IDD_OWNERPAGE DIALOGEX 0, 0, 317, 143
 STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | 
WS_SYSMENU
 CAPTION "Ndërto ReactOS"
@@ -243,3 +261,13 @@ BEGIN
     IDS_LUNAR "Lunar"
     IDS_MIZU "Mizu"
 END
+
+STRINGTABLE
+BEGIN
+    IDS_PRODUCTTITLE "Product Options"
+    IDS_PRODUCTSUBTITLE "You can choose a product option that affects the 
behaviour of the system."
+    IDS_PRODUCTSERVERNAME "ReactOS Server (Default)"
+    IDS_PRODUCTWORKSTATIONNAME "ReactOS Workstation"
+    IDS_PRODUCTSERVERINFO "The system will be recognized as a server. Private 
folders ""My Pictures"", ""My Videos"" and ""My Music"" are independent from 
""My Documents""."
+    IDS_PRODUCTWORKSTATIONINFO "The system will be recognized as a 
workstation. Private folders ""My Pictures"", ""My Videos"" and ""My Music"" 
are in ""My Documents""."
+END
diff --git a/dll/win32/syssetup/lang/sv-SE.rc b/dll/win32/syssetup/lang/sv-SE.rc
index 430050a31f5..1cdc8880559 100644
--- a/dll/win32/syssetup/lang/sv-SE.rc
+++ b/dll/win32/syssetup/lang/sv-SE.rc
@@ -41,6 +41,24 @@ BEGIN
     LTEXT "Click Next to continue with Setup.", IDC_STATIC, 15, 136, 195, 17
 END
 
+IDD_PRODUCT DIALOGEX 0, 0, 317, 143
+CAPTION "ReactOS Setup"
+STYLE DS_MODALFRAME | DS_SHELLFONT | WS_POPUPWINDOW | WS_CAPTION | WS_VISIBLE
+FONT 8, "MS Shell Dlg"
+BEGIN
+    ICON "", IDC_PRODUCT_ICON, 5, 5, 20, 20
+    LTEXT "Please choose a product option:", IDC_STATIC, 35, 7, 230, 12
+    LTEXT "Product &Options:", IDC_STATIC, 5, 32, 85, 10
+    COMBOBOX IDC_PRODUCT_OPTIONS, 95, 30, 135, 300, CBS_HASSTRINGS | 
CBS_AUTOHSCROLL | CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
+    GROUPBOX "Product Information", IDC_STATIC, 5, 50, 305, 85
+    LTEXT "ProductSuite:", IDC_STATIC, 20, 62, 70, 10
+    EDITTEXT IDC_PRODUCT_SUITE, 95, 60, 175, 14, ES_READONLY | ES_AUTOHSCROLL
+    LTEXT "ProductType:", IDC_STATIC, 20, 82, 70, 10
+    EDITTEXT IDC_PRODUCT_TYPE, 95, 80, 110, 14, ES_READONLY | ES_AUTOHSCROLL
+    LTEXT "Description:", IDC_STATIC, 20, 102, 70, 10
+    EDITTEXT IDC_PRODUCT_DESCRIPTION, 95, 99, 205, 30, ES_READONLY | 
ES_AUTOVSCROLL | ES_MULTILINE | WS_VSCROLL
+END
+
 IDD_OWNERPAGE DIALOGEX 0, 0, 317, 143
 STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | 
WS_SYSMENU
 CAPTION "ReactOS Setup"
@@ -243,3 +261,13 @@ BEGIN
     IDS_LUNAR "Lunar"
     IDS_MIZU "Mizu"
 END
+
+STRINGTABLE
+BEGIN
+    IDS_PRODUCTTITLE "Product Options"
+    IDS_PRODUCTSUBTITLE "You can choose a product option that affects the 
behaviour of the system."
+    IDS_PRODUCTSERVERNAME "ReactOS Server (Default)"
+    IDS_PRODUCTWORKSTATIONNAME "ReactOS Workstation"
+    IDS_PRODUCTSERVERINFO "The system will be recognized as a server. Private 
folders ""My Pictures"", ""My Videos"" and ""My Music"" are independent from 
""My Documents""."
+    IDS_PRODUCTWORKSTATIONINFO "The system will be recognized as a 
workstation. Private folders ""My Pictures"", ""My Videos"" and ""My Music"" 
are in ""My Documents""."
+END
diff --git a/dll/win32/syssetup/lang/th-TH.rc b/dll/win32/syssetup/lang/th-TH.rc
index 6ef8cbdf87d..1194b0d55cf 100644
--- a/dll/win32/syssetup/lang/th-TH.rc
+++ b/dll/win32/syssetup/lang/th-TH.rc
@@ -41,6 +41,24 @@ BEGIN
     LTEXT "Click Next to continue with Setup.", IDC_STATIC, 15, 136, 195, 17
 END
 
+IDD_PRODUCT DIALOGEX 0, 0, 317, 143
+CAPTION "ReactOS Setup"
+STYLE DS_MODALFRAME | DS_SHELLFONT | WS_POPUPWINDOW | WS_CAPTION | WS_VISIBLE
+FONT 8, "MS Shell Dlg"
+BEGIN
+    ICON "", IDC_PRODUCT_ICON, 5, 5, 20, 20
+    LTEXT "Please choose a product option:", IDC_STATIC, 35, 7, 230, 12
+    LTEXT "Product &Options:", IDC_STATIC, 5, 32, 85, 10
+    COMBOBOX IDC_PRODUCT_OPTIONS, 95, 30, 135, 300, CBS_HASSTRINGS | 
CBS_AUTOHSCROLL | CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
+    GROUPBOX "Product Information", IDC_STATIC, 5, 50, 305, 85
+    LTEXT "ProductSuite:", IDC_STATIC, 20, 62, 70, 10
+    EDITTEXT IDC_PRODUCT_SUITE, 95, 60, 175, 14, ES_READONLY | ES_AUTOHSCROLL
+    LTEXT "ProductType:", IDC_STATIC, 20, 82, 70, 10
+    EDITTEXT IDC_PRODUCT_TYPE, 95, 80, 110, 14, ES_READONLY | ES_AUTOHSCROLL
+    LTEXT "Description:", IDC_STATIC, 20, 102, 70, 10
+    EDITTEXT IDC_PRODUCT_DESCRIPTION, 95, 99, 205, 30, ES_READONLY | 
ES_AUTOVSCROLL | ES_MULTILINE | WS_VSCROLL
+END
+
 IDD_OWNERPAGE DIALOGEX 0, 0, 317, 143
 STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | 
WS_SYSMENU
 CAPTION "ReactOS Setup"
@@ -243,3 +261,13 @@ BEGIN
     IDS_LUNAR "Lunar"
     IDS_MIZU "Mizu"
 END
+
+STRINGTABLE
+BEGIN
+    IDS_PRODUCTTITLE "Product Options"
+    IDS_PRODUCTSUBTITLE "You can choose a product option that affects the 
behaviour of the system."
+    IDS_PRODUCTSERVERNAME "ReactOS Server (Default)"
+    IDS_PRODUCTWORKSTATIONNAME "ReactOS Workstation"
+    IDS_PRODUCTSERVERINFO "The system will be recognized as a server. Private 
folders ""My Pictures"", ""My Videos"" and ""My Music"" are independent from 
""My Documents""."
+    IDS_PRODUCTWORKSTATIONINFO "The system will be recognized as a 
workstation. Private folders ""My Pictures"", ""My Videos"" and ""My Music"" 
are in ""My Documents""."
+END
diff --git a/dll/win32/syssetup/lang/tr-TR.rc b/dll/win32/syssetup/lang/tr-TR.rc
index fe7e29b9fcf..7f4a8fd1eca 100644
--- a/dll/win32/syssetup/lang/tr-TR.rc
+++ b/dll/win32/syssetup/lang/tr-TR.rc
@@ -24,6 +24,24 @@ BEGIN
     LTEXT "Kur'la sürdürmek için İleri'ye tıklayınız.", IDC_STATIC, 15, 136, 
195, 17
 END
 
+IDD_PRODUCT DIALOGEX 0, 0, 317, 143
+CAPTION "ReactOS Setup"
+STYLE DS_MODALFRAME | DS_SHELLFONT | WS_POPUPWINDOW | WS_CAPTION | WS_VISIBLE
+FONT 8, "MS Shell Dlg"
+BEGIN
+    ICON "", IDC_PRODUCT_ICON, 5, 5, 20, 20
+    LTEXT "Please choose a product option:", IDC_STATIC, 35, 7, 230, 12
+    LTEXT "Product &Options:", IDC_STATIC, 5, 32, 85, 10
+    COMBOBOX IDC_PRODUCT_OPTIONS, 95, 30, 135, 300, CBS_HASSTRINGS | 
CBS_AUTOHSCROLL | CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
+    GROUPBOX "Product Information", IDC_STATIC, 5, 50, 305, 85
+    LTEXT "ProductSuite:", IDC_STATIC, 20, 62, 70, 10
+    EDITTEXT IDC_PRODUCT_SUITE, 95, 60, 175, 14, ES_READONLY | ES_AUTOHSCROLL
+    LTEXT "ProductType:", IDC_STATIC, 20, 82, 70, 10
+    EDITTEXT IDC_PRODUCT_TYPE, 95, 80, 110, 14, ES_READONLY | ES_AUTOHSCROLL
+    LTEXT "Description:", IDC_STATIC, 20, 102, 70, 10
+    EDITTEXT IDC_PRODUCT_DESCRIPTION, 95, 99, 205, 30, ES_READONLY | 
ES_AUTOVSCROLL | ES_MULTILINE | WS_VSCROLL
+END
+
 IDD_OWNERPAGE DIALOGEX 0, 0, 317, 143
 STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | 
WS_SYSMENU
 CAPTION "ReactOS Kur"
@@ -226,3 +244,13 @@ BEGIN
     IDS_LUNAR "Lunar"
     IDS_MIZU "Mizu"
 END
+
+STRINGTABLE
+BEGIN
+    IDS_PRODUCTTITLE "Product Options"
+    IDS_PRODUCTSUBTITLE "You can choose a product option that affects the 
behaviour of the system."
+    IDS_PRODUCTSERVERNAME "ReactOS Server (Default)"
+    IDS_PRODUCTWORKSTATIONNAME "ReactOS Workstation"
+    IDS_PRODUCTSERVERINFO "The system will be recognized as a server. Private 
folders ""My Pictures"", ""My Videos"" and ""My Music"" are independent from 
""My Documents""."
+    IDS_PRODUCTWORKSTATIONINFO "The system will be recognized as a 
workstation. Private folders ""My Pictures"", ""My Videos"" and ""My Music"" 
are in ""My Documents""."
+END
diff --git a/dll/win32/syssetup/lang/uk-UA.rc b/dll/win32/syssetup/lang/uk-UA.rc
index e416c4748c6..596e176a786 100644
--- a/dll/win32/syssetup/lang/uk-UA.rc
+++ b/dll/win32/syssetup/lang/uk-UA.rc
@@ -30,6 +30,24 @@ BEGIN
     LTEXT "Натисніть ""Далі"", щоб продовжити встановлення.", IDC_STATIC, 15, 
136, 195, 17
 END
 
+IDD_PRODUCT DIALOGEX 0, 0, 317, 143
+CAPTION "ReactOS Setup"
+STYLE DS_MODALFRAME | DS_SHELLFONT | WS_POPUPWINDOW | WS_CAPTION | WS_VISIBLE
+FONT 8, "MS Shell Dlg"
+BEGIN
+    ICON "", IDC_PRODUCT_ICON, 5, 5, 20, 20
+    LTEXT "Please choose a product option:", IDC_STATIC, 35, 7, 230, 12
+    LTEXT "Product &Options:", IDC_STATIC, 5, 32, 85, 10
+    COMBOBOX IDC_PRODUCT_OPTIONS, 95, 30, 135, 300, CBS_HASSTRINGS | 
CBS_AUTOHSCROLL | CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
+    GROUPBOX "Product Information", IDC_STATIC, 5, 50, 305, 85
+    LTEXT "ProductSuite:", IDC_STATIC, 20, 62, 70, 10
+    EDITTEXT IDC_PRODUCT_SUITE, 95, 60, 175, 14, ES_READONLY | ES_AUTOHSCROLL
+    LTEXT "ProductType:", IDC_STATIC, 20, 82, 70, 10
+    EDITTEXT IDC_PRODUCT_TYPE, 95, 80, 110, 14, ES_READONLY | ES_AUTOHSCROLL
+    LTEXT "Description:", IDC_STATIC, 20, 102, 70, 10
+    EDITTEXT IDC_PRODUCT_DESCRIPTION, 95, 99, 205, 30, ES_READONLY | 
ES_AUTOVSCROLL | ES_MULTILINE | WS_VSCROLL
+END
+
 IDD_OWNERPAGE DIALOGEX 0, 0, 317, 143
 STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | 
WS_SYSMENU
 CAPTION "Встановлення ReactOS"
@@ -232,3 +250,13 @@ BEGIN
     IDS_LUNAR "Lunar"
     IDS_MIZU "Mizu"
 END
+
+STRINGTABLE
+BEGIN
+    IDS_PRODUCTTITLE "Product Options"
+    IDS_PRODUCTSUBTITLE "You can choose a product option that affects the 
behaviour of the system."
+    IDS_PRODUCTSERVERNAME "ReactOS Server (Default)"
+    IDS_PRODUCTWORKSTATIONNAME "ReactOS Workstation"
+    IDS_PRODUCTSERVERINFO "The system will be recognized as a server. Private 
folders ""My Pictures"", ""My Videos"" and ""My Music"" are independent from 
""My Documents""."
+    IDS_PRODUCTWORKSTATIONINFO "The system will be recognized as a 
workstation. Private folders ""My Pictures"", ""My Videos"" and ""My Music"" 
are in ""My Documents""."
+END
diff --git a/dll/win32/syssetup/lang/zh-CN.rc b/dll/win32/syssetup/lang/zh-CN.rc
index afb83e0650d..e2efd6d9705 100644
--- a/dll/win32/syssetup/lang/zh-CN.rc
+++ b/dll/win32/syssetup/lang/zh-CN.rc
@@ -24,6 +24,24 @@ BEGIN
     LTEXT "请单击“下一步”继续安装。", IDC_STATIC, 15, 136, 195, 17
 END
 
+IDD_PRODUCT DIALOGEX 0, 0, 317, 143
+CAPTION "ReactOS Setup"
+STYLE DS_MODALFRAME | DS_SHELLFONT | WS_POPUPWINDOW | WS_CAPTION | WS_VISIBLE
+FONT 8, "MS Shell Dlg"
+BEGIN
+    ICON "", IDC_PRODUCT_ICON, 5, 5, 20, 20
+    LTEXT "Please choose a product option:", IDC_STATIC, 35, 7, 230, 12
+    LTEXT "Product &Options:", IDC_STATIC, 5, 32, 85, 10
+    COMBOBOX IDC_PRODUCT_OPTIONS, 95, 30, 135, 300, CBS_HASSTRINGS | 
CBS_AUTOHSCROLL | CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
+    GROUPBOX "Product Information", IDC_STATIC, 5, 50, 305, 85
+    LTEXT "ProductSuite:", IDC_STATIC, 20, 62, 70, 10
+    EDITTEXT IDC_PRODUCT_SUITE, 95, 60, 175, 14, ES_READONLY | ES_AUTOHSCROLL
+    LTEXT "ProductType:", IDC_STATIC, 20, 82, 70, 10
+    EDITTEXT IDC_PRODUCT_TYPE, 95, 80, 110, 14, ES_READONLY | ES_AUTOHSCROLL
+    LTEXT "Description:", IDC_STATIC, 20, 102, 70, 10
+    EDITTEXT IDC_PRODUCT_DESCRIPTION, 95, 99, 205, 30, ES_READONLY | 
ES_AUTOVSCROLL | ES_MULTILINE | WS_VSCROLL
+END
+
 IDD_OWNERPAGE DIALOGEX 0, 0, 317, 143
 STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | 
WS_SYSMENU
 CAPTION "ReactOS 安装程序 "
@@ -229,3 +247,13 @@ BEGIN
     IDS_LUNAR "Lunar"
     IDS_MIZU "Mizu"
 END
+
+STRINGTABLE
+BEGIN
+    IDS_PRODUCTTITLE "Product Options"
+    IDS_PRODUCTSUBTITLE "You can choose a product option that affects the 
behaviour of the system."
+    IDS_PRODUCTSERVERNAME "ReactOS Server (Default)"
+    IDS_PRODUCTWORKSTATIONNAME "ReactOS Workstation"
+    IDS_PRODUCTSERVERINFO "The system will be recognized as a server. Private 
folders ""My Pictures"", ""My Videos"" and ""My Music"" are independent from 
""My Documents""."
+    IDS_PRODUCTWORKSTATIONINFO "The system will be recognized as a 
workstation. Private folders ""My Pictures"", ""My Videos"" and ""My Music"" 
are in ""My Documents""."
+END
diff --git a/dll/win32/syssetup/lang/zh-TW.rc b/dll/win32/syssetup/lang/zh-TW.rc
index ce4b0ad1080..156c9ed33a9 100644
--- a/dll/win32/syssetup/lang/zh-TW.rc
+++ b/dll/win32/syssetup/lang/zh-TW.rc
@@ -44,6 +44,24 @@ BEGIN
     LTEXT "按 [下一步] 繼續安裝程式。", IDC_STATIC, 15, 136, 195, 17
 END
 
+IDD_PRODUCT DIALOGEX 0, 0, 317, 143
+CAPTION "ReactOS Setup"
+STYLE DS_MODALFRAME | DS_SHELLFONT | WS_POPUPWINDOW | WS_CAPTION | WS_VISIBLE
+FONT 8, "MS Shell Dlg"
+BEGIN
+    ICON "", IDC_PRODUCT_ICON, 5, 5, 20, 20
+    LTEXT "Please choose a product option:", IDC_STATIC, 35, 7, 230, 12
+    LTEXT "Product &Options:", IDC_STATIC, 5, 32, 85, 10
+    COMBOBOX IDC_PRODUCT_OPTIONS, 95, 30, 135, 300, CBS_HASSTRINGS | 
CBS_AUTOHSCROLL | CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
+    GROUPBOX "Product Information", IDC_STATIC, 5, 50, 305, 85
+    LTEXT "ProductSuite:", IDC_STATIC, 20, 62, 70, 10
+    EDITTEXT IDC_PRODUCT_SUITE, 95, 60, 175, 14, ES_READONLY | ES_AUTOHSCROLL
+    LTEXT "ProductType:", IDC_STATIC, 20, 82, 70, 10
+    EDITTEXT IDC_PRODUCT_TYPE, 95, 80, 110, 14, ES_READONLY | ES_AUTOHSCROLL
+    LTEXT "Description:", IDC_STATIC, 20, 102, 70, 10
+    EDITTEXT IDC_PRODUCT_DESCRIPTION, 95, 99, 205, 30, ES_READONLY | 
ES_AUTOVSCROLL | ES_MULTILINE | WS_VSCROLL
+END
+
 IDD_OWNERPAGE DIALOGEX 0, 0, 317, 143
 STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | 
WS_SYSMENU
 CAPTION "ReactOS 安裝程式"
@@ -251,3 +269,13 @@ BEGIN
     IDS_LUNAR "Lunar"
     IDS_MIZU "Mizu"
 END
+
+STRINGTABLE
+BEGIN
+    IDS_PRODUCTTITLE "Product Options"
+    IDS_PRODUCTSUBTITLE "You can choose a product option that affects the 
behaviour of the system."
+    IDS_PRODUCTSERVERNAME "ReactOS Server (Default)"
+    IDS_PRODUCTWORKSTATIONNAME "ReactOS Workstation"
+    IDS_PRODUCTSERVERINFO "The system will be recognized as a server. Private 
folders ""My Pictures"", ""My Videos"" and ""My Music"" are independent from 
""My Documents""."
+    IDS_PRODUCTWORKSTATIONINFO "The system will be recognized as a 
workstation. Private folders ""My Pictures"", ""My Videos"" and ""My Music"" 
are in ""My Documents""."
+END
diff --git a/dll/win32/syssetup/resource.h b/dll/win32/syssetup/resource.h
index f38658476a4..469c22e3fad 100644
--- a/dll/win32/syssetup/resource.h
+++ b/dll/win32/syssetup/resource.h
@@ -88,6 +88,13 @@
 #define IDC_PS2MOUSEFASTINIT   2305
 #define IDC_PS2MOUSEDEFAULTS   2306
 
+#define IDD_PRODUCT                2400
+#define IDC_PRODUCT_ICON           2401
+#define IDC_PRODUCT_OPTIONS        2402
+#define IDC_PRODUCT_SUITE          2403
+#define IDC_PRODUCT_TYPE           2404
+#define IDC_PRODUCT_DESCRIPTION    2405
+
 #define IDS_ACKTITLE    3010
 #define IDS_ACKSUBTITLE 3011
 
@@ -146,4 +153,11 @@
 #define IDS_LUNAR   3802
 #define IDS_MIZU    3803
 
+#define IDS_PRODUCTTITLE            3900
+#define IDS_PRODUCTSUBTITLE         3901
+#define IDS_PRODUCTSERVERNAME       3902
+#define IDS_PRODUCTWORKSTATIONNAME  3903
+#define IDS_PRODUCTSERVERINFO       3904
+#define IDS_PRODUCTWORKSTATIONINFO  3905
+
 #define IDR_GPL 4000
diff --git a/dll/win32/syssetup/wizard.c b/dll/win32/syssetup/wizard.c
index d3aaf7c71f3..ba2403e6667 100644
--- a/dll/win32/syssetup/wizard.c
+++ b/dll/win32/syssetup/wizard.c
@@ -355,11 +355,176 @@ AckPageDlgProc(HWND hwndDlg,
                     PropSheet_SetWizButtons(GetParent(hwndDlg), PSWIZB_BACK | 
PSWIZB_NEXT);
                     if (pSetupData->UnattendSetup)
                     {
+                        SetWindowLongPtr(hwndDlg, DWLP_MSGRESULT, IDD_PRODUCT);
+                        return TRUE;
+                    }
+                    break;
+
+                case PSN_WIZBACK:
+                    pSetupData->UnattendSetup = FALSE;
+                    break;
+
+                default:
+                    break;
+            }
+        }
+        break;
+
+        default:
+            break;
+    }
+
+    return FALSE;
+}
+
+static BOOL
+DoWriteProductOption(PRODUCT_OPTION nOption)
+{
+    static const WCHAR s_szProductOptions[] = 
L"System\\CurrentControlSet\\Control\\ProductOptions";
+    HKEY hKey;
+    LONG error;
+    LPCWSTR pData;
+    DWORD cbData;
+
+    error = RegOpenKeyExW(HKEY_LOCAL_MACHINE, s_szProductOptions, 0, 
KEY_WRITE, &hKey);
+    if (error)
+        return FALSE;
+
+    switch (nOption)
+    {
+        case PRODUCT_OPTION_SERVER:
+            /* write ProductSuite */
+            pData = L"Terminal Server\0";
+            cbData = sizeof(L"Terminal Server\0");
+            error = RegSetValueExW(hKey, L"ProductSuite", 0, REG_MULTI_SZ, 
(BYTE *)pData, cbData);
+            if (error)
+                break;
+
+            /* write ProductType */
+            pData = L"ServerNT";
+            cbData = sizeof(L"ServerNT");
+            error = RegSetValueExW(hKey, L"ProductType", 0, REG_SZ, (BYTE 
*)pData, cbData);
+            break;
+
+        case PRODUCT_OPTION_WORKSTATION:
+            /* write ProductSuite */
+            pData = L"\0";
+            cbData = sizeof(L"\0");
+            error = RegSetValueExW(hKey, L"ProductSuite", 0, REG_MULTI_SZ, 
(BYTE *)pData, cbData);
+            if (error)
+                break;
+
+            /* write ProductType */
+            pData = L"WinNT";
+            cbData = sizeof(L"WinNT");
+            error = RegSetValueExW(hKey, L"ProductType", 0, REG_SZ, (BYTE 
*)pData, cbData);
+            break;
+    }
+
+    RegCloseKey(hKey);
+    return error == ERROR_SUCCESS;
+}
+
+static void
+OnChooseServer(HWND hwndDlg)
+{
+    WCHAR szText[256];
+
+    SetDlgItemTextW(hwndDlg, IDC_PRODUCT_SUITE, L"Terminal Server");
+    SetDlgItemTextW(hwndDlg, IDC_PRODUCT_TYPE, L"ServerNT");
+
+    LoadStringW(hDllInstance, IDS_PRODUCTSERVERINFO, szText, _countof(szText));
+    SetDlgItemTextW(hwndDlg, IDC_PRODUCT_DESCRIPTION, szText);
+}
+
+static void
+OnChooseWorkstation(HWND hwndDlg)
+{
+    WCHAR szText[256];
+
+    SetDlgItemTextW(hwndDlg, IDC_PRODUCT_SUITE, L"");
+    SetDlgItemTextW(hwndDlg, IDC_PRODUCT_TYPE, L"WinNT");
+
+    LoadStringW(hDllInstance, IDS_PRODUCTWORKSTATIONINFO, szText, 
_countof(szText));
+    SetDlgItemTextW(hwndDlg, IDC_PRODUCT_DESCRIPTION, szText);
+}
+
+static INT_PTR CALLBACK
+ProductPageDlgProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam)
+{
+    LPNMHDR lpnm;
+    PSETUPDATA pSetupData;
+    INT iItem;
+    WCHAR szText[64];
+    HICON hIcon;
+
+    pSetupData = (PSETUPDATA)GetWindowLongPtr(hwndDlg, DWLP_USER);
+
+    switch (uMsg)
+    {
+        case WM_INITDIALOG:
+        {
+            pSetupData = (PSETUPDATA)((LPPROPSHEETPAGE)lParam)->lParam;
+            SetWindowLongPtr(hwndDlg, DWLP_USER, (LONG_PTR)pSetupData);
+
+            LoadStringW(hDllInstance, IDS_PRODUCTSERVERNAME, szText, 
_countof(szText));
+            SendDlgItemMessageW(hwndDlg, IDC_PRODUCT_OPTIONS, CB_ADDSTRING, 0, 
(LPARAM)szText);
+
+            LoadStringW(hDllInstance, IDS_PRODUCTWORKSTATIONNAME, szText, 
_countof(szText));
+            SendDlgItemMessageW(hwndDlg, IDC_PRODUCT_OPTIONS, CB_ADDSTRING, 0, 
(LPARAM)szText);
+
+            SendDlgItemMessageW(hwndDlg, IDC_PRODUCT_OPTIONS, CB_SETCURSEL, 
PRODUCT_OPTION_SERVER, 0);
+            OnChooseServer(hwndDlg);
+
+            hIcon = LoadIcon(NULL, IDI_WINLOGO);
+            SendDlgItemMessageW(hwndDlg, IDC_PRODUCT_ICON, STM_SETICON, 
(WPARAM)hIcon, 0);
+            return TRUE;
+        }
+
+        case WM_COMMAND:
+            if (HIWORD(wParam) == CBN_SELCHANGE && IDC_PRODUCT_OPTIONS == 
LOWORD(wParam))
+            {
+                iItem = SendDlgItemMessageW(hwndDlg, IDC_PRODUCT_OPTIONS, 
CB_GETCURSEL, 0, 0);
+                switch ((PRODUCT_OPTION)iItem)
+                {
+                    case PRODUCT_OPTION_SERVER:
+                        OnChooseServer(hwndDlg);
+                        break;
+
+                    case PRODUCT_OPTION_WORKSTATION:
+                        OnChooseWorkstation(hwndDlg);
+                        break;
+
+                    default:
+                        break;
+                }
+            }
+            break;
+
+        case WM_NOTIFY:
+        {
+            lpnm = (LPNMHDR)lParam;
+
+            switch (lpnm->code)
+            {
+                case PSN_SETACTIVE:
+                    /* Enable the Back and Next buttons */
+                    PropSheet_SetWizButtons(GetParent(hwndDlg), PSWIZB_BACK | 
PSWIZB_NEXT);
+                    if (pSetupData->UnattendSetup)
+                    {
+                        pSetupData->ProductOption = PRODUCT_OPTION_SERVER;
+                        DoWriteProductOption(pSetupData->ProductOption);
                         SetWindowLongPtr(hwndDlg, DWLP_MSGRESULT, 
IDD_LOCALEPAGE);
                         return TRUE;
                     }
                     break;
 
+                case PSN_WIZNEXT:
+                    iItem = SendDlgItemMessageW(hwndDlg, IDC_PRODUCT_OPTIONS, 
CB_GETCURSEL, 0, 0);
+                    pSetupData->ProductOption = (PRODUCT_OPTION)iItem;
+                    DoWriteProductOption(pSetupData->ProductOption);
+                    break;
+
                 case PSN_WIZBACK:
                     pSetupData->UnattendSetup = FALSE;
                     break;
@@ -2670,7 +2835,7 @@ InstallWizard(VOID)
     PSETUPDATA pSetupData = NULL;
     HMODULE hNetShell = NULL;
     PFNREQUESTWIZARDPAGES pfn = NULL;
-    DWORD dwPageCount = 9, dwNetworkPageCount = 0;
+    DWORD dwPageCount = 10, dwNetworkPageCount = 0;
 
     LogItem(L"BEGIN_SECTION", L"InstallWizard");
 
@@ -2737,6 +2902,14 @@ InstallWizard(VOID)
     psp.pfnDlgProc = AckPageDlgProc;
     phpage[nPages++] = CreatePropertySheetPage(&psp);
 
+    /* Create the Product page */
+    psp.dwFlags = PSP_DEFAULT | PSP_USEHEADERTITLE | PSP_USEHEADERSUBTITLE;
+    psp.pszHeaderTitle = MAKEINTRESOURCE(IDS_PRODUCTTITLE);
+    psp.pszHeaderSubTitle = MAKEINTRESOURCE(IDS_PRODUCTSUBTITLE);
+    psp.pszTemplate = MAKEINTRESOURCE(IDD_PRODUCT);
+    psp.pfnDlgProc = ProductPageDlgProc;
+    phpage[nPages++] = CreatePropertySheetPage(&psp);
+
     /* Create the Locale page */
     psp.dwFlags = PSP_DEFAULT | PSP_USEHEADERTITLE | PSP_USEHEADERSUBTITLE;
     psp.pszHeaderTitle = MAKEINTRESOURCE(IDS_LOCALETITLE);
diff --git a/sdk/include/reactos/libs/syssetup/syssetup.h 
b/sdk/include/reactos/libs/syssetup/syssetup.h
index ddd7bce85b0..d22ad08ac79 100644
--- a/sdk/include/reactos/libs/syssetup/syssetup.h
+++ b/sdk/include/reactos/libs/syssetup/syssetup.h
@@ -44,6 +44,12 @@ typedef struct _TIMEZONE_ENTRY
     ULONG Index;
 } TIMEZONE_ENTRY, *PTIMEZONE_ENTRY;
 
+typedef enum _PRODUCT_OPTION
+{
+    PRODUCT_OPTION_SERVER,
+    PRODUCT_OPTION_WORKSTATION
+} PRODUCT_OPTION, *PPRODUCT_OPTION;
+
 /* Private Setup data shared between syssetup.dll and netshell.dll */
 typedef struct _SETUPDATA
 {
@@ -71,6 +77,8 @@ typedef struct _SETUPDATA
 
     UINT uFirstNetworkWizardPage;
     UINT uPostNetworkWizardPage;
+
+    PRODUCT_OPTION ProductOption;
 } SETUPDATA, *PSETUPDATA;
 
 

Reply via email to