mirror of
https://github.com/reactos/reactos.git
synced 2025-02-23 00:45:24 +00:00
- Fix InstallSysSetupComponents: SetupInstallFromInfSection was being called with the wrong HINF handler
- Always check for application existence before creating the shortcut svn path=/trunk/; revision=34083
This commit is contained in:
parent
3c6dcb0d0d
commit
82cbbc6ac9
1 changed files with 41 additions and 26 deletions
|
@ -399,6 +399,7 @@ InstallSysSetupInfComponents(VOID)
|
|||
INFCONTEXT InfContext;
|
||||
TCHAR NameBuffer[256];
|
||||
TCHAR SectionBuffer[256];
|
||||
HINF hComponentInf = INVALID_HANDLE_VALUE;
|
||||
|
||||
if (!SetupFindFirstLine(hSysSetupInf,
|
||||
_T("Infs.Always"),
|
||||
|
@ -433,21 +434,35 @@ InstallSysSetupInfComponents(VOID)
|
|||
|
||||
DPRINT("Trying to execute install section '%S' from '%S' \n", SectionBuffer , NameBuffer);
|
||||
|
||||
if (!SetupInstallFromInfSection(NULL,
|
||||
hSysSetupInf,
|
||||
SectionBuffer,
|
||||
SPINST_ALL,
|
||||
NULL,
|
||||
NULL,
|
||||
SP_COPY_NEWER,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL))
|
||||
hComponentInf = SetupOpenInfFileW(NameBuffer,
|
||||
NULL,
|
||||
INF_STYLE_WIN4,
|
||||
NULL);
|
||||
|
||||
if (hComponentInf == INVALID_HANDLE_VALUE)
|
||||
{
|
||||
DebugPrint("Error while trying to install : %S (Error: %lu) \n", NameBuffer, GetLastError());
|
||||
DebugPrint("SetupOpenInfFileW() failed to open '%S' (Error: %lu)\n", NameBuffer ,GetLastError());
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
if (!SetupInstallFromInfSection(NULL,
|
||||
hComponentInf,
|
||||
SectionBuffer,
|
||||
SPINST_ALL,
|
||||
NULL,
|
||||
NULL,
|
||||
SP_COPY_NEWER,
|
||||
SetupDefaultQueueCallbackW,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL))
|
||||
{
|
||||
DebugPrint("Error while trying to install : %S (Error: %lu)\n", NameBuffer, GetLastError());
|
||||
SetupCloseInfFile(hComponentInf);
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
SetupCloseInfFile(hComponentInf);
|
||||
}
|
||||
while (SetupFindNextLine(&InfContext, &InfContext));
|
||||
}
|
||||
|
@ -740,33 +755,33 @@ CreateShortcuts(VOID)
|
|||
CoInitialize(NULL);
|
||||
|
||||
/* Create desktop shortcuts */
|
||||
CreateShortcut(CSIDL_DESKTOP, NULL, IDS_SHORT_CMD, _T("%SystemRoot%\\system32\\cmd.exe"), IDS_CMT_CMD, FALSE);
|
||||
CreateShortcut(CSIDL_DESKTOP, NULL, IDS_SHORT_CMD, _T("%SystemRoot%\\system32\\cmd.exe"), IDS_CMT_CMD, TRUE);
|
||||
|
||||
/* Create program startmenu shortcuts */
|
||||
CreateShortcut(CSIDL_PROGRAMS, NULL, IDS_SHORT_EXPLORER, _T("%SystemRoot%\\explorer.exe"), IDS_CMT_EXPLORER, FALSE);
|
||||
CreateShortcut(CSIDL_PROGRAMS, NULL, IDS_SHORT_EXPLORER, _T("%SystemRoot%\\explorer.exe"), IDS_CMT_EXPLORER, TRUE);
|
||||
CreateShortcut(CSIDL_PROGRAMS, NULL, IDS_SHORT_DOWNLOADER, _T("%SystemRoot%\\system32\\downloader.exe"), IDS_CMT_DOWNLOADER, TRUE);
|
||||
|
||||
/* Create administrative tools startmenu shortcuts */
|
||||
CreateShortcut(CSIDL_COMMON_ADMINTOOLS, NULL, IDS_SHORT_SERVICE, _T("%SystemRoot%\\system32\\servman.exe"), IDS_CMT_SERVMAN, FALSE);
|
||||
CreateShortcut(CSIDL_COMMON_ADMINTOOLS, NULL, IDS_SHORT_DEVICE, _T("%SystemRoot%\\system32\\devmgmt.exe"), IDS_CMT_DEVMGMT, FALSE);
|
||||
CreateShortcut(CSIDL_COMMON_ADMINTOOLS, NULL, IDS_SHORT_SERVICE, _T("%SystemRoot%\\system32\\servman.exe"), IDS_CMT_SERVMAN, TRUE);
|
||||
CreateShortcut(CSIDL_COMMON_ADMINTOOLS, NULL, IDS_SHORT_DEVICE, _T("%SystemRoot%\\system32\\devmgmt.exe"), IDS_CMT_DEVMGMT, TRUE);
|
||||
|
||||
/* Create and fill Accessories subfolder */
|
||||
if (CreateShortcutFolder(CSIDL_PROGRAMS, IDS_ACCESSORIES, szFolder, sizeof(szFolder)/sizeof(szFolder[0])))
|
||||
{
|
||||
CreateShortcut(CSIDL_PROGRAMS, szFolder, IDS_SHORT_CALC, _T("%SystemRoot%\\system32\\calc.exe"), IDS_CMT_CALC, FALSE);
|
||||
CreateShortcut(CSIDL_PROGRAMS, szFolder, IDS_SHORT_CMD, _T("%SystemRoot%\\system32\\cmd.exe"), IDS_CMT_CMD, FALSE);
|
||||
CreateShortcut(CSIDL_PROGRAMS, szFolder, IDS_SHORT_NOTEPAD, _T("%SystemRoot%\\system32\\notepad.exe"), IDS_CMT_NOTEPAD, FALSE);
|
||||
CreateShortcut(CSIDL_PROGRAMS, szFolder, IDS_SHORT_WORDPAD, _T("%SystemRoot%\\system32\\wordpad.exe"), IDS_CMT_WORDPAD, FALSE);
|
||||
CreateShortcut(CSIDL_PROGRAMS, szFolder, IDS_SHORT_CALC, _T("%SystemRoot%\\system32\\calc.exe"), IDS_CMT_CALC, TRUE);
|
||||
CreateShortcut(CSIDL_PROGRAMS, szFolder, IDS_SHORT_CMD, _T("%SystemRoot%\\system32\\cmd.exe"), IDS_CMT_CMD, TRUE);
|
||||
CreateShortcut(CSIDL_PROGRAMS, szFolder, IDS_SHORT_NOTEPAD, _T("%SystemRoot%\\system32\\notepad.exe"), IDS_CMT_NOTEPAD, TRUE);
|
||||
CreateShortcut(CSIDL_PROGRAMS, szFolder, IDS_SHORT_WORDPAD, _T("%SystemRoot%\\system32\\wordpad.exe"), IDS_CMT_WORDPAD, TRUE);
|
||||
CreateShortcut(CSIDL_PROGRAMS, szFolder, IDS_SHORT_SNAP, _T("%SystemRoot%\\system32\\screenshot.exe"), IDS_CMT_SCREENSHOT, TRUE);
|
||||
CreateShortcut(CSIDL_PROGRAMS, szFolder, IDS_SHORT_RDESKTOP, _T("%SystemRoot%\\system32\\mstsc.exe"), IDS_CMT_RDESKTOP, FALSE);
|
||||
CreateShortcut(CSIDL_PROGRAMS, szFolder, IDS_SHORT_RDESKTOP, _T("%SystemRoot%\\system32\\mstsc.exe"), IDS_CMT_RDESKTOP, TRUE);
|
||||
}
|
||||
|
||||
/* Creacte System Tools subfolder and fill if the exe is available */
|
||||
if (CreateShortcutFolder(CSIDL_PROGRAMS, IDS_SYS_TOOLS, szFolder, sizeof(szFolder)/sizeof(szFolder[0])))
|
||||
{
|
||||
CreateShortcut(CSIDL_PROGRAMS, szFolder, IDS_SHORT_CHARMAP, _T("%SystemRoot%\\system32\\charmap.exe"), IDS_CMT_CHARMAP, FALSE);
|
||||
CreateShortcut(CSIDL_PROGRAMS, szFolder, IDS_SHORT_KBSWITCH, _T("%SystemRoot%\\system32\\kbswitch.exe"), IDS_CMT_KBSWITCH, FALSE);
|
||||
CreateShortcut(CSIDL_PROGRAMS, szFolder, IDS_SHORT_REGEDIT, _T("%SystemRoot%\\regedit.exe"), IDS_CMT_REGEDIT, FALSE);
|
||||
CreateShortcut(CSIDL_PROGRAMS, szFolder, IDS_SHORT_CHARMAP, _T("%SystemRoot%\\system32\\charmap.exe"), IDS_CMT_CHARMAP, TRUE);
|
||||
CreateShortcut(CSIDL_PROGRAMS, szFolder, IDS_SHORT_KBSWITCH, _T("%SystemRoot%\\system32\\kbswitch.exe"), IDS_CMT_KBSWITCH, TRUE);
|
||||
CreateShortcut(CSIDL_PROGRAMS, szFolder, IDS_SHORT_REGEDIT, _T("%SystemRoot%\\regedit.exe"), IDS_CMT_REGEDIT, TRUE);
|
||||
}
|
||||
|
||||
/* Creacte Accessibility subfolder and fill if the exe is available */
|
||||
|
@ -778,8 +793,8 @@ CreateShortcuts(VOID)
|
|||
/* Create Games subfolder and fill if the exe is available */
|
||||
if (CreateShortcutFolder(CSIDL_PROGRAMS, IDS_GAMES, szFolder, sizeof(szFolder)/sizeof(szFolder[0])))
|
||||
{
|
||||
CreateShortcut(CSIDL_PROGRAMS, szFolder, IDS_SHORT_SOLITAIRE, _T("%SystemRoot%\\system32\\sol.exe"), IDS_CMT_SOLITAIRE, FALSE);
|
||||
CreateShortcut(CSIDL_PROGRAMS, szFolder, IDS_SHORT_WINEMINE, _T("%SystemRoot%\\system32\\winemine.exe"), IDS_CMT_WINEMINE, FALSE);
|
||||
CreateShortcut(CSIDL_PROGRAMS, szFolder, IDS_SHORT_SOLITAIRE, _T("%SystemRoot%\\system32\\sol.exe"), IDS_CMT_SOLITAIRE, TRUE);
|
||||
CreateShortcut(CSIDL_PROGRAMS, szFolder, IDS_SHORT_WINEMINE, _T("%SystemRoot%\\system32\\winemine.exe"), IDS_CMT_WINEMINE, TRUE);
|
||||
}
|
||||
|
||||
CoUninitialize();
|
||||
|
|
Loading…
Reference in a new issue