mirror of
https://github.com/ApfelTeeSaft/reactos.git
synced 2026-09-02 12:23:31 +00:00
- Add preliminary wizard page title and subtitle string resources.
- Use setupapi functions to process syssetup.inf. svn path=/trunk/; revision=10717
This commit is contained in:
@@ -1,4 +1,4 @@
|
||||
# $Id: Makefile,v 1.10 2004/07/19 01:33:14 kuehng Exp $
|
||||
# $Id: Makefile,v 1.11 2004/08/28 11:08:50 ekohl Exp $
|
||||
|
||||
PATH_TO_TOP = ../..
|
||||
|
||||
@@ -8,13 +8,14 @@ TARGET_NAME = syssetup
|
||||
|
||||
TARGET_BASE = $(TARGET_BASE_LIB_SYSSETUP)
|
||||
|
||||
TARGET_SDKLIBS = ntdll.a kernel32.a advapi32.a gdi32.a user32.a samlib.a userenv.a comctl32.a
|
||||
TARGET_SDKLIBS = ntdll.a kernel32.a advapi32.a gdi32.a user32.a samlib.a userenv.a \
|
||||
comctl32.a setupapi.a
|
||||
|
||||
TARGET_CFLAGS = -Wall -Werror -fno-builtin
|
||||
|
||||
TARGET_CFLAGS += -D__USE_W32API -D_WIN32_IE=0x0500
|
||||
TARGET_RCFLAGS += -D__USE_W32API -D_WIN32_IE=0x0500
|
||||
|
||||
|
||||
TARGET_LFLAGS = -nostartfiles
|
||||
|
||||
TARGET_OBJECTS = dllmain.o install.o logfile.o wizard.o
|
||||
|
||||
@@ -16,19 +16,20 @@
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
*/
|
||||
/* $Id: dllmain.c,v 1.3 2004/04/16 13:37:18 ekohl Exp $
|
||||
/* $Id: dllmain.c,v 1.4 2004/08/28 11:08:50 ekohl Exp $
|
||||
*
|
||||
* COPYRIGHT: See COPYING in the top level directory
|
||||
* PROJECT: ReactOS system libraries
|
||||
* PURPOSE: Main file
|
||||
* FILE: lib/syssetup/dllmain.c
|
||||
* PROGRAMER: Eric Kohl ([email protected])
|
||||
* PROGRAMER: Eric Kohl
|
||||
*/
|
||||
|
||||
/* INCLUDES *****************************************************************/
|
||||
|
||||
#include <windows.h>
|
||||
#include <commctrl.h>
|
||||
#include <setupapi.h>
|
||||
|
||||
#include "globals.h"
|
||||
|
||||
|
||||
@@ -27,6 +27,7 @@ typedef struct _SETUPDATA
|
||||
|
||||
|
||||
extern HINSTANCE hDllInstance;
|
||||
extern HINF hSysSetupInf;
|
||||
|
||||
/* wizard.c */
|
||||
VOID InstallWizard (VOID);
|
||||
|
||||
@@ -16,13 +16,13 @@
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
*/
|
||||
/* $Id: install.c,v 1.15 2004/08/03 13:43:00 ekohl Exp $
|
||||
/* $Id: install.c,v 1.16 2004/08/28 11:08:50 ekohl Exp $
|
||||
*
|
||||
* COPYRIGHT: See COPYING in the top level directory
|
||||
* PROJECT: ReactOS system libraries
|
||||
* PURPOSE: System setup
|
||||
* FILE: lib/syssetup/install.c
|
||||
* PROGRAMER: Eric Kohl ([email protected])
|
||||
* PROGRAMER: Eric Kohl
|
||||
*/
|
||||
|
||||
/* INCLUDES *****************************************************************/
|
||||
@@ -37,6 +37,7 @@
|
||||
#include <samlib.h>
|
||||
#include <syssetup.h>
|
||||
#include <userenv.h>
|
||||
#include <setupapi.h>
|
||||
|
||||
#include "globals.h"
|
||||
#include "resource.h"
|
||||
@@ -51,6 +52,7 @@ VOID WINAPI CreateCmdLink(VOID);
|
||||
PSID DomainSid = NULL;
|
||||
PSID AdminSid = NULL;
|
||||
|
||||
HINF hSysSetupInf = INVALID_HANDLE_VALUE;
|
||||
|
||||
/* FUNCTIONS ****************************************************************/
|
||||
|
||||
@@ -247,46 +249,42 @@ CreateTempDir(LPCWSTR VarName)
|
||||
RegCloseKey (hKey);
|
||||
}
|
||||
|
||||
#define SECTIONBUF_SIZE 4096
|
||||
|
||||
BOOL
|
||||
ProcessSysSetupInf(VOID)
|
||||
{
|
||||
LPTSTR pBuf2;
|
||||
TCHAR szBuf[SECTIONBUF_SIZE];
|
||||
DWORD dwBufSize;
|
||||
INFCONTEXT InfContext;
|
||||
TCHAR LineBuffer[256];
|
||||
DWORD LineLength;
|
||||
|
||||
SetLastError(0);
|
||||
|
||||
dwBufSize = GetPrivateProfileSection(_T("DeviceInfsToInstall"),
|
||||
szBuf,
|
||||
SECTIONBUF_SIZE,
|
||||
_T("Inf\\SYSSETUP.INF"));
|
||||
|
||||
/* fix this first... */
|
||||
if (GetLastError() == ERROR_CALL_NOT_IMPLEMENTED)
|
||||
return TRUE;
|
||||
|
||||
if (dwBufSize == SECTIONBUF_SIZE-2)
|
||||
return FALSE;
|
||||
|
||||
if (!dwBufSize)
|
||||
return FALSE;
|
||||
|
||||
pBuf2 = szBuf;
|
||||
while (*pBuf2)
|
||||
if (!SetupFindFirstLine(hSysSetupInf,
|
||||
_T("DeviceInfsToInstall"),
|
||||
NULL,
|
||||
&InfContext))
|
||||
{
|
||||
OutputDebugString(_T("Calling Class Installer for "));
|
||||
OutputDebugString(pBuf2);
|
||||
OutputDebugString(_T("\r\n"));
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
do
|
||||
{
|
||||
if (!SetupGetStringField(&InfContext,
|
||||
0,
|
||||
LineBuffer,
|
||||
256,
|
||||
&LineLength))
|
||||
{
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
#if 0
|
||||
/* FIXME: Currently unsupported */
|
||||
if (!SetupDiInstallClass(NULL, pBuf2, DI_QUIETINSTALL, NULL))
|
||||
if (!SetupDiInstallClass(NULL, LineBuffer, DI_QUIETINSTALL, NULL))
|
||||
{
|
||||
return FALSE;
|
||||
}
|
||||
#endif
|
||||
pBuf2 += _tcslen(pBuf2) + 1;
|
||||
}
|
||||
while (SetupFindNextLine(&InfContext, &InfContext));
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
@@ -355,7 +353,7 @@ InstallReactOS (HINSTANCE hInstance)
|
||||
}
|
||||
|
||||
/* Append the Admin-RID */
|
||||
AppendRidToSid (&AdminSid, DomainSid, DOMAIN_USER_RID_ADMIN);
|
||||
AppendRidToSid(&AdminSid, DomainSid, DOMAIN_USER_RID_ADMIN);
|
||||
|
||||
#if 0
|
||||
RtlConvertSidToUnicodeString (&SidString, DomainSid, TRUE);
|
||||
@@ -364,45 +362,57 @@ InstallReactOS (HINSTANCE hInstance)
|
||||
#endif
|
||||
|
||||
/* Create the Administrator account */
|
||||
if (!SamCreateUser (L"Administrator", L"", AdminSid))
|
||||
{
|
||||
DebugPrint ("SamCreateUser() failed!\n");
|
||||
RtlFreeSid (AdminSid);
|
||||
RtlFreeSid (DomainSid);
|
||||
return 0;
|
||||
}
|
||||
if (!SamCreateUser(L"Administrator", L"", AdminSid))
|
||||
{
|
||||
DebugPrint("SamCreateUser() failed!\n");
|
||||
RtlFreeSid(AdminSid);
|
||||
RtlFreeSid(DomainSid);
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* Create the Administrator profile */
|
||||
if (!CreateUserProfileW (AdminSid, L"Administrator"))
|
||||
{
|
||||
DebugPrint ("CreateUserProfileW() failed!\n");
|
||||
RtlFreeSid (AdminSid);
|
||||
RtlFreeSid (DomainSid);
|
||||
return 0;
|
||||
}
|
||||
if (!CreateUserProfileW(AdminSid, L"Administrator"))
|
||||
{
|
||||
DebugPrint("CreateUserProfileW() failed!\n");
|
||||
RtlFreeSid(AdminSid);
|
||||
RtlFreeSid(DomainSid);
|
||||
return 0;
|
||||
}
|
||||
|
||||
RtlFreeSid (AdminSid);
|
||||
RtlFreeSid (DomainSid);
|
||||
RtlFreeSid(AdminSid);
|
||||
RtlFreeSid(DomainSid);
|
||||
|
||||
CreateTempDir(L"TEMP");
|
||||
CreateTempDir(L"TMP");
|
||||
|
||||
if(!ProcessSysSetupInf())
|
||||
hSysSetupInf = SetupOpenInfFileW(L"syssetup.inf",
|
||||
NULL,
|
||||
INF_STYLE_WIN4,
|
||||
NULL);
|
||||
if (hSysSetupInf == INVALID_HANDLE_VALUE)
|
||||
{
|
||||
DebugPrint("ProcessSysSetupInf() failed!\n");
|
||||
return 0;
|
||||
DebugPrint("SetupOpenInfFileW() failed to open 'syssetup.inf' (Error: %lu)\n", GetLastError());
|
||||
return 0;
|
||||
}
|
||||
|
||||
if (!ProcessSysSetupInf())
|
||||
{
|
||||
DebugPrint("ProcessSysSetupInf() failed!\n");
|
||||
return 0;
|
||||
}
|
||||
|
||||
InstallWizard();
|
||||
|
||||
SetupCloseInfFile(hSysSetupInf);
|
||||
|
||||
#ifdef VMWINST
|
||||
RunVMWInstall ();
|
||||
RunVMWInstall();
|
||||
#endif
|
||||
|
||||
DialogBox (hDllInstance,
|
||||
MAKEINTRESOURCE(IDD_RESTART),
|
||||
NULL,
|
||||
RestartDlgProc);
|
||||
DialogBox(hDllInstance,
|
||||
MAKEINTRESOURCE(IDD_RESTART),
|
||||
NULL,
|
||||
RestartDlgProc);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -16,13 +16,13 @@
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
*/
|
||||
/* $Id: logfile.c,v 1.2 2004/01/14 22:15:09 gvg Exp $
|
||||
/* $Id: logfile.c,v 1.3 2004/08/28 11:08:50 ekohl Exp $
|
||||
*
|
||||
* COPYRIGHT: See COPYING in the top level directory
|
||||
* PROJECT: ReactOS system libraries
|
||||
* PURPOSE: Log file functions
|
||||
* FILE: lib/syssetup/logfile.c
|
||||
* PROGRAMER: Eric Kohl ([email protected])
|
||||
* PROGRAMER: Eric Kohl
|
||||
*/
|
||||
|
||||
/* INCLUDES *****************************************************************/
|
||||
|
||||
@@ -47,4 +47,14 @@
|
||||
#define IDD_RESTART 2000
|
||||
#define IDC_RESTART_PROGRESS 2001
|
||||
|
||||
|
||||
#define IDS_OWNERTITLE 3000
|
||||
#define IDS_OWNERSUBTITLE 3001
|
||||
|
||||
#define IDS_COMPUTERTITLE 3002
|
||||
#define IDS_COMPUTERSUBTITLE 3003
|
||||
|
||||
#define IDS_LOCALETITLE 3004
|
||||
#define IDS_LOCALESUBTITLE 3005
|
||||
|
||||
#endif /* RESOURCE_H */
|
||||
|
||||
@@ -106,9 +106,21 @@ STYLE DS_MODALFRAME | DS_CENTER | WS_POPUP | WS_VISIBLE | WS_CAPTION
|
||||
CAPTION "Instatalace ReactOSu"
|
||||
FONT 8, "MS Shell Dlg"
|
||||
BEGIN
|
||||
LTEXT "Instalace ReactOSu byla úspìšnì dokonèena.", -1, 13, 12, 212, 16
|
||||
LTEXT "Pro pokraèování potøebuje instalaèní program restartovat Váš poèítaè. Poèítaè bude automaticky restartován za 15 sekund nebo zmáèknete-li tlaèítko Restartovat.", -1, 13, 33, 212, 32
|
||||
/* GROUPBOX "", -1, 7, 3, 231, 106 */
|
||||
CONTROL "", IDC_RESTART_PROGRESS, "msctls_progress32", PBS_SMOOTH | WS_CHILD | WS_VISIBLE | WS_BORDER, 13, 70, 212, 8
|
||||
PUSHBUTTON "&Restartovat", IDOK, 98, 87, 50, 14
|
||||
LTEXT "Instalace ReactOSu byla úspìšnì dokonèena.", -1, 13, 12, 212, 16
|
||||
LTEXT "Pro pokraèování potøebuje instalaèní program restartovat Váš poèítaè. Poèítaè bude automaticky restartován za 15 sekund nebo zmáèknete-li tlaèítko Restartovat.", -1, 13, 33, 212, 32
|
||||
/* GROUPBOX "", -1, 7, 3, 231, 106 */
|
||||
CONTROL "", IDC_RESTART_PROGRESS, "msctls_progress32", PBS_SMOOTH | WS_CHILD | WS_VISIBLE | WS_BORDER, 13, 70, 212, 8
|
||||
PUSHBUTTON "&Restartovat", IDOK, 98, 87, 50, 14
|
||||
END
|
||||
|
||||
STRINGTABLE
|
||||
BEGIN
|
||||
IDS_OWNERTITLE "Owner page title"
|
||||
IDS_OWNERSUBTITLE "Owner page subtitle"
|
||||
IDS_COMPUTERTITLE "Computer page title"
|
||||
IDS_COMPUTERSUBTITLE "Computer page subtitle"
|
||||
IDS_LOCALETITLE "Locale page title"
|
||||
IDS_LOCALESUBTITLE "Locale page subtitle"
|
||||
END
|
||||
|
||||
/* EOF */
|
||||
|
||||
@@ -108,13 +108,24 @@ STYLE DS_MODALFRAME | DS_CENTER | WS_POPUP | WS_VISIBLE | WS_CAPTION
|
||||
CAPTION "ReactOS Installation"
|
||||
FONT 8, "MS Shell Dlg"
|
||||
BEGIN
|
||||
LTEXT "Die Installation von ReactOS wurde erfolgreich fertiggestellt.", IDC_STATIC, 13, 12, 212, 16
|
||||
LTEXT "Um fortzufahren muss Ihr Computer neu gesratet werden. "\
|
||||
"Der Computer wird in 15 Minuten automatisch neu gestartet oder wenn Sie auf "\
|
||||
"Neustart klicken.", IDC_STATIC, 13, 33, 212, 32
|
||||
/* GROUPBOX "", -1, 7, 3, 231, 106 */
|
||||
CONTROL "", IDC_RESTART_PROGRESS, "msctls_progress32", PBS_SMOOTH | WS_CHILD | WS_VISIBLE | WS_BORDER, 13, 70, 212, 8
|
||||
PUSHBUTTON "&Neustart", IDOK, 98, 87, 50, 14
|
||||
LTEXT "Die Installation von ReactOS wurde erfolgreich fertiggestellt.", IDC_STATIC, 13, 12, 212, 16
|
||||
LTEXT "Um fortzufahren muss Ihr Computer neu gesratet werden. "\
|
||||
"Der Computer wird in 15 Minuten automatisch neu gestartet oder wenn Sie auf "\
|
||||
"Neustart klicken.", IDC_STATIC, 13, 33, 212, 32
|
||||
/* GROUPBOX "", -1, 7, 3, 231, 106 */
|
||||
CONTROL "", IDC_RESTART_PROGRESS, "msctls_progress32", PBS_SMOOTH | WS_CHILD | WS_VISIBLE | WS_BORDER, 13, 70, 212, 8
|
||||
PUSHBUTTON "&Neustart", IDOK, 98, 87, 50, 14
|
||||
END
|
||||
|
||||
|
||||
STRINGTABLE
|
||||
BEGIN
|
||||
IDS_OWNERTITLE "Owner page title"
|
||||
IDS_OWNERSUBTITLE "Owner page subtitle"
|
||||
IDS_COMPUTERTITLE "Computer page title"
|
||||
IDS_COMPUTERSUBTITLE "Computer page subtitle"
|
||||
IDS_LOCALETITLE "Locale page title"
|
||||
IDS_LOCALESUBTITLE "Locale page subtitle"
|
||||
END
|
||||
|
||||
/* EOF */
|
||||
|
||||
@@ -108,13 +108,24 @@ STYLE DS_MODALFRAME | DS_CENTER | WS_POPUP | WS_VISIBLE | WS_CAPTION
|
||||
CAPTION "ReactOS Installation"
|
||||
FONT 8, "MS Shell Dlg"
|
||||
BEGIN
|
||||
LTEXT "Installation of ReactOS was successfully completed.", IDC_STATIC, 13, 12, 212, 16
|
||||
LTEXT "In order to continue, the installation program needs to restart your computer. "\
|
||||
"The computer will be automatically restarted in 15 seconds or if you press the "\
|
||||
"Restart button.", IDC_STATIC, 13, 33, 212, 32
|
||||
/* GROUPBOX "", -1, 7, 3, 231, 106 */
|
||||
CONTROL "", IDC_RESTART_PROGRESS, "msctls_progress32", PBS_SMOOTH | WS_CHILD | WS_VISIBLE | WS_BORDER, 13, 70, 212, 8
|
||||
PUSHBUTTON "&Restart", IDOK, 98, 87, 50, 14
|
||||
LTEXT "Installation of ReactOS was successfully completed.", IDC_STATIC, 13, 12, 212, 16
|
||||
LTEXT "In order to continue, the installation program needs to restart your computer. "\
|
||||
"The computer will be automatically restarted in 15 seconds or if you press the "\
|
||||
"Restart button.", IDC_STATIC, 13, 33, 212, 32
|
||||
/* GROUPBOX "", -1, 7, 3, 231, 106 */
|
||||
CONTROL "", IDC_RESTART_PROGRESS, "msctls_progress32", PBS_SMOOTH | WS_CHILD | WS_VISIBLE | WS_BORDER, 13, 70, 212, 8
|
||||
PUSHBUTTON "&Restart", IDOK, 98, 87, 50, 14
|
||||
END
|
||||
|
||||
|
||||
STRINGTABLE
|
||||
BEGIN
|
||||
IDS_OWNERTITLE "Owner page title"
|
||||
IDS_OWNERSUBTITLE "Owner page subtitle"
|
||||
IDS_COMPUTERTITLE "Computer page title"
|
||||
IDS_COMPUTERSUBTITLE "Computer page subtitle"
|
||||
IDS_LOCALETITLE "Locale page title"
|
||||
IDS_LOCALESUBTITLE "Locale page subtitle"
|
||||
END
|
||||
|
||||
/* EOF */
|
||||
|
||||
@@ -16,7 +16,7 @@
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
*/
|
||||
/* $Id: wizard.c,v 1.5 2004/08/03 13:43:00 ekohl Exp $
|
||||
/* $Id: wizard.c,v 1.6 2004/08/28 11:08:50 ekohl Exp $
|
||||
*
|
||||
* COPYRIGHT: See COPYING in the top level directory
|
||||
* PROJECT: ReactOS system libraries
|
||||
@@ -32,9 +32,11 @@
|
||||
|
||||
#include <string.h>
|
||||
#include <tchar.h>
|
||||
#include <setupapi.h>
|
||||
|
||||
#include <syssetup.h>
|
||||
|
||||
|
||||
#include "globals.h"
|
||||
#include "resource.h"
|
||||
|
||||
@@ -435,16 +437,16 @@ InstallWizard(VOID)
|
||||
|
||||
/* Create the Owner page */
|
||||
psp.dwFlags = PSP_DEFAULT; // | PSP_USEHEADERTITLE | PSP_USEHEADERSUBTITLE;
|
||||
// psp.pszHeaderTitle = MAKEINTRESOURCE(IDS_TITLE1);
|
||||
// psp.pszHeaderSubTitle = MAKEINTRESOURCE(IDS_SUBTITLE1);
|
||||
// psp.pszHeaderTitle = MAKEINTRESOURCE(IDS_OWNERTITLE);
|
||||
// psp.pszHeaderSubTitle = MAKEINTRESOURCE(IDS_OWNERSUBTITLE);
|
||||
psp.pszTemplate = MAKEINTRESOURCE(IDD_OWNERPAGE);
|
||||
psp.pfnDlgProc = OwnerPageDlgProc;
|
||||
ahpsp[1] = CreatePropertySheetPage(&psp);
|
||||
|
||||
/* Create the Computer page */
|
||||
psp.dwFlags = PSP_DEFAULT; // | PSP_USEHEADERTITLE | PSP_USEHEADERSUBTITLE;
|
||||
// psp.pszHeaderTitle = MAKEINTRESOURCE(IDS_TITLE2);
|
||||
// psp.pszHeaderSubTitle = MAKEINTRESOURCE(IDS_SUBTITLE2);
|
||||
// psp.pszHeaderTitle = MAKEINTRESOURCE(IDS_COMPUTERTITLE);
|
||||
// psp.pszHeaderSubTitle = MAKEINTRESOURCE(IDS_COMPUTERSUBTITLE);
|
||||
psp.pfnDlgProc = ComputerPageDlgProc;
|
||||
psp.pszTemplate = MAKEINTRESOURCE(IDD_COMPUTERPAGE);
|
||||
ahpsp[2] = CreatePropertySheetPage(&psp);
|
||||
@@ -452,8 +454,8 @@ InstallWizard(VOID)
|
||||
|
||||
/* Create the Locale page */
|
||||
psp.dwFlags = PSP_DEFAULT; // | PSP_USEHEADERTITLE | PSP_USEHEADERSUBTITLE;
|
||||
// psp.pszHeaderTitle = MAKEINTRESOURCE(IDS_TITLE2);
|
||||
// psp.pszHeaderSubTitle = MAKEINTRESOURCE(IDS_SUBTITLE2);
|
||||
// psp.pszHeaderTitle = MAKEINTRESOURCE(IDS_LOCALETITLE);
|
||||
// psp.pszHeaderSubTitle = MAKEINTRESOURCE(IDS_LOCALESUBTITLE);
|
||||
psp.pfnDlgProc = LocalePageDlgProc;
|
||||
psp.pszTemplate = MAKEINTRESOURCE(IDD_LOCALEPAGE);
|
||||
ahpsp[3] = CreatePropertySheetPage(&psp);
|
||||
|
||||
Reference in New Issue
Block a user