get sysdm to work with freeldr.ini as well

See issue #2302 for more details.

svn path=/trunk/; revision=27846
This commit is contained in:
Christoph von Wittich 2007-07-26 14:56:01 +00:00
parent a27339eabc
commit 4473df2e66

View file

@ -12,6 +12,8 @@
#include "precomp.h" #include "precomp.h"
static TCHAR m_szFreeldrIni[MAX_PATH + 15]; static TCHAR m_szFreeldrIni[MAX_PATH + 15];
static TCHAR szBootLdrSection[12];
static TCHAR szBootLdrDefault[10];
void SetTimeout(HWND hwndDlg, int Timeout) void SetTimeout(HWND hwndDlg, int Timeout)
{ {
@ -72,6 +74,7 @@ StartRecDlgProc(HWND hwndDlg,
FailGetSysDrive: FailGetSysDrive:
HeapFree(GetProcessHeap(), 0, szSystemDrive); HeapFree(GetProcessHeap(), 0, szSystemDrive);
szSystemDrive = NULL; szSystemDrive = NULL;
return FALSE;
} }
if (szSystemDrive != NULL) if (szSystemDrive != NULL)
@ -84,22 +87,32 @@ FailGetSysDrive:
{ {
_tcscpy(m_szFreeldrIni, szSystemDrive); _tcscpy(m_szFreeldrIni, szSystemDrive);
_tcscat(m_szFreeldrIni, _T("\\boot.ini")); _tcscat(m_szFreeldrIni, _T("\\boot.ini"));
_tcscpy(szBootLdrSection, _T("boot loader"));
_tcscpy(szBootLdrDefault, _T("default"));
}
else
{
_tcscpy(szBootLdrSection, _T("FREELOADER"));
_tcscpy(szBootLdrDefault, _T("DefaultOS"));
} }
} }
HeapFree(GetProcessHeap(), 0, szSystemDrive); HeapFree(GetProcessHeap(), 0, szSystemDrive);
} }
} }
if (m_szFreeldrIni == NULL)
return FALSE;
SetDlgItemText(hwndDlg, IDC_STRRECDUMPFILE, _T("%SystemRoot%\\MiniDump")); SetDlgItemText(hwndDlg, IDC_STRRECDUMPFILE, _T("%SystemRoot%\\MiniDump"));
/* load settings from freeldr.ini */ /* load settings from freeldr.ini */
GetPrivateProfileString(_T("boot loader"), _T("default"), NULL, szDefaultOS, MAX_PATH, m_szFreeldrIni); GetPrivateProfileString(szBootLdrSection, szBootLdrDefault, NULL, szDefaultOS, MAX_PATH, m_szFreeldrIni);
GetPrivateProfileString(_T("operating systems"), szDefaultOS, NULL, szDefaultOSName, MAX_PATH, m_szFreeldrIni); GetPrivateProfileString(_T("operating systems"), szDefaultOS, NULL, szDefaultOSName, MAX_PATH, m_szFreeldrIni);
SendDlgItemMessage(hwndDlg, IDC_STRECOSCOMBO, CB_ADDSTRING, (WPARAM)0, (LPARAM)szDefaultOSName); SendDlgItemMessage(hwndDlg, IDC_STRECOSCOMBO, CB_ADDSTRING, (WPARAM)0, (LPARAM)szDefaultOSName);
SendDlgItemMessage(hwndDlg, IDC_STRECOSCOMBO, CB_SETCURSEL, (WPARAM)0, (LPARAM)0); SendDlgItemMessage(hwndDlg, IDC_STRECOSCOMBO, CB_SETCURSEL, (WPARAM)0, (LPARAM)0);
/* timeout */ /* timeout */
iTimeout = GetPrivateProfileInt(_T("boot loader"), _T("timeout"), 0, m_szFreeldrIni); iTimeout = GetPrivateProfileInt(szBootLdrSection, _T("timeout"), 0, m_szFreeldrIni);
SetTimeout(hwndDlg, iTimeout); SetTimeout(hwndDlg, iTimeout);
if (iTimeout != 0) if (iTimeout != 0)
SendDlgItemMessage(hwndDlg, IDC_STRECLIST, BM_SETCHECK, (WPARAM)BST_CHECKED, (LPARAM)0); SendDlgItemMessage(hwndDlg, IDC_STRECLIST, BM_SETCHECK, (WPARAM)BST_CHECKED, (LPARAM)0);
@ -124,7 +137,7 @@ FailGetSysDrive:
else else
iTimeout = 0; iTimeout = 0;
_stprintf(szTimeout, _T("%i"), iTimeout); _stprintf(szTimeout, _T("%i"), iTimeout);
WritePrivateProfileString(_T("boot loader"), _T("timeout"), szTimeout, m_szFreeldrIni); WritePrivateProfileString(szBootLdrSection, _T("timeout"), szTimeout, m_szFreeldrIni);
} }
case IDCANCEL: case IDCANCEL:
{ {