-\r
-/*\r
- * PROJECT: ReactOS System Control Panel Applet\r
- * LICENSE: GPL - See COPYING in the top level directory\r
- * FILE: dll/cpl/sysdm/startrec.c\r
- * PURPOSE: Computer settings for startup and recovery\r
- * COPYRIGHT: Copyright 2006 Ged Murphy <gedmurphy@gmail.com>\r
- * Copyright 2006 Christoph von Wittich <Christoph@ApiViewer.de>\r
- *\r
- */\r
-\r
-#include "precomp.h"\r
-\r
-static TCHAR m_szFreeldrIni[MAX_PATH + 15];\r
-\r
-void SetTimeout(HWND hwndDlg, int Timeout)\r
-{\r
- if (Timeout == 0)\r
- {\r
- EnableWindow(GetDlgItem(hwndDlg, IDC_STRRECLISTUPDWN), FALSE);\r
- }\r
- else\r
- {\r
- EnableWindow(GetDlgItem(hwndDlg, IDC_STRRECLISTUPDWN), TRUE);\r
- }\r
- SendDlgItemMessage(hwndDlg, IDC_STRRECLISTUPDWN, UDM_SETPOS, (WPARAM) 0, (LPARAM) MAKELONG((short) Timeout, 0));\r
-}\r
-\r
-/* Property page dialog callback */\r
-INT_PTR CALLBACK\r
-StartRecDlgProc(HWND hwndDlg,\r
- UINT uMsg,\r
- WPARAM wParam,\r
- LPARAM lParam)\r
-{\r
- UNREFERENCED_PARAMETER(lParam);\r
- TCHAR *szSystemDrive;\r
- TCHAR szDefaultOS[MAX_PATH];\r
- TCHAR szDefaultOSName[MAX_PATH];\r
- TCHAR szTimeout[10];\r
- int iTimeout;\r
-\r
- switch(uMsg)\r
- {\r
- case WM_INITDIALOG:\r
- {\r
- /* get Path to freeldr.ini or boot.ini */\r
- szSystemDrive = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, MAX_PATH);\r
- if (szSystemDrive != NULL)\r
- {\r
- szSystemDrive = _tgetenv(_T("SystemDrive"));\r
- if (m_szFreeldrIni != NULL)\r
- { \r
- _tcscpy(m_szFreeldrIni, szSystemDrive);\r
- _tcscat(m_szFreeldrIni, _T("\\freeldr.ini"));\r
- if (!PathFileExists(m_szFreeldrIni))\r
- {\r
- _tcscpy(m_szFreeldrIni, szSystemDrive);\r
- _tcscat(m_szFreeldrIni, _T("\\boot.ini"));\r
- }\r
- }\r
- HeapFree(GetProcessHeap(), 0, szSystemDrive);\r
- }\r
- \r
- SetDlgItemText(hwndDlg, IDC_STRRECDUMPFILE, _T("%SystemRoot%\\MiniDump"));\r
-\r
- /* load settings from freeldr.ini */\r
- GetPrivateProfileString(_T("boot loader"), _T("default"), NULL, szDefaultOS, MAX_PATH, m_szFreeldrIni);\r
- GetPrivateProfileString(_T("operating systems"), szDefaultOS, NULL, szDefaultOSName, MAX_PATH, m_szFreeldrIni);\r
- SendDlgItemMessage(hwndDlg, IDC_STRECOSCOMBO, CB_ADDSTRING, (WPARAM)0, (LPARAM)szDefaultOSName);\r
- SendDlgItemMessage(hwndDlg, IDC_STRECOSCOMBO, CB_SETCURSEL, (WPARAM)0, (LPARAM)0);\r
-\r
- /* timeout */\r
- iTimeout = GetPrivateProfileInt(_T("boot loader"), _T("timeout"), 0, m_szFreeldrIni);\r
- SetTimeout(hwndDlg, iTimeout);\r
- if (iTimeout != 0)\r
- SendDlgItemMessage(hwndDlg, IDC_STRECLIST, BM_SETCHECK, (WPARAM)BST_CHECKED, (LPARAM)0);\r
-\r
- }\r
- break;\r
-\r
- case WM_COMMAND:\r
- {\r
- switch(LOWORD(wParam))\r
- {\r
- case IDC_STRRECEDIT:\r
- {\r
- ShellExecute(0, _T("open"), _T("notepad"), m_szFreeldrIni, NULL, SW_SHOWNORMAL);\r
- break;\r
- } \r
- case IDOK:\r
- {\r
- /* save timeout */\r
- if (SendDlgItemMessage(hwndDlg, IDC_STRECLIST, BM_GETCHECK, (WPARAM)0, (LPARAM)0) == BST_CHECKED)\r
- iTimeout = SendDlgItemMessage(hwndDlg, IDC_STRRECLISTUPDWN, UDM_GETPOS, (WPARAM)0, (LPARAM)0);\r
- else\r
- iTimeout = 0;\r
- _stprintf(szTimeout, _T("%i"), iTimeout);\r
- WritePrivateProfileString(_T("boot loader"), _T("timeout"), szTimeout, m_szFreeldrIni);\r
- }\r
- case IDCANCEL:\r
- {\r
- EndDialog(hwndDlg,\r
- LOWORD(wParam));\r
- return TRUE;\r
- break;\r
- }\r
- case IDC_STRECLIST:\r
- {\r
- if (SendDlgItemMessage(hwndDlg, IDC_STRECLIST, BM_GETCHECK, (WPARAM)0, (LPARAM)0) == BST_CHECKED)\r
- SetTimeout(hwndDlg, 30);\r
- else\r
- SetTimeout(hwndDlg, 0);\r
- }\r
- }\r
- }\r
- break;\r
- }\r
- return FALSE;\r
-}\r
+
+/*
+ * PROJECT: ReactOS System Control Panel Applet
+ * LICENSE: GPL - See COPYING in the top level directory
+ * FILE: dll/cpl/sysdm/startrec.c
+ * PURPOSE: Computer settings for startup and recovery
+ * COPYRIGHT: Copyright 2006 Ged Murphy <gedmurphy@gmail.com>
+ * Copyright 2006 Christoph von Wittich <Christoph@ApiViewer.de>
+ *
+ */
+
+#include "precomp.h"
+
+static TCHAR m_szFreeldrIni[MAX_PATH + 15];
+
+void SetTimeout(HWND hwndDlg, int Timeout)
+{
+ if (Timeout == 0)
+ {
+ EnableWindow(GetDlgItem(hwndDlg, IDC_STRRECLISTUPDWN), FALSE);
+ }
+ else
+ {
+ EnableWindow(GetDlgItem(hwndDlg, IDC_STRRECLISTUPDWN), TRUE);
+ }
+ SendDlgItemMessage(hwndDlg, IDC_STRRECLISTUPDWN, UDM_SETPOS, (WPARAM) 0, (LPARAM) MAKELONG((short) Timeout, 0));
+}
+
+/* Property page dialog callback */
+INT_PTR CALLBACK
+StartRecDlgProc(HWND hwndDlg,
+ UINT uMsg,
+ WPARAM wParam,
+ LPARAM lParam)
+{
+ TCHAR *szSystemDrive;
+ TCHAR szDefaultOS[MAX_PATH];
+ TCHAR szDefaultOSName[MAX_PATH];
+ TCHAR szTimeout[10];
+ int iTimeout;
+
+ UNREFERENCED_PARAMETER(lParam);
+
+ switch(uMsg)
+ {
+ case WM_INITDIALOG:
+ {
+ /* get Path to freeldr.ini or boot.ini */
+ szSystemDrive = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, MAX_PATH);
+ if (szSystemDrive != NULL && szSystemDrive != NULL)
+ {
+ szSystemDrive = _tgetenv(_T("SystemDrive"));
+ if (m_szFreeldrIni != NULL)
+ {
+ _tcscpy(m_szFreeldrIni, szSystemDrive);
+ _tcscat(m_szFreeldrIni, _T("\\freeldr.ini"));
+ if (!PathFileExists(m_szFreeldrIni))
+ {
+ _tcscpy(m_szFreeldrIni, szSystemDrive);
+ _tcscat(m_szFreeldrIni, _T("\\boot.ini"));
+ }
+ }
+ HeapFree(GetProcessHeap(), 0, szSystemDrive);
+ }
+
+ SetDlgItemText(hwndDlg, IDC_STRRECDUMPFILE, _T("%SystemRoot%\\MiniDump"));
+
+ /* load settings from freeldr.ini */
+ GetPrivateProfileString(_T("boot loader"), _T("default"), NULL, szDefaultOS, 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_SETCURSEL, (WPARAM)0, (LPARAM)0);
+
+ /* timeout */
+ iTimeout = GetPrivateProfileInt(_T("boot loader"), _T("timeout"), 0, m_szFreeldrIni);
+ SetTimeout(hwndDlg, iTimeout);
+ if (iTimeout != 0)
+ SendDlgItemMessage(hwndDlg, IDC_STRECLIST, BM_SETCHECK, (WPARAM)BST_CHECKED, (LPARAM)0);
+
+ }
+ break;
+
+ case WM_COMMAND:
+ {
+ switch(LOWORD(wParam))
+ {
+ case IDC_STRRECEDIT:
+ {
+ ShellExecute(0, _T("open"), _T("notepad"), m_szFreeldrIni, NULL, SW_SHOWNORMAL);
+ break;
+ }
+ case IDOK:
+ {
+ /* save timeout */
+ if (SendDlgItemMessage(hwndDlg, IDC_STRECLIST, BM_GETCHECK, (WPARAM)0, (LPARAM)0) == BST_CHECKED)
+ iTimeout = SendDlgItemMessage(hwndDlg, IDC_STRRECLISTUPDWN, UDM_GETPOS, (WPARAM)0, (LPARAM)0);
+ else
+ iTimeout = 0;
+ _stprintf(szTimeout, _T("%i"), iTimeout);
+ WritePrivateProfileString(_T("boot loader"), _T("timeout"), szTimeout, m_szFreeldrIni);
+ }
+ case IDCANCEL:
+ {
+ EndDialog(hwndDlg,
+ LOWORD(wParam));
+ return TRUE;
+ break;
+ }
+ case IDC_STRECLIST:
+ {
+ if (SendDlgItemMessage(hwndDlg, IDC_STRECLIST, BM_GETCHECK, (WPARAM)0, (LPARAM)0) == BST_CHECKED)
+ SetTimeout(hwndDlg, 30);
+ else
+ SetTimeout(hwndDlg, 0);
+ }
+ }
+ }
+ break;
+ }
+ return FALSE;
+}