- Port the Services page in C++ and implement hide/show MS/ReactOS services & enable/disable. WIP.
- Fix resource ID for the "delete" button in the FreeLdr page.
- Revert the freeldr "advanced" dialog that I erroneously removed in r69638.
CORE-9333
svn path=/trunk/; revision=69717
PROJECT(msconfig_new)
-set_cpp(WITH_RUNTIME)
+set_cpp(WITH_RUNTIME WITH_EXCEPTIONS)
include_directories(
.
comctl32ex
- ${REACTOS_SOURCE_DIR}/include/c++)
+ ${REACTOS_SOURCE_DIR}/include/c++
+ ${REACTOS_SOURCE_DIR}/lib/atl)
list(APPEND C_SOURCE
comctl32ex/listviewfuncs.c
freeldrpage.c
generalpage.c
msconfig.c
- # srvpage.c
+ regutils.c
# systempage.c
# startuppage.c
stringutils.c
utils.c)
list(APPEND CPP_SOURCE
+ srvpage.cpp
toolspage.cpp
xmldomparser.cpp
precomp.h)
add_executable(msconfig_new ${C_SOURCE} ${CPP_SOURCE} msconfig.rc)
add_pch(msconfig_new precomp.h CPP_SOURCE)
set_module_type(msconfig_new win32gui UNICODE)
-target_link_libraries(msconfig_new comsupp)
+target_link_libraries(msconfig_new atlnew comsupp)
add_importlibs(msconfig_new user32 gdi32 comctl32 comdlg32 advapi32 version ole32 oleaut32 msxml3 shell32 shlwapi msvcrt kernel32)
add_cd_file(TARGET msconfig_new DESTINATION reactos/system32 FOR all)
cabPathNum = GetWindowTextLengthW(GetDlgItem(hDlg, IDC_DRP_CAB_FILE)) + 1;
szCabPathFileName = (LPWSTR)MemAlloc(0, cabPathNum * sizeof(WCHAR));
GetDlgItemText(hDlg, IDC_DRP_CAB_FILE, szCabPathFileName, (int)cabPathNum);
-
+
fileNameNum = GetWindowTextLengthW(GetDlgItem(hDlg, IDC_TXT_FILE_TO_RESTORE)) + 1;
szFileName = (LPWSTR)MemAlloc(0, fileNameNum * sizeof(WCHAR));
GetDlgItemText(hDlg, IDC_TXT_FILE_TO_RESTORE, szFileName, (int)fileNameNum);
switch (LOWORD(wParam))
{
case IDC_BTN_ADVANCED_OPTIONS:
- // DialogBox(hInst, MAKEINTRESOURCE(IDD_FREELDR_ADVANCED_DIALOG), hDlg /* hMainWnd */, NULL /*FileExtractDialogWndProc*/);
+ // DialogBoxW(hInst, MAKEINTRESOURCEW(IDD_FREELDR_ADVANCED_DIALOG), hDlg /* hMainWnd */, NULL /*FileExtractDialogWndProc*/);
break;
// default:
MessageBoxW(hGeneralPage, L"Help not implemented yet!", L"Help", MB_ICONINFORMATION | MB_OK);
return TRUE;
}
-
+
case PSN_KILLACTIVE: // Is going to lose activation.
{
// Changes are always valid of course.
LTEXT "Selected &Command:", IDC_STATIC, 5, 127, 128, 10
END
-IDD_SERVICES_PAGE DIALOGEX 0, 0, 362, 175
-STYLE DS_SHELLFONT | DS_CONTROL | WS_CHILD | WS_CLIPCHILDREN
+IDD_SERVICES_PAGE DIALOGEX 0, 0, 366, 175
+STYLE DS_SHELLFONT | DS_CONTROL | WS_CHILD | WS_CAPTION
+CAPTION "Услуги"
FONT 8, "MS Shell Dlg"
BEGIN
- CONTROL "List1", IDC_SERVICES_LIST, "SysListView32", LVS_REPORT | LVS_SINGLESEL |
- LVS_SHOWSELALWAYS | LVS_SORTASCENDING | WS_BORDER | WS_TABSTOP, 2, 1, 360, 148
- PUSHBUTTON "&Activate all", IDC_BTN_SERVICES_ACTIVATE, 223, 155, 66, 14
- PUSHBUTTON "&Изключване на всички", IDC_BTN_SERVICES_DEACTIVATE, 272, 155, 83, 14
+ CONTROL "List1", IDC_SERVICES_LIST, "SysListView32", LVS_REPORT | LVS_SINGLESEL | LVS_SHOWSELALWAYS | LVS_SORTASCENDING | WS_BORDER | WS_TABSTOP, 5, 5, 356, 129
+ PUSHBUTTON "&Activate all", IDC_BTN_SERVICES_ACTIVATE, 224, 156, 66, 14
+ PUSHBUTTON "&Deactivate all", IDC_BTN_SERVICES_DEACTIVATE, 295, 156, 66, 14
+ CONTROL "&Hide all %s services", IDC_CBX_SERVICES_MASK_PROPRIETARY_SVCS,
+ "Button", BS_AUTOCHECKBOX | WS_TABSTOP, 5, 158, 203, 12
+ LTEXT "Please note that some secure %s services may not be disabled.", IDC_STATIC_SERVICES_WARNING, 5, 138, 220, 17
END
IDD_FREELDR_PAGE DIALOGEX 0, 0, 366, 175
LTEXT "seconds", IDC_STATIC, 330, 104, 31, 10
CONTROL "Make &all boot settings permanent", 292,
"Button", BS_AUTOCHECKBOX | BS_TOP | BS_MULTILINE | WS_TABSTOP, 295, 121, 66, 49
- PUSHBUTTON "&Delete", 1014, 295, 68, 66, 14
+ PUSHBUTTON "&Delete", IDC_BTN_DELETE, 295, 68, 66, 14
END
IDD_FREELDR_ADVANCED_PAGE DIALOGEX 0, 0, 175, 175
CHECKBOX "/&CHANNEL", IDC_CBX_CHANNEL, 20, 130, 50, 10
EDITTEXT IDC_TXT_CHANNEL, 80, 130, 60, 12, ES_LEFT
CONTROL "", IDC_SCR_CHANNEL, "msctls_updown32", 0x50000000, 140, 130, 11, 11
- PUSHBUTTON "Добре", IDC_OK, 20, 160, 50, 12
- PUSHBUTTON "Отказ", IDC_CANCEL, 100, 160, 50, 12
+ PUSHBUTTON "Добре", IDOK, 20, 160, 50, 12
+ PUSHBUTTON "Отказ", IDCANCEL, 100, 160, 50, 12
END
IDD_FILE_EXTRACT_DIALOG DIALOGEX 0, 0, 353, 117
PUSHBUTTON "Cancel", IDCANCEL, 264, 96, 82, 14
END
+IDD_REQUIRED_SERVICES_DISABLING_DIALOG DIALOGEX 0, 0, 237, 62
+STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
+CAPTION "Приложение за настройка на системата"
+FONT 8, "MS Shell Dlg"
+BEGIN
+ DEFPUSHBUTTON "OK", IDOK, 180, 41, 50, 14
+ LTEXT "Essential services cannot be disabled. Doing so might prevent %s from running on your computer.", IDC_STATIC_REQSVCSDIS_INFO, 7, 7, 223, 28
+ CONTROL "&Don't show this message in the future", IDC_CBX_REQSVCSDIS_NO_MSG_ANYMORE,
+ "Button", BS_AUTOCHECKBOX | WS_TABSTOP, 7, 42, 154, 13
+END
+
STRINGTABLE
BEGIN
IDS_MSCONFIG "Приложение за настройка на системата"
BEGIN
IDS_YES "Да"
IDS_NO "No"
+ IDS_UNKNOWN "Неизвестен"
END
STRINGTABLE
BEGIN
- IDS_TAB_SERVICES "Услуги"
IDS_TAB_STARTUP "Запуск"
END
IDS_SERVICES_COLUMN_REQ "Задължително"
IDS_SERVICES_COLUMN_VENDOR "Производител"
IDS_SERVICES_COLUMN_STATUS "Състояние"
+ IDS_SERVICES_COLUMN_DATEDISABLED "Date Disabled"
END
STRINGTABLE
BEGIN
IDS_SERVICES_STATUS_RUNNING "Пуснат"
IDS_SERVICES_STATUS_STOPPED "Спрян"
- IDS_SERVICES_UNKNOWN "Неизвестен"
END
LTEXT "Selected &Command:", IDC_STATIC, 5, 127, 128, 10
END
-IDD_SERVICES_PAGE DIALOGEX 0, 0, 362, 175
-STYLE DS_SHELLFONT | DS_CONTROL | WS_CHILD | WS_CLIPCHILDREN
+IDD_SERVICES_PAGE DIALOGEX 0, 0, 366, 175
+STYLE DS_SHELLFONT | DS_CONTROL | WS_CHILD | WS_CAPTION
+CAPTION "Serveis"
FONT 8, "MS Shell Dlg"
BEGIN
- CONTROL "List1", IDC_SERVICES_LIST, "SysListView32", LVS_REPORT | LVS_SINGLESEL |
- LVS_SHOWSELALWAYS | LVS_SORTASCENDING | WS_BORDER | WS_TABSTOP, 2, 1, 360, 148
- PUSHBUTTON "A&ctivar-ho tot", IDC_BTN_SERVICES_ACTIVATE, 223, 155, 66, 14
- PUSHBUTTON "&Deactivar-ho tot", IDC_BTN_SERVICES_DEACTIVATE, 295, 155, 66, 14
+ CONTROL "List1", IDC_SERVICES_LIST, "SysListView32", LVS_REPORT | LVS_SINGLESEL | LVS_SHOWSELALWAYS | LVS_SORTASCENDING | WS_BORDER | WS_TABSTOP, 5, 5, 356, 129
+ PUSHBUTTON "A&ctivar-ho tot", IDC_BTN_SERVICES_ACTIVATE, 224, 156, 66, 14
+ PUSHBUTTON "&Deactivar-ho tot", IDC_BTN_SERVICES_DEACTIVATE, 295, 156, 66, 14
+ CONTROL "&Hide all %s services", IDC_CBX_SERVICES_MASK_PROPRIETARY_SVCS,
+ "Button", BS_AUTOCHECKBOX | WS_TABSTOP, 5, 158, 203, 12
+ LTEXT "Please note that some secure %s services may not be disabled.", IDC_STATIC_SERVICES_WARNING, 5, 138, 220, 17
END
IDD_FREELDR_PAGE DIALOGEX 0, 0, 366, 175
LTEXT "seconds", IDC_STATIC, 330, 104, 31, 10
CONTROL "Make &all boot settings permanent", 292,
"Button", BS_AUTOCHECKBOX | BS_TOP | BS_MULTILINE | WS_TABSTOP, 295, 121, 66, 49
- PUSHBUTTON "&Delete", 1014, 295, 68, 66, 14
+ PUSHBUTTON "&Delete", IDC_BTN_DELETE, 295, 68, 66, 14
END
IDD_FREELDR_ADVANCED_PAGE DIALOGEX 0, 0, 175, 175
CHECKBOX "/&CHANNEL", IDC_CBX_CHANNEL, 20, 130, 50, 10
EDITTEXT IDC_TXT_CHANNEL, 80, 130, 60, 12, ES_LEFT
CONTROL "", IDC_SCR_CHANNEL, "msctls_updown32", 0x50000000, 140, 130, 11, 11
- PUSHBUTTON "Acceptar", IDC_OK, 20, 160, 50, 12
- PUSHBUTTON "Cancel·lar", IDC_CANCEL, 100, 160, 50, 12
+ PUSHBUTTON "Acceptar", IDOK, 20, 160, 50, 12
+ PUSHBUTTON "Cancel·lar", IDCANCEL, 100, 160, 50, 12
END
IDD_FILE_EXTRACT_DIALOG DIALOGEX 0, 0, 353, 117
PUSHBUTTON "Cancel", IDCANCEL, 264, 96, 82, 14
END
+IDD_REQUIRED_SERVICES_DISABLING_DIALOG DIALOGEX 0, 0, 237, 62
+STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
+CAPTION "Programa de configuracio del sistema"
+FONT 8, "MS Shell Dlg"
+BEGIN
+ DEFPUSHBUTTON "OK", IDOK, 180, 41, 50, 14
+ LTEXT "Essential services cannot be disabled. Doing so might prevent %s from running on your computer.", IDC_STATIC_REQSVCSDIS_INFO, 7, 7, 223, 28
+ CONTROL "&Don't show this message in the future", IDC_CBX_REQSVCSDIS_NO_MSG_ANYMORE,
+ "Button", BS_AUTOCHECKBOX | WS_TABSTOP, 7, 42, 154, 13
+END
+
STRINGTABLE
BEGIN
IDS_MSCONFIG "Programa de configuracio del sistema"
BEGIN
IDS_YES "Si"
IDS_NO "No"
+ IDS_UNKNOWN "Indeterminat"
END
STRINGTABLE
BEGIN
- IDS_TAB_SERVICES "Serveis"
IDS_TAB_STARTUP "Arrencada"
END
IDS_SERVICES_COLUMN_REQ "Obligatori"
IDS_SERVICES_COLUMN_VENDOR "Fabricant"
IDS_SERVICES_COLUMN_STATUS "Estat"
+ IDS_SERVICES_COLUMN_DATEDISABLED "Date Disabled"
END
STRINGTABLE
BEGIN
IDS_SERVICES_STATUS_RUNNING "En marxa"
IDS_SERVICES_STATUS_STOPPED "Parat"
- IDS_SERVICES_UNKNOWN "Indeterminat"
END
LTEXT "Selected &Command:", IDC_STATIC, 5, 127, 128, 10
END
-IDD_SERVICES_PAGE DIALOGEX 0, 0, 362, 175
-STYLE DS_SHELLFONT | DS_CONTROL | WS_CHILD | WS_CLIPCHILDREN
+IDD_SERVICES_PAGE DIALOGEX 0, 0, 366, 175
+STYLE DS_SHELLFONT | DS_CONTROL | WS_CHILD | WS_CAPTION
+CAPTION "Služby"
FONT 8, "MS Shell Dlg"
BEGIN
- CONTROL "List1", IDC_SERVICES_LIST, "SysListView32", LVS_REPORT | LVS_SINGLESEL |
- LVS_SHOWSELALWAYS | LVS_SORTASCENDING | WS_BORDER | WS_TABSTOP, 2, 1, 360, 148
- PUSHBUTTON "&Povolit vše", IDC_BTN_SERVICES_ACTIVATE, 223, 155, 66, 14
- PUSHBUTTON "&Zakázat vše", IDC_BTN_SERVICES_DEACTIVATE, 295, 155, 66, 14
+ CONTROL "List1", IDC_SERVICES_LIST, "SysListView32", LVS_REPORT | LVS_SINGLESEL | LVS_SHOWSELALWAYS | LVS_SORTASCENDING | WS_BORDER | WS_TABSTOP, 5, 5, 356, 129
+ PUSHBUTTON "&Povolit vše", IDC_BTN_SERVICES_ACTIVATE, 224, 156, 66, 14
+ PUSHBUTTON "&Zakázat vše", IDC_BTN_SERVICES_DEACTIVATE, 295, 156, 66, 14
+ CONTROL "&Hide all %s services", IDC_CBX_SERVICES_MASK_PROPRIETARY_SVCS,
+ "Button", BS_AUTOCHECKBOX | WS_TABSTOP, 5, 158, 203, 12
+ LTEXT "Please note that some secure %s services may not be disabled.", IDC_STATIC_SERVICES_WARNING, 5, 138, 220, 17
END
IDD_FREELDR_PAGE DIALOGEX 0, 0, 366, 175
LTEXT "seconds", IDC_STATIC, 330, 104, 31, 10
CONTROL "Make &all boot settings permanent", 292,
"Button", BS_AUTOCHECKBOX | BS_TOP | BS_MULTILINE | WS_TABSTOP, 295, 121, 66, 49
- PUSHBUTTON "&Delete", 1014, 295, 68, 66, 14
+ PUSHBUTTON "&Delete", IDC_BTN_DELETE, 295, 68, 66, 14
END
IDD_FREELDR_ADVANCED_PAGE DIALOGEX 0, 0, 175, 175
CHECKBOX "/&CHANNEL", IDC_CBX_CHANNEL, 20, 130, 50, 10
EDITTEXT IDC_TXT_CHANNEL, 80, 130, 60, 12, ES_LEFT
CONTROL "", IDC_SCR_CHANNEL, "msctls_updown32", 0x50000000, 140, 130, 11, 11
- PUSHBUTTON "OK", IDC_OK, 20, 160, 50, 12
- PUSHBUTTON "Storno", IDC_CANCEL, 100, 160, 50, 12
+ PUSHBUTTON "OK", IDOK, 20, 160, 50, 12
+ PUSHBUTTON "Storno", IDCANCEL, 100, 160, 50, 12
END
IDD_FILE_EXTRACT_DIALOG DIALOGEX 0, 0, 353, 117
PUSHBUTTON "Cancel", IDCANCEL, 264, 96, 82, 14
END
+IDD_REQUIRED_SERVICES_DISABLING_DIALOG DIALOGEX 0, 0, 237, 62
+STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
+CAPTION "Nástroj pro konfiguraci systému"
+FONT 8, "MS Shell Dlg"
+BEGIN
+ DEFPUSHBUTTON "OK", IDOK, 180, 41, 50, 14
+ LTEXT "Essential services cannot be disabled. Doing so might prevent %s from running on your computer.", IDC_STATIC_REQSVCSDIS_INFO, 7, 7, 223, 28
+ CONTROL "&Don't show this message in the future", IDC_CBX_REQSVCSDIS_NO_MSG_ANYMORE,
+ "Button", BS_AUTOCHECKBOX | WS_TABSTOP, 7, 42, 154, 13
+END
+
STRINGTABLE
BEGIN
IDS_MSCONFIG "Nástroj pro konfiguraci systému"
BEGIN
IDS_YES "Ano"
IDS_NO "No"
+ IDS_UNKNOWN "Neznámý"
END
STRINGTABLE
BEGIN
- IDS_TAB_SERVICES "Služby"
IDS_TAB_STARTUP "Po spuštění"
END
IDS_SERVICES_COLUMN_REQ "Požadováno"
IDS_SERVICES_COLUMN_VENDOR "Výrobce"
IDS_SERVICES_COLUMN_STATUS "Stav"
+ IDS_SERVICES_COLUMN_DATEDISABLED "Date Disabled"
END
STRINGTABLE
BEGIN
IDS_SERVICES_STATUS_RUNNING "Spuštěno"
IDS_SERVICES_STATUS_STOPPED "Zastaveno"
- IDS_SERVICES_UNKNOWN "Neznámý"
END
LTEXT "Selected &Command:", IDC_STATIC, 5, 127, 128, 10
END
-IDD_SERVICES_PAGE DIALOGEX 0, 0, 362, 175
-STYLE DS_SHELLFONT | DS_CONTROL | WS_CHILD | WS_CLIPCHILDREN
+IDD_SERVICES_PAGE DIALOGEX 0, 0, 366, 175
+STYLE DS_SHELLFONT | DS_CONTROL | WS_CHILD | WS_CAPTION
+CAPTION "Dienste"
FONT 8, "MS Shell Dlg"
BEGIN
- CONTROL "List1", IDC_SERVICES_LIST, "SysListView32", LVS_REPORT | LVS_SINGLESEL |
- LVS_SHOWSELALWAYS | LVS_SORTASCENDING | WS_BORDER | WS_TABSTOP, 2, 1, 360, 148
- PUSHBUTTON "Alle &aktivieren", IDC_BTN_SERVICES_ACTIVATE, 223, 155, 66, 14
- PUSHBUTTON "Alle &deaktivieren", IDC_BTN_SERVICES_DEACTIVATE, 295, 155, 66, 14
+ CONTROL "List1", IDC_SERVICES_LIST, "SysListView32", LVS_REPORT | LVS_SINGLESEL | LVS_SHOWSELALWAYS | LVS_SORTASCENDING | WS_BORDER | WS_TABSTOP, 5, 5, 356, 129
+ PUSHBUTTON "Alle &aktivieren", IDC_BTN_SERVICES_ACTIVATE, 224, 156, 66, 14
+ PUSHBUTTON "Alle &deaktivieren", IDC_BTN_SERVICES_DEACTIVATE, 295, 156, 66, 14
+ CONTROL "&Hide all %s services", IDC_CBX_SERVICES_MASK_PROPRIETARY_SVCS,
+ "Button", BS_AUTOCHECKBOX | WS_TABSTOP, 5, 158, 203, 12
+ LTEXT "Please note that some secure %s services may not be disabled.", IDC_STATIC_SERVICES_WARNING, 5, 138, 220, 17
END
IDD_FREELDR_PAGE DIALOGEX 0, 0, 366, 175
LTEXT "seconds", IDC_STATIC, 330, 104, 31, 10
CONTROL "Make &all boot settings permanent", 292,
"Button", BS_AUTOCHECKBOX | BS_TOP | BS_MULTILINE | WS_TABSTOP, 295, 121, 66, 49
- PUSHBUTTON "&Delete", 1014, 295, 68, 66, 14
+ PUSHBUTTON "&Delete", IDC_BTN_DELETE, 295, 68, 66, 14
END
IDD_FREELDR_ADVANCED_PAGE DIALOGEX 0, 0, 175, 175
CHECKBOX "/&CHANNEL", IDC_CBX_CHANNEL, 20, 130, 50, 10
EDITTEXT IDC_TXT_CHANNEL, 80, 130, 60, 12, ES_LEFT
CONTROL "", IDC_SCR_CHANNEL, "msctls_updown32", 0x50000000, 140, 130, 11, 11
- PUSHBUTTON "OK", IDC_OK, 20, 160, 50, 12
- PUSHBUTTON "Abbrechen", IDC_CANCEL, 100, 160, 50, 12
+ PUSHBUTTON "OK", IDOK, 20, 160, 50, 12
+ PUSHBUTTON "Abbrechen", IDCANCEL, 100, 160, 50, 12
END
IDD_FILE_EXTRACT_DIALOG DIALOGEX 0, 0, 353, 117
PUSHBUTTON "Abbrechen", IDCANCEL, 264, 96, 82, 14
END
+IDD_REQUIRED_SERVICES_DISABLING_DIALOG DIALOGEX 0, 0, 237, 62
+STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
+CAPTION "Systemkonfiguration"
+FONT 8, "MS Shell Dlg"
+BEGIN
+ DEFPUSHBUTTON "OK", IDOK, 180, 41, 50, 14
+ LTEXT "Essential services cannot be disabled. Doing so might prevent %s from running on your computer.", IDC_STATIC_REQSVCSDIS_INFO, 7, 7, 223, 28
+ CONTROL "&Don't show this message in the future", IDC_CBX_REQSVCSDIS_NO_MSG_ANYMORE,
+ "Button", BS_AUTOCHECKBOX | WS_TABSTOP, 7, 42, 154, 13
+END
+
STRINGTABLE
BEGIN
IDS_MSCONFIG "Systemkonfiguration"
BEGIN
IDS_YES "Ja"
IDS_NO "No"
+ IDS_UNKNOWN "Unbekannt"
END
STRINGTABLE
BEGIN
- IDS_TAB_SERVICES "Dienste"
IDS_TAB_STARTUP "Systemstart"
END
IDS_SERVICES_COLUMN_REQ "Erforderlich"
IDS_SERVICES_COLUMN_VENDOR "Hersteller"
IDS_SERVICES_COLUMN_STATUS "Status"
+ IDS_SERVICES_COLUMN_DATEDISABLED "Date Disabled"
END
STRINGTABLE
BEGIN
IDS_SERVICES_STATUS_RUNNING "Gestartet"
IDS_SERVICES_STATUS_STOPPED "Beendet"
- IDS_SERVICES_UNKNOWN "Unbekannt"
END
LTEXT "Selected &Command:", IDC_STATIC, 5, 127, 128, 10
END
-IDD_SERVICES_PAGE DIALOGEX 0, 0, 362, 175
-STYLE DS_SHELLFONT | DS_CONTROL | WS_CHILD | WS_CLIPCHILDREN
+IDD_SERVICES_PAGE DIALOGEX 0, 0, 366, 175
+STYLE DS_SHELLFONT | DS_CONTROL | WS_CHILD | WS_CAPTION
+CAPTION "Υπηρεσίες"
FONT 8, "MS Shell Dlg"
BEGIN
- CONTROL "List1", IDC_SERVICES_LIST, "SysListView32", LVS_REPORT | LVS_SINGLESEL |
- LVS_SHOWSELALWAYS | LVS_SORTASCENDING | WS_BORDER | WS_TABSTOP, 2, 1, 360, 148
- PUSHBUTTON "&Ενεργοποίηση όλων", IDC_BTN_SERVICES_ACTIVATE, 223, 155, 66, 14
- PUSHBUTTON "&Απενεργοποίηση όλων", IDC_BTN_SERVICES_DEACTIVATE, 295, 155, 66, 14
+ CONTROL "List1", IDC_SERVICES_LIST, "SysListView32", LVS_REPORT | LVS_SINGLESEL | LVS_SHOWSELALWAYS | LVS_SORTASCENDING | WS_BORDER | WS_TABSTOP, 5, 5, 356, 129
+ PUSHBUTTON "&Ενεργοποίηση όλων", IDC_BTN_SERVICES_ACTIVATE, 224, 156, 66, 14
+ PUSHBUTTON "&Απενεργοποίηση όλων", IDC_BTN_SERVICES_DEACTIVATE, 295, 156, 66, 14
+ CONTROL "&Hide all %s services", IDC_CBX_SERVICES_MASK_PROPRIETARY_SVCS,
+ "Button", BS_AUTOCHECKBOX | WS_TABSTOP, 5, 158, 203, 12
+ LTEXT "Please note that some secure %s services may not be disabled.", IDC_STATIC_SERVICES_WARNING, 5, 138, 220, 17
END
IDD_FREELDR_PAGE DIALOGEX 0, 0, 366, 175
LTEXT "seconds", IDC_STATIC, 330, 104, 31, 10
CONTROL "Make &all boot settings permanent", 292,
"Button", BS_AUTOCHECKBOX | BS_TOP | BS_MULTILINE | WS_TABSTOP, 295, 121, 66, 49
- PUSHBUTTON "&Delete", 1014, 295, 68, 66, 14
+ PUSHBUTTON "&Delete", IDC_BTN_DELETE, 295, 68, 66, 14
END
IDD_FREELDR_ADVANCED_PAGE DIALOGEX 0, 0, 175, 175
CHECKBOX "/&CHANNEL", IDC_CBX_CHANNEL, 20, 130, 50, 10
EDITTEXT IDC_TXT_CHANNEL, 80, 130, 60, 12, ES_LEFT
CONTROL "", IDC_SCR_CHANNEL, "msctls_updown32", 0x50000000, 140, 130, 11, 11
- PUSHBUTTON "OK", IDC_OK, 20, 160, 50, 12
- PUSHBUTTON "Ακύρωση", IDC_CANCEL, 100, 160, 50, 12
+ PUSHBUTTON "OK", IDOK, 20, 160, 50, 12
+ PUSHBUTTON "Ακύρωση", IDCANCEL, 100, 160, 50, 12
END
IDD_FILE_EXTRACT_DIALOG DIALOGEX 0, 0, 353, 117
PUSHBUTTON "Cancel", IDCANCEL, 264, 96, 82, 14
END
+IDD_REQUIRED_SERVICES_DISABLING_DIALOG DIALOGEX 0, 0, 237, 62
+STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
+CAPTION "Πρόγραμμα παραμετροποίησης συστήματος"
+FONT 8, "MS Shell Dlg"
+BEGIN
+ DEFPUSHBUTTON "OK", IDOK, 180, 41, 50, 14
+ LTEXT "Essential services cannot be disabled. Doing so might prevent %s from running on your computer.", IDC_STATIC_REQSVCSDIS_INFO, 7, 7, 223, 28
+ CONTROL "&Don't show this message in the future", IDC_CBX_REQSVCSDIS_NO_MSG_ANYMORE,
+ "Button", BS_AUTOCHECKBOX | WS_TABSTOP, 7, 42, 154, 13
+END
+
STRINGTABLE
BEGIN
IDS_MSCONFIG "Πρόγραμμα παραμετροποίησης συστήματος"
BEGIN
IDS_YES "Ναι"
IDS_NO "No"
+ IDS_UNKNOWN "Άγνωστη"
END
STRINGTABLE
BEGIN
- IDS_TAB_SERVICES "Υπηρεσίες"
IDS_TAB_STARTUP "Εκκίνηση"
END
IDS_SERVICES_COLUMN_REQ "Απαραίτητο"
IDS_SERVICES_COLUMN_VENDOR "Vendor"
IDS_SERVICES_COLUMN_STATUS "Κατάσταση"
+ IDS_SERVICES_COLUMN_DATEDISABLED "Date Disabled"
END
STRINGTABLE
BEGIN
IDS_SERVICES_STATUS_RUNNING "Εκτελείται"
IDS_SERVICES_STATUS_STOPPED "Τερματίστηκε"
- IDS_SERVICES_UNKNOWN "Άγνωστη"
END
LTEXT "Selected &Command:", IDC_STATIC, 5, 127, 128, 10
END
-IDD_SERVICES_PAGE DIALOGEX 0, 0, 362, 175
-STYLE DS_SHELLFONT | DS_CONTROL | WS_CHILD | WS_CLIPCHILDREN
+IDD_SERVICES_PAGE DIALOGEX 0, 0, 366, 175
+STYLE DS_SHELLFONT | DS_CONTROL | WS_CHILD | WS_CAPTION
+CAPTION "Services"
FONT 8, "MS Shell Dlg"
BEGIN
- CONTROL "List1", IDC_SERVICES_LIST, "SysListView32", LVS_REPORT | LVS_SINGLESEL |
- LVS_SHOWSELALWAYS | LVS_SORTASCENDING | WS_BORDER | WS_TABSTOP, 2, 1, 360, 148
- PUSHBUTTON "&Activate all", IDC_BTN_SERVICES_ACTIVATE, 223, 155, 66, 14
- PUSHBUTTON "&Deactivate all", IDC_BTN_SERVICES_DEACTIVATE, 295, 155, 66, 14
+ CONTROL "List1", IDC_SERVICES_LIST, "SysListView32", LVS_REPORT | LVS_SINGLESEL | LVS_SHOWSELALWAYS | LVS_SORTASCENDING | WS_BORDER | WS_TABSTOP, 5, 5, 356, 129
+ PUSHBUTTON "&Activate all", IDC_BTN_SERVICES_ACTIVATE, 224, 156, 66, 14
+ PUSHBUTTON "&Deactivate all", IDC_BTN_SERVICES_DEACTIVATE, 295, 156, 66, 14
+ CONTROL "&Hide all %s services", IDC_CBX_SERVICES_MASK_PROPRIETARY_SVCS,
+ "Button", BS_AUTOCHECKBOX | WS_TABSTOP, 5, 158, 203, 12
+ LTEXT "Please note that some secure %s services may not be disabled.", IDC_STATIC_SERVICES_WARNING, 5, 138, 220, 17
END
IDD_FREELDR_PAGE DIALOGEX 0, 0, 366, 175
LTEXT "seconds", IDC_STATIC, 330, 104, 31, 10
CONTROL "Make &all boot settings permanent", 292,
"Button", BS_AUTOCHECKBOX | BS_TOP | BS_MULTILINE | WS_TABSTOP, 295, 121, 66, 49
- PUSHBUTTON "&Delete", 1014, 295, 68, 66, 14
+ PUSHBUTTON "&Delete", IDC_BTN_DELETE, 295, 68, 66, 14
END
IDD_FREELDR_ADVANCED_PAGE DIALOGEX 0, 0, 175, 175
CHECKBOX "/&CHANNEL", IDC_CBX_CHANNEL, 20, 130, 50, 10
EDITTEXT IDC_TXT_CHANNEL, 80, 130, 60, 12, ES_LEFT
CONTROL "", IDC_SCR_CHANNEL, "msctls_updown32", 0x50000000, 140, 130, 11, 11
- PUSHBUTTON "OK", IDC_OK, 20, 160, 50, 12
- PUSHBUTTON "Cancel", IDC_CANCEL, 100, 160, 50, 12
+ PUSHBUTTON "OK", IDOK, 20, 160, 50, 12
+ PUSHBUTTON "Cancel", IDCANCEL, 100, 160, 50, 12
END
IDD_FILE_EXTRACT_DIALOG DIALOGEX 0, 0, 353, 117
PUSHBUTTON "Cancel", IDCANCEL, 264, 96, 82, 14
END
+IDD_REQUIRED_SERVICES_DISABLING_DIALOG DIALOGEX 0, 0, 237, 62
+STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
+CAPTION "System Configuration Program"
+FONT 8, "MS Shell Dlg"
+BEGIN
+ DEFPUSHBUTTON "OK", IDOK, 180, 41, 50, 14
+ LTEXT "Essential services cannot be disabled. Doing so might prevent %s from running on your computer.", IDC_STATIC_REQSVCSDIS_INFO, 7, 7, 223, 28
+ CONTROL "&Don't show this message in the future", IDC_CBX_REQSVCSDIS_NO_MSG_ANYMORE,
+ "Button", BS_AUTOCHECKBOX | WS_TABSTOP, 7, 42, 154, 13
+END
+
STRINGTABLE
BEGIN
IDS_MSCONFIG "System Configuration Program"
BEGIN
IDS_YES "Yes"
IDS_NO "No"
+ IDS_UNKNOWN "Unknown"
END
STRINGTABLE
BEGIN
- IDS_TAB_SERVICES "Services"
IDS_TAB_STARTUP "Startup"
END
IDS_SERVICES_COLUMN_REQ "Required"
IDS_SERVICES_COLUMN_VENDOR "Vendor"
IDS_SERVICES_COLUMN_STATUS "Status"
+ IDS_SERVICES_COLUMN_DATEDISABLED "Date Disabled"
END
STRINGTABLE
BEGIN
IDS_SERVICES_STATUS_RUNNING "Running"
IDS_SERVICES_STATUS_STOPPED "Stopped"
- IDS_SERVICES_UNKNOWN "Unknown"
END
LTEXT "Selected &Command:", IDC_STATIC, 5, 127, 128, 10
END
-IDD_SERVICES_PAGE DIALOGEX 0, 0, 362, 175
-STYLE DS_SHELLFONT | DS_CONTROL | WS_CHILD | WS_CLIPCHILDREN
+IDD_SERVICES_PAGE DIALOGEX 0, 0, 366, 175
+STYLE DS_SHELLFONT | DS_CONTROL | WS_CHILD | WS_CAPTION
+CAPTION "Servicios"
FONT 8, "MS Shell Dlg"
BEGIN
- CONTROL "List1", IDC_SERVICES_LIST, "SysListView32", LVS_REPORT | LVS_SINGLESEL |
- LVS_SHOWSELALWAYS | LVS_SORTASCENDING | WS_BORDER | WS_TABSTOP, 2, 1, 360, 148
- PUSHBUTTON "&Activar todo", IDC_BTN_SERVICES_ACTIVATE, 223, 155, 66, 14
- PUSHBUTTON "&Desactivar todo", IDC_BTN_SERVICES_DEACTIVATE, 295, 155, 66, 14
+ CONTROL "List1", IDC_SERVICES_LIST, "SysListView32", LVS_REPORT | LVS_SINGLESEL | LVS_SHOWSELALWAYS | LVS_SORTASCENDING | WS_BORDER | WS_TABSTOP, 5, 5, 356, 129
+ PUSHBUTTON "&Activar todo", IDC_BTN_SERVICES_ACTIVATE, 224, 156, 66, 14
+ PUSHBUTTON "&Desactivar todo", IDC_BTN_SERVICES_DEACTIVATE, 295, 156, 66, 14
+ CONTROL "&Hide all %s services", IDC_CBX_SERVICES_MASK_PROPRIETARY_SVCS,
+ "Button", BS_AUTOCHECKBOX | WS_TABSTOP, 5, 158, 203, 12
+ LTEXT "Please note that some secure %s services may not be disabled.", IDC_STATIC_SERVICES_WARNING, 5, 138, 220, 17
END
IDD_FREELDR_PAGE DIALOGEX 0, 0, 366, 175
LTEXT "seconds", IDC_STATIC, 330, 104, 31, 10
CONTROL "Make &all boot settings permanent", 292,
"Button", BS_AUTOCHECKBOX | BS_TOP | BS_MULTILINE | WS_TABSTOP, 295, 121, 66, 49
- PUSHBUTTON "&Delete", 1014, 295, 68, 66, 14
+ PUSHBUTTON "&Delete", IDC_BTN_DELETE, 295, 68, 66, 14
END
IDD_FREELDR_ADVANCED_PAGE DIALOGEX 0, 0, 175, 175
CHECKBOX "/&CHANNEL", IDC_CBX_CHANNEL, 20, 130, 50, 10
EDITTEXT IDC_TXT_CHANNEL, 80, 130, 60, 12, ES_LEFT
CONTROL "", IDC_SCR_CHANNEL, "msctls_updown32", 0x50000000, 140, 130, 11, 11
- PUSHBUTTON "Aceptar", IDC_OK, 20, 160, 50, 12
- PUSHBUTTON "Cancelar", IDC_CANCEL, 100, 160, 50, 12
+ PUSHBUTTON "Aceptar", IDOK, 20, 160, 50, 12
+ PUSHBUTTON "Cancelar", IDCANCEL, 100, 160, 50, 12
END
IDD_FILE_EXTRACT_DIALOG DIALOGEX 0, 0, 353, 117
PUSHBUTTON "Cancel", IDCANCEL, 264, 96, 82, 14
END
+IDD_REQUIRED_SERVICES_DISABLING_DIALOG DIALOGEX 0, 0, 237, 62
+STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
+CAPTION "Utilidad de configuración del sistema"
+FONT 8, "MS Shell Dlg"
+BEGIN
+ DEFPUSHBUTTON "OK", IDOK, 180, 41, 50, 14
+ LTEXT "Essential services cannot be disabled. Doing so might prevent %s from running on your computer.", IDC_STATIC_REQSVCSDIS_INFO, 7, 7, 223, 28
+ CONTROL "&Don't show this message in the future", IDC_CBX_REQSVCSDIS_NO_MSG_ANYMORE,
+ "Button", BS_AUTOCHECKBOX | WS_TABSTOP, 7, 42, 154, 13
+END
+
STRINGTABLE
BEGIN
IDS_MSCONFIG "Utilidad de configuración del sistema"
BEGIN
IDS_YES "Sí"
IDS_NO "No"
+ IDS_UNKNOWN "Desconocido"
END
STRINGTABLE
BEGIN
- IDS_TAB_SERVICES "Servicios"
IDS_TAB_STARTUP "Inicio"
END
IDS_SERVICES_COLUMN_REQ "Necesario"
IDS_SERVICES_COLUMN_VENDOR "Fabricante"
IDS_SERVICES_COLUMN_STATUS "Estado"
+ IDS_SERVICES_COLUMN_DATEDISABLED "Date Disabled"
END
STRINGTABLE
BEGIN
IDS_SERVICES_STATUS_RUNNING "En ejecución"
IDS_SERVICES_STATUS_STOPPED "Detenido"
- IDS_SERVICES_UNKNOWN "Desconocido"
END
LTEXT "&Commande sélectionnée :", IDC_STATIC, 5, 127, 128, 10
END
-IDD_SERVICES_PAGE DIALOGEX 0, 0, 362, 175
-STYLE DS_SHELLFONT | DS_CONTROL | WS_CHILD | WS_CLIPCHILDREN
+IDD_SERVICES_PAGE DIALOGEX 0, 0, 366, 175
+STYLE DS_SHELLFONT | DS_CONTROL | WS_CHILD | WS_CAPTION
+CAPTION "Services"
FONT 8, "MS Shell Dlg"
BEGIN
- CONTROL "List1", IDC_SERVICES_LIST, "SysListView32", LVS_REPORT | LVS_SINGLESEL |
- LVS_SHOWSELALWAYS | LVS_SORTASCENDING | WS_BORDER | WS_TABSTOP, 2, 1, 360, 148
- PUSHBUTTON "&Activer tout", IDC_BTN_SERVICES_ACTIVATE, 223, 155, 66, 14
- PUSHBUTTON "&Désactiver tout", IDC_BTN_SERVICES_DEACTIVATE, 295, 155, 66, 14
+ CONTROL "List1", IDC_SERVICES_LIST, "SysListView32", LVS_REPORT | LVS_SINGLESEL | LVS_SHOWSELALWAYS | LVS_SORTASCENDING | WS_BORDER | WS_TABSTOP, 5, 5, 356, 129
+ PUSHBUTTON "&Activer tout", IDC_BTN_SERVICES_ACTIVATE, 224, 156, 66, 14
+ PUSHBUTTON "&Désactiver tout", IDC_BTN_SERVICES_DEACTIVATE, 295, 156, 66, 14
+ CONTROL "&Masquer tous les services %s", IDC_CBX_SERVICES_MASK_PROPRIETARY_SVCS,
+ "Button", BS_AUTOCHECKBOX | WS_TABSTOP, 5, 158, 203, 12
+ LTEXT "Veuiller noter que certains services %s sécurisés peuvent ne pas pouvoir être désactivés.", IDC_STATIC_SERVICES_WARNING, 5, 138, 220, 17
END
IDD_FREELDR_PAGE DIALOGEX 0, 0, 366, 175
LTEXT "secondes", IDC_STATIC, 330, 104, 31, 10
CONTROL "Rendre permanents &tous les paramètres de démarrage", 292,
"Button", BS_AUTOCHECKBOX | BS_TOP | BS_MULTILINE | WS_TABSTOP, 295, 121, 66, 49
- PUSHBUTTON "&Supprimer", 1014, 295, 68, 66, 14
+ PUSHBUTTON "&Supprimer", IDC_BTN_DELETE, 295, 68, 66, 14
END
IDD_FREELDR_ADVANCED_PAGE DIALOGEX 0, 0, 175, 175
CHECKBOX "/&CHANNEL", IDC_CBX_CHANNEL, 20, 130, 50, 10
EDITTEXT IDC_TXT_CHANNEL, 80, 130, 60, 12, ES_LEFT
CONTROL "", IDC_SCR_CHANNEL, "msctls_updown32", 0x50000000, 140, 130, 11, 11
- PUSHBUTTON "OK", IDC_OK, 20, 160, 50, 12
- PUSHBUTTON "Annuler", IDC_CANCEL, 100, 160, 50, 12
+ PUSHBUTTON "OK", IDOK, 20, 160, 50, 12
+ PUSHBUTTON "Annuler", IDCANCEL, 100, 160, 50, 12
END
IDD_FILE_EXTRACT_DIALOG DIALOGEX 0, 0, 353, 117
PUSHBUTTON "Annuler", IDCANCEL, 264, 96, 82, 14
END
+IDD_REQUIRED_SERVICES_DISABLING_DIALOG DIALOGEX 0, 0, 237, 62
+STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
+CAPTION "Utilitaire de configuration système"
+FONT 8, "MS Shell Dlg"
+BEGIN
+ DEFPUSHBUTTON "OK", IDOK, 180, 41, 50, 14
+ LTEXT "Les services essentiels ne peuvent pas être désactivés. Cela pourrait empêcher %s de fonctionner sur votre ordinateur.", IDC_STATIC_REQSVCSDIS_INFO, 7, 7, 223, 28
+ CONTROL "&Ne plus afficher ce message", IDC_CBX_REQSVCSDIS_NO_MSG_ANYMORE,
+ "Button", BS_AUTOCHECKBOX | WS_TABSTOP, 7, 42, 154, 13
+END
+
STRINGTABLE
BEGIN
IDS_MSCONFIG "Utilitaire de configuration système"
BEGIN
IDS_YES "Oui"
IDS_NO "Non"
+ IDS_UNKNOWN "Inconnu"
END
STRINGTABLE
BEGIN
- IDS_TAB_SERVICES "Services"
IDS_TAB_STARTUP "Démarrage"
END
IDS_SERVICES_COLUMN_REQ "Essentiel"
IDS_SERVICES_COLUMN_VENDOR "Fabricant"
IDS_SERVICES_COLUMN_STATUS "État"
+ IDS_SERVICES_COLUMN_DATEDISABLED "Date de désactivation"
END
STRINGTABLE
BEGIN
IDS_SERVICES_STATUS_RUNNING "En cours d'exécution"
IDS_SERVICES_STATUS_STOPPED "Arrêté"
- IDS_SERVICES_UNKNOWN "Inconnu"
END
LTEXT "Selected &Command:", IDC_STATIC, 5, 127, 128, 10
END
-IDD_SERVICES_PAGE DIALOGEX 0, 0, 362, 175
-STYLE DS_SHELLFONT | DS_CONTROL | WS_CHILD | WS_CLIPCHILDREN
+IDD_SERVICES_PAGE DIALOGEX 0, 0, 366, 175
+STYLE DS_SHELLFONT | DS_CONTROL | WS_CHILD | WS_CAPTION
+CAPTION "שירותים"
FONT 8, "MS Shell Dlg"
BEGIN
- CONTROL "List1", IDC_SERVICES_LIST, "SysListView32", LVS_REPORT | LVS_SINGLESEL |
- LVS_SHOWSELALWAYS | LVS_SORTASCENDING | WS_BORDER | WS_TABSTOP, 2, 1, 360, 148
- PUSHBUTTON "הפעל הכל", IDC_BTN_SERVICES_ACTIVATE, 223, 155, 66, 14
- PUSHBUTTON "בטל הכל", IDC_BTN_SERVICES_DEACTIVATE, 295, 155, 66, 14
+ CONTROL "List1", IDC_SERVICES_LIST, "SysListView32", LVS_REPORT | LVS_SINGLESEL | LVS_SHOWSELALWAYS | LVS_SORTASCENDING | WS_BORDER | WS_TABSTOP, 5, 5, 356, 129
+ PUSHBUTTON "&Activate all", IDC_BTN_SERVICES_ACTIVATE, 224, 156, 66, 14
+ PUSHBUTTON "&Deactivate all", IDC_BTN_SERVICES_DEACTIVATE, 295, 156, 66, 14
+ CONTROL "&Hide all %s services", IDC_CBX_SERVICES_MASK_PROPRIETARY_SVCS,
+ "Button", BS_AUTOCHECKBOX | WS_TABSTOP, 5, 158, 203, 12
+ LTEXT "Please note that some secure %s services may not be disabled.", IDC_STATIC_SERVICES_WARNING, 5, 138, 220, 17
END
IDD_FREELDR_PAGE DIALOGEX 0, 0, 366, 175
LTEXT "seconds", IDC_STATIC, 330, 104, 31, 10
CONTROL "Make &all boot settings permanent", 292,
"Button", BS_AUTOCHECKBOX | BS_TOP | BS_MULTILINE | WS_TABSTOP, 295, 121, 66, 49
- PUSHBUTTON "&Delete", 1014, 295, 68, 66, 14
+ PUSHBUTTON "&Delete", IDC_BTN_DELETE, 295, 68, 66, 14
END
IDD_FREELDR_ADVANCED_PAGE DIALOGEX 0, 0, 175, 175
CHECKBOX "/&CHANNEL", IDC_CBX_CHANNEL, 20, 130, 50, 10
EDITTEXT IDC_TXT_CHANNEL, 80, 130, 60, 12, ES_LEFT
CONTROL "", IDC_SCR_CHANNEL, "msctls_updown32", 0x50000000, 140, 130, 11, 11
- PUSHBUTTON "אישור", IDC_OK, 20, 160, 50, 12
- PUSHBUTTON "ביטול", IDC_CANCEL, 100, 160, 50, 12
+ PUSHBUTTON "אישור", IDOK, 20, 160, 50, 12
+ PUSHBUTTON "ביטול", IDCANCEL, 100, 160, 50, 12
END
IDD_FILE_EXTRACT_DIALOG DIALOGEX 0, 0, 353, 117
PUSHBUTTON "Cancel", IDCANCEL, 264, 96, 82, 14
END
+IDD_REQUIRED_SERVICES_DISABLING_DIALOG DIALOGEX 0, 0, 237, 62
+STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
+CAPTION "כלי שירות לקביעת תצורת המערכת"
+FONT 8, "MS Shell Dlg"
+BEGIN
+ DEFPUSHBUTTON "OK", IDOK, 180, 41, 50, 14
+ LTEXT "Essential services cannot be disabled. Doing so might prevent %s from running on your computer.", IDC_STATIC_REQSVCSDIS_INFO, 7, 7, 223, 28
+ CONTROL "&Don't show this message in the future", IDC_CBX_REQSVCSDIS_NO_MSG_ANYMORE,
+ "Button", BS_AUTOCHECKBOX | WS_TABSTOP, 7, 42, 154, 13
+END
+
STRINGTABLE
BEGIN
IDS_MSCONFIG "כלי שירות לקביעת תצורת המערכת"
BEGIN
IDS_YES "כן"
IDS_NO "No"
+ IDS_UNKNOWN "לא ידוע"
END
STRINGTABLE
BEGIN
- IDS_TAB_SERVICES "שירותים"
IDS_TAB_STARTUP "אתחול"
END
IDS_SERVICES_COLUMN_REQ "בסיסי"
IDS_SERVICES_COLUMN_VENDOR "יצרן"
IDS_SERVICES_COLUMN_STATUS "מצב"
+ IDS_SERVICES_COLUMN_DATEDISABLED "Date Disabled"
END
STRINGTABLE
BEGIN
IDS_SERVICES_STATUS_RUNNING "מופעל"
IDS_SERVICES_STATUS_STOPPED "נעצר"
- IDS_SERVICES_UNKNOWN "לא ידוע"
END
LTEXT "Selected &Command:", IDC_STATIC, 5, 127, 128, 10
END
-IDD_SERVICES_PAGE DIALOGEX 0, 0, 362, 175
-STYLE DS_SHELLFONT | DS_CONTROL | WS_CHILD | WS_CLIPCHILDREN
+IDD_SERVICES_PAGE DIALOGEX 0, 0, 366, 175
+STYLE DS_SHELLFONT | DS_CONTROL | WS_CHILD | WS_CAPTION
+CAPTION "Szolgáltatások"
FONT 8, "MS Shell Dlg"
BEGIN
- CONTROL "List1", IDC_SERVICES_LIST, "SysListView32", LVS_REPORT | LVS_SINGLESEL |
- LVS_SHOWSELALWAYS | LVS_SORTASCENDING | WS_BORDER | WS_TABSTOP, 2, 1, 360, 148
- PUSHBUTTON "Mindet &bekapcsol", IDC_BTN_SERVICES_ACTIVATE, 223, 155, 66, 14
- PUSHBUTTON "Mindet &kikapcsol", IDC_BTN_SERVICES_DEACTIVATE, 295, 155, 66, 14
+ CONTROL "List1", IDC_SERVICES_LIST, "SysListView32", LVS_REPORT | LVS_SINGLESEL | LVS_SHOWSELALWAYS | LVS_SORTASCENDING | WS_BORDER | WS_TABSTOP, 5, 5, 356, 129
+ PUSHBUTTON "Mindet &bekapcsol", IDC_BTN_SERVICES_ACTIVATE, 224, 156, 66, 14
+ PUSHBUTTON "Mindet &kikapcsol", IDC_BTN_SERVICES_DEACTIVATE, 295, 156, 66, 14
+ CONTROL "&Hide all %s services", IDC_CBX_SERVICES_MASK_PROPRIETARY_SVCS,
+ "Button", BS_AUTOCHECKBOX | WS_TABSTOP, 5, 158, 203, 12
+ LTEXT "Please note that some secure %s services may not be disabled.", IDC_STATIC_SERVICES_WARNING, 5, 138, 220, 17
END
IDD_FREELDR_PAGE DIALOGEX 0, 0, 366, 175
LTEXT "seconds", IDC_STATIC, 330, 104, 31, 10
CONTROL "Make &all boot settings permanent", 292,
"Button", BS_AUTOCHECKBOX | BS_TOP | BS_MULTILINE | WS_TABSTOP, 295, 121, 66, 49
- PUSHBUTTON "&Delete", 1014, 295, 68, 66, 14
+ PUSHBUTTON "&Delete", IDC_BTN_DELETE, 295, 68, 66, 14
END
IDD_FREELDR_ADVANCED_PAGE DIALOGEX 0, 0, 175, 175
CHECKBOX "/&CHANNEL", IDC_CBX_CHANNEL, 20, 130, 50, 10
EDITTEXT IDC_TXT_CHANNEL, 80, 130, 60, 12, ES_LEFT
CONTROL "", IDC_SCR_CHANNEL, "msctls_updown32", 0x50000000, 140, 130, 11, 11
- PUSHBUTTON "OK", IDC_OK, 20, 160, 50, 12
- PUSHBUTTON "Cancel", IDC_CANCEL, 100, 160, 50, 12
+ PUSHBUTTON "OK", IDOK, 20, 160, 50, 12
+ PUSHBUTTON "Cancel", IDCANCEL, 100, 160, 50, 12
END
IDD_FILE_EXTRACT_DIALOG DIALOGEX 0, 0, 353, 117
PUSHBUTTON "Cancel", IDCANCEL, 264, 96, 82, 14
END
+IDD_REQUIRED_SERVICES_DISABLING_DIALOG DIALOGEX 0, 0, 237, 62
+STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
+CAPTION "Rendszerkonfiguráciüs segédprogram"
+FONT 8, "MS Shell Dlg"
+BEGIN
+ DEFPUSHBUTTON "OK", IDOK, 180, 41, 50, 14
+ LTEXT "Essential services cannot be disabled. Doing so might prevent %s from running on your computer.", IDC_STATIC_REQSVCSDIS_INFO, 7, 7, 223, 28
+ CONTROL "&Don't show this message in the future", IDC_CBX_REQSVCSDIS_NO_MSG_ANYMORE,
+ "Button", BS_AUTOCHECKBOX | WS_TABSTOP, 7, 42, 154, 13
+END
+
STRINGTABLE
BEGIN
IDS_MSCONFIG "Rendszerkonfiguráciüs segédprogram"
BEGIN
IDS_YES "Igen"
IDS_NO "No"
+ IDS_UNKNOWN "Ismeretlen"
END
STRINGTABLE
BEGIN
- IDS_TAB_SERVICES "Szolgáltatások"
IDS_TAB_STARTUP "Automatikus indítás"
END
IDS_SERVICES_COLUMN_REQ "Lényeges"
IDS_SERVICES_COLUMN_VENDOR "Gyártó"
IDS_SERVICES_COLUMN_STATUS "Állapot"
+ IDS_SERVICES_COLUMN_DATEDISABLED "Date Disabled"
END
STRINGTABLE
BEGIN
IDS_SERVICES_STATUS_RUNNING "Fut"
IDS_SERVICES_STATUS_STOPPED "Leállítva"
- IDS_SERVICES_UNKNOWN "Ismeretlen"
END
LTEXT "Selected &Command:", IDC_STATIC, 5, 127, 128, 10
END
-IDD_SERVICES_PAGE DIALOGEX 0, 0, 362, 175
-STYLE DS_SHELLFONT | DS_CONTROL | WS_CHILD | WS_CLIPCHILDREN
+IDD_SERVICES_PAGE DIALOGEX 0, 0, 366, 175
+STYLE DS_SHELLFONT | DS_CONTROL | WS_CHILD | WS_CAPTION
+CAPTION "Layanan"
FONT 8, "MS Shell Dlg"
BEGIN
- CONTROL "List1", IDC_SERVICES_LIST, "SysListView32", LVS_REPORT | LVS_SINGLESEL |
- LVS_SHOWSELALWAYS | LVS_SORTASCENDING | WS_BORDER | WS_TABSTOP, 2, 1, 360, 148
- PUSHBUTTON "&Aktifkan semua", IDC_BTN_SERVICES_ACTIVATE, 223, 155, 66, 14
- PUSHBUTTON "&Deaktivasi semua", IDC_BTN_SERVICES_DEACTIVATE, 295, 155, 66, 14
+ CONTROL "List1", IDC_SERVICES_LIST, "SysListView32", LVS_REPORT | LVS_SINGLESEL | LVS_SHOWSELALWAYS | LVS_SORTASCENDING | WS_BORDER | WS_TABSTOP, 5, 5, 356, 129
+ PUSHBUTTON "&Aktifkan semua", IDC_BTN_SERVICES_ACTIVATE, 224, 156, 66, 14
+ PUSHBUTTON "&Deaktivasi semua", IDC_BTN_SERVICES_DEACTIVATE, 295, 156, 66, 14
+ CONTROL "&Hide all %s services", IDC_CBX_SERVICES_MASK_PROPRIETARY_SVCS,
+ "Button", BS_AUTOCHECKBOX | WS_TABSTOP, 5, 158, 203, 12
+ LTEXT "Please note that some secure %s services may not be disabled.", IDC_STATIC_SERVICES_WARNING, 5, 138, 220, 17
END
IDD_FREELDR_PAGE DIALOGEX 0, 0, 366, 175
LTEXT "seconds", IDC_STATIC, 330, 104, 31, 10
CONTROL "Make &all boot settings permanent", 292,
"Button", BS_AUTOCHECKBOX | BS_TOP | BS_MULTILINE | WS_TABSTOP, 295, 121, 66, 49
- PUSHBUTTON "&Delete", 1014, 295, 68, 66, 14
+ PUSHBUTTON "&Delete", IDC_BTN_DELETE, 295, 68, 66, 14
END
IDD_FREELDR_ADVANCED_PAGE DIALOGEX 0, 0, 175, 175
CHECKBOX "/&CHANNEL", IDC_CBX_CHANNEL, 20, 130, 50, 10
EDITTEXT IDC_TXT_CHANNEL, 80, 130, 60, 12, ES_LEFT
CONTROL "", IDC_SCR_CHANNEL, "msctls_updown32", 0x50000000, 140, 130, 11, 11
- PUSHBUTTON "OK", IDC_OK, 20, 160, 50, 12
- PUSHBUTTON "Batal", IDC_CANCEL, 100, 160, 50, 12
+ PUSHBUTTON "OK", IDOK, 20, 160, 50, 12
+ PUSHBUTTON "Batal", IDCANCEL, 100, 160, 50, 12
END
IDD_FILE_EXTRACT_DIALOG DIALOGEX 0, 0, 353, 117
PUSHBUTTON "Cancel", IDCANCEL, 264, 96, 82, 14
END
+IDD_REQUIRED_SERVICES_DISABLING_DIALOG DIALOGEX 0, 0, 237, 62
+STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
+CAPTION "Program konfigurasi sistem"
+FONT 8, "MS Shell Dlg"
+BEGIN
+ DEFPUSHBUTTON "OK", IDOK, 180, 41, 50, 14
+ LTEXT "Essential services cannot be disabled. Doing so might prevent %s from running on your computer.", IDC_STATIC_REQSVCSDIS_INFO, 7, 7, 223, 28
+ CONTROL "&Don't show this message in the future", IDC_CBX_REQSVCSDIS_NO_MSG_ANYMORE,
+ "Button", BS_AUTOCHECKBOX | WS_TABSTOP, 7, 42, 154, 13
+END
+
STRINGTABLE
BEGIN
IDS_MSCONFIG "Program konfigurasi sistem"
BEGIN
IDS_YES "Ya"
IDS_NO "No"
+ IDS_UNKNOWN "Tidak Dikenal"
END
STRINGTABLE
BEGIN
- IDS_TAB_SERVICES "Layanan"
IDS_TAB_STARTUP "Startup"
END
IDS_SERVICES_COLUMN_REQ "Diperlukan"
IDS_SERVICES_COLUMN_VENDOR "Vendor"
IDS_SERVICES_COLUMN_STATUS "Status"
+ IDS_SERVICES_COLUMN_DATEDISABLED "Date Disabled"
END
STRINGTABLE
BEGIN
IDS_SERVICES_STATUS_RUNNING "Berjalan"
IDS_SERVICES_STATUS_STOPPED "Dihentikan"
- IDS_SERVICES_UNKNOWN "Tidak Dikenal"
END
LTEXT "Selected &Command:", IDC_STATIC, 5, 127, 128, 10
END
-IDD_SERVICES_PAGE DIALOGEX 0, 0, 362, 175
-STYLE DS_SHELLFONT | DS_CONTROL | WS_CHILD | WS_CLIPCHILDREN
+IDD_SERVICES_PAGE DIALOGEX 0, 0, 366, 175
+STYLE DS_SHELLFONT | DS_CONTROL | WS_CHILD | WS_CAPTION
+CAPTION "Servizi"
FONT 8, "MS Shell Dlg"
BEGIN
- CONTROL "List1", IDC_SERVICES_LIST, "SysListView32", LVS_REPORT | LVS_SINGLESEL |
- LVS_SHOWSELALWAYS | LVS_SORTASCENDING | WS_BORDER | WS_TABSTOP, 2, 1, 360, 148
- PUSHBUTTON "A&bilita tutto", IDC_BTN_SERVICES_ACTIVATE, 223, 155, 66, 14
- PUSHBUTTON "Disabi&lita tutto", IDC_BTN_SERVICES_DEACTIVATE, 295, 155, 66, 14
+ CONTROL "List1", IDC_SERVICES_LIST, "SysListView32", LVS_REPORT | LVS_SINGLESEL | LVS_SHOWSELALWAYS | LVS_SORTASCENDING | WS_BORDER | WS_TABSTOP, 5, 5, 356, 129
+ PUSHBUTTON "A&bilita tutto", IDC_BTN_SERVICES_ACTIVATE, 224, 156, 66, 14
+ PUSHBUTTON "Disabi&lita tutto", IDC_BTN_SERVICES_DEACTIVATE, 295, 156, 66, 14
+ CONTROL "&Hide all %s services", IDC_CBX_SERVICES_MASK_PROPRIETARY_SVCS,
+ "Button", BS_AUTOCHECKBOX | WS_TABSTOP, 5, 158, 203, 12
+ LTEXT "Please note that some secure %s services may not be disabled.", IDC_STATIC_SERVICES_WARNING, 5, 138, 220, 17
END
IDD_FREELDR_PAGE DIALOGEX 0, 0, 366, 175
LTEXT "seconds", IDC_STATIC, 330, 104, 31, 10
CONTROL "Make &all boot settings permanent", 292,
"Button", BS_AUTOCHECKBOX | BS_TOP | BS_MULTILINE | WS_TABSTOP, 295, 121, 66, 49
- PUSHBUTTON "&Delete", 1014, 295, 68, 66, 14
+ PUSHBUTTON "&Delete", IDC_BTN_DELETE, 295, 68, 66, 14
END
IDD_FREELDR_ADVANCED_PAGE DIALOGEX 0, 0, 175, 175
CHECKBOX "/&CHANNEL", IDC_CBX_CHANNEL, 20, 130, 50, 10
EDITTEXT IDC_TXT_CHANNEL, 80, 130, 60, 12, ES_LEFT
CONTROL "", IDC_SCR_CHANNEL, "msctls_updown32", 0x50000000, 140, 130, 11, 11
- PUSHBUTTON "OK", IDC_OK, 20, 160, 50, 12
- PUSHBUTTON "Annulla", IDC_CANCEL, 100, 160, 50, 12
+ PUSHBUTTON "OK", IDOK, 20, 160, 50, 12
+ PUSHBUTTON "Annulla", IDCANCEL, 100, 160, 50, 12
END
IDD_FILE_EXTRACT_DIALOG DIALOGEX 0, 0, 353, 117
PUSHBUTTON "Cancel", IDCANCEL, 264, 96, 82, 14
END
+IDD_REQUIRED_SERVICES_DISABLING_DIALOG DIALOGEX 0, 0, 237, 62
+STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
+CAPTION "Utilità di configurazione del sistema"
+FONT 8, "MS Shell Dlg"
+BEGIN
+ DEFPUSHBUTTON "OK", IDOK, 180, 41, 50, 14
+ LTEXT "Essential services cannot be disabled. Doing so might prevent %s from running on your computer.", IDC_STATIC_REQSVCSDIS_INFO, 7, 7, 223, 28
+ CONTROL "&Don't show this message in the future", IDC_CBX_REQSVCSDIS_NO_MSG_ANYMORE,
+ "Button", BS_AUTOCHECKBOX | WS_TABSTOP, 7, 42, 154, 13
+END
+
STRINGTABLE
BEGIN
IDS_MSCONFIG "Utilità di configurazione del sistema"
BEGIN
IDS_YES "Sì"
IDS_NO "No"
+ IDS_UNKNOWN "Sconosciuto"
END
STRINGTABLE
BEGIN
- IDS_TAB_SERVICES "Servizi"
IDS_TAB_STARTUP "Avvio"
END
IDS_SERVICES_COLUMN_REQ "Essenziale"
IDS_SERVICES_COLUMN_VENDOR "Produttore"
IDS_SERVICES_COLUMN_STATUS "Stato"
+ IDS_SERVICES_COLUMN_DATEDISABLED "Date Disabled"
END
STRINGTABLE
BEGIN
IDS_SERVICES_STATUS_RUNNING "Esecuzione"
IDS_SERVICES_STATUS_STOPPED "Interrotto"
- IDS_SERVICES_UNKNOWN "Sconosciuto"
END
LTEXT "Selected &Command:", IDC_STATIC, 5, 127, 128, 10
END
-IDD_SERVICES_PAGE DIALOGEX 0, 0, 362, 175
-STYLE DS_SHELLFONT | DS_CONTROL | WS_CHILD | WS_CLIPCHILDREN
+IDD_SERVICES_PAGE DIALOGEX 0, 0, 366, 175
+STYLE DS_SHELLFONT | DS_CONTROL | WS_CHILD | WS_CAPTION
+CAPTION "서비스"
FONT 9, "MS Shell Dlg"
BEGIN
- CONTROL "List1", IDC_SERVICES_LIST, "SysListView32", LVS_REPORT | LVS_SINGLESEL |
- LVS_SHOWSELALWAYS | LVS_SORTASCENDING | WS_BORDER | WS_TABSTOP, 2, 1, 360, 148
- PUSHBUTTON "모두 활성화(&A)", IDC_BTN_SERVICES_ACTIVATE, 223, 155, 66, 14
- PUSHBUTTON "모두 비활성화(&D)", IDC_BTN_SERVICES_DEACTIVATE, 295, 155, 66, 14
+ CONTROL "List1", IDC_SERVICES_LIST, "SysListView32", LVS_REPORT | LVS_SINGLESEL | LVS_SHOWSELALWAYS | LVS_SORTASCENDING | WS_BORDER | WS_TABSTOP, 5, 5, 356, 129
+ PUSHBUTTON "모두 활성화(&A)", IDC_BTN_SERVICES_ACTIVATE, 224, 156, 66, 14
+ PUSHBUTTON "모두 비활성화(&D)", IDC_BTN_SERVICES_DEACTIVATE, 295, 156, 66, 14
+ CONTROL "&Hide all %s services", IDC_CBX_SERVICES_MASK_PROPRIETARY_SVCS,
+ "Button", BS_AUTOCHECKBOX | WS_TABSTOP, 5, 158, 203, 12
+ LTEXT "Please note that some secure %s services may not be disabled.", IDC_STATIC_SERVICES_WARNING, 5, 138, 220, 17
END
IDD_FREELDR_PAGE DIALOGEX 0, 0, 366, 175
LTEXT "seconds", IDC_STATIC, 330, 104, 31, 10
CONTROL "Make &all boot settings permanent", 292,
"Button", BS_AUTOCHECKBOX | BS_TOP | BS_MULTILINE | WS_TABSTOP, 295, 121, 66, 49
- PUSHBUTTON "&Delete", 1014, 295, 68, 66, 14
+ PUSHBUTTON "&Delete", IDC_BTN_DELETE, 295, 68, 66, 14
+END
+
+IDD_FREELDR_ADVANCED_PAGE DIALOGEX 0, 0, 175, 175
+STYLE DS_SHELLFONT | DS_CONTROL | WS_CHILD | WS_CLIPCHILDREN
+FONT 9, "MS Shell Dlg"
+BEGIN
+ CHECKBOX "/&MAXMEM=", IDC_CBX_MAX_MEM, 10, 10, 50, 10
+ EDITTEXT IDC_TXT_MAX_MEM, 80, 10, 60, 12
+ CONTROL "", IDC_SCR_MAX_MEM, "msctls_updown32", 0x50000000, 140, 10, 11, 11
+ CHECKBOX "/&NUMPROC=", IDC_CBX_NUM_PROC, 10, 25, 50, 10
+ COMBOBOX IDC_DRP_NUM_PROC, 80, 25, 60, 10, CBS_DROPDOWNLIST | CBS_SORT | WS_CHILD | WS_VISIBLE | WS_TABSTOP
+ CHECKBOX "/&PCILOCK", IDC_CBX_PCI_LOCK, 10, 40, 50, 10
+ CHECKBOX "/P&ROFILE", IDC_CBX_PROFILE, 10, 55, 50, 10
+ CHECKBOX "/&IRQ", IDC_CBX_IRQ, 10, 70, 40, 12
+ EDITTEXT IDC_TXT_IRQ, 80, 70, 60, 12, ES_LEFT
+ CHECKBOX "/&DEBUG", IDC_CBX_DEBUG, 10, 85, 40, 10
+ CHECKBOX "/D&EBUGPORT", IDC_CBX_DEBUG_PORT, 20, 100, 60, 10
+ COMBOBOX IDC_DRP_DEBUG_PORT, 80, 100, 60, 10, CBS_DROPDOWNLIST | CBS_SORT | WS_CHILD | WS_VISIBLE | WS_TABSTOP
+ CHECKBOX "/&BAUDRATE", IDC_CBX_BAUD_RATE, 20, 115, 50, 10
+ COMBOBOX IDC_DRP_DRP_BAUD_RATE, 80, 115, 60, 10, CBS_DROPDOWNLIST | CBS_SORT | WS_CHILD | WS_VISIBLE | WS_TABSTOP
+ CHECKBOX "/&CHANNEL", IDC_CBX_CHANNEL, 20, 130, 50, 10
+ EDITTEXT IDC_TXT_CHANNEL, 80, 130, 60, 12, ES_LEFT
+ CONTROL "", IDC_SCR_CHANNEL, "msctls_updown32", 0x50000000, 140, 130, 11, 11
+ PUSHBUTTON "확인", IDOK, 20, 160, 50, 12
+ PUSHBUTTON "취소", IDCANCEL, 100, 160, 50, 12
END
IDD_FILE_EXTRACT_DIALOG DIALOGEX 0, 0, 353, 117
PUSHBUTTON "Cancel", IDCANCEL, 264, 96, 82, 14
END
+IDD_REQUIRED_SERVICES_DISABLING_DIALOG DIALOGEX 0, 0, 237, 62
+STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
+CAPTION "시스템 설정 프로그램"
+FONT 9, "MS Shell Dlg"
+BEGIN
+ DEFPUSHBUTTON "OK", IDOK, 180, 41, 50, 14
+ LTEXT "Essential services cannot be disabled. Doing so might prevent %s from running on your computer.", IDC_STATIC_REQSVCSDIS_INFO, 7, 7, 223, 28
+ CONTROL "&Don't show this message in the future", IDC_CBX_REQSVCSDIS_NO_MSG_ANYMORE,
+ "Button", BS_AUTOCHECKBOX | WS_TABSTOP, 7, 42, 154, 13
+END
+
STRINGTABLE
BEGIN
IDS_MSCONFIG "시스템 설정 프로그램"
BEGIN
IDS_YES "예"
IDS_NO "No"
+ IDS_UNKNOWN "Unknown"
END
STRINGTABLE
BEGIN
- IDS_TAB_SERVICES "서비스"
IDS_TAB_STARTUP "시작프로그램"
END
IDS_SERVICES_COLUMN_REQ "요구됨"
IDS_SERVICES_COLUMN_VENDOR "벤더"
IDS_SERVICES_COLUMN_STATUS "상태"
+ IDS_SERVICES_COLUMN_DATEDISABLED "Date Disabled"
END
STRINGTABLE
BEGIN
IDS_SERVICES_STATUS_RUNNING "실행중"
IDS_SERVICES_STATUS_STOPPED "정지됨"
- IDS_SERVICES_UNKNOWN "Unknown"
END
LTEXT "Selected &Command:", IDC_STATIC, 5, 127, 128, 10
END
-IDD_SERVICES_PAGE DIALOGEX 0, 0, 362, 175
-STYLE DS_SHELLFONT | DS_CONTROL | WS_CHILD | WS_CLIPCHILDREN
+IDD_SERVICES_PAGE DIALOGEX 0, 0, 366, 175
+STYLE DS_SHELLFONT | DS_CONTROL | WS_CHILD | WS_CAPTION
+CAPTION "Services"
FONT 8, "MS Shell Dlg"
BEGIN
- CONTROL "List1", IDC_SERVICES_LIST, "SysListView32", LVS_REPORT | LVS_SINGLESEL |
- LVS_SHOWSELALWAYS | LVS_SORTASCENDING | WS_BORDER | WS_TABSTOP, 2, 1, 360, 148
- PUSHBUTTON "&Alles inschakelen", IDC_BTN_SERVICES_ACTIVATE, 223, 155, 66, 14
- PUSHBUTTON "Alles &uitschakelen", IDC_BTN_SERVICES_DEACTIVATE, 295, 155, 66, 14
+ CONTROL "List1", IDC_SERVICES_LIST, "SysListView32", LVS_REPORT | LVS_SINGLESEL | LVS_SHOWSELALWAYS | LVS_SORTASCENDING | WS_BORDER | WS_TABSTOP, 5, 5, 356, 129
+ PUSHBUTTON "&Alles inschakelen", IDC_BTN_SERVICES_ACTIVATE, 224, 156, 66, 14
+ PUSHBUTTON "Alles &uitschakelen", IDC_BTN_SERVICES_DEACTIVATE, 295, 156, 66, 14
+ CONTROL "&Hide all %s services", IDC_CBX_SERVICES_MASK_PROPRIETARY_SVCS,
+ "Button", BS_AUTOCHECKBOX | WS_TABSTOP, 5, 158, 203, 12
+ LTEXT "Please note that some secure %s services may not be disabled.", IDC_STATIC_SERVICES_WARNING, 5, 138, 220, 17
END
IDD_FREELDR_PAGE DIALOGEX 0, 0, 366, 175
LTEXT "seconds", IDC_STATIC, 330, 104, 31, 10
CONTROL "Make &all boot settings permanent", 292,
"Button", BS_AUTOCHECKBOX | BS_TOP | BS_MULTILINE | WS_TABSTOP, 295, 121, 66, 49
- PUSHBUTTON "&Delete", 1014, 295, 68, 66, 14
+ PUSHBUTTON "&Delete", IDC_BTN_DELETE, 295, 68, 66, 14
END
IDD_FREELDR_ADVANCED_PAGE DIALOGEX 0, 0, 175, 175
CHECKBOX "/&CHANNEL", IDC_CBX_CHANNEL, 20, 130, 50, 10
EDITTEXT IDC_TXT_CHANNEL, 80, 130, 60, 12, ES_LEFT
CONTROL "", IDC_SCR_CHANNEL, "msctls_updown32", 0x50000000, 140, 130, 11, 11
- PUSHBUTTON "OK", IDC_OK, 20, 160, 50, 12
- PUSHBUTTON "Cancel", IDC_CANCEL, 100, 160, 50, 12
+ PUSHBUTTON "OK", IDOK, 20, 160, 50, 12
+ PUSHBUTTON "Cancel", IDCANCEL, 100, 160, 50, 12
END
IDD_FILE_EXTRACT_DIALOG DIALOGEX 0, 0, 353, 117
PUSHBUTTON "Cancel", IDCANCEL, 264, 96, 82, 14
END
+IDD_REQUIRED_SERVICES_DISABLING_DIALOG DIALOGEX 0, 0, 237, 62
+STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
+CAPTION "Hulpprogramma voor systeemconfiguratie"
+FONT 8, "MS Shell Dlg"
+BEGIN
+ DEFPUSHBUTTON "OK", IDOK, 180, 41, 50, 14
+ LTEXT "Essential services cannot be disabled. Doing so might prevent %s from running on your computer.", IDC_STATIC_REQSVCSDIS_INFO, 7, 7, 223, 28
+ CONTROL "&Don't show this message in the future", IDC_CBX_REQSVCSDIS_NO_MSG_ANYMORE,
+ "Button", BS_AUTOCHECKBOX | WS_TABSTOP, 7, 42, 154, 13
+END
+
STRINGTABLE
BEGIN
IDS_MSCONFIG "Hulpprogramma voor systeemconfiguratie"
BEGIN
IDS_YES "Ja"
IDS_NO "No"
+ IDS_UNKNOWN "Onbekend"
END
STRINGTABLE
BEGIN
- IDS_TAB_SERVICES "Services"
IDS_TAB_STARTUP "Opstarten"
END
IDS_SERVICES_COLUMN_REQ "Essentieel"
IDS_SERVICES_COLUMN_VENDOR "Fabrikant"
IDS_SERVICES_COLUMN_STATUS "Status"
+ IDS_SERVICES_COLUMN_DATEDISABLED "Date Disabled"
END
STRINGTABLE
BEGIN
IDS_SERVICES_STATUS_RUNNING "Wordt uitgevoerd"
IDS_SERVICES_STATUS_STOPPED "Gestopt"
- IDS_SERVICES_UNKNOWN "Onbekend"
END
LTEXT "Selected &Command:", IDC_STATIC, 5, 127, 128, 10
END
-IDD_SERVICES_PAGE DIALOGEX 0, 0, 362, 175
-STYLE DS_SHELLFONT | DS_CONTROL | WS_CHILD | WS_CLIPCHILDREN
+IDD_SERVICES_PAGE DIALOGEX 0, 0, 366, 175
+STYLE DS_SHELLFONT | DS_CONTROL | WS_CHILD | WS_CAPTION
+CAPTION "Tjenester"
FONT 8, "MS Shell Dlg"
BEGIN
- CONTROL "List1", IDC_SERVICES_LIST, "SysListView32", LVS_REPORT | LVS_SINGLESEL |
- LVS_SHOWSELALWAYS | LVS_SORTASCENDING | WS_BORDER | WS_TABSTOP, 2, 1, 360, 148
- PUSHBUTTON "&Aktivere alt", IDC_BTN_SERVICES_ACTIVATE, 223, 155, 66, 14
- PUSHBUTTON "&Deaktivere alt", IDC_BTN_SERVICES_DEACTIVATE, 295, 155, 66, 14
+ CONTROL "List1", IDC_SERVICES_LIST, "SysListView32", LVS_REPORT | LVS_SINGLESEL | LVS_SHOWSELALWAYS | LVS_SORTASCENDING | WS_BORDER | WS_TABSTOP, 5, 5, 356, 129
+ PUSHBUTTON "&Aktivere alt", IDC_BTN_SERVICES_ACTIVATE, 224, 156, 66, 14
+ PUSHBUTTON "&Deaktivere alt", IDC_BTN_SERVICES_DEACTIVATE, 295, 156, 66, 14
+ CONTROL "&Hide all %s services", IDC_CBX_SERVICES_MASK_PROPRIETARY_SVCS,
+ "Button", BS_AUTOCHECKBOX | WS_TABSTOP, 5, 158, 203, 12
+ LTEXT "Please note that some secure %s services may not be disabled.", IDC_STATIC_SERVICES_WARNING, 5, 138, 220, 17
END
IDD_FREELDR_PAGE DIALOGEX 0, 0, 366, 175
LTEXT "seconds", IDC_STATIC, 330, 104, 31, 10
CONTROL "Make &all boot settings permanent", 292,
"Button", BS_AUTOCHECKBOX | BS_TOP | BS_MULTILINE | WS_TABSTOP, 295, 121, 66, 49
- PUSHBUTTON "&Delete", 1014, 295, 68, 66, 14
+ PUSHBUTTON "&Delete", IDC_BTN_DELETE, 295, 68, 66, 14
END
IDD_FREELDR_ADVANCED_PAGE DIALOGEX 0, 0, 175, 175
CHECKBOX "/&CHANNEL", IDC_CBX_CHANNEL, 20, 130, 50, 10
EDITTEXT IDC_TXT_CHANNEL, 80, 130, 60, 12, ES_LEFT
CONTROL "", IDC_SCR_CHANNEL, "msctls_updown32", 0x50000000, 140, 130, 11, 11
- PUSHBUTTON "OK", IDC_OK, 20, 160, 50, 12
- PUSHBUTTON "Avbryt", IDC_CANCEL, 100, 160, 50, 12
+ PUSHBUTTON "OK", IDOK, 20, 160, 50, 12
+ PUSHBUTTON "Avbryt", IDCANCEL, 100, 160, 50, 12
END
IDD_FILE_EXTRACT_DIALOG DIALOGEX 0, 0, 353, 117
PUSHBUTTON "Cancel", IDCANCEL, 264, 96, 82, 14
END
+IDD_REQUIRED_SERVICES_DISABLING_DIALOG DIALOGEX 0, 0, 237, 62
+STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
+CAPTION "Systemkonfigurasjon"
+FONT 8, "MS Shell Dlg"
+BEGIN
+ DEFPUSHBUTTON "OK", IDOK, 180, 41, 50, 14
+ LTEXT "Essential services cannot be disabled. Doing so might prevent %s from running on your computer.", IDC_STATIC_REQSVCSDIS_INFO, 7, 7, 223, 28
+ CONTROL "&Don't show this message in the future", IDC_CBX_REQSVCSDIS_NO_MSG_ANYMORE,
+ "Button", BS_AUTOCHECKBOX | WS_TABSTOP, 7, 42, 154, 13
+END
+
STRINGTABLE
BEGIN
IDS_MSCONFIG "Systemkonfigurasjon"
BEGIN
IDS_YES "Ja"
IDS_NO "No"
+ IDS_UNKNOWN "Ukjent"
END
STRINGTABLE
BEGIN
- IDS_TAB_SERVICES "Tjenester"
IDS_TAB_STARTUP "Oppstart"
END
IDS_SERVICES_COLUMN_REQ "Viktig"
IDS_SERVICES_COLUMN_VENDOR "Produsent"
IDS_SERVICES_COLUMN_STATUS "Status"
+ IDS_SERVICES_COLUMN_DATEDISABLED "Date Disabled"
END
STRINGTABLE
BEGIN
IDS_SERVICES_STATUS_RUNNING "Kjører"
IDS_SERVICES_STATUS_STOPPED "Stoppet"
- IDS_SERVICES_UNKNOWN "Ukjent"
END
LTEXT "Selected &Command:", IDC_STATIC, 5, 127, 128, 10
END
-IDD_SERVICES_PAGE DIALOGEX 0, 0, 362, 175
-STYLE DS_SHELLFONT | DS_CONTROL | WS_CHILD | WS_CLIPCHILDREN
+IDD_SERVICES_PAGE DIALOGEX 0, 0, 366, 175
+STYLE DS_SHELLFONT | DS_CONTROL | WS_CHILD | WS_CAPTION
+CAPTION "Usługi"
FONT 8, "MS Shell Dlg"
BEGIN
- CONTROL "List1", IDC_SERVICES_LIST, "SysListView32", LVS_REPORT | LVS_SINGLESEL |
- LVS_SHOWSELALWAYS | LVS_SORTASCENDING | WS_BORDER | WS_TABSTOP, 2, 1, 360, 148
- PUSHBUTTON "&Włącz wszystkie", IDC_BTN_SERVICES_ACTIVATE, 223, 155, 66, 14
- PUSHBUTTON "Wyłącz wszy&stkie", IDC_BTN_SERVICES_DEACTIVATE, 295, 155, 66, 14
+ CONTROL "List1", IDC_SERVICES_LIST, "SysListView32", LVS_REPORT | LVS_SINGLESEL | LVS_SHOWSELALWAYS | LVS_SORTASCENDING | WS_BORDER | WS_TABSTOP, 5, 5, 356, 129
+ PUSHBUTTON "&Włącz wszystkie", IDC_BTN_SERVICES_ACTIVATE, 224, 156, 66, 14
+ PUSHBUTTON "Wyłącz wszy&stkie", IDC_BTN_SERVICES_DEACTIVATE, 295, 156, 66, 14
+ CONTROL "&Hide all %s services", IDC_CBX_SERVICES_MASK_PROPRIETARY_SVCS,
+ "Button", BS_AUTOCHECKBOX | WS_TABSTOP, 5, 158, 203, 12
+ LTEXT "Please note that some secure %s services may not be disabled.", IDC_STATIC_SERVICES_WARNING, 5, 138, 220, 17
END
IDD_FREELDR_PAGE DIALOGEX 0, 0, 366, 175
LTEXT "seconds", IDC_STATIC, 330, 104, 31, 10
CONTROL "Make &all boot settings permanent", 292,
"Button", BS_AUTOCHECKBOX | BS_TOP | BS_MULTILINE | WS_TABSTOP, 295, 121, 66, 49
- PUSHBUTTON "&Delete", 1014, 295, 68, 66, 14
+ PUSHBUTTON "&Delete", IDC_BTN_DELETE, 295, 68, 66, 14
END
IDD_FREELDR_ADVANCED_PAGE DIALOGEX 0, 0, 175, 175
CHECKBOX "/&CHANNEL", IDC_CBX_CHANNEL, 20, 130, 50, 10
EDITTEXT IDC_TXT_CHANNEL, 80, 130, 60, 12, ES_LEFT
CONTROL "", IDC_SCR_CHANNEL, "msctls_updown32", 0x50000000, 140, 130, 11, 11
- PUSHBUTTON "OK", IDC_OK, 20, 160, 50, 12
- PUSHBUTTON "Anuluj", IDC_CANCEL, 100, 160, 50, 12
+ PUSHBUTTON "OK", IDOK, 20, 160, 50, 12
+ PUSHBUTTON "Anuluj", IDCANCEL, 100, 160, 50, 12
END
IDD_FILE_EXTRACT_DIALOG DIALOGEX 0, 0, 353, 117
PUSHBUTTON "Cancel", IDCANCEL, 264, 96, 82, 14
END
+IDD_REQUIRED_SERVICES_DISABLING_DIALOG DIALOGEX 0, 0, 237, 62
+STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
+CAPTION "Program konfiguracji systemu"
+FONT 8, "MS Shell Dlg"
+BEGIN
+ DEFPUSHBUTTON "OK", IDOK, 180, 41, 50, 14
+ LTEXT "Essential services cannot be disabled. Doing so might prevent %s from running on your computer.", IDC_STATIC_REQSVCSDIS_INFO, 7, 7, 223, 28
+ CONTROL "&Don't show this message in the future", IDC_CBX_REQSVCSDIS_NO_MSG_ANYMORE,
+ "Button", BS_AUTOCHECKBOX | WS_TABSTOP, 7, 42, 154, 13
+END
+
STRINGTABLE
BEGIN
IDS_MSCONFIG "Program konfiguracji systemu"
BEGIN
IDS_YES "Tak"
IDS_NO "No"
+ IDS_UNKNOWN "Nieznany"
END
STRINGTABLE
BEGIN
- IDS_TAB_SERVICES "Usługi"
IDS_TAB_STARTUP "Uruchamianie"
END
IDS_SERVICES_COLUMN_REQ "Wymagana"
IDS_SERVICES_COLUMN_VENDOR "Producent"
IDS_SERVICES_COLUMN_STATUS "Stan"
+ IDS_SERVICES_COLUMN_DATEDISABLED "Date Disabled"
END
STRINGTABLE
BEGIN
IDS_SERVICES_STATUS_RUNNING "Uruchomiona"
IDS_SERVICES_STATUS_STOPPED "Zatrzymana"
- IDS_SERVICES_UNKNOWN "Nieznany"
END
LTEXT "Selected &Command:", IDC_STATIC, 5, 127, 128, 10
END
-IDD_SERVICES_PAGE DIALOGEX 0, 0, 362, 175
-STYLE DS_SHELLFONT | DS_CONTROL | WS_CHILD | WS_CLIPCHILDREN
+IDD_SERVICES_PAGE DIALOGEX 0, 0, 366, 175
+STYLE DS_SHELLFONT | DS_CONTROL | WS_CHILD | WS_CAPTION
+CAPTION "Serviços"
FONT 8, "MS Shell Dlg"
BEGIN
- CONTROL "List1", IDC_SERVICES_LIST, "SysListView32", LVS_REPORT | LVS_SINGLESEL |
- LVS_SHOWSELALWAYS | LVS_SORTASCENDING | WS_BORDER | WS_TABSTOP, 2, 1, 360, 148
- PUSHBUTTON "A&tivar tudo", IDC_BTN_SERVICES_ACTIVATE, 223, 155, 66, 14
- PUSHBUTTON "D&esativar tudo", IDC_BTN_SERVICES_DEACTIVATE, 295, 155, 66, 14
+ CONTROL "List1", IDC_SERVICES_LIST, "SysListView32", LVS_REPORT | LVS_SINGLESEL | LVS_SHOWSELALWAYS | LVS_SORTASCENDING | WS_BORDER | WS_TABSTOP, 5, 5, 356, 129
+ PUSHBUTTON "A&tivar tudo", IDC_BTN_SERVICES_ACTIVATE, 224, 156, 66, 14
+ PUSHBUTTON "D&esativar tudo", IDC_BTN_SERVICES_DEACTIVATE, 295, 156, 66, 14
+ CONTROL "&Hide all %s services", IDC_CBX_SERVICES_MASK_PROPRIETARY_SVCS,
+ "Button", BS_AUTOCHECKBOX | WS_TABSTOP, 5, 158, 203, 12
+ LTEXT "Please note that some secure %s services may not be disabled.", IDC_STATIC_SERVICES_WARNING, 5, 138, 220, 17
END
IDD_FREELDR_PAGE DIALOGEX 0, 0, 366, 175
LTEXT "seconds", IDC_STATIC, 330, 104, 31, 10
CONTROL "Make &all boot settings permanent", 292,
"Button", BS_AUTOCHECKBOX | BS_TOP | BS_MULTILINE | WS_TABSTOP, 295, 121, 66, 49
- PUSHBUTTON "&Delete", 1014, 295, 68, 66, 14
+ PUSHBUTTON "&Delete", IDC_BTN_DELETE, 295, 68, 66, 14
END
IDD_FREELDR_ADVANCED_PAGE DIALOGEX 0, 0, 175, 175
CHECKBOX "/&CHANNEL", IDC_CBX_CHANNEL, 20, 130, 50, 10
EDITTEXT IDC_TXT_CHANNEL, 80, 130, 60, 12, ES_LEFT
CONTROL "", IDC_SCR_CHANNEL, "msctls_updown32", 0x50000000, 140, 130, 11, 11
- PUSHBUTTON "OK", IDC_OK, 20, 160, 50, 12
- PUSHBUTTON "Cancelar", IDC_CANCEL, 100, 160, 50, 12
+ PUSHBUTTON "OK", IDOK, 20, 160, 50, 12
+ PUSHBUTTON "Cancelar", IDCANCEL, 100, 160, 50, 12
END
IDD_FILE_EXTRACT_DIALOG DIALOGEX 0, 0, 353, 117
PUSHBUTTON "Cancel", IDCANCEL, 264, 96, 82, 14
END
+IDD_REQUIRED_SERVICES_DISABLING_DIALOG DIALOGEX 0, 0, 237, 62
+STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
+CAPTION "Programa de configuração do sistema"
+FONT 8, "MS Shell Dlg"
+BEGIN
+ DEFPUSHBUTTON "OK", IDOK, 180, 41, 50, 14
+ LTEXT "Essential services cannot be disabled. Doing so might prevent %s from running on your computer.", IDC_STATIC_REQSVCSDIS_INFO, 7, 7, 223, 28
+ CONTROL "&Don't show this message in the future", IDC_CBX_REQSVCSDIS_NO_MSG_ANYMORE,
+ "Button", BS_AUTOCHECKBOX | WS_TABSTOP, 7, 42, 154, 13
+END
+
STRINGTABLE
BEGIN
IDS_MSCONFIG "Programa de configuração do sistema"
BEGIN
IDS_YES "Sim"
IDS_NO "No"
+ IDS_UNKNOWN "Desconhecido"
END
STRINGTABLE
BEGIN
- IDS_TAB_SERVICES "Serviços"
IDS_TAB_STARTUP "Inicializar"
END
IDS_SERVICES_COLUMN_REQ "Essencial"
IDS_SERVICES_COLUMN_VENDOR "Fabricante"
IDS_SERVICES_COLUMN_STATUS "Status"
+ IDS_SERVICES_COLUMN_DATEDISABLED "Date Disabled"
END
STRINGTABLE
BEGIN
IDS_SERVICES_STATUS_RUNNING "Em execução"
IDS_SERVICES_STATUS_STOPPED "Parado"
- IDS_SERVICES_UNKNOWN "Desconhecido"
END
LTEXT "Selected &Command:", IDC_STATIC, 5, 127, 128, 10
END
-IDD_SERVICES_PAGE DIALOGEX 0, 0, 362, 175
-STYLE DS_SHELLFONT | DS_CONTROL | WS_CHILD | WS_CLIPCHILDREN
+IDD_SERVICES_PAGE DIALOGEX 0, 0, 366, 175
+STYLE DS_SHELLFONT | DS_CONTROL | WS_CHILD | WS_CAPTION
+CAPTION "Servicii"
FONT 8, "MS Shell Dlg"
BEGIN
- CONTROL "List1", IDC_SERVICES_LIST, "SysListView32", LVS_REPORT | LVS_SINGLESEL |
- LVS_SHOWSELALWAYS | LVS_SORTASCENDING | WS_BORDER | WS_TABSTOP, 2, 1, 360, 148
- PUSHBUTTON "A&ctivează toate", IDC_BTN_SERVICES_ACTIVATE, 203, 155, 76, 14
- PUSHBUTTON "&Dezactivează toate", IDC_BTN_SERVICES_DEACTIVATE, 285, 155, 76, 14
+ CONTROL "List1", IDC_SERVICES_LIST, "SysListView32", LVS_REPORT | LVS_SINGLESEL | LVS_SHOWSELALWAYS | LVS_SORTASCENDING | WS_BORDER | WS_TABSTOP, 5, 5, 356, 129
+ PUSHBUTTON "A&ctivează toate", IDC_BTN_SERVICES_ACTIVATE, 224, 156, 66, 14
+ PUSHBUTTON "&Dezactivează toate", IDC_BTN_SERVICES_DEACTIVATE, 295, 156, 66, 14
+ CONTROL "&Hide all %s services", IDC_CBX_SERVICES_MASK_PROPRIETARY_SVCS,
+ "Button", BS_AUTOCHECKBOX | WS_TABSTOP, 5, 158, 203, 12
+ LTEXT "Please note that some secure %s services may not be disabled.", IDC_STATIC_SERVICES_WARNING, 5, 138, 220, 17
END
IDD_FREELDR_PAGE DIALOGEX 0, 0, 366, 175
LTEXT "seconds", IDC_STATIC, 330, 104, 31, 10
CONTROL "Make &all boot settings permanent", 292,
"Button", BS_AUTOCHECKBOX | BS_TOP | BS_MULTILINE | WS_TABSTOP, 295, 121, 66, 49
- PUSHBUTTON "&Delete", 1014, 295, 68, 66, 14
+ PUSHBUTTON "&Delete", IDC_BTN_DELETE, 295, 68, 66, 14
END
IDD_FREELDR_ADVANCED_PAGE DIALOGEX 0, 0, 175, 175
CHECKBOX "/&CHANNEL", IDC_CBX_CHANNEL, 20, 130, 50, 10
EDITTEXT IDC_TXT_CHANNEL, 80, 130, 60, 12, ES_LEFT
CONTROL "", IDC_SCR_CHANNEL, "msctls_updown32", 0x50000000, 140, 130, 11, 11
- PUSHBUTTON "Con&firmă", IDC_OK, 20, 160, 50, 12
- PUSHBUTTON "A&nulează", IDC_CANCEL, 100, 160, 50, 12
+ PUSHBUTTON "Con&firmă", IDOK, 20, 160, 50, 12
+ PUSHBUTTON "A&nulează", IDCANCEL, 100, 160, 50, 12
END
IDD_FILE_EXTRACT_DIALOG DIALOGEX 0, 0, 353, 117
PUSHBUTTON "Cancel", IDCANCEL, 264, 96, 82, 14
END
+IDD_REQUIRED_SERVICES_DISABLING_DIALOG DIALOGEX 0, 0, 237, 62
+STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
+CAPTION "Configuratorul de sistem" // "Program de configurare sistem"
+FONT 8, "MS Shell Dlg"
+BEGIN
+ DEFPUSHBUTTON "OK", IDOK, 180, 41, 50, 14
+ LTEXT "Essential services cannot be disabled. Doing so might prevent %s from running on your computer.", IDC_STATIC_REQSVCSDIS_INFO, 7, 7, 223, 28
+ CONTROL "&Don't show this message in the future", IDC_CBX_REQSVCSDIS_NO_MSG_ANYMORE,
+ "Button", BS_AUTOCHECKBOX | WS_TABSTOP, 7, 42, 154, 13
+END
+
STRINGTABLE
BEGIN
IDS_MSCONFIG "Configuratorul de sistem" // "Program de configurare sistem"
BEGIN
IDS_YES "Da"
IDS_NO "No"
+ IDS_UNKNOWN "Nespecificat"
END
STRINGTABLE
BEGIN
- IDS_TAB_SERVICES "Servicii"
IDS_TAB_STARTUP "Autolansate"
END
IDS_SERVICES_COLUMN_REQ "De bază"
IDS_SERVICES_COLUMN_VENDOR "Furnizor"
IDS_SERVICES_COLUMN_STATUS "Stare"
+ IDS_SERVICES_COLUMN_DATEDISABLED "Date Disabled"
END
STRINGTABLE
BEGIN
IDS_SERVICES_STATUS_RUNNING "Pornit"
IDS_SERVICES_STATUS_STOPPED "Oprit"
- IDS_SERVICES_UNKNOWN "Nespecificat"
END
LTEXT "Selected &Command:", IDC_STATIC, 5, 127, 128, 10
END
-IDD_SERVICES_PAGE DIALOGEX 0, 0, 362, 175
-STYLE DS_SHELLFONT | DS_CONTROL | WS_CHILD | WS_CLIPCHILDREN
+IDD_SERVICES_PAGE DIALOGEX 0, 0, 366, 175
+STYLE DS_SHELLFONT | DS_CONTROL | WS_CHILD | WS_CAPTION
+CAPTION "Службы"
FONT 8, "MS Shell Dlg"
BEGIN
- CONTROL "List1", IDC_SERVICES_LIST, "SysListView32", LVS_REPORT | LVS_SINGLESEL |
- LVS_SHOWSELALWAYS | LVS_SORTASCENDING | WS_BORDER | WS_TABSTOP, 2, 1, 360, 148
- PUSHBUTTON "&Включить все", IDC_BTN_SERVICES_ACTIVATE, 223, 155, 66, 14
- PUSHBUTTON "В&ыключить все", IDC_BTN_SERVICES_DEACTIVATE, 295, 155, 66, 14
+ CONTROL "List1", IDC_SERVICES_LIST, "SysListView32", LVS_REPORT | LVS_SINGLESEL | LVS_SHOWSELALWAYS | LVS_SORTASCENDING | WS_BORDER | WS_TABSTOP, 5, 5, 356, 129
+ PUSHBUTTON "&Включить все", IDC_BTN_SERVICES_ACTIVATE, 224, 156, 66, 14
+ PUSHBUTTON "В&ыключить все", IDC_BTN_SERVICES_DEACTIVATE, 295, 156, 66, 14
+ CONTROL "&Hide all %s services", IDC_CBX_SERVICES_MASK_PROPRIETARY_SVCS,
+ "Button", BS_AUTOCHECKBOX | WS_TABSTOP, 5, 158, 203, 12
+ LTEXT "Please note that some secure %s services may not be disabled.", IDC_STATIC_SERVICES_WARNING, 5, 138, 220, 17
END
IDD_FREELDR_PAGE DIALOGEX 0, 0, 366, 175
LTEXT "seconds", IDC_STATIC, 330, 104, 31, 10
CONTROL "Make &all boot settings permanent", 292,
"Button", BS_AUTOCHECKBOX | BS_TOP | BS_MULTILINE | WS_TABSTOP, 295, 121, 66, 49
- PUSHBUTTON "&Delete", 1014, 295, 68, 66, 14
+ PUSHBUTTON "&Delete", IDC_BTN_DELETE, 295, 68, 66, 14
END
IDD_FREELDR_ADVANCED_PAGE DIALOGEX 0, 0, 175, 175
CHECKBOX "/&CHANNEL", IDC_CBX_CHANNEL, 20, 130, 50, 10
EDITTEXT IDC_TXT_CHANNEL, 80, 130, 60, 12, ES_LEFT
CONTROL "", IDC_SCR_CHANNEL, "msctls_updown32", 0x50000000, 140, 130, 11, 11
- PUSHBUTTON "OK", IDC_OK, 20, 160, 50, 12
- PUSHBUTTON "Отмена", IDC_CANCEL, 100, 160, 50, 12
+ PUSHBUTTON "OK", IDOK, 20, 160, 50, 12
+ PUSHBUTTON "Отмена", IDCANCEL, 100, 160, 50, 12
END
IDD_FILE_EXTRACT_DIALOG DIALOGEX 0, 0, 353, 117
PUSHBUTTON "Cancel", IDCANCEL, 264, 96, 82, 14
END
+IDD_REQUIRED_SERVICES_DISABLING_DIALOG DIALOGEX 0, 0, 237, 62
+STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
+CAPTION "Настройки системы"
+FONT 8, "MS Shell Dlg"
+BEGIN
+ DEFPUSHBUTTON "OK", IDOK, 180, 41, 50, 14
+ LTEXT "Essential services cannot be disabled. Doing so might prevent %s from running on your computer.", IDC_STATIC_REQSVCSDIS_INFO, 7, 7, 223, 28
+ CONTROL "&Don't show this message in the future", IDC_CBX_REQSVCSDIS_NO_MSG_ANYMORE,
+ "Button", BS_AUTOCHECKBOX | WS_TABSTOP, 7, 42, 154, 13
+END
+
STRINGTABLE
BEGIN
IDS_MSCONFIG "Настройки системы"
BEGIN
IDS_YES "Да"
IDS_NO "No"
+ IDS_UNKNOWN "Неизвестный"
END
STRINGTABLE
BEGIN
- IDS_TAB_SERVICES "Службы"
IDS_TAB_STARTUP "Автозагрузка"
END
IDS_SERVICES_COLUMN_REQ "Базовая"
IDS_SERVICES_COLUMN_VENDOR "Изготовитель"
IDS_SERVICES_COLUMN_STATUS "Состояние"
+ IDS_SERVICES_COLUMN_DATEDISABLED "Date Disabled"
END
STRINGTABLE
BEGIN
IDS_SERVICES_STATUS_RUNNING "Запущено"
IDS_SERVICES_STATUS_STOPPED "Остановлено"
- IDS_SERVICES_UNKNOWN "Неизвестный"
END
LTEXT "Selected &Command:", IDC_STATIC, 5, 127, 128, 10
END
-IDD_SERVICES_PAGE DIALOGEX 0, 0, 362, 175
-STYLE DS_SHELLFONT | DS_CONTROL | WS_CHILD | WS_CLIPCHILDREN
+IDD_SERVICES_PAGE DIALOGEX 0, 0, 366, 175
+STYLE DS_SHELLFONT | DS_CONTROL | WS_CHILD | WS_CAPTION
+CAPTION "Služby"
FONT 8, "MS Shell Dlg"
BEGIN
- CONTROL "List1", IDC_SERVICES_LIST, "SysListView32", LVS_REPORT | LVS_SINGLESEL |
- LVS_SHOWSELALWAYS | LVS_SORTASCENDING | WS_BORDER | WS_TABSTOP, 2, 1, 360, 148
- PUSHBUTTON "&Aktivovať všetky", IDC_BTN_SERVICES_ACTIVATE, 203, 155, 76, 14
- PUSHBUTTON "&Deaktivovať všetky", IDC_BTN_SERVICES_DEACTIVATE, 285, 155, 76, 14
+ CONTROL "List1", IDC_SERVICES_LIST, "SysListView32", LVS_REPORT | LVS_SINGLESEL | LVS_SHOWSELALWAYS | LVS_SORTASCENDING | WS_BORDER | WS_TABSTOP, 5, 5, 356, 129
+ PUSHBUTTON "&Aktivovať všetky", IDC_BTN_SERVICES_ACTIVATE, 224, 156, 66, 14
+ PUSHBUTTON "&Deaktivovať všetky", IDC_BTN_SERVICES_DEACTIVATE, 295, 156, 66, 14
+ CONTROL "&Hide all %s services", IDC_CBX_SERVICES_MASK_PROPRIETARY_SVCS,
+ "Button", BS_AUTOCHECKBOX | WS_TABSTOP, 5, 158, 203, 12
+ LTEXT "Please note that some secure %s services may not be disabled.", IDC_STATIC_SERVICES_WARNING, 5, 138, 220, 17
END
IDD_FREELDR_PAGE DIALOGEX 0, 0, 366, 175
LTEXT "seconds", IDC_STATIC, 330, 104, 31, 10
CONTROL "Make &all boot settings permanent", 292,
"Button", BS_AUTOCHECKBOX | BS_TOP | BS_MULTILINE | WS_TABSTOP, 295, 121, 66, 49
- PUSHBUTTON "&Delete", 1014, 295, 68, 66, 14
+ PUSHBUTTON "&Delete", IDC_BTN_DELETE, 295, 68, 66, 14
END
IDD_FREELDR_ADVANCED_PAGE DIALOGEX 0, 0, 175, 175
CHECKBOX "/&CHANNEL", IDC_CBX_CHANNEL, 20, 130, 50, 10
EDITTEXT IDC_TXT_CHANNEL, 80, 130, 60, 12, ES_LEFT
CONTROL "", IDC_SCR_CHANNEL, "msctls_updown32", 0x50000000, 140, 130, 11, 11
- PUSHBUTTON "OK", IDC_OK, 20, 160, 50, 12
- PUSHBUTTON "Zrušiť", IDC_CANCEL, 100, 160, 50, 12
+ PUSHBUTTON "OK", IDOK, 20, 160, 50, 12
+ PUSHBUTTON "Zrušiť", IDCANCEL, 100, 160, 50, 12
END
IDD_FILE_EXTRACT_DIALOG DIALOGEX 0, 0, 353, 117
PUSHBUTTON "Cancel", IDCANCEL, 264, 96, 82, 14
END
+IDD_REQUIRED_SERVICES_DISABLING_DIALOG DIALOGEX 0, 0, 237, 62
+STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
+CAPTION "Program na konfiguráciu systému"
+FONT 8, "MS Shell Dlg"
+BEGIN
+ DEFPUSHBUTTON "OK", IDOK, 180, 41, 50, 14
+ LTEXT "Essential services cannot be disabled. Doing so might prevent %s from running on your computer.", IDC_STATIC_REQSVCSDIS_INFO, 7, 7, 223, 28
+ CONTROL "&Don't show this message in the future", IDC_CBX_REQSVCSDIS_NO_MSG_ANYMORE,
+ "Button", BS_AUTOCHECKBOX | WS_TABSTOP, 7, 42, 154, 13
+END
+
STRINGTABLE
BEGIN
IDS_MSCONFIG "Program na konfiguráciu systému"
BEGIN
IDS_YES "Áno"
IDS_NO "No"
+ IDS_UNKNOWN "Neznámy"
END
STRINGTABLE
BEGIN
- IDS_TAB_SERVICES "Služby"
IDS_TAB_STARTUP "Po spustení"
END
IDS_SERVICES_COLUMN_REQ "Požadovaná"
IDS_SERVICES_COLUMN_VENDOR "Výrobca"
IDS_SERVICES_COLUMN_STATUS "Stav"
+ IDS_SERVICES_COLUMN_DATEDISABLED "Date Disabled"
END
STRINGTABLE
BEGIN
IDS_SERVICES_STATUS_RUNNING "Spustená"
IDS_SERVICES_STATUS_STOPPED "Zastavená"
- IDS_SERVICES_UNKNOWN "Neznámy"
END
LTEXT "Selected &Command:", IDC_STATIC, 5, 127, 128, 10
END
-IDD_SERVICES_PAGE DIALOGEX 0, 0, 362, 175
-STYLE DS_SHELLFONT | DS_CONTROL | WS_CHILD | WS_CLIPCHILDREN
+IDD_SERVICES_PAGE DIALOGEX 0, 0, 366, 175
+STYLE DS_SHELLFONT | DS_CONTROL | WS_CHILD | WS_CAPTION
+CAPTION "Shërbimet"
FONT 8, "MS Shell Dlg"
BEGIN
- CONTROL "List1", IDC_SERVICES_LIST, "SysListView32", LVS_REPORT | LVS_SINGLESEL |
- LVS_SHOWSELALWAYS | LVS_SORTASCENDING | WS_BORDER | WS_TABSTOP, 2, 1, 360, 148
- PUSHBUTTON "&Aktivizo te gjith", IDC_BTN_SERVICES_ACTIVATE, 223, 155, 66, 14
- PUSHBUTTON "Q'kaptivizo gjithqka", IDC_BTN_SERVICES_DEACTIVATE, 295, 155, 66, 14
+ CONTROL "List1", IDC_SERVICES_LIST, "SysListView32", LVS_REPORT | LVS_SINGLESEL | LVS_SHOWSELALWAYS | LVS_SORTASCENDING | WS_BORDER | WS_TABSTOP, 5, 5, 356, 129
+ PUSHBUTTON "&Aktivizo te gjith", IDC_BTN_SERVICES_ACTIVATE, 224, 156, 66, 14
+ PUSHBUTTON "Q'kaptivizo gjithqka", IDC_BTN_SERVICES_DEACTIVATE, 295, 156, 66, 14
+ CONTROL "&Hide all %s services", IDC_CBX_SERVICES_MASK_PROPRIETARY_SVCS,
+ "Button", BS_AUTOCHECKBOX | WS_TABSTOP, 5, 158, 203, 12
+ LTEXT "Please note that some secure %s services may not be disabled.", IDC_STATIC_SERVICES_WARNING, 5, 138, 220, 17
END
IDD_FREELDR_PAGE DIALOGEX 0, 0, 366, 175
LTEXT "seconds", IDC_STATIC, 330, 104, 31, 10
CONTROL "Make &all boot settings permanent", 292,
"Button", BS_AUTOCHECKBOX | BS_TOP | BS_MULTILINE | WS_TABSTOP, 295, 121, 66, 49
- PUSHBUTTON "&Delete", 1014, 295, 68, 66, 14
+ PUSHBUTTON "&Delete", IDC_BTN_DELETE, 295, 68, 66, 14
END
IDD_FREELDR_ADVANCED_PAGE DIALOGEX 0, 0, 175, 175
CHECKBOX "/&CHANNEL", IDC_CBX_CHANNEL, 20, 130, 50, 10
EDITTEXT IDC_TXT_CHANNEL, 80, 130, 60, 12, ES_LEFT
CONTROL "", IDC_SCR_CHANNEL, "msctls_updown32", 0x50000000, 140, 130, 11, 11
- PUSHBUTTON "OK", IDC_OK, 20, 160, 50, 12
- PUSHBUTTON "Cancel", IDC_CANCEL, 100, 160, 50, 12
+ PUSHBUTTON "OK", IDOK, 20, 160, 50, 12
+ PUSHBUTTON "Cancel", IDCANCEL, 100, 160, 50, 12
END
IDD_FILE_EXTRACT_DIALOG DIALOGEX 0, 0, 353, 117
PUSHBUTTON "Cancel", IDCANCEL, 264, 96, 82, 14
END
+IDD_REQUIRED_SERVICES_DISABLING_DIALOG DIALOGEX 0, 0, 237, 62
+STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
+CAPTION "Programi i konfigurimit te sistemit"
+FONT 8, "MS Shell Dlg"
+BEGIN
+ DEFPUSHBUTTON "OK", IDOK, 180, 41, 50, 14
+ LTEXT "Essential services cannot be disabled. Doing so might prevent %s from running on your computer.", IDC_STATIC_REQSVCSDIS_INFO, 7, 7, 223, 28
+ CONTROL "&Don't show this message in the future", IDC_CBX_REQSVCSDIS_NO_MSG_ANYMORE,
+ "Button", BS_AUTOCHECKBOX | WS_TABSTOP, 7, 42, 154, 13
+END
+
STRINGTABLE
BEGIN
IDS_MSCONFIG "Programi i konfigurimit te sistemit"
BEGIN
IDS_YES "Po"
IDS_NO "No"
+ IDS_UNKNOWN "I'panjohur"
END
STRINGTABLE
BEGIN
- IDS_TAB_SERVICES "Shërbimet"
IDS_TAB_STARTUP "Startupi"
END
IDS_SERVICES_COLUMN_REQ "T'nevojshem"
IDS_SERVICES_COLUMN_VENDOR "Prodhuesi"
IDS_SERVICES_COLUMN_STATUS "Statusi"
+ IDS_SERVICES_COLUMN_DATEDISABLED "Date Disabled"
END
STRINGTABLE
BEGIN
IDS_SERVICES_STATUS_RUNNING "Funksional"
IDS_SERVICES_STATUS_STOPPED "I'ndaluar"
- IDS_SERVICES_UNKNOWN "I'panjohur"
END
LTEXT "Selected &Command:", IDC_STATIC, 5, 127, 128, 10
END
-IDD_SERVICES_PAGE DIALOGEX 0, 0, 362, 175
-STYLE DS_SHELLFONT | DS_CONTROL | WS_CHILD | WS_CLIPCHILDREN
+IDD_SERVICES_PAGE DIALOGEX 0, 0, 366, 175
+STYLE DS_SHELLFONT | DS_CONTROL | WS_CHILD | WS_CAPTION
+CAPTION "Tjänster"
FONT 8, "MS Shell Dlg"
BEGIN
- CONTROL "List1", IDC_SERVICES_LIST, "SysListView32", LVS_REPORT | LVS_SINGLESEL |
- LVS_SHOWSELALWAYS | LVS_SORTASCENDING | WS_BORDER | WS_TABSTOP, 2, 1, 360, 148
- PUSHBUTTON "&Aktivera allt", IDC_BTN_SERVICES_ACTIVATE, 223, 155, 66, 14
- PUSHBUTTON "&Inaktivera allt", IDC_BTN_SERVICES_DEACTIVATE, 295, 155, 66, 14
+ CONTROL "List1", IDC_SERVICES_LIST, "SysListView32", LVS_REPORT | LVS_SINGLESEL | LVS_SHOWSELALWAYS | LVS_SORTASCENDING | WS_BORDER | WS_TABSTOP, 5, 5, 356, 129
+ PUSHBUTTON "&Aktivera allt", IDC_BTN_SERVICES_ACTIVATE, 224, 156, 66, 14
+ PUSHBUTTON "&Inaktivera allt", IDC_BTN_SERVICES_DEACTIVATE, 295, 156, 66, 14
+ CONTROL "&Hide all %s services", IDC_CBX_SERVICES_MASK_PROPRIETARY_SVCS,
+ "Button", BS_AUTOCHECKBOX | WS_TABSTOP, 5, 158, 203, 12
+ LTEXT "Please note that some secure %s services may not be disabled.", IDC_STATIC_SERVICES_WARNING, 5, 138, 220, 17
END
IDD_FREELDR_PAGE DIALOGEX 0, 0, 366, 175
LTEXT "seconds", IDC_STATIC, 330, 104, 31, 10
CONTROL "Make &all boot settings permanent", 292,
"Button", BS_AUTOCHECKBOX | BS_TOP | BS_MULTILINE | WS_TABSTOP, 295, 121, 66, 49
- PUSHBUTTON "&Delete", 1014, 295, 68, 66, 14
+ PUSHBUTTON "&Delete", IDC_BTN_DELETE, 295, 68, 66, 14
END
IDD_FREELDR_ADVANCED_PAGE DIALOGEX 0, 0, 175, 175
CHECKBOX "/&CHANNEL", IDC_CBX_CHANNEL, 20, 130, 50, 10
EDITTEXT IDC_TXT_CHANNEL, 80, 130, 60, 12, ES_LEFT
CONTROL "", IDC_SCR_CHANNEL, "msctls_updown32", 0x50000000, 140, 130, 11, 11
- PUSHBUTTON "OK", IDC_OK, 20, 160, 50, 12
- PUSHBUTTON "Avbryt", IDC_CANCEL, 100, 160, 50, 12
+ PUSHBUTTON "OK", IDOK, 20, 160, 50, 12
+ PUSHBUTTON "Avbryt", IDCANCEL, 100, 160, 50, 12
END
IDD_FILE_EXTRACT_DIALOG DIALOGEX 0, 0, 353, 117
PUSHBUTTON "Cancel", IDCANCEL, 264, 96, 82, 14
END
+IDD_REQUIRED_SERVICES_DISABLING_DIALOG DIALOGEX 0, 0, 237, 62
+STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
+CAPTION "Systemkonfiguration"
+FONT 8, "MS Shell Dlg"
+BEGIN
+ DEFPUSHBUTTON "OK", IDOK, 180, 41, 50, 14
+ LTEXT "Essential services cannot be disabled. Doing so might prevent %s from running on your computer.", IDC_STATIC_REQSVCSDIS_INFO, 7, 7, 223, 28
+ CONTROL "&Don't show this message in the future", IDC_CBX_REQSVCSDIS_NO_MSG_ANYMORE,
+ "Button", BS_AUTOCHECKBOX | WS_TABSTOP, 7, 42, 154, 13
+END
+
STRINGTABLE
BEGIN
IDS_MSCONFIG "Systemkonfiguration"
BEGIN
IDS_YES "Ja"
IDS_NO "No"
+ IDS_UNKNOWN "Okänt"
END
STRINGTABLE
BEGIN
- IDS_TAB_SERVICES "Tjänster"
IDS_TAB_STARTUP "Uppstart"
END
IDS_SERVICES_COLUMN_REQ "Viktigt"
IDS_SERVICES_COLUMN_VENDOR "Tillverkare"
IDS_SERVICES_COLUMN_STATUS "Status"
+ IDS_SERVICES_COLUMN_DATEDISABLED "Date Disabled"
END
STRINGTABLE
BEGIN
IDS_SERVICES_STATUS_RUNNING "Körs"
IDS_SERVICES_STATUS_STOPPED "Stoppad"
- IDS_SERVICES_UNKNOWN "Okänt"
END
LTEXT "Selected &Command:", IDC_STATIC, 5, 127, 128, 10
END
-IDD_SERVICES_PAGE DIALOGEX 0, 0, 362, 175
-STYLE DS_SHELLFONT | DS_CONTROL | WS_CHILD | WS_CLIPCHILDREN
+IDD_SERVICES_PAGE DIALOGEX 0, 0, 366, 175
+STYLE DS_SHELLFONT | DS_CONTROL | WS_CHILD | WS_CAPTION
+CAPTION "บริการ"
FONT 8, "MS Shell Dlg"
BEGIN
- CONTROL "List1", IDC_SERVICES_LIST, "SysListView32", LVS_REPORT | LVS_SINGLESEL |
- LVS_SHOWSELALWAYS | LVS_SORTASCENDING | WS_BORDER | WS_TABSTOP, 2, 1, 360, 148
- PUSHBUTTON "&Activate all", IDC_BTN_SERVICES_ACTIVATE, 223, 155, 66, 14
- PUSHBUTTON "&Deactivate all", IDC_BTN_SERVICES_DEACTIVATE, 295, 155, 66, 14
+ CONTROL "List1", IDC_SERVICES_LIST, "SysListView32", LVS_REPORT | LVS_SINGLESEL | LVS_SHOWSELALWAYS | LVS_SORTASCENDING | WS_BORDER | WS_TABSTOP, 5, 5, 356, 129
+ PUSHBUTTON "&Activate all", IDC_BTN_SERVICES_ACTIVATE, 224, 156, 66, 14
+ PUSHBUTTON "&Deactivate all", IDC_BTN_SERVICES_DEACTIVATE, 295, 156, 66, 14
+ CONTROL "&Hide all %s services", IDC_CBX_SERVICES_MASK_PROPRIETARY_SVCS,
+ "Button", BS_AUTOCHECKBOX | WS_TABSTOP, 5, 158, 203, 12
+ LTEXT "Please note that some secure %s services may not be disabled.", IDC_STATIC_SERVICES_WARNING, 5, 138, 220, 17
END
IDD_FREELDR_PAGE DIALOGEX 0, 0, 366, 175
LTEXT "seconds", IDC_STATIC, 330, 104, 31, 10
CONTROL "Make &all boot settings permanent", 292,
"Button", BS_AUTOCHECKBOX | BS_TOP | BS_MULTILINE | WS_TABSTOP, 295, 121, 66, 49
- PUSHBUTTON "&Delete", 1014, 295, 68, 66, 14
+ PUSHBUTTON "&Delete", IDC_BTN_DELETE, 295, 68, 66, 14
END
IDD_FREELDR_ADVANCED_PAGE DIALOGEX 0, 0, 175, 175
CHECKBOX "/&CHANNEL", IDC_CBX_CHANNEL, 20, 130, 50, 10
EDITTEXT IDC_TXT_CHANNEL, 80, 130, 60, 12, ES_LEFT
CONTROL "", IDC_SCR_CHANNEL, "msctls_updown32", 0x50000000, 140, 130, 11, 11
- PUSHBUTTON "ตกลง", IDC_OK, 20, 160, 50, 12
- PUSHBUTTON "ยกเลิก", IDC_CANCEL, 100, 160, 50, 12
+ PUSHBUTTON "ตกลง", IDOK, 20, 160, 50, 12
+ PUSHBUTTON "ยกเลิก", IDCANCEL, 100, 160, 50, 12
END
IDD_FILE_EXTRACT_DIALOG DIALOGEX 0, 0, 353, 117
PUSHBUTTON "Cancel", IDCANCEL, 264, 96, 82, 14
END
+IDD_REQUIRED_SERVICES_DISABLING_DIALOG DIALOGEX 0, 0, 237, 62
+STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
+CAPTION "โปรแกรมโครงแบบระบบ"
+FONT 8, "MS Shell Dlg"
+BEGIN
+ DEFPUSHBUTTON "OK", IDOK, 180, 41, 50, 14
+ LTEXT "Essential services cannot be disabled. Doing so might prevent %s from running on your computer.", IDC_STATIC_REQSVCSDIS_INFO, 7, 7, 223, 28
+ CONTROL "&Don't show this message in the future", IDC_CBX_REQSVCSDIS_NO_MSG_ANYMORE,
+ "Button", BS_AUTOCHECKBOX | WS_TABSTOP, 7, 42, 154, 13
+END
+
STRINGTABLE
BEGIN
IDS_MSCONFIG "โปรแกรมโครงแบบระบบ"
BEGIN
IDS_YES "ใช่"
IDS_NO "No"
+ IDS_UNKNOWN "ไม่ทราบ"
END
STRINGTABLE
BEGIN
- IDS_TAB_SERVICES "บริการ"
IDS_TAB_STARTUP "เริ่มงานเครื่อง"
END
IDS_SERVICES_COLUMN_REQ "ความต้องการ"
IDS_SERVICES_COLUMN_VENDOR "ตัวแทน"
IDS_SERVICES_COLUMN_STATUS "สถานะ"
+ IDS_SERVICES_COLUMN_DATEDISABLED "Date Disabled"
END
STRINGTABLE
BEGIN
IDS_SERVICES_STATUS_RUNNING "กำลังดำเนินงาน"
IDS_SERVICES_STATUS_STOPPED "หยุดแล้ว"
- IDS_SERVICES_UNKNOWN "ไม่ทราบ"
END
LTEXT "&Seçilen Komut:", IDC_STATIC, 5, 127, 128, 10
END
-IDD_SERVICES_PAGE DIALOGEX 0, 0, 362, 175
-STYLE DS_SHELLFONT | DS_CONTROL | WS_CHILD | WS_CLIPCHILDREN
+IDD_SERVICES_PAGE DIALOGEX 0, 0, 366, 175
+STYLE DS_SHELLFONT | DS_CONTROL | WS_CHILD | WS_CAPTION
+CAPTION "Hizmetler"
FONT 8, "MS Shell Dlg"
BEGIN
- CONTROL "List1", IDC_SERVICES_LIST, "SysListView32", LVS_REPORT | LVS_SINGLESEL |
- LVS_SHOWSELALWAYS | LVS_SORTASCENDING | WS_BORDER | WS_TABSTOP, 2, 1, 360, 148
- PUSHBUTTON "&Tümünü Etkinleştir", IDC_BTN_SERVICES_ACTIVATE, 223, 155, 66, 14
- PUSHBUTTON "T&ümünü Edilginleştir", IDC_BTN_SERVICES_DEACTIVATE, 295, 155, 66, 14
+ CONTROL "List1", IDC_SERVICES_LIST, "SysListView32", LVS_REPORT | LVS_SINGLESEL | LVS_SHOWSELALWAYS | LVS_SORTASCENDING | WS_BORDER | WS_TABSTOP, 5, 5, 356, 129
+ PUSHBUTTON "&Tümünü Etkinleştir", IDC_BTN_SERVICES_ACTIVATE, 224, 156, 66, 14
+ PUSHBUTTON "T&ümünü Edilginleştir", IDC_BTN_SERVICES_DEACTIVATE, 295, 156, 66, 14
+ CONTROL "&Hide all %s services", IDC_CBX_SERVICES_MASK_PROPRIETARY_SVCS,
+ "Button", BS_AUTOCHECKBOX | WS_TABSTOP, 5, 158, 203, 12
+ LTEXT "Please note that some secure %s services may not be disabled.", IDC_STATIC_SERVICES_WARNING, 5, 138, 220, 17
END
IDD_FREELDR_PAGE DIALOGEX 0, 0, 366, 175
LTEXT "sâniye", IDC_STATIC, 330, 104, 31, 10
CONTROL "T&üm Ön Yükleme Ayarlarını Kalıcı Yap", 292,
"Button", BS_AUTOCHECKBOX | BS_TOP | BS_MULTILINE | WS_TABSTOP, 295, 121, 66, 49
- PUSHBUTTON "S&il", 1014, 295, 68, 66, 14
+ PUSHBUTTON "S&il", IDC_BTN_DELETE, 295, 68, 66, 14
END
IDD_FREELDR_ADVANCED_PAGE DIALOGEX 0, 0, 175, 175
CHECKBOX "/&CHANNEL", IDC_CBX_CHANNEL, 20, 130, 50, 10
EDITTEXT IDC_TXT_CHANNEL, 80, 130, 60, 12, ES_LEFT
CONTROL "", IDC_SCR_CHANNEL, "msctls_updown32", 0x50000000, 140, 130, 11, 11
- PUSHBUTTON "Tamam", IDC_OK, 20, 160, 50, 12
- PUSHBUTTON "İptal", IDC_CANCEL, 100, 160, 50, 12
+ PUSHBUTTON "Tamam", IDOK, 20, 160, 50, 12
+ PUSHBUTTON "İptal", IDCANCEL, 100, 160, 50, 12
END
IDD_FILE_EXTRACT_DIALOG DIALOGEX 0, 0, 353, 117
PUSHBUTTON "İptal", IDCANCEL, 264, 96, 82, 14
END
+IDD_REQUIRED_SERVICES_DISABLING_DIALOG DIALOGEX 0, 0, 237, 62
+STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
+CAPTION "Dizge Yapılandırma İzlencesi"
+FONT 8, "MS Shell Dlg"
+BEGIN
+ DEFPUSHBUTTON "OK", IDOK, 180, 41, 50, 14
+ LTEXT "Essential services cannot be disabled. Doing so might prevent %s from running on your computer.", IDC_STATIC_REQSVCSDIS_INFO, 7, 7, 223, 28
+ CONTROL "&Don't show this message in the future", IDC_CBX_REQSVCSDIS_NO_MSG_ANYMORE,
+ "Button", BS_AUTOCHECKBOX | WS_TABSTOP, 7, 42, 154, 13
+END
+
STRINGTABLE
BEGIN
IDS_MSCONFIG "Dizge Yapılandırma İzlencesi"
BEGIN
IDS_YES "Evet"
IDS_NO "Hayır"
+ IDS_UNKNOWN "Bilinmeyen"
END
STRINGTABLE
BEGIN
- IDS_TAB_SERVICES "Hizmetler"
IDS_TAB_STARTUP "Başlangıç"
END
IDS_SERVICES_COLUMN_REQ "Gerekli"
IDS_SERVICES_COLUMN_VENDOR "Sağlayıcı"
IDS_SERVICES_COLUMN_STATUS "Durum"
+ IDS_SERVICES_COLUMN_DATEDISABLED "Date Disabled"
END
STRINGTABLE
BEGIN
IDS_SERVICES_STATUS_RUNNING "Çalışıyor"
IDS_SERVICES_STATUS_STOPPED "Durduruldu"
- IDS_SERVICES_UNKNOWN "Bilinmeyen"
END
LTEXT "Selected &Command:", IDC_STATIC, 5, 127, 128, 10
END
-IDD_SERVICES_PAGE DIALOGEX 0, 0, 362, 175
-STYLE DS_SHELLFONT | DS_CONTROL | WS_CHILD | WS_CLIPCHILDREN
+IDD_SERVICES_PAGE DIALOGEX 0, 0, 366, 175
+STYLE DS_SHELLFONT | DS_CONTROL | WS_CHILD | WS_CAPTION
+CAPTION "Служби"
FONT 8, "MS Shell Dlg"
BEGIN
- CONTROL "List1", IDC_SERVICES_LIST, "SysListView32", LVS_REPORT | LVS_SINGLESEL |
- LVS_SHOWSELALWAYS | LVS_SORTASCENDING | WS_BORDER | WS_TABSTOP, 2, 1, 360, 148
- PUSHBUTTON "&Активувати все", IDC_BTN_SERVICES_ACTIVATE, 223, 155, 66, 14
- PUSHBUTTON "&Деактивувати все", IDC_BTN_SERVICES_DEACTIVATE, 295, 155, 66, 14
+ CONTROL "List1", IDC_SERVICES_LIST, "SysListView32", LVS_REPORT | LVS_SINGLESEL | LVS_SHOWSELALWAYS | LVS_SORTASCENDING | WS_BORDER | WS_TABSTOP, 5, 5, 356, 129
+ PUSHBUTTON "&Активувати все", IDC_BTN_SERVICES_ACTIVATE, 224, 156, 66, 14
+ PUSHBUTTON "&Деактивувати все", IDC_BTN_SERVICES_DEACTIVATE, 295, 156, 66, 14
+ CONTROL "&Hide all %s services", IDC_CBX_SERVICES_MASK_PROPRIETARY_SVCS,
+ "Button", BS_AUTOCHECKBOX | WS_TABSTOP, 5, 158, 203, 12
+ LTEXT "Please note that some secure %s services may not be disabled.", IDC_STATIC_SERVICES_WARNING, 5, 138, 220, 17
END
IDD_FREELDR_PAGE DIALOGEX 0, 0, 366, 175
LTEXT "seconds", IDC_STATIC, 330, 104, 31, 10
CONTROL "Make &all boot settings permanent", 292,
"Button", BS_AUTOCHECKBOX | BS_TOP | BS_MULTILINE | WS_TABSTOP, 295, 121, 66, 49
- PUSHBUTTON "&Delete", 1014, 295, 68, 66, 14
+ PUSHBUTTON "&Delete", IDC_BTN_DELETE, 295, 68, 66, 14
END
IDD_FREELDR_ADVANCED_PAGE DIALOGEX 0, 0, 175, 175
CHECKBOX "/&CHANNEL", IDC_CBX_CHANNEL, 20, 130, 50, 10
EDITTEXT IDC_TXT_CHANNEL, 80, 130, 60, 12, ES_LEFT
CONTROL "", IDC_SCR_CHANNEL, "msctls_updown32", 0x50000000, 140, 130, 11, 11
- PUSHBUTTON "OK", IDC_OK, 20, 160, 50, 12
- PUSHBUTTON "Скасувати", IDC_CANCEL, 100, 160, 50, 12
+ PUSHBUTTON "OK", IDOK, 20, 160, 50, 12
+ PUSHBUTTON "Скасувати", IDCANCEL, 100, 160, 50, 12
END
IDD_FILE_EXTRACT_DIALOG DIALOGEX 0, 0, 353, 117
PUSHBUTTON "Cancel", IDCANCEL, 264, 96, 82, 14
END
+IDD_REQUIRED_SERVICES_DISABLING_DIALOG DIALOGEX 0, 0, 237, 62
+STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
+CAPTION "Програма налаштування системи"
+FONT 8, "MS Shell Dlg"
+BEGIN
+ DEFPUSHBUTTON "OK", IDOK, 180, 41, 50, 14
+ LTEXT "Essential services cannot be disabled. Doing so might prevent %s from running on your computer.", IDC_STATIC_REQSVCSDIS_INFO, 7, 7, 223, 28
+ CONTROL "&Don't show this message in the future", IDC_CBX_REQSVCSDIS_NO_MSG_ANYMORE,
+ "Button", BS_AUTOCHECKBOX | WS_TABSTOP, 7, 42, 154, 13
+END
+
STRINGTABLE
BEGIN
IDS_MSCONFIG "Програма налаштування системи"
BEGIN
IDS_YES "Так"
IDS_NO "No"
+ IDS_UNKNOWN "Невідомо"
END
STRINGTABLE
BEGIN
- IDS_TAB_SERVICES "Служби"
IDS_TAB_STARTUP "Автозавантаження"
END
IDS_SERVICES_COLUMN_REQ "Вимагає"
IDS_SERVICES_COLUMN_VENDOR "Постачальник"
IDS_SERVICES_COLUMN_STATUS "Стан"
+ IDS_SERVICES_COLUMN_DATEDISABLED "Date Disabled"
END
STRINGTABLE
BEGIN
IDS_SERVICES_STATUS_RUNNING "Працює"
IDS_SERVICES_STATUS_STOPPED "Зупинена"
- IDS_SERVICES_UNKNOWN "Невідомо"
END
LTEXT "Selected &Command:", IDC_STATIC, 5, 127, 128, 10
END
-IDD_SERVICES_PAGE DIALOGEX 0, 0, 362, 175
-STYLE DS_SHELLFONT | DS_CONTROL | WS_CHILD | WS_CLIPCHILDREN
-FONT 9, "MS Shell Dlg"
+IDD_SERVICES_PAGE DIALOGEX 0, 0, 366, 175
+STYLE DS_SHELLFONT | DS_CONTROL | WS_CHILD | WS_CAPTION
+CAPTION "服务"
+FONT 8, "MS Shell Dlg"
BEGIN
- CONTROL "List1", IDC_SERVICES_LIST, "SysListView32", LVS_REPORT | LVS_SINGLESEL |
- LVS_SHOWSELALWAYS | LVS_SORTASCENDING | WS_BORDER | WS_TABSTOP, 2, 1, 360, 148
- PUSHBUTTON "全部启用(&A)", IDC_BTN_SERVICES_ACTIVATE, 223, 155, 66, 14
- PUSHBUTTON "全部禁用(&D)", IDC_BTN_SERVICES_DEACTIVATE, 295, 155, 66, 14
+ CONTROL "List1", IDC_SERVICES_LIST, "SysListView32", LVS_REPORT | LVS_SINGLESEL | LVS_SHOWSELALWAYS | LVS_SORTASCENDING | WS_BORDER | WS_TABSTOP, 5, 5, 356, 129
+ PUSHBUTTON "全部启用(&A)", IDC_BTN_SERVICES_ACTIVATE, 224, 156, 66, 14
+ PUSHBUTTON "全部禁用(&D)", IDC_BTN_SERVICES_DEACTIVATE, 295, 156, 66, 14
+ CONTROL "&Hide all %s services", IDC_CBX_SERVICES_MASK_PROPRIETARY_SVCS,
+ "Button", BS_AUTOCHECKBOX | WS_TABSTOP, 5, 158, 203, 12
+ LTEXT "Please note that some secure %s services may not be disabled.", IDC_STATIC_SERVICES_WARNING, 5, 138, 220, 17
END
IDD_FREELDR_PAGE DIALOGEX 0, 0, 366, 175
LTEXT "seconds", IDC_STATIC, 330, 104, 31, 10
CONTROL "Make &all boot settings permanent", 292,
"Button", BS_AUTOCHECKBOX | BS_TOP | BS_MULTILINE | WS_TABSTOP, 295, 121, 66, 49
- PUSHBUTTON "&Delete", 1014, 295, 68, 66, 14
+ PUSHBUTTON "&Delete", IDC_BTN_DELETE, 295, 68, 66, 14
END
IDD_FREELDR_ADVANCED_PAGE DIALOGEX 0, 0, 175, 175
CHECKBOX "/&CHANNEL", IDC_CBX_CHANNEL, 20, 130, 50, 10
EDITTEXT IDC_TXT_CHANNEL, 80, 130, 60, 12, ES_LEFT
CONTROL "", IDC_SCR_CHANNEL, "msctls_updown32", 0x50000000, 140, 130, 11, 11
- PUSHBUTTON "确定", IDC_OK, 20, 160, 50, 12
- PUSHBUTTON "取消", IDC_CANCEL, 100, 160, 50, 12
+ PUSHBUTTON "确定", IDOK, 20, 160, 50, 12
+ PUSHBUTTON "取消", IDCANCEL, 100, 160, 50, 12
END
IDD_FILE_EXTRACT_DIALOG DIALOGEX 0, 0, 353, 117
PUSHBUTTON "Cancel", IDCANCEL, 264, 96, 82, 14
END
+IDD_REQUIRED_SERVICES_DISABLING_DIALOG DIALOGEX 0, 0, 237, 62
+STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
+CAPTION "系统配置实用程序"
+FONT 9, "MS Shell Dlg"
+BEGIN
+ DEFPUSHBUTTON "OK", IDOK, 180, 41, 50, 14
+ LTEXT "Essential services cannot be disabled. Doing so might prevent %s from running on your computer.", IDC_STATIC_REQSVCSDIS_INFO, 7, 7, 223, 28
+ CONTROL "&Don't show this message in the future", IDC_CBX_REQSVCSDIS_NO_MSG_ANYMORE,
+ "Button", BS_AUTOCHECKBOX | WS_TABSTOP, 7, 42, 154, 13
+END
+
STRINGTABLE
BEGIN
- IDS_MSCONFIG "系统配置实用程序"
+ IDS_MSCONFIG "系统配置实用程序"
IDS_MSCONFIG_2 "System Configuration"
IDS_ABOUT "&About...\tShift+F1"
END
BEGIN
IDS_YES "是"
IDS_NO "No"
+ IDS_UNKNOWN "未知"
END
STRINGTABLE
BEGIN
- IDS_TAB_SERVICES "服务"
IDS_TAB_STARTUP "启动"
END
IDS_SERVICES_COLUMN_REQ "基本的"
IDS_SERVICES_COLUMN_VENDOR "制造商"
IDS_SERVICES_COLUMN_STATUS "状态"
+ IDS_SERVICES_COLUMN_DATEDISABLED "Date Disabled"
END
STRINGTABLE
BEGIN
IDS_SERVICES_STATUS_RUNNING "正在运行"
IDS_SERVICES_STATUS_STOPPED "已停止"
- IDS_SERVICES_UNKNOWN "未知"
END
LTEXT "Selected &Command:", IDC_STATIC, 5, 127, 128, 10
END
-IDD_SERVICES_PAGE DIALOGEX 0, 0, 362, 175
-STYLE DS_SHELLFONT | DS_CONTROL | WS_CHILD | WS_CLIPCHILDREN
-FONT 9, "MS Shell Dlg"
+IDD_SERVICES_PAGE DIALOGEX 0, 0, 366, 175
+STYLE DS_SHELLFONT | DS_CONTROL | WS_CHILD | WS_CAPTION
+CAPTION "服務"
+FONT 8, "MS Shell Dlg"
BEGIN
- CONTROL "List1", IDC_SERVICES_LIST, "SysListView32", LVS_REPORT | LVS_SINGLESEL |
- LVS_SHOWSELALWAYS | LVS_SORTASCENDING | WS_BORDER | WS_TABSTOP, 2, 1, 360, 148
- PUSHBUTTON "全部啟用(&A)", IDC_BTN_SERVICES_ACTIVATE, 223, 155, 66, 14
- PUSHBUTTON "全部禁用(&D)", IDC_BTN_SERVICES_DEACTIVATE, 295, 155, 66, 14
+ CONTROL "List1", IDC_SERVICES_LIST, "SysListView32", LVS_REPORT | LVS_SINGLESEL | LVS_SHOWSELALWAYS | LVS_SORTASCENDING | WS_BORDER | WS_TABSTOP, 5, 5, 356, 129
+ PUSHBUTTON "全部啟用(&A)", IDC_BTN_SERVICES_ACTIVATE, 224, 156, 66, 14
+ PUSHBUTTON "全部禁用(&D)", IDC_BTN_SERVICES_DEACTIVATE, 295, 156, 66, 14
+ CONTROL "&Hide all %s services", IDC_CBX_SERVICES_MASK_PROPRIETARY_SVCS,
+ "Button", BS_AUTOCHECKBOX | WS_TABSTOP, 5, 158, 203, 12
+ LTEXT "Please note that some secure %s services may not be disabled.", IDC_STATIC_SERVICES_WARNING, 5, 138, 220, 17
END
IDD_FREELDR_PAGE DIALOGEX 0, 0, 366, 175
LTEXT "seconds", IDC_STATIC, 330, 104, 31, 10
CONTROL "Make &all boot settings permanent", 292,
"Button", BS_AUTOCHECKBOX | BS_TOP | BS_MULTILINE | WS_TABSTOP, 295, 121, 66, 49
- PUSHBUTTON "&Delete", 1014, 295, 68, 66, 14
+ PUSHBUTTON "&Delete", IDC_BTN_DELETE, 295, 68, 66, 14
END
IDD_FREELDR_ADVANCED_PAGE DIALOGEX 0, 0, 175, 175
CHECKBOX "/&CHANNEL", IDC_CBX_CHANNEL, 20, 130, 50, 10
EDITTEXT IDC_TXT_CHANNEL, 80, 130, 60, 12, ES_LEFT
CONTROL "", IDC_SCR_CHANNEL, "msctls_updown32", 0x50000000, 140, 130, 11, 11
- PUSHBUTTON "確定", IDC_OK, 20, 160, 50, 12
- PUSHBUTTON "取消", IDC_CANCEL, 100, 160, 50, 12
+ PUSHBUTTON "確定", IDOK, 20, 160, 50, 12
+ PUSHBUTTON "取消", IDCANCEL, 100, 160, 50, 12
END
IDD_FILE_EXTRACT_DIALOG DIALOGEX 0, 0, 353, 117
PUSHBUTTON "Cancel", IDCANCEL, 264, 96, 82, 14
END
+IDD_REQUIRED_SERVICES_DISABLING_DIALOG DIALOGEX 0, 0, 237, 62
+STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
+CAPTION "系統設定"
+FONT 9, "MS Shell Dlg"
+BEGIN
+ DEFPUSHBUTTON "OK", IDOK, 180, 41, 50, 14
+ LTEXT "Essential services cannot be disabled. Doing so might prevent %s from running on your computer.", IDC_STATIC_REQSVCSDIS_INFO, 7, 7, 223, 28
+ CONTROL "&Don't show this message in the future", IDC_CBX_REQSVCSDIS_NO_MSG_ANYMORE,
+ "Button", BS_AUTOCHECKBOX | WS_TABSTOP, 7, 42, 154, 13
+END
+
STRINGTABLE
BEGIN
IDS_MSCONFIG "系統設定"
BEGIN
IDS_YES "是"
IDS_NO "No"
+ IDS_UNKNOWN "未知"
END
STRINGTABLE
BEGIN
- IDS_TAB_SERVICES "服務"
IDS_TAB_STARTUP "啟動"
END
IDS_SERVICES_COLUMN_REQ "基本的"
IDS_SERVICES_COLUMN_VENDOR "製造商"
IDS_SERVICES_COLUMN_STATUS "狀態"
+ IDS_SERVICES_COLUMN_DATEDISABLED "Date Disabled"
END
STRINGTABLE
BEGIN
IDS_SERVICES_STATUS_RUNNING "執行中"
IDS_SERVICES_STATUS_STOPPED "已停止"
- IDS_SERVICES_UNKNOWN "未知"
END
#include "fileutils.h"
#include "utils.h"
-#include "toolspage.h"
-// #include "srvpage.h"
-// #include "startuppage.h"
-#include "freeldrpage.h"
-// #include "systempage.h"
#include "generalpage.h"
+// #include "systempage.h"
+#include "freeldrpage.h"
+#include "srvpage.h"
+// #include "startuppage.h"
+#include "toolspage.h"
/* Allow only for a single instance of MSConfig */
#ifdef _MSC_VER
BOOL bIsWindows = FALSE;
BOOL bIsOSVersionLessThanVista = TRUE;
+/* Language-independent Vendor strings */
+const LPCWSTR IDS_REACTOS = L"ReactOS";
+const LPCWSTR IDS_MICROSOFT = L"Microsoft";
+const LPCWSTR IDS_WINDOWS = L"Windows";
+
HINSTANCE hInst = NULL;
LPWSTR szAppName = NULL;
HWND hMainWnd; /* Main Window */
// http://www.catch22.net/software/winspy
// Copyright (c) 2002 by J Brown
//
-
+
//
// Copied from uxtheme.h
// If you have this new header, then delete these and
#define ETDT_USETABTEXTURE 0x00000004
#define ETDT_ENABLETAB (ETDT_ENABLE | ETDT_USETABTEXTURE)
-//
+//
typedef HRESULT (WINAPI * ETDTProc) (HWND, DWORD);
//
if(hUXTheme)
{
- fnEnableThemeDialogTexture =
+ fnEnableThemeDialogTexture =
(ETDTProc)GetProcAddress(hUXTheme, "EnableThemeDialogTexture");
if(fnEnableThemeDialogTexture)
HWND CreatePropSheet(HINSTANCE hInstance, HWND hwndOwner, LPCTSTR lpszTitle)
{
HWND hPropSheet;
- PROPSHEETHEADER psh;
- PROPSHEETPAGE psp[7];
+ PROPSHEETHEADERW psh;
+ PROPSHEETPAGEW psp[7];
unsigned int nPages = 0;
-
+
/* Header */
- psh.dwSize = sizeof(PROPSHEETHEADER);
+ psh.dwSize = sizeof(psh);
psh.dwFlags = PSH_PROPSHEETPAGE | PSH_MODELESS | /*PSH_USEICONID |*/ PSH_HASHELP | /*PSH_NOCONTEXTHELP |*/ PSH_USECALLBACK;
psh.hInstance = hInstance;
psh.hwndParent = hwndOwner;
psh.pfnCallback = (PFNPROPSHEETCALLBACK)PropSheetCallback;
/* General page */
- psp[nPages].dwSize = sizeof(PROPSHEETPAGE);
+ psp[nPages].dwSize = sizeof(PROPSHEETPAGEW);
psp[nPages].dwFlags = PSP_HASHELP;
psp[nPages].hInstance = hInstance;
psp[nPages].pszTemplate = MAKEINTRESOURCE(IDD_GENERAL_PAGE);
/* SYSTEM.INI page */
if (MyFileExists(lpszSystemIni, NULL))
{
- psp[nPages].dwSize = sizeof(PROPSHEETPAGE);
+ psp[nPages].dwSize = sizeof(PROPSHEETPAGEW);
psp[nPages].dwFlags = PSP_HASHELP | PSP_USETITLE;
psp[nPages].hInstance = hInstance;
psp[nPages].pszTitle = MAKEINTRESOURCE(IDS_TAB_SYSTEM);
/* WIN.INI page */
if (MyFileExists(lpszWinIni, NULL))
{
- psp[nPages].dwSize = sizeof(PROPSHEETPAGE);
+ psp[nPages].dwSize = sizeof(PROPSHEETPAGEW);
psp[nPages].dwFlags = PSP_HASHELP | PSP_USETITLE;
psp[nPages].hInstance = hInstance;
psp[nPages].pszTitle = MAKEINTRESOURCE(IDS_TAB_WIN);
if (MyFileExists(lpszLoaderIniFile, NULL))
{
- psp[nPages].dwSize = sizeof(PROPSHEETPAGE);
+ psp[nPages].dwSize = sizeof(PROPSHEETPAGEW);
psp[nPages].dwFlags = PSP_HASHELP | PSP_USETITLE;
psp[nPages].hInstance = hInstance;
psp[nPages].pszTitle = MAKEINTRESOURCE(dwTabNameId);
}
}
-#if 0
/* Services page */
- psp[nPages].dwSize = sizeof(PROPSHEETPAGE);
+ psp[nPages].dwSize = sizeof(PROPSHEETPAGEW);
psp[nPages].dwFlags = PSP_HASHELP;
psp[nPages].hInstance = hInstance;
psp[nPages].pszTemplate = MAKEINTRESOURCE(IDD_SERVICES_PAGE);
psp[nPages].pfnDlgProc = (DLGPROC)ServicesPageWndProc;
++nPages;
+#if 0
/* Startup page */
- psp[nPages].dwSize = sizeof(PROPSHEETPAGE);
+ psp[nPages].dwSize = sizeof(PROPSHEETPAGEW);
psp[nPages].dwFlags = PSP_HASHELP;
psp[nPages].hInstance = hInstance;
psp[nPages].pszTemplate = MAKEINTRESOURCE(IDD_STARTUP_PAGE);
#endif
/* Tools page */
- psp[nPages].dwSize = sizeof(PROPSHEETPAGE);
+ psp[nPages].dwSize = sizeof(PROPSHEETPAGEW);
psp[nPages].dwFlags = PSP_HASHELP;
psp[nPages].hInstance = hInstance;
psp[nPages].pszTemplate = MAKEINTRESOURCE(IDD_TOOLS_PAGE);
extern BOOL bIsWindows;
extern BOOL bIsOSVersionLessThanVista;
+extern const LPCWSTR IDS_REACTOS;
+extern const LPCWSTR IDS_MICROSOFT;
+extern const LPCWSTR IDS_WINDOWS;
+
extern HINSTANCE hInst;
extern LPWSTR szAppName;
extern HWND hMainWnd;
--- /dev/null
+#include "precomp.h"
+#include "utils.h"
+#include "regutils.h"
+
+LRESULT
+RegQueryRegistryKeys(IN HKEY hRootKey,
+ IN LPCWSTR KeyName,
+ IN PQUERY_REGISTRY_KEYS_TABLE QueryTable,
+ IN PVOID Context)
+{
+ HKEY hSubKey = NULL;
+
+ if (RegOpenKeyExW(hRootKey, KeyName, 0, KEY_ENUMERATE_SUB_KEYS, &hSubKey) == ERROR_SUCCESS)
+ {
+ HKEY hEntryKey = NULL;
+
+ LRESULT lError = ERROR_SUCCESS;
+ DWORD dwIndex = 0;
+ WCHAR szValueName[MAX_VALUE_NAME] = L"";
+ DWORD dwValueLength = ARRAYSIZE(szValueName);
+
+ while ( (lError = RegEnumKeyExW(hSubKey, dwIndex, szValueName, &dwValueLength, NULL, NULL, NULL, NULL)) != ERROR_NO_MORE_ITEMS )
+ {
+ if ( (lError == ERROR_SUCCESS) && (RegOpenKeyExW(hSubKey, szValueName, 0, KEY_QUERY_VALUE, &hEntryKey) == ERROR_SUCCESS) )
+ {
+ PQUERY_REGISTRY_KEYS_TABLE pTable = QueryTable;
+ while (pTable && pTable->QueryRoutine)
+ {
+ pTable->QueryRoutine(hRootKey, KeyName, szValueName, hEntryKey, Context, pTable->EntryContext);
+ ++pTable;
+ }
+
+ RegCloseKey(hEntryKey);
+ }
+
+ ++dwIndex;
+ dwValueLength = ARRAYSIZE(szValueName);
+ szValueName[0] = L'\0';
+ }
+
+ RegCloseKey(hSubKey);
+ }
+
+ return ERROR_SUCCESS;
+}
+
+//
+// Idea taken from RtlQueryRegistryValues (see DDK).
+//
+LRESULT
+RegQueryRegistryValues(IN HKEY hRootKey,
+ IN LPCWSTR KeyName,
+ IN PQUERY_REGISTRY_VALUES_TABLE QueryTable,
+ IN PVOID Context)
+{
+ LRESULT res = ERROR_SUCCESS;
+ HKEY hSubKey = NULL;
+
+ if ( (res = RegOpenKeyExW(hRootKey, KeyName, 0, KEY_QUERY_VALUE, &hSubKey)) == ERROR_SUCCESS )
+ {
+ DWORD dwIndex = 0, dwType = 0;
+ WCHAR szValueName[MAX_VALUE_NAME] = L"";
+ LPBYTE lpData = NULL;
+ DWORD dwValueLength = ARRAYSIZE(szValueName), dwDataLength = 0;
+
+ while (RegEnumValueW(hSubKey, dwIndex, szValueName, &dwValueLength, NULL, &dwType, NULL, &dwDataLength) != ERROR_NO_MORE_ITEMS)
+ {
+ ++dwValueLength;
+ lpData = (LPBYTE)MemAlloc(0, dwDataLength);
+
+ if (RegEnumValueW(hSubKey, dwIndex, szValueName, &dwValueLength, NULL, &dwType, lpData, &dwDataLength) == ERROR_SUCCESS)
+ {
+ PQUERY_REGISTRY_VALUES_TABLE pTable = QueryTable;
+ while (pTable && pTable->QueryRoutine)
+ {
+ pTable->QueryRoutine(hRootKey, KeyName, szValueName, dwType, lpData, dwDataLength, Context, pTable->EntryContext);
+ ++pTable;
+ }
+ }
+
+ MemFree(lpData); lpData = NULL;
+
+ ++dwIndex;
+ dwValueLength = ARRAYSIZE(szValueName), dwDataLength = 0;
+ szValueName[0] = L'\0';
+ }
+
+ RegCloseKey(hSubKey);
+ }
+
+ return res;
+}
+
+LONG
+RegGetDWORDValue(IN HKEY hKey,
+ IN LPCWSTR lpSubKey OPTIONAL,
+ IN LPCWSTR lpValue OPTIONAL,
+ OUT LPDWORD lpData OPTIONAL)
+{
+ LONG lRet = ERROR_SUCCESS;
+ HKEY hEntryKey = NULL;
+
+ //
+ // Open the sub-key, if any. Otherwise,
+ // use the given registry key handle.
+ //
+ if (lpSubKey)
+ {
+ lRet = RegOpenKeyExW(hKey, lpSubKey, 0, KEY_QUERY_VALUE, &hEntryKey);
+ }
+ else
+ {
+ if (hKey != INVALID_HANDLE_VALUE)
+ {
+ // TODO: Ensure that hKey has the KEY_QUERY_VALUE right.
+ hEntryKey = hKey;
+ lRet = ERROR_SUCCESS;
+ }
+ else
+ {
+ lRet = ERROR_INVALID_HANDLE;
+ }
+ }
+
+ if (lRet == ERROR_SUCCESS)
+ {
+ DWORD dwType = 0,
+ dwRegData = 0,
+ dwBufSize = sizeof(dwRegData /* DWORD */);
+
+ lRet = RegQueryValueExW(hEntryKey, lpValue, NULL, &dwType, (LPBYTE)&dwRegData, &dwBufSize);
+
+ if (lRet == ERROR_SUCCESS)
+ {
+ if ( (dwType == REG_DWORD) && (dwBufSize == sizeof(DWORD)) )
+ {
+ if (lpData)
+ *lpData = dwRegData;
+ }
+ else
+ {
+ lRet = ERROR_UNSUPPORTED_TYPE;
+ }
+ }
+ else if (lRet == ERROR_MORE_DATA)
+ {
+ if (dwType != REG_DWORD)
+ {
+ lRet = ERROR_UNSUPPORTED_TYPE;
+ }
+ }
+
+ // Close the opened sub-key.
+ if (lpSubKey)
+ RegCloseKey(hEntryKey);
+ }
+
+ return lRet;
+}
+
+LONG
+RegSetDWORDValue(IN HKEY hKey,
+ IN LPCWSTR lpSubKey OPTIONAL,
+ IN LPCWSTR lpValue OPTIONAL,
+ IN BOOL bCreateKeyIfDoesntExist,
+ IN DWORD dwData)
+{
+ LONG lRet = ERROR_SUCCESS;
+ HKEY hEntryKey = NULL;
+
+ //
+ // Open (or create) the sub-key, if any.
+ // Otherwise, use the given registry key handle.
+ //
+ if (lpSubKey)
+ {
+ if (bCreateKeyIfDoesntExist)
+ lRet = RegCreateKeyExW(hKey, lpSubKey, 0, NULL, REG_OPTION_NON_VOLATILE, KEY_SET_VALUE, NULL, &hEntryKey, NULL);
+ else
+ lRet = RegOpenKeyExW(hKey, lpSubKey, 0, KEY_SET_VALUE, &hEntryKey);
+ }
+ else
+ {
+ if (hKey != INVALID_HANDLE_VALUE)
+ {
+ // TODO: Ensure that hKey has the KEY_QUERY_VALUE right.
+ hEntryKey = hKey;
+ lRet = ERROR_SUCCESS;
+ }
+ else
+ {
+ lRet = ERROR_INVALID_HANDLE;
+ }
+ }
+
+ //
+ // Opening successful, can set the value now.
+ //
+ if (lRet == ERROR_SUCCESS)
+ {
+ lRet = RegSetValueExW(hEntryKey, lpValue, 0, REG_DWORD, (LPBYTE)&dwData, sizeof(dwData /* DWORD */));
+
+ // Close the opened (or created) sub-key.
+ if (lpSubKey)
+ RegCloseKey(hEntryKey);
+ }
+
+ return lRet;
+}
--- /dev/null
+#ifndef __REGUTILS_H__
+#define __REGUTILS_H__
+
+#pragma once
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+////////////////////////////////////////////////////////////////////////////////
+typedef LRESULT
+(*PQUERY_REGISTRY_KEYS_ROUTINE)(IN HKEY hRootKey,
+ IN LPCWSTR KeyName,
+ IN LPWSTR SubKeyName,
+ IN HKEY hOpenedSubKey,
+ IN PVOID Context,
+ IN PVOID EntryContext);
+
+#define QUERY_REGISTRY_KEYS_ROUTINE(fnName) \
+ LRESULT (fnName)(IN HKEY hRootKey, \
+ IN LPCWSTR KeyName, \
+ IN LPWSTR SubKeyName, \
+ IN HKEY hOpenedSubKey, \
+ IN PVOID Context, \
+ IN PVOID EntryContext)
+
+typedef struct __tagQUERY_REGISTRY_KEYS_TABLE
+{
+ PQUERY_REGISTRY_KEYS_ROUTINE QueryRoutine;
+ PVOID EntryContext;
+ // Other fields ?
+} QUERY_REGISTRY_KEYS_TABLE, *PQUERY_REGISTRY_KEYS_TABLE;
+
+LRESULT
+RegQueryRegistryKeys(IN HKEY hRootKey,
+ IN LPCWSTR KeyName,
+ IN PQUERY_REGISTRY_KEYS_TABLE QueryTable,
+ IN PVOID Context);
+
+////////////////////////////////////////////////////////////////////////////////
+typedef LRESULT
+(*PQUERY_REGISTRY_VALUES_ROUTINE)(IN HKEY hRootKey,
+ IN LPCWSTR KeyName,
+ IN LPWSTR ValueName,
+ IN DWORD ValueType,
+ IN LPBYTE ValueData,
+ IN DWORD ValueLength,
+ IN PVOID Context,
+ IN PVOID EntryContext);
+
+#define QUERY_REGISTRY_VALUES_ROUTINE(fnName) \
+ LRESULT (fnName)(IN HKEY hRootKey, \
+ IN LPCWSTR KeyName, \
+ IN LPWSTR ValueName, \
+ IN DWORD ValueType, \
+ IN LPBYTE ValueData, \
+ IN DWORD ValueLength, \
+ IN PVOID Context, \
+ IN PVOID EntryContext)
+
+typedef struct __tagQUERY_REGISTRY_VALUES_TABLE
+{
+ PQUERY_REGISTRY_VALUES_ROUTINE QueryRoutine;
+ PVOID EntryContext;
+ // Other fields ?
+} QUERY_REGISTRY_VALUES_TABLE, *PQUERY_REGISTRY_VALUES_TABLE;
+
+LRESULT
+RegQueryRegistryValues(IN HKEY hRootKey,
+ IN LPCWSTR KeyName,
+ IN PQUERY_REGISTRY_VALUES_TABLE QueryTable,
+ IN PVOID Context);
+
+////////////////////////////////////////////////////////////////////////////////
+
+LONG
+RegGetDWORDValue(IN HKEY hKey,
+ IN LPCWSTR lpSubKey OPTIONAL,
+ IN LPCWSTR lpValue OPTIONAL,
+ OUT LPDWORD lpData OPTIONAL);
+
+LONG
+RegSetDWORDValue(IN HKEY hKey,
+ IN LPCWSTR lpSubKey OPTIONAL,
+ IN LPCWSTR lpValue OPTIONAL,
+ IN BOOL bCreateKeyIfDoesntExist,
+ IN DWORD dwData);
+
+#ifdef __cplusplus
+} // extern "C"
+#endif
+
+#endif // __REGUTILS_H__
#pragma once
-#define IDC_STATIC -1
-
-#define IDS_YES 2210
-#define IDS_NO 2211
-
-#define IDD_TOOLS_PAGE 102
-#define IDD_SERVICES_PAGE 103
-#define IDD_GENERAL_PAGE 104
-#define IDD_STARTUP_PAGE 105
-#define IDD_FREELDR_PAGE 106
-#define IDD_SYSTEM_PAGE 107
-#define IDD_FREELDR_ADVANCED_PAGE 108
-
-#define IDC_SERVICES_LIST 1006
-#define IDC_STARTUP_LIST 1008
-#define IDC_BTN_SERVICES_ACTIVATE 1009
-#define IDC_BTN_SERVICES_DEACTIVATE 1010
-#define IDC_BTN_STARTUP_ACTIVATE 1011
-#define IDC_BTN_STARTUP_DEACTIVATE 1012
+#define IDC_STATIC -1
+
+#define IDS_YES 100
+#define IDS_NO 101
+#define IDS_UNKNOWN 102
+
+/* Page & dialog IDs */
+#define IDD_TOOLS_PAGE 200
+#define IDD_SERVICES_PAGE 201
+#define IDD_GENERAL_PAGE 202
+#define IDD_STARTUP_PAGE 203
+#define IDD_FREELDR_PAGE 204
+#define IDD_SYSTEM_PAGE 205
+#define IDD_FREELDR_ADVANCED_PAGE 206
+#define IDD_FILE_EXTRACT_DIALOG 207
+#define IDD_REQUIRED_SERVICES_DISABLING_DIALOG 208
/* General page controls */
-#define IDC_RB_NORMAL_STARTUP 1013
-#define IDC_RB_DIAGNOSTIC_STARTUP 1014
-#define IDC_RB_SELECTIVE_STARTUP 1015
-#define IDC_CBX_SYSTEM_INI 1016
-#define IDC_CBX_WIN_INI 1218
-#define IDC_CBX_LOAD_SYSTEM_SERVICES 1017
-#define IDC_CBX_LOAD_STARTUP_ITEMS 1018
-#define IDC_CBX_USE_ORIGINAL_BOOTCFG 1118
-#define IDC_BTN_SYSTEM_RESTORE_START 1318
-#define IDC_BTN_FILE_EXTRACTION 1418
+#define IDC_RB_NORMAL_STARTUP 1000
+#define IDC_RB_DIAGNOSTIC_STARTUP 1001
+#define IDC_RB_SELECTIVE_STARTUP 1002
+#define IDC_CBX_SYSTEM_INI 1003
+#define IDC_CBX_WIN_INI 1004
+#define IDC_CBX_LOAD_SYSTEM_SERVICES 1005
+#define IDC_CBX_LOAD_STARTUP_ITEMS 1006
+#define IDC_CBX_USE_ORIGINAL_BOOTCFG 1007
+#define IDC_BTN_SYSTEM_RESTORE_START 1008
+#define IDC_BTN_FILE_EXTRACTION 1009
+
+/* Startup page controls */
+#define IDS_TAB_SYSTEM 2000
+#define IDS_TAB_WIN 2001
/* FreeLdr page controls */
-#define IDS_TAB_FREELDR 2003
-#define IDS_TAB_BOOT 2004
-#define IDC_LIST_BOX 1019
-#define IDC_BTN_CHECK_BOOT_PATH 1020
-#define IDC_BTN_SET_DEFAULT_BOOT 1021
-#define IDC_BTN_MOVE_UP_BOOT_OPTION 1022
-#define IDC_BTN_MOVE_DOWN_BOOT_OPTION 1023
-#define IDC_CBX_SAFE_BOOT 1024
-#define IDC_CBX_NO_GUI_BOOT 1025
-#define IDC_CBX_BOOT_LOG 1026
-#define IDC_CBX_BASE_VIDEO 1027
-#define IDC_CBX_SOS 1028
-#define IDC_BTN_ADVANCED_OPTIONS 1029
-#define IDC_TXT_BOOT_TIMEOUT 1030
-#define IDC_RADIO1 1077 // FIXME!
-#define IDC_RADIO2 1078 // FIXME!
-#define IDC_RADIO3 1079 // FIXME!
-#define IDC_RADIO4 1080 // FIXME!
+#define IDS_TAB_FREELDR 2002
+#define IDS_TAB_BOOT 2003
+#define IDC_LIST_BOX 1010
+#define IDC_BTN_CHECK_BOOT_PATH 1011
+#define IDC_BTN_SET_DEFAULT_BOOT 1012
+#define IDC_BTN_MOVE_UP_BOOT_OPTION 1013
+#define IDC_BTN_MOVE_DOWN_BOOT_OPTION 1014
+#define IDC_BTN_DELETE 1015
+#define IDC_CBX_SAFE_BOOT 1016
+#define IDC_CBX_NO_GUI_BOOT 1017
+#define IDC_CBX_BOOT_LOG 1018
+#define IDC_CBX_BASE_VIDEO 1019
+#define IDC_CBX_SOS 1020
+#define IDC_BTN_ADVANCED_OPTIONS 1021
+#define IDC_TXT_BOOT_TIMEOUT 1022
+#define IDC_RADIO1 1023 // FIXME!
+#define IDC_RADIO2 1024 // FIXME!
+#define IDC_RADIO3 1025 // FIXME!
+#define IDC_RADIO4 1026 // FIXME!
+
+/* Services page controls */
+#define IDC_SERVICES_LIST 1027
+#define IDC_BTN_SERVICES_ACTIVATE 1028
+#define IDC_BTN_SERVICES_DEACTIVATE 1029
+#define IDC_CBX_SERVICES_MASK_PROPRIETARY_SVCS 1030
+#define IDC_STATIC_SERVICES_WARNING 1031
+
+/* Startup page controls */
+#define IDC_STARTUP_LIST 1032
+#define IDC_BTN_STARTUP_ACTIVATE 1033
+#define IDC_BTN_STARTUP_DEACTIVATE 1034
/* Tools page controls */
-#define IDC_TOOLS_LIST 1007
-#define IDC_TOOLS_CMDLINE 1004
-#define IDC_BTN_RUN 1005
-#define IDC_CBX_TOOLS_ADVOPT 1081
-#define IDS_TOOLS_COLUMN_NAME 2010
-#define IDS_TOOLS_COLUMN_DESCR 2011
-#define IDS_TOOLS_COLUMN_STANDARD 2009
-
-/* File extract dialog */
-#define IDD_FILE_EXTRACT_DIALOG 1500
-#define IDC_BTN_BROWSE_ALL_FILES 1501
-#define IDC_BTN_BROWSE_CAB_FILES 1502
-#define IDC_BTN_BROWSE_DIRS 1503
-#define IDC_TXT_FILE_TO_RESTORE 1504
-#define IDC_DRP_CAB_FILE 1505
-#define IDC_DRP_DEST_DIR 1506
-
-#define IDC_CBX_MAX_MEM 1031
-#define IDC_TXT_MAX_MEM 1032
-#define IDC_SCR_MAX_MEM 1033
-#define IDC_CBX_NUM_PROC 1034
-#define IDC_DRP_NUM_PROC 1035
-#define IDC_CBX_PCI_LOCK 1036
-#define IDC_CBX_PROFILE 1037
-#define IDC_CBX_IRQ 1038
-#define IDC_TXT_IRQ 1039
-#define IDC_CBX_DEBUG 1040
-#define IDC_CBX_DEBUG_PORT 1041
-#define IDC_DRP_DEBUG_PORT 1042
-#define IDC_CBX_BAUD_RATE 1043
-#define IDC_DRP_DRP_BAUD_RATE 1044
-#define IDC_CBX_CHANNEL 1045
-#define IDC_TXT_CHANNEL 1046
-#define IDC_SCR_CHANNEL 1047
-#define IDC_OK 1048
-#define IDC_CANCEL 1049
-#define IDC_BTN_SYSTEM_UP 1050
-#define IDC_BTN_SYSTEM_DOWN 1051
-#define IDC_BTN_SYSTEM_ENABLE 1052
-#define IDC_BTN_SYSTEM_DISABLE 1053
-#define IDC_BTN_SYSTEM_FIND 1054
-#define IDC_BTN_SYSTEM_NEW 1055
-#define IDC_BTN_SYSTEM_EDIT 1056
-#define IDC_SYSTEM_TREE 1057
-#define IDC_BTN_SYSTEM_ACTIVATE 1058
-#define IDC_BTN_SYSTEM_DEACTIVATE 1059
-
-#define IDS_TAB_SYSTEM 2005
-#define IDS_TAB_WIN 2006
-#define IDS_TAB_STARTUP 2007
-#define IDS_TAB_SERVICES 2008
-
-#define IDS_SERVICES_COLUMN_SERVICE 2012
-#define IDS_SERVICES_COLUMN_REQ 2013
-#define IDS_SERVICES_COLUMN_VENDOR 2014
-#define IDS_SERVICES_COLUMN_STATUS 2015
-#define IDS_STARTUP_COLUMN_ELEMENT 2016
-#define IDS_STARTUP_COLUMN_CMD 2017
-#define IDS_STARTUP_COLUMN_PATH 2018
-
-#define IDS_SERVICES_STATUS_STOPPED 2200
-#define IDS_SERVICES_STATUS_RUNNING 2201
-#define IDS_SERVICES_UNKNOWN 2202
-
-
-
+#define IDC_TOOLS_LIST 1035
+#define IDC_TOOLS_CMDLINE 1036
+#define IDC_BTN_RUN 1037
+#define IDC_CBX_TOOLS_ADVOPT 1038
+#define IDS_TOOLS_COLUMN_NAME 2020
+#define IDS_TOOLS_COLUMN_DESCR 2021
+#define IDS_TOOLS_COLUMN_STANDARD 2022
+/* File extract dialog */
+#define IDC_BTN_BROWSE_ALL_FILES 1039
+#define IDC_BTN_BROWSE_CAB_FILES 1040
+#define IDC_BTN_BROWSE_DIRS 1041
+#define IDC_TXT_FILE_TO_RESTORE 1042
+#define IDC_DRP_CAB_FILE 1043
+#define IDC_DRP_DEST_DIR 1044
+
+/* Essential services warning dialog */
+#define IDC_CBX_REQSVCSDIS_NO_MSG_ANYMORE 1045
+#define IDC_STATIC_REQSVCSDIS_INFO 1046
+
+
+#define IDC_CBX_MAX_MEM 1200
+#define IDC_TXT_MAX_MEM 1201
+#define IDC_SCR_MAX_MEM 1202
+#define IDC_CBX_NUM_PROC 1203
+#define IDC_DRP_NUM_PROC 1204
+#define IDC_CBX_PCI_LOCK 1205
+#define IDC_CBX_PROFILE 1206
+#define IDC_CBX_IRQ 1207
+#define IDC_TXT_IRQ 1208
+#define IDC_CBX_DEBUG 1209
+#define IDC_CBX_DEBUG_PORT 1210
+#define IDC_DRP_DEBUG_PORT 1211
+#define IDC_CBX_BAUD_RATE 1212
+#define IDC_DRP_DRP_BAUD_RATE 1213
+#define IDC_CBX_CHANNEL 1214
+#define IDC_TXT_CHANNEL 1215
+#define IDC_SCR_CHANNEL 1216
+#define IDC_BTN_SYSTEM_UP 1217
+#define IDC_BTN_SYSTEM_DOWN 1218
+#define IDC_BTN_SYSTEM_ENABLE 1219
+#define IDC_BTN_SYSTEM_DISABLE 1220
+#define IDC_BTN_SYSTEM_FIND 1221
+#define IDC_BTN_SYSTEM_NEW 1222
+#define IDC_BTN_SYSTEM_EDIT 1223
+#define IDC_SYSTEM_TREE 1224
+#define IDC_BTN_SYSTEM_ACTIVATE 1225
+#define IDC_BTN_SYSTEM_DEACTIVATE 1226
+
+#define IDS_TAB_STARTUP 2023
+
+#define IDS_SERVICES_COLUMN_SERVICE 2024
+#define IDS_SERVICES_COLUMN_REQ 2025
+#define IDS_SERVICES_COLUMN_VENDOR 2026
+#define IDS_SERVICES_COLUMN_STATUS 2027
+#define IDS_SERVICES_COLUMN_DATEDISABLED 2028
+
+#define IDS_SERVICES_STATUS_STOPPED 2029
+#define IDS_SERVICES_STATUS_RUNNING 2030
+
+
+#define IDS_STARTUP_COLUMN_ELEMENT 2031
+#define IDS_STARTUP_COLUMN_CMD 2032
+#define IDS_STARTUP_COLUMN_PATH 2033
#define IDS_MSCONFIG 3000
#define IDS_MSCONFIG_2 3001
-#define IDI_APPICON 3010
-
+#define IDI_APPICON 3010
#define IDR_MSCONFIG 3020
#define IDM_ABOUT 3030
+++ /dev/null
-/*
- * PROJECT: ReactOS Applications
- * LICENSE: LGPL - See COPYING in the top level directory
- * FILE: base/applications/msconfig_new/srvpage.c
- * PURPOSE: Services page message handler
- * COPYRIGHT: Copyright 2005-2006 Christoph von Wittich <Christoph@ApiViewer.de>
- *
- */
-
-#include "precomp.h"
-
-#include <winsvc.h>
-#include <winver.h>
-
-HWND hServicesPage;
-HWND hServicesListCtrl;
-HWND hServicesDialog;
-
-void GetServices ( void );
-
-INT_PTR CALLBACK
-ServicesPageWndProc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam)
-{
- LV_COLUMN column;
- TCHAR szTemp[256];
- DWORD dwStyle;
-
- UNREFERENCED_PARAMETER(lParam);
- UNREFERENCED_PARAMETER(wParam);
-
- switch (message) {
- case WM_INITDIALOG:
-
- hServicesListCtrl = GetDlgItem(hDlg, IDC_SERVICES_LIST);
- hServicesDialog = hDlg;
-
- dwStyle = (DWORD) SendMessage(hServicesListCtrl, LVM_GETEXTENDEDLISTVIEWSTYLE, 0, 0);
- dwStyle = dwStyle | LVS_EX_FULLROWSELECT | LVS_EX_CHECKBOXES;
- SendMessage(hServicesListCtrl, LVM_SETEXTENDEDLISTVIEWSTYLE, 0, dwStyle);
-
- SetWindowPos(hDlg, NULL, 10, 32, 0, 0, SWP_NOACTIVATE | SWP_NOOWNERZORDER | SWP_NOSIZE | SWP_NOZORDER);
-
- // Initialize the application page's controls
- column.mask = LVCF_TEXT | LVCF_WIDTH;
-
- LoadString(hInst, IDS_SERVICES_COLUMN_SERVICE, szTemp, 256);
- column.pszText = szTemp;
- column.cx = 200;
- (void)ListView_InsertColumn(hServicesListCtrl, 0, &column);
-
- column.mask = LVCF_TEXT | LVCF_WIDTH;
- LoadString(hInst, IDS_SERVICES_COLUMN_REQ, szTemp, 256);
- column.pszText = szTemp;
- column.cx = 70;
- (void)ListView_InsertColumn(hServicesListCtrl, 1, &column);
-
- column.mask = LVCF_TEXT | LVCF_WIDTH;
- LoadString(hInst, IDS_SERVICES_COLUMN_VENDOR, szTemp, 256);
- column.pszText = szTemp;
- column.cx = 200;
- (void)ListView_InsertColumn(hServicesListCtrl, 2, &column);
-
- column.mask = LVCF_TEXT | LVCF_WIDTH;
- LoadString(hInst, IDS_SERVICES_COLUMN_STATUS, szTemp, 256);
- column.pszText = szTemp;
- column.cx = 70;
- (void)ListView_InsertColumn(hServicesListCtrl, 3, &column);
-
- GetServices();
- return TRUE;
- }
-
- return 0;
-}
-
-void
-GetServices ( void )
-{
- LV_ITEM item;
- WORD wCodePage;
- WORD wLangID;
- SC_HANDLE ScHandle;
- SC_HANDLE hService;
- DWORD BytesNeeded = 0;
- DWORD ResumeHandle = 0;
- DWORD NumServices = 0;
- DWORD dwHandle, dwLen;
- size_t Index;
- UINT BufLen;
- TCHAR szStatus[128];
- TCHAR* lpData;
- TCHAR* lpBuffer;
- TCHAR szStrFileInfo[80];
- TCHAR FileName[MAX_PATH];
- LPVOID pvData;
-
- LPSERVICE_FAILURE_ACTIONS pServiceFailureActions = NULL;
- LPQUERY_SERVICE_CONFIG pServiceConfig = NULL;
- ENUM_SERVICE_STATUS_PROCESS *pServiceStatus = NULL;
-
- ScHandle = OpenSCManager(NULL, NULL, SC_MANAGER_ENUMERATE_SERVICE);
- if (ScHandle != NULL)
- {
- if (EnumServicesStatusEx(ScHandle, SC_ENUM_PROCESS_INFO, SERVICE_WIN32, SERVICE_STATE_ALL, (LPBYTE)pServiceStatus, 0, &BytesNeeded, &NumServices, &ResumeHandle, 0) == 0)
- {
- /* Call function again if required size was returned */
- if (GetLastError() == ERROR_MORE_DATA)
- {
- /* reserve memory for service info array */
- pServiceStatus = HeapAlloc(GetProcessHeap(), 0, BytesNeeded);
- if (!pServiceStatus)
- {
- CloseServiceHandle(ScHandle);
- return;
- }
-
- /* fill array with service info */
- if (EnumServicesStatusEx(ScHandle, SC_ENUM_PROCESS_INFO, SERVICE_WIN32, SERVICE_STATE_ALL, (LPBYTE)pServiceStatus, BytesNeeded, &BytesNeeded, &NumServices, &ResumeHandle, 0) == 0)
- {
- HeapFree(GetProcessHeap(), 0, pServiceStatus);
- CloseServiceHandle(ScHandle);
- return;
- }
- }
- else /* exit on failure */
- {
- CloseServiceHandle(ScHandle);
- return;
- }
- }
-
- if (NumServices)
- {
- if (!pServiceStatus)
- {
- CloseServiceHandle(ScHandle);
- return;
- }
-
- for (Index = 0; Index < NumServices; Index++)
- {
- memset(&item, 0, sizeof(LV_ITEM));
- item.mask = LVIF_TEXT;
- item.iImage = 0;
- item.pszText = pServiceStatus[Index].lpDisplayName;
- item.iItem = ListView_GetItemCount(hServicesListCtrl);
- item.lParam = 0;
- item.iItem = ListView_InsertItem(hServicesListCtrl, &item);
-
- if (pServiceStatus[Index].ServiceStatusProcess.dwCurrentState == SERVICE_RUNNING)
- {
- ListView_SetCheckState(hServicesListCtrl, item.iItem, TRUE);
- }
-
- BytesNeeded = 0;
- hService = OpenService(ScHandle, pServiceStatus[Index].lpServiceName, SC_MANAGER_CONNECT);
- if (hService != NULL)
- {
- /* check if service is required by the system*/
- if (!QueryServiceConfig2(hService, SERVICE_CONFIG_FAILURE_ACTIONS, (LPBYTE)NULL, 0, &BytesNeeded))
- {
- if (GetLastError() == ERROR_INSUFFICIENT_BUFFER)
- {
- pServiceFailureActions = HeapAlloc(GetProcessHeap(), 0, BytesNeeded);
- if (pServiceFailureActions == NULL)
- {
- HeapFree(GetProcessHeap(), 0, pServiceStatus);
- CloseServiceHandle(hService);
- CloseServiceHandle(ScHandle);
- return;
- }
-
- if (!QueryServiceConfig2(hService, SERVICE_CONFIG_FAILURE_ACTIONS, (LPBYTE)pServiceFailureActions, BytesNeeded, &BytesNeeded))
- {
- HeapFree(GetProcessHeap(), 0, pServiceFailureActions);
- HeapFree(GetProcessHeap(), 0, pServiceStatus);
- CloseServiceHandle(hService);
- CloseServiceHandle(ScHandle);
- return;
- }
- }
- else /* exit on failure */
- {
- HeapFree(GetProcessHeap(), 0, pServiceStatus);
- CloseServiceHandle(hService);
- CloseServiceHandle(ScHandle);
- return;
- }
- }
-
- if (pServiceFailureActions != NULL)
- {
- if (pServiceFailureActions->cActions && pServiceFailureActions->lpsaActions[0].Type == SC_ACTION_REBOOT)
- {
- LoadString(hInst, IDS_YES, szStatus, 128);
- item.pszText = szStatus;
- item.iSubItem = 1;
- SendMessage(hServicesListCtrl, LVM_SETITEMTEXT, item.iItem, (LPARAM) &item);
- }
- HeapFree(GetProcessHeap(), 0, pServiceFailureActions);
- pServiceFailureActions = NULL;
- }
-
- /* get vendor of service binary */
- BytesNeeded = 0;
- if (!QueryServiceConfig(hService, NULL, 0, &BytesNeeded))
- {
- if (GetLastError() == ERROR_INSUFFICIENT_BUFFER)
- {
- pServiceConfig = HeapAlloc(GetProcessHeap(), 0, BytesNeeded);
- if (pServiceConfig == NULL)
- {
- HeapFree(GetProcessHeap(), 0, pServiceStatus);
- CloseServiceHandle(hService);
- CloseServiceHandle(ScHandle);
- return;
- }
- if (!QueryServiceConfig(hService, pServiceConfig, BytesNeeded, &BytesNeeded))
- {
- HeapFree(GetProcessHeap(), 0, pServiceConfig);
- HeapFree(GetProcessHeap(), 0, pServiceStatus);
- CloseServiceHandle(hService);
- CloseServiceHandle(ScHandle);
- return;
- }
- }
- else /* exit on failure */
- {
- HeapFree(GetProcessHeap(), 0, pServiceStatus);
- CloseServiceHandle(hService);
- CloseServiceHandle(ScHandle);
- return;
- }
- }
-
- memset(&FileName, 0, MAX_PATH);
- if (_tcscspn(pServiceConfig->lpBinaryPathName, _T("\"")))
- {
- _tcsncpy(FileName, pServiceConfig->lpBinaryPathName, _tcscspn(pServiceConfig->lpBinaryPathName, _T(" ")) );
- }
- else
- {
- _tcscpy(FileName, pServiceConfig->lpBinaryPathName);
- }
-
- HeapFree(GetProcessHeap(), 0, pServiceConfig);
- pServiceConfig = NULL;
-
- dwLen = GetFileVersionInfoSize(FileName, &dwHandle);
- if (dwLen)
- {
- lpData = HeapAlloc(GetProcessHeap(), 0, dwLen);
- if (lpData == NULL)
- {
- HeapFree(GetProcessHeap(), 0, pServiceStatus);
- CloseServiceHandle(hService);
- CloseServiceHandle(ScHandle);
- return;
- }
- if (!GetFileVersionInfo (FileName, dwHandle, dwLen, lpData))
- {
- HeapFree(GetProcessHeap(), 0, lpData);
- HeapFree(GetProcessHeap(), 0, pServiceStatus);
- CloseServiceHandle(hService);
- CloseServiceHandle(ScHandle);
- return;
- }
-
- if (VerQueryValue(lpData, _T("\\VarFileInfo\\Translation"), &pvData, (PUINT) &BufLen))
- {
- wCodePage = LOWORD(*(DWORD*) pvData);
- wLangID = HIWORD(*(DWORD*) pvData);
- wsprintf(szStrFileInfo, _T("StringFileInfo\\%04X%04X\\CompanyName"), wCodePage, wLangID);
- }
-
- if (VerQueryValue (lpData, szStrFileInfo, (void**) &lpBuffer, (PUINT) &BufLen))
- {
- item.pszText = lpBuffer;
- item.iSubItem = 2;
- SendMessage(hServicesListCtrl, LVM_SETITEMTEXT, item.iItem, (LPARAM) &item);
- }
- HeapFree(GetProcessHeap(), 0, lpData);
- }
- else
- {
- LoadString(hInst, IDS_SERVICES_UNKNOWN, szStatus, 128);
- item.pszText = szStatus;
- item.iSubItem = 2;
- SendMessage(hServicesListCtrl, LVM_SETITEMTEXT, item.iItem, (LPARAM) &item);
- }
- CloseServiceHandle(hService);
- }
-
- LoadString(hInst, ((pServiceStatus[Index].ServiceStatusProcess.dwCurrentState == SERVICE_STOPPED) ? IDS_SERVICES_STATUS_STOPPED : IDS_SERVICES_STATUS_RUNNING), szStatus, 128);
- item.pszText = szStatus;
- item.iSubItem = 3;
- SendMessage(hServicesListCtrl, LVM_SETITEMTEXT, item.iItem, (LPARAM) &item);
-
- }
- }
-
- HeapFree(GetProcessHeap(), 0, pServiceStatus);
- CloseServiceHandle(ScHandle);
- }
-
-}
--- /dev/null
+/*
+ * PROJECT: ReactOS Applications
+ * LICENSE: LGPL - See COPYING in the top level directory
+ * FILE: base/applications/msconfig_new/srvpage.cpp
+ * PURPOSE: Services page message handler
+ * COPYRIGHT: Copyright 2005-2006 Christoph von Wittich <Christoph@ApiViewer.de>
+ * Copyright 2011-2012 Hermes BELUSCA - MAITO <hermes.belusca@sfr.fr>
+ *
+ */
+
+#include "precomp.h"
+#include "utils.h"
+#include "listviewfuncs.h"
+#include "regutils.h"
+#include "stringutils.h"
+// #include "CmdLineParser.h"
+
+#include <winsvc.h>
+
+// #include <atlbase.h>
+#include <atlcoll.h>
+#include <atlstr.h>
+
+static HWND hServicesPage = NULL;
+static HWND hServicesListCtrl = NULL;
+static int iSortedColumn = 0;
+static BOOL bMaskProprietarySvcs = FALSE;
+
+DWORD GetServicesActivation(VOID)
+{
+ DWORD dwServices = 0;
+ RegGetDWORDValue(HKEY_LOCAL_MACHINE, L"SOFTWARE\\Microsoft\\Shared Tools\\MSConfig\\state", L"services", &dwServices);
+ return dwServices;
+}
+
+BOOL SetServicesActivation(DWORD dwState)
+{
+ return (RegSetDWORDValue(HKEY_LOCAL_MACHINE, L"SOFTWARE\\Microsoft\\Shared Tools\\MSConfig\\state", L"services", TRUE, dwState) == ERROR_SUCCESS);
+}
+
+static BOOL
+RegisterNoMsgAnymore(VOID)
+{
+ return (RegSetDWORDValue(HKEY_CURRENT_USER /* HKEY_LOCAL_MACHINE ?? */,
+ L"SOFTWARE\\Microsoft\\Shared Tools\\MSConfig",
+ L"HideEssentialServiceWarning",
+ TRUE, 1) == ERROR_SUCCESS);
+}
+
+BOOL
+HideEssentialServiceWarning(VOID)
+{
+ BOOL bRetVal = FALSE;
+ DWORD dwValue = 0;
+
+ bRetVal = ( (RegGetDWORDValue(HKEY_CURRENT_USER /* HKEY_LOCAL_MACHINE ?? */,
+ L"SOFTWARE\\Microsoft\\Shared Tools\\MSConfig",
+ L"HideEssentialServiceWarning",
+ &dwValue) == ERROR_SUCCESS) &&
+ (dwValue == 1) );
+
+ return bRetVal;
+}
+
+struct ServiceItem
+{
+ ServiceItem(const LPCWSTR lpszSvcName,
+ BOOL bIsEnabled,
+ BOOL bIsRequired) :
+ m_lpszSvcName(lpszSvcName),
+ m_bIsEnabled(bIsEnabled),
+ m_bIsRequired(bIsRequired)
+ { }
+
+ ~ServiceItem(void)
+ { }
+
+ CAtlStringW m_lpszSvcName;
+ BOOL m_bIsEnabled;
+ BOOL m_bIsRequired;
+};
+
+struct RegistryDisabledServiceItemParams
+{
+ BOOL bIsPresent;
+ BOOL bIsKeyed; // bIsKeyed == TRUE for a keyed-registered service ; == FALSE for a valued-registered service.
+ DWORD dwStartType;
+ SYSTEMTIME time;
+};
+
+static CAtlList<CAtlStringW> userModificationsList;
+
+QUERY_REGISTRY_VALUES_ROUTINE(GetRegistryValuedDisabledServicesQueryRoutine)
+{
+ UNREFERENCED_PARAMETER(KeyName);
+ UNREFERENCED_PARAMETER(ValueData);
+ UNREFERENCED_PARAMETER(ValueLength);
+
+ if (!EntryContext)
+ return ERROR_SUCCESS;
+
+ RegistryDisabledServiceItemParams* pContextParams = (RegistryDisabledServiceItemParams*)EntryContext;
+ if (pContextParams->bIsPresent)
+ return ERROR_SUCCESS;
+
+ if ( (hRootKey == HKEY_LOCAL_MACHINE) && (ValueType == REG_DWORD) && (ValueLength == sizeof(DWORD)) &&
+ (wcsicmp((LPCWSTR)Context, ValueName) == 0) )
+ {
+ pContextParams->bIsPresent = TRUE;
+ pContextParams->bIsKeyed = FALSE;
+ pContextParams->dwStartType = *(DWORD*)ValueData;
+ // pContextParams->time = {};
+ }
+ else
+ {
+ pContextParams->bIsPresent = FALSE;
+ pContextParams->bIsKeyed = FALSE;
+ pContextParams->dwStartType = 0;
+ // pContextParams->time = {};
+ }
+
+ return ERROR_SUCCESS;
+}
+
+QUERY_REGISTRY_KEYS_ROUTINE(GetRegistryKeyedDisabledServicesQueryRoutine)
+{
+ UNREFERENCED_PARAMETER(hRootKey);
+ UNREFERENCED_PARAMETER(KeyName);
+
+ if (!EntryContext)
+ return ERROR_SUCCESS;
+
+ RegistryDisabledServiceItemParams* pContextParams = (RegistryDisabledServiceItemParams*)EntryContext;
+ if (pContextParams->bIsPresent)
+ return ERROR_SUCCESS;
+
+ DWORD dwType = 0, dwBufSize = 0;
+
+ // Be careful, the order of the operations in the comparison is very important.
+ if ( (wcsicmp((LPCWSTR)Context, SubKeyName) == 0) &&
+ (RegQueryValueEx(hOpenedSubKey, /* ValueName == */ SubKeyName, NULL, &dwType, NULL, &dwBufSize) == ERROR_SUCCESS) &&
+ (dwType == REG_DWORD) && (dwBufSize == sizeof(DWORD)) )
+ {
+#if 1 // DisableDate
+ SYSTEMTIME disableDate = {};
+ DWORD dwRegData = 0;
+
+ dwRegData = 0;
+ RegGetDWORDValue(hOpenedSubKey, NULL, L"DAY", &dwRegData);
+ disableDate.wDay = LOWORD(dwRegData);
+
+ dwRegData = 0;
+ RegGetDWORDValue(hOpenedSubKey, NULL, L"HOUR", &dwRegData);
+ disableDate.wHour = LOWORD(dwRegData);
+
+ dwRegData = 0;
+ RegGetDWORDValue(hOpenedSubKey, NULL, L"MINUTE", &dwRegData);
+ disableDate.wMinute = LOWORD(dwRegData);
+
+ dwRegData = 0;
+ RegGetDWORDValue(hOpenedSubKey, NULL, L"MONTH", &dwRegData);
+ disableDate.wMonth = LOWORD(dwRegData);
+
+ dwRegData = 0;
+ RegGetDWORDValue(hOpenedSubKey, NULL, L"SECOND", &dwRegData);
+ disableDate.wSecond = LOWORD(dwRegData);
+
+ dwRegData = 0;
+ RegGetDWORDValue(hOpenedSubKey, NULL, L"YEAR", &dwRegData);
+ disableDate.wYear = LOWORD(dwRegData);
+#endif
+
+ DWORD dwStartType = 0;
+ RegGetDWORDValue(hOpenedSubKey, NULL, SubKeyName /* Service name */, &dwStartType);
+
+ pContextParams->bIsPresent = TRUE;
+ pContextParams->bIsKeyed = TRUE;
+ pContextParams->dwStartType = dwStartType;
+ pContextParams->time = disableDate;
+ }
+ else
+ {
+ pContextParams->bIsPresent = FALSE;
+ pContextParams->bIsKeyed = TRUE;
+ pContextParams->dwStartType = 0;
+ // pContextParams->time = {};
+ }
+
+ return ERROR_SUCCESS;
+}
+
+
+
+static void AddService(SC_HANDLE hSCManager, LPENUM_SERVICE_STATUS_PROCESS Service, BOOL bHideOSVendorServices)
+{
+ //
+ // Retrieve a handle to the service.
+ //
+ SC_HANDLE hService = OpenServiceW(hSCManager, Service->lpServiceName, SERVICE_QUERY_CONFIG);
+ if (hService == NULL)
+ return;
+
+ DWORD dwBytesNeeded = 0;
+ QueryServiceConfigW(hService, NULL, 0, &dwBytesNeeded);
+ // if (GetLastError() == ERROR_INSUFFICIENT_BUFFER)
+
+ LPQUERY_SERVICE_CONFIG lpServiceConfig = (LPQUERY_SERVICE_CONFIG)MemAlloc(0, dwBytesNeeded);
+ if (!lpServiceConfig)
+ {
+ CloseServiceHandle(hService);
+ return;
+ }
+ QueryServiceConfigW(hService, lpServiceConfig, dwBytesNeeded, &dwBytesNeeded);
+
+ //
+ // Get the service's vendor...
+ //
+ LPWSTR lpszVendor = NULL;
+ {
+ // Isolate only the executable path, without any arguments.
+ // TODO: Correct at the level of CmdLineToArgv the potential bug when lpszFilename == NULL.
+#if 0 // Disabled until CmdLineToArgv is included
+ unsigned int argc = 0;
+ LPWSTR* argv = NULL;
+ CmdLineToArgv(lpServiceConfig->lpBinaryPathName, &argc, &argv, L" \t");
+ if (argc >= 1 && argv[0])
+ lpszVendor = GetExecutableVendor(argv[0]);
+#else
+ // Hackish solution taken from the original srvpage.c.
+ // Will be removed after CmdLineToArgv is introduced.
+ WCHAR FileName[MAX_PATH];
+ memset(&FileName, 0, sizeof(FileName));
+ if (wcscspn(lpServiceConfig->lpBinaryPathName, L"\""))
+ {
+ wcsncpy(FileName, lpServiceConfig->lpBinaryPathName, wcscspn(lpServiceConfig->lpBinaryPathName, L" ") );
+ }
+ else
+ {
+ wcscpy(FileName, lpServiceConfig->lpBinaryPathName);
+ }
+ lpszVendor = GetExecutableVendor(FileName);
+#endif
+ if (!lpszVendor)
+ lpszVendor = LoadResourceString(hInst, IDS_UNKNOWN);
+#if 0
+ MemFree(argv);
+#endif
+ }
+
+ // ...and display or not the Microsoft / ReactOS services.
+ BOOL bContinue = TRUE;
+ if (bHideOSVendorServices)
+ {
+ if (FindSubStrI(lpszVendor, bIsWindows ? IDS_MICROSOFT : IDS_REACTOS))
+ bContinue = FALSE;
+ }
+
+ if (bContinue)
+ {
+ BOOL bIsServiceEnabled = (lpServiceConfig->dwStartType != SERVICE_DISABLED);
+ BOOL bAddServiceToList = FALSE;
+ BOOL bIsModifiedService = FALSE;
+ RegistryDisabledServiceItemParams params = {};
+
+ //
+ // Try to look into the user modifications list...
+ //
+ POSITION it = userModificationsList.Find(Service->lpServiceName);
+ if (it)
+ {
+ bAddServiceToList = TRUE;
+ bIsModifiedService = TRUE;
+ }
+
+ //
+ // ...if not found, try to find if the disabled service is in the registry.
+ //
+ if (!bAddServiceToList)
+ {
+ if (!bIsServiceEnabled)
+ {
+ QUERY_REGISTRY_KEYS_TABLE KeysQueryTable[2] = {};
+ KeysQueryTable[0].QueryRoutine = GetRegistryKeyedDisabledServicesQueryRoutine;
+ KeysQueryTable[0].EntryContext = ¶ms;
+ RegQueryRegistryKeys(HKEY_LOCAL_MACHINE, L"SOFTWARE\\Microsoft\\Shared Tools\\MSConfig\\services", KeysQueryTable, Service->lpServiceName);
+
+ bAddServiceToList = params.bIsPresent;
+
+ if (bIsWindows && bIsOSVersionLessThanVista && !bAddServiceToList)
+ {
+ QUERY_REGISTRY_VALUES_TABLE ValuesQueryTable[2] = {};
+ ValuesQueryTable[0].QueryRoutine = GetRegistryValuedDisabledServicesQueryRoutine;
+ ValuesQueryTable[0].EntryContext = ¶ms;
+ RegQueryRegistryValues(HKEY_LOCAL_MACHINE, L"SOFTWARE\\Microsoft\\Shared Tools\\MSConfig\\services", ValuesQueryTable, Service->lpServiceName);
+
+ bAddServiceToList = params.bIsPresent;
+ }
+ }
+ else
+ {
+ bAddServiceToList = TRUE;
+ }
+ }
+
+ if (bAddServiceToList)
+ {
+ //
+ // Check if service is required by the system.
+ //
+ BOOL bIsRequired = FALSE;
+
+ dwBytesNeeded = 0;
+ QueryServiceConfig2(hService, SERVICE_CONFIG_FAILURE_ACTIONS, NULL, 0, &dwBytesNeeded);
+ // if (GetLastError() == ERROR_INSUFFICIENT_BUFFER)
+
+ LPSERVICE_FAILURE_ACTIONS lpServiceFailureActions = (LPSERVICE_FAILURE_ACTIONS)MemAlloc(0, dwBytesNeeded);
+ if (!lpServiceFailureActions)
+ {
+ MemFree(lpszVendor);
+ MemFree(lpServiceConfig);
+ CloseServiceHandle(hService);
+ return;
+ }
+
+ QueryServiceConfig2(hService, SERVICE_CONFIG_FAILURE_ACTIONS, (LPBYTE)lpServiceFailureActions, dwBytesNeeded, &dwBytesNeeded);
+
+ // In Microsoft's MSConfig, things are done just like that!! (extracted string values from msconfig.exe)
+ if ( ( wcsicmp(Service->lpServiceName, L"rpcss" ) == 0 ||
+ wcsicmp(Service->lpServiceName, L"rpclocator") == 0 ||
+ wcsicmp(Service->lpServiceName, L"dcomlaunch") == 0 ) ||
+ ( lpServiceFailureActions &&
+ (lpServiceFailureActions->cActions >= 1) &&
+ (lpServiceFailureActions->lpsaActions[0].Type == SC_ACTION_REBOOT) ) ) // We add also this test, which corresponds to real life.
+ {
+ bIsRequired = TRUE;
+ }
+ MemFree(lpServiceFailureActions);
+
+ //
+ // Add the service into the list.
+ //
+ LVITEM item = {};
+ item.mask = LVIF_TEXT | LVIF_PARAM;
+ item.pszText = Service->lpDisplayName;
+ item.lParam = reinterpret_cast<LPARAM>(new ServiceItem(Service->lpServiceName, bIsServiceEnabled, bIsRequired));
+ item.iItem = ListView_InsertItem(hServicesListCtrl, &item);
+
+ if (bIsRequired)
+ {
+ LPWSTR lpszYes = LoadResourceString(hInst, IDS_YES);
+ ListView_SetItemText(hServicesListCtrl, item.iItem, 1, lpszYes);
+ MemFree(lpszYes);
+ }
+
+ ListView_SetItemText(hServicesListCtrl, item.iItem, 2, lpszVendor);
+
+ LPWSTR lpszStatus = LoadResourceString(hInst, ((Service->ServiceStatusProcess.dwCurrentState == SERVICE_STOPPED) ? IDS_SERVICES_STATUS_STOPPED : IDS_SERVICES_STATUS_RUNNING));
+ ListView_SetItemText(hServicesListCtrl, item.iItem, 3, lpszStatus);
+ MemFree(lpszStatus);
+
+ if (!bIsServiceEnabled)
+ {
+ LPWSTR lpszUnknown = LoadResourceString(hInst, IDS_UNKNOWN);
+
+ LPWSTR lpszDisableDate = FormatDateTime(¶ms.time);
+ ListView_SetItemText(hServicesListCtrl, item.iItem, 4, (lpszDisableDate ? lpszDisableDate : lpszUnknown));
+ FreeDateTime(lpszDisableDate);
+
+ MemFree(lpszUnknown);
+ }
+
+ ListView_SetCheckState(hServicesListCtrl, item.iItem, (!bIsModifiedService ? bIsServiceEnabled : !bIsServiceEnabled));
+ }
+ }
+
+ MemFree(lpszVendor);
+ MemFree(lpServiceConfig);
+ CloseServiceHandle(hService);
+
+ return;
+}
+
+static void ClearServicesList(void)
+{
+ LVITEM lvitem = {};
+ lvitem.mask = LVIF_PARAM;
+ lvitem.iItem = -1; // From the beginning.
+
+ while ((lvitem.iItem = ListView_GetNextItem(hServicesListCtrl, lvitem.iItem, LVNI_ALL)) != -1)
+ {
+ ListView_GetItem(hServicesListCtrl, &lvitem);
+
+ delete reinterpret_cast<ServiceItem*>(lvitem.lParam);
+ lvitem.lParam = NULL;
+ }
+ ListView_DeleteAllItems(hServicesListCtrl);
+
+ return;
+}
+
+static void GetServices(BOOL bHideOSVendorServices = FALSE)
+{
+ //
+ // First of all, clear the list.
+ //
+ ClearServicesList();
+
+ //
+ // Now, we can list the services.
+ //
+
+ // Open the Service Control Manager.
+ SC_HANDLE hSCManager = OpenSCManagerW(NULL, NULL, SC_MANAGER_ENUMERATE_SERVICE);
+ if (hSCManager == NULL)
+ return;
+
+ // Enumerate all the Win32 services.
+ DWORD dwBytesNeeded = 0;
+ DWORD dwNumServices = 0;
+ // DWORD dwResumeHandle = 0;
+ EnumServicesStatusExW(hSCManager, SC_ENUM_PROCESS_INFO, SERVICE_WIN32, SERVICE_STATE_ALL, NULL, 0, &dwBytesNeeded, &dwNumServices, NULL /* &dwResumeHandle */, NULL);
+ // if (GetLastError() == ERROR_MORE_DATA)
+
+ LPENUM_SERVICE_STATUS_PROCESS lpServices = (LPENUM_SERVICE_STATUS_PROCESS)MemAlloc(0, dwBytesNeeded);
+ if (!lpServices)
+ {
+ CloseServiceHandle(hSCManager);
+ return;
+ }
+ EnumServicesStatusExW(hSCManager, SC_ENUM_PROCESS_INFO, SERVICE_WIN32, SERVICE_STATE_ALL, (LPBYTE)lpServices, dwBytesNeeded, &dwBytesNeeded, &dwNumServices, NULL /* &dwResumeHandle */, NULL);
+
+ // Add them into the list.
+ for (DWORD i = 0 ; i < dwNumServices ; ++i)
+ {
+ AddService(hSCManager, lpServices + i, bHideOSVendorServices);
+ }
+
+ // Cleaning.
+ MemFree(lpServices);
+ CloseServiceHandle(hSCManager);
+
+ return;
+}
+
+INT_PTR CALLBACK
+RequiredServicesDisablingDialogWndProc(HWND hDlg,
+ UINT message,
+ WPARAM wParam,
+ LPARAM lParam)
+{
+ UNREFERENCED_PARAMETER(lParam);
+
+ switch (message)
+ {
+ case WM_INITDIALOG:
+ {
+ /* Correctly display message strings */
+ LPCWSTR szOSVendor;
+ size_t itemLength = 0;
+ LPWSTR szItem = NULL, szNewItem = NULL;
+
+ szOSVendor = (bIsWindows ? IDS_WINDOWS : IDS_REACTOS);
+
+ itemLength = GetWindowTextLength(GetDlgItem(hDlg, IDC_STATIC_REQSVCSDIS_INFO)) + 1;
+ szItem = (LPWSTR)MemAlloc(0, itemLength * sizeof(WCHAR));
+ GetDlgItemText(hDlg, IDC_STATIC_REQSVCSDIS_INFO, szItem, (int)itemLength);
+ szNewItem = FormatString(szItem, szOSVendor);
+ SetDlgItemText(hDlg, IDC_STATIC_REQSVCSDIS_INFO, szNewItem);
+ MemFree(szNewItem);
+ MemFree(szItem);
+
+ return TRUE;
+ }
+
+ case WM_COMMAND:
+ {
+ switch (LOWORD(wParam))
+ {
+ case IDOK:
+ {
+ if (Button_GetCheck(GetDlgItem(hDlg, IDC_CBX_REQSVCSDIS_NO_MSG_ANYMORE)) == BST_CHECKED)
+ RegisterNoMsgAnymore();
+
+ EndDialog(hDlg, LOWORD(wParam));
+ return TRUE;
+ }
+
+ case IDCANCEL:
+ EndDialog(hDlg, LOWORD(wParam));
+ return TRUE;
+
+ default:
+ //break;
+ return FALSE;
+ }
+ }
+ }
+
+ return FALSE;
+}
+
+static BOOL ValidateItem(int index, BOOL bNewState, BOOL bDisplayErrors)
+{
+ ServiceItem* pSvcItem = NULL;
+
+ LVITEM truc = {};
+ truc.mask = LVIF_PARAM;
+ truc.iItem = index;
+ ListView_GetItem(hServicesListCtrl, &truc);
+
+ // The lParam member must be valid.
+ pSvcItem = reinterpret_cast<ServiceItem*>(truc.lParam);
+ if (!pSvcItem)
+ return FALSE;
+
+ //
+ // Allow modifications only if the service is not a required service for the system,
+ // or allow only the activation of a disabled required service.
+ //
+ BOOL bOldState = !!(ListView_GetCheckState(hServicesListCtrl, truc.iItem /* == index */) % 2);
+
+ if ( !pSvcItem->m_bIsRequired ||
+ (pSvcItem->m_bIsRequired && !pSvcItem->m_bIsEnabled && bOldState == FALSE && bNewState == TRUE) )
+ {
+ if (bOldState == bNewState)
+ return FALSE;
+
+ ListView_SetCheckState(hServicesListCtrl, index, bNewState);
+
+ if (pSvcItem->m_bIsEnabled) // Enabled service.
+ {
+ if (bNewState == FALSE) // To be deactivated.
+ {
+ userModificationsList.AddTail(pSvcItem->m_lpszSvcName);
+ }
+ else if (bNewState == TRUE) // To be reactivated
+ {
+ POSITION it = userModificationsList.Find(pSvcItem->m_lpszSvcName);
+ if (it)
+ {
+ userModificationsList.RemoveAt(it);
+ }
+ else
+ {
+ OutputDebugString(_T("(1) \"WTF: What The Fukhurmajalmahamadahaldeliya ?!\" (The Dictator, Sacha Baron Cohen)\n"));
+ }
+ }
+ }
+ else // Disabled service.
+ {
+ if (bNewState == TRUE) // To be activated.
+ {
+ userModificationsList.AddTail(pSvcItem->m_lpszSvcName);
+ }
+ else if (bNewState == FALSE) // To be redeactivated
+ {
+ POSITION it = userModificationsList.Find(pSvcItem->m_lpszSvcName);
+ if (it)
+ {
+ userModificationsList.RemoveAt(it);
+ }
+ else
+ {
+ OutputDebugString(_T("(2) \"WTF: What The Fukhurmajalmahamadahaldeliya ?!\" (The Dictator, Sacha Baron Cohen)\n"));
+ }
+ }
+ }
+
+ return TRUE;
+ }
+ else
+ {
+ if (bDisplayErrors)
+ {
+ DialogBoxW(hInst, MAKEINTRESOURCEW(IDD_REQUIRED_SERVICES_DISABLING_DIALOG), hServicesPage /* hMainWnd */, RequiredServicesDisablingDialogWndProc);
+ }
+
+ return FALSE;
+ }
+}
+
+
+static void
+Update_Btn_States(HWND hDlg)
+{
+ // HWND hTree = GetDlgItem(hDlg, IDC_SYSTEM_TREE);
+
+ //
+ // "Enable all" / "Disable all" buttons.
+ //
+ // UINT uRootCheckState = TreeView_GetRealSubtreeState(hTree, TVI_ROOT);
+ UINT uRootCheckState = ListView_GetCheckState(hServicesListCtrl, 0);
+#define OP(a, b) ((a) == (b) ? (a) : 2)
+ int index = 0; // -1 // From the beginning + 1.
+ while ((index = ListView_GetNextItem(hServicesListCtrl, index, LVNI_ALL)) != -1)
+ {
+ UINT temp = ListView_GetCheckState(hServicesListCtrl, index);
+ uRootCheckState = OP(uRootCheckState, temp);
+ }
+
+ if (uRootCheckState == 0)
+ {
+ EnableWindow(GetDlgItem(hDlg, IDC_BTN_SERVICES_ACTIVATE) , TRUE );
+ EnableWindow(GetDlgItem(hDlg, IDC_BTN_SERVICES_DEACTIVATE), FALSE);
+ }
+ else if (uRootCheckState == 1)
+ {
+ EnableWindow(GetDlgItem(hDlg, IDC_BTN_SERVICES_ACTIVATE) , FALSE);
+ EnableWindow(GetDlgItem(hDlg, IDC_BTN_SERVICES_DEACTIVATE), TRUE );
+ }
+ else if (uRootCheckState == 2)
+ {
+ EnableWindow(GetDlgItem(hDlg, IDC_BTN_SERVICES_ACTIVATE) , TRUE);
+ EnableWindow(GetDlgItem(hDlg, IDC_BTN_SERVICES_DEACTIVATE), TRUE);
+ }
+ else
+ {
+ EnableWindow(GetDlgItem(hDlg, IDC_BTN_SERVICES_ACTIVATE) , FALSE);
+ EnableWindow(GetDlgItem(hDlg, IDC_BTN_SERVICES_DEACTIVATE), FALSE);
+ }
+
+ return;
+}
+
+extern "C" {
+
+INT_PTR CALLBACK
+ServicesPageWndProc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam)
+{
+ UNREFERENCED_PARAMETER(lParam);
+ UNREFERENCED_PARAMETER(wParam);
+
+ switch (message)
+ {
+ case WM_INITDIALOG:
+ {
+ hServicesPage = hDlg;
+ hServicesListCtrl = GetDlgItem(hServicesPage, IDC_SERVICES_LIST);
+
+ //
+ // Correctly display message strings.
+ //
+ LPCWSTR szOSVendor = (bIsWindows ? IDS_MICROSOFT : IDS_REACTOS);
+
+ size_t itemLength = 0;
+ LPWSTR szItem = NULL, szNewItem = NULL;
+
+ itemLength = GetWindowTextLength(GetDlgItem(hServicesPage, IDC_STATIC_SERVICES_WARNING)) + 1;
+ szItem = (LPWSTR)MemAlloc(0, itemLength * sizeof(WCHAR));
+ GetDlgItemText(hServicesPage, IDC_STATIC_SERVICES_WARNING, szItem, (int)itemLength);
+ szNewItem = FormatString(szItem, szOSVendor);
+ SetDlgItemText(hServicesPage, IDC_STATIC_SERVICES_WARNING, szNewItem);
+ MemFree(szNewItem);
+ MemFree(szItem);
+
+ itemLength = GetWindowTextLength(GetDlgItem(hServicesPage, IDC_CBX_SERVICES_MASK_PROPRIETARY_SVCS)) + 1;
+ szItem = (LPWSTR)MemAlloc(0, itemLength * sizeof(WCHAR));
+ GetDlgItemText(hServicesPage, IDC_CBX_SERVICES_MASK_PROPRIETARY_SVCS, szItem, (int)itemLength);
+ szNewItem = FormatString(szItem, szOSVendor);
+ SetDlgItemText(hServicesPage, IDC_CBX_SERVICES_MASK_PROPRIETARY_SVCS, szNewItem);
+ MemFree(szNewItem);
+ MemFree(szItem);
+
+ //
+ // Initialize the styles.
+ //
+ DWORD dwStyle = ListView_GetExtendedListViewStyle(hServicesListCtrl);
+ ListView_SetExtendedListViewStyle(hServicesListCtrl, dwStyle | LVS_EX_FULLROWSELECT | LVS_EX_CHECKBOXES);
+ /** SetWindowTheme(hServicesListCtrl, _T("Explorer"), NULL); // TODO: activate this only if Windows >= XP **/
+
+ //
+ // Initialize the application page's controls.
+ //
+ LVCOLUMN column = {};
+
+ // First column : Service's name.
+ column.mask = LVCF_TEXT | LVCF_WIDTH;
+ column.pszText = LoadResourceString(hInst, IDS_SERVICES_COLUMN_SERVICE);
+ column.cx = 150;
+ ListView_InsertColumn(hServicesListCtrl, 0, &column);
+ MemFree(column.pszText);
+
+ // Second column : Whether the service is required or not.
+ column.mask = LVCF_TEXT | LVCF_WIDTH;
+ column.pszText = LoadResourceString(hInst, IDS_SERVICES_COLUMN_REQ);
+ column.cx = 60;
+ ListView_InsertColumn(hServicesListCtrl, 1, &column);
+ MemFree(column.pszText);
+
+ // Third column : Service's vendor.
+ column.mask = LVCF_TEXT | LVCF_WIDTH;
+ column.pszText = LoadResourceString(hInst, IDS_SERVICES_COLUMN_VENDOR);
+ column.cx = 150;
+ ListView_InsertColumn(hServicesListCtrl, 2, &column);
+ MemFree(column.pszText);
+
+ // Fourth column : Service's status.
+ column.mask = LVCF_TEXT | LVCF_WIDTH;
+ column.pszText = LoadResourceString(hInst, IDS_SERVICES_COLUMN_STATUS);
+ column.cx = 60;
+ ListView_InsertColumn(hServicesListCtrl, 3, &column);
+ MemFree(column.pszText);
+
+ // Fifth column : Service's disabled date.
+ column.mask = LVCF_TEXT | LVCF_WIDTH;
+ column.pszText = LoadResourceString(hInst, IDS_SERVICES_COLUMN_DATEDISABLED);
+ column.cx = 120;
+ ListView_InsertColumn(hServicesListCtrl, 4, &column);
+ MemFree(column.pszText);
+
+ //
+ // Populate and sort the list.
+ //
+ GetServices();
+ ListView_Sort(hServicesListCtrl, 0);
+ Update_Btn_States(hDlg);
+
+ // Select the first item.
+ ListView_SetItemState(hServicesListCtrl, 0, LVIS_SELECTED, LVIS_SELECTED);
+
+ return TRUE;
+ }
+
+ case WM_DESTROY:
+ {
+ ClearServicesList();
+ userModificationsList.RemoveAll();
+ return 0;
+ }
+
+ case WM_COMMAND:
+ {
+ switch (LOWORD(wParam))
+ {
+ case IDC_BTN_SERVICES_ACTIVATE:
+ {
+ BOOL bAreThereModifs = FALSE;
+
+ int index = -1; // From the beginning.
+ while ((index = ListView_GetNextItem(hServicesListCtrl, index, LVNI_ALL)) != -1)
+ {
+ bAreThereModifs = ValidateItem(index, TRUE, FALSE) || bAreThereModifs; // The order is verrrrrry important !!!!
+ }
+
+ if (bAreThereModifs)
+ {
+ Update_Btn_States(hDlg);
+ PropSheet_Changed(GetParent(hServicesPage), hServicesPage);
+ }
+
+ return TRUE;
+ }
+
+ case IDC_BTN_SERVICES_DEACTIVATE:
+ {
+ BOOL bAreThereModifs = FALSE;
+
+ int index = -1; // From the beginning.
+ while ((index = ListView_GetNextItem(hServicesListCtrl, index, LVNI_ALL)) != -1)
+ {
+ bAreThereModifs = ValidateItem(index, FALSE, FALSE) || bAreThereModifs; // The order is verrrrrry important !!!!
+ }
+
+ if (bAreThereModifs)
+ {
+ Update_Btn_States(hDlg);
+ PropSheet_Changed(GetParent(hServicesPage), hServicesPage);
+ }
+
+ return TRUE;
+ }
+
+ case IDC_CBX_SERVICES_MASK_PROPRIETARY_SVCS:
+ {
+ bMaskProprietarySvcs = !bMaskProprietarySvcs;
+ GetServices(bMaskProprietarySvcs);
+ Update_Btn_States(hDlg);
+
+ return TRUE;
+ }
+
+ default:
+ return FALSE;
+ }
+ return FALSE;
+ }
+
+ case UM_CHECKSTATECHANGE:
+ {
+ BOOL bNewCheckState = !!((ListView_GetCheckState(hServicesListCtrl, int(lParam)) + 1) % 2);
+
+ if (ValidateItem(/*reinterpret_cast<int>*/ int(lParam), bNewCheckState, !HideEssentialServiceWarning()))
+ {
+ Update_Btn_States(hDlg);
+ PropSheet_Changed(GetParent(hServicesPage), hServicesPage);
+ }
+
+ return TRUE;
+ }
+
+ case WM_NOTIFY:
+ {
+ if (reinterpret_cast<LPNMHDR>(lParam)->hwndFrom == hServicesListCtrl)
+ {
+ switch (reinterpret_cast<LPNMHDR>(lParam)->code)
+ {
+ case NM_CLICK:
+ case NM_RCLICK:
+ {
+ DWORD dwpos = GetMessagePos();
+ LVHITTESTINFO ht = {};
+ ht.pt.x = GET_X_LPARAM(dwpos);
+ ht.pt.y = GET_Y_LPARAM(dwpos);
+ MapWindowPoints(HWND_DESKTOP /*NULL*/, hServicesListCtrl, &ht.pt, 1);
+
+ /*
+ * We use ListView_SubItemHitTest(...) and not ListView_HitTest(...)
+ * because ListView_HitTest(...) returns bad flags when one clicks
+ * on a sub-item different from 0. The flags then contain LVHT_ONITEMSTATEICON
+ * which must not be obviously present in this case.
+ */
+ ListView_SubItemHitTest(hServicesListCtrl, &ht);
+
+ if (LVHT_ONITEMSTATEICON & ht.flags)
+ {
+ PostMessage(hDlg, UM_CHECKSTATECHANGE, 0, (LPARAM)ht.iItem);
+
+ // Disable default behaviour. Needed for the UM_CHECKSTATECHANGE
+ // custom notification to work as expected.
+ SetWindowLongPtr(hDlg, DWLP_MSGRESULT, TRUE);
+ }
+
+ return TRUE;
+ }
+
+ case NM_DBLCLK:
+ case NM_RDBLCLK:
+ {
+ // We deactivate double-clicks.
+ SetWindowLongPtr(hDlg, DWLP_MSGRESULT, TRUE);
+ return TRUE;
+ }
+
+ case LVN_KEYDOWN:
+ {
+ if (reinterpret_cast<LPNMLVKEYDOWN>(lParam)->wVKey == VK_SPACE)
+ {
+ int iItem = ListView_GetSelectionMark(hServicesListCtrl);
+ PostMessage(hDlg, UM_CHECKSTATECHANGE, 0, (LPARAM)iItem);
+
+ // Disable default behaviour. Needed for the UM_CHECKSTATECHANGE
+ // custom notification to work as expected.
+ SetWindowLongPtr(hDlg, DWLP_MSGRESULT, TRUE);
+ }
+
+ return TRUE;
+ }
+
+ case LVN_COLUMNCLICK:
+ {
+ int iSortingColumn = reinterpret_cast<LPNMLISTVIEW>(lParam)->iSubItem;
+
+ ListView_SortEx(hServicesListCtrl, iSortingColumn, iSortedColumn);
+ iSortedColumn = iSortingColumn;
+
+ return TRUE;
+ }
+ }
+ }
+ else
+ {
+ switch (reinterpret_cast<LPNMHDR>(lParam)->code)
+ {
+ case PSN_APPLY:
+ {
+ // Try to apply the modifications to the system.
+ MessageBox(NULL, _T("In Services page: PSN_APPLY"), _T("Info"), MB_ICONINFORMATION);
+
+ /*
+ //
+ // Move this away...
+ //
+ int iRetVal = MessageBox(NULL, _T("Would you really want to modify the configuration of your system ?"), _T("Warning"), MB_ICONWARNING | MB_YESNOCANCEL);
+
+ if (iRetVal == IDYES /\* modifications are OK *\/)
+ SetWindowLongPtr(hServicesPage, DWLP_MSGRESULT, PSNRET_NOERROR);
+ else if (iRetVal == IDNO /\* modifications are not OK *\/)
+ SetWindowLongPtr(hServicesPage, DWLP_MSGRESULT, PSNRET_NOERROR);
+ else // if (iRetVal == IDCANCEL) // There was an error...
+ SetWindowLongPtr(hServicesPage, DWLP_MSGRESULT, PSNRET_INVALID);
+ */
+
+ //
+ // We modify the services which are stored in the user modification list.
+ //
+
+ // 1- Open the Service Control Manager for modifications.
+ SC_HANDLE hSCManager = OpenSCManagerW(NULL, NULL, SC_MANAGER_ALL_ACCESS);
+ if (hSCManager != NULL)
+ {
+ LPCWSTR svcName;
+
+ for (POSITION it = userModificationsList.GetHeadPosition(); it; userModificationsList.GetNext(it))
+ {
+ svcName = userModificationsList.GetAt(it);
+
+ // 2- Retrieve a handle to the service.
+ SC_HANDLE hService = OpenServiceW(hSCManager, svcName, SERVICE_QUERY_CONFIG | SERVICE_CHANGE_CONFIG);
+ if (hService == NULL)
+ {
+ // TODO : Show a message box.
+ continue;
+ }
+
+ DWORD dwBytesNeeded = 0;
+ QueryServiceConfigW(hService, NULL, 0, &dwBytesNeeded);
+ // if (GetLastError() == ERROR_INSUFFICIENT_BUFFER)
+
+ LPQUERY_SERVICE_CONFIG lpServiceConfig = (LPQUERY_SERVICE_CONFIG)MemAlloc(0, dwBytesNeeded);
+ if (!lpServiceConfig)
+ {
+ CloseServiceHandle(hService);
+ continue; // TODO ? Show a message box...
+ }
+ QueryServiceConfigW(hService, lpServiceConfig, dwBytesNeeded, &dwBytesNeeded);
+
+ if (lpServiceConfig->dwStartType == SERVICE_DISABLED) // We have a disabled service which is becoming to be enabled.
+ {
+ // 3a- Retrive the properties of the disabled service from the registry.
+ RegistryDisabledServiceItemParams params = {};
+
+ QUERY_REGISTRY_KEYS_TABLE KeysQueryTable[2] = {};
+ KeysQueryTable[0].QueryRoutine = GetRegistryKeyedDisabledServicesQueryRoutine;
+ KeysQueryTable[0].EntryContext = ¶ms;
+ RegQueryRegistryKeys(HKEY_LOCAL_MACHINE, L"SOFTWARE\\Microsoft\\Shared Tools\\MSConfig\\services", KeysQueryTable, (PVOID)svcName);
+
+ if (bIsWindows && bIsOSVersionLessThanVista && !params.bIsPresent)
+ {
+ QUERY_REGISTRY_VALUES_TABLE ValuesQueryTable[2] = {};
+ ValuesQueryTable[0].QueryRoutine = GetRegistryValuedDisabledServicesQueryRoutine;
+ ValuesQueryTable[0].EntryContext = ¶ms;
+ RegQueryRegistryValues(HKEY_LOCAL_MACHINE, L"SOFTWARE\\Microsoft\\Shared Tools\\MSConfig\\services", ValuesQueryTable, (PVOID)svcName);
+ }
+
+ if (params.bIsPresent)
+ {
+ // 4a- Modify the service.
+ ChangeServiceConfigW(hService, SERVICE_NO_CHANGE, params.dwStartType, SERVICE_NO_CHANGE, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+
+ // 5a- Remove the registry entry of the service.
+ if (params.bIsKeyed)
+ {
+ CAtlStringW serviceRegKey(L"SOFTWARE\\Microsoft\\Shared Tools\\MSConfig\\services\\");
+ serviceRegKey += svcName;
+ RegDeleteKeyW(HKEY_LOCAL_MACHINE, serviceRegKey);
+
+ /***** HACK for Windows < Vista (e.g. 2000, Xp, 2003...) *****/
+ //
+ // Delete also the valued-entry of the service.
+ //
+ if (bIsWindows && bIsOSVersionLessThanVista)
+ {
+ HKEY hSubKey = NULL;
+ if (RegOpenKeyEx(HKEY_LOCAL_MACHINE, L"SOFTWARE\\Microsoft\\Shared Tools\\MSConfig\\services", 0, KEY_SET_VALUE /*KEY_READ*/, &hSubKey) == ERROR_SUCCESS)
+ {
+ RegDeleteValue(hSubKey, svcName);
+ RegCloseKey(hSubKey);
+ }
+ }
+ /*************************************************************/
+ }
+ else
+ {
+ HKEY hSubKey = NULL;
+ if (RegOpenKeyEx(HKEY_LOCAL_MACHINE, L"SOFTWARE\\Microsoft\\Shared Tools\\MSConfig\\services", 0, KEY_SET_VALUE /*KEY_READ*/, &hSubKey) == ERROR_SUCCESS)
+ {
+ RegDeleteValue(hSubKey, svcName);
+ RegCloseKey(hSubKey);
+ }
+ }
+
+ ////////// HACKHACKHACKHACKHACKHACKHACKHACKHACKHACKHACK ///////////
+ // userModificationsList.RemoveAt(it);
+ }
+ else
+ {
+ // Ohoh !! We have a very big problem.
+ MessageBox(NULL, _T("WTF ??"), _T("FATAL ERROR !!!!"), MB_ICONERROR);
+ }
+ }
+ else // We have an enabled service which is becoming to be disabled.
+ {
+ // 3b- Retrieve the local time of disabling.
+ SYSTEMTIME disableDate = {};
+ GetLocalTime(&disableDate);
+
+ // 4b- Modify the service.
+ ChangeServiceConfigW(hService, SERVICE_NO_CHANGE, SERVICE_DISABLED, SERVICE_NO_CHANGE, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+
+ // 5b- Register the service into the registry.
+ CAtlStringW serviceRegKey(L"SOFTWARE\\Microsoft\\Shared Tools\\MSConfig\\services\\");
+ serviceRegKey += svcName;
+ HKEY hSubKey = NULL;
+ if (RegCreateKeyEx(HKEY_LOCAL_MACHINE, serviceRegKey, 0, NULL, REG_OPTION_NON_VOLATILE, KEY_SET_VALUE, NULL, &hSubKey, NULL) == ERROR_SUCCESS)
+ {
+ RegSetDWORDValue(hSubKey, NULL, svcName, FALSE, lpServiceConfig->dwStartType);
+
+ #if 1 // DisableDate
+ RegSetDWORDValue(hSubKey, NULL, L"DAY" , FALSE, disableDate.wDay );
+ RegSetDWORDValue(hSubKey, NULL, L"HOUR" , FALSE, disableDate.wHour );
+ RegSetDWORDValue(hSubKey, NULL, L"MINUTE", FALSE, disableDate.wMinute);
+ RegSetDWORDValue(hSubKey, NULL, L"MONTH" , FALSE, disableDate.wMonth );
+ RegSetDWORDValue(hSubKey, NULL, L"SECOND", FALSE, disableDate.wSecond);
+ RegSetDWORDValue(hSubKey, NULL, L"YEAR" , FALSE, disableDate.wYear );
+ #endif
+
+ RegCloseKey(hSubKey);
+ }
+
+ /***** HACK for Windows < Vista (e.g. 2000, Xp, 2003...) *****/
+ //
+ // Save also a valued-entry for the service.
+ //
+ if (bIsWindows && bIsOSVersionLessThanVista)
+ {
+ RegSetDWORDValue(HKEY_LOCAL_MACHINE, L"SOFTWARE\\Microsoft\\Shared Tools\\MSConfig\\services", svcName, TRUE, lpServiceConfig->dwStartType);
+ }
+ /*************************************************************/
+
+ ////////// HACKHACKHACKHACKHACKHACKHACKHACKHACKHACKHACK ///////////
+ // userModificationsList.RemoveAt(it);
+ }
+
+ MemFree(lpServiceConfig);
+ CloseServiceHandle(hService);
+ }
+
+ //////////// HACK HACK !!!! ////////////
+ userModificationsList.RemoveAll();
+ ////////////////////////////////////////
+
+ CloseServiceHandle(hSCManager);
+
+
+ //// PropSheet_UnChanged(GetParent(hServicesPage), hServicesPage); ////
+ PropSheet_CancelToClose(GetParent(hDlg));
+
+ /* Modifications are OK */
+ SetWindowLongPtr(hServicesPage, DWLP_MSGRESULT, PSNRET_NOERROR);
+ }
+ else
+ {
+ MessageBox(hDlg, _T("Impossible to open the SC manager..."), _T("Error"), MB_ICONERROR);
+
+ // There was an error...
+ SetWindowLongPtr(hServicesPage, DWLP_MSGRESULT, PSNRET_INVALID);
+ }
+
+ GetServices(bMaskProprietarySvcs);
+ Update_Btn_States(hDlg);
+
+ return TRUE;
+ }
+
+ case PSN_HELP:
+ {
+ MessageBox(hServicesPage, _T("Help not implemented yet!"), _T("Help"), MB_ICONINFORMATION | MB_OK);
+ return TRUE;
+ }
+
+ case PSN_KILLACTIVE: // Is going to lose activation.
+ {
+ // Changes are always valid of course.
+ SetWindowLongPtr(hServicesPage, DWLP_MSGRESULT, FALSE);
+ return TRUE;
+ }
+
+ case PSN_QUERYCANCEL:
+ {
+ // RefreshStartupList();
+
+ // Allows cancellation.
+ SetWindowLongPtr(hServicesPage, DWLP_MSGRESULT, FALSE);
+
+ return TRUE;
+ }
+
+ case PSN_QUERYINITIALFOCUS:
+ {
+ // Give the focus on and select the first item.
+ ListView_SetItemState(hServicesListCtrl, 0, LVIS_FOCUSED | LVIS_SELECTED, LVIS_FOCUSED | LVIS_SELECTED);
+
+ SetWindowLongPtr(hServicesPage, DWLP_MSGRESULT, (LONG_PTR)hServicesListCtrl);
+ return TRUE;
+ }
+
+ //
+ // DO NOT TOUCH THESE NEXT MESSAGES, THEY ARE OK LIKE THIS...
+ //
+ case PSN_RESET: // Perform final cleaning, called before WM_DESTROY.
+ return TRUE;
+
+ case PSN_SETACTIVE: // Is going to gain activation.
+ {
+ SetWindowLongPtr(hServicesPage, DWLP_MSGRESULT, 0);
+ return TRUE;
+ }
+
+ default:
+ break;
+ }
+ }
+ }
+
+ default:
+ return FALSE;
+ }
+
+ return FALSE;
+}
+
+}
-#ifndef _SVRPAGE_H_
-#define _SVRPAGE_H_
-
-extern HWND hServicesPage;
-extern HWND hServicesListCtrl;
+#ifndef _SRVPAGE_H_
+#define _SRVPAGE_H_
+DWORD GetServicesActivation(VOID);
INT_PTR CALLBACK ServicesPageWndProc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam);
-#endif /* _SVRPAGE_H_ */
+#endif
static void
AddItem(BOOL bIsStandard, const _bstr_t& name, const _bstr_t& descr, TOOL* tool)
{
- LPTSTR lpszStandard;
+ LPWSTR lpszStandard;
LVITEM item = {};
assert(tool);
item.pszText = (LPWSTR)name;
item.iSubItem = 0;
// item.iItem = ListView_GetItemCount(hToolsListCtrl);
-
+
ListView_InsertItem(hToolsListCtrl, &item);
if (bIsStandard)
if (ListView_GetItem(hToolsListCtrl, &item)) // (item.iItem > -1) // TODO: corriger ailleurs ce genre de code...
{
- LPTSTR lpszCmdLine = NULL;
+ LPWSTR lpszCmdLine = NULL;
size_t numOfChars = 0;
tool = reinterpret_cast<TOOL*>(item.lParam);
(Button_GetCheck(GetDlgItem(hToolsPage, IDC_CBX_TOOLS_ADVOPT)) == BST_CHECKED) )
{
numOfChars = BuildCommandLine(NULL, tool->m_Command, tool->m_AdvParam, 0);
- lpszCmdLine = new WCHAR[numOfChars];
+ lpszCmdLine = (LPWSTR)MemAlloc(0, numOfChars * sizeof(WCHAR));
BuildCommandLine(lpszCmdLine, tool->m_Command, tool->m_AdvParam, numOfChars);
}
else
{
numOfChars = BuildCommandLine(NULL, tool->m_Command, tool->m_DefParam, 0);
- lpszCmdLine = new WCHAR[numOfChars];
+ lpszCmdLine = (LPWSTR)MemAlloc(0, numOfChars * sizeof(WCHAR));
BuildCommandLine(lpszCmdLine, tool->m_Command, tool->m_DefParam, numOfChars);
}
SendDlgItemMessage(hToolsPage, IDC_TOOLS_CMDLINE, WM_SETTEXT, 0, (LPARAM)lpszCmdLine);
- delete[] lpszCmdLine;
+ MemFree(lpszCmdLine);
}
else
{
MessageBoxW(hToolsPage, L"Help not implemented yet!", L"Help", MB_ICONINFORMATION | MB_OK);
return TRUE;
}
-
+
case PSN_KILLACTIVE: // Is going to lose activation.
{
// Changes are always valid of course.
if ( (iDateBufSize > 0) && (iTimeBufSize > 0) )
{
- lpszDateTime = (LPWSTR)MemAlloc(0, (iDateBufSize + iTimeBufSize) * sizeof(TCHAR));
+ lpszDateTime = (LPWSTR)MemAlloc(0, (iDateBufSize + iTimeBufSize) * sizeof(WCHAR));
GetDateFormatW(LOCALE_USER_DEFAULT,
/* Only for Windows 7 : DATE_AUTOLAYOUT | */ DATE_SHORTDATE,
// When passing a zero-length buffer size, LoadString(...) returns a
// read-only pointer buffer to the program's resource string.
- iStrSize = LoadString(hInstance, uID, (LPTSTR)&lpszResourceString, 0);
+ iStrSize = LoadStringW(hInstance, uID, (LPWSTR)&lpszResourceString, 0);
if ( lpszResourceString && ( (lpszDestBuf = (LPWSTR)MemAlloc(0, (iStrSize + 1) * sizeof(WCHAR))) != NULL ) )
{
- _tcsncpy(lpszDestBuf, lpszResourceString, iStrSize);
+ wcsncpy(lpszDestBuf, lpszResourceString, iStrSize);
lpszDestBuf[iStrSize] = L'\0'; // NULL-terminate the string
if (pSize)
LPVOID pvData = NULL;
UINT BufLen = 0;
WORD wCodePage = 0, wLangID = 0;
- LPTSTR lpszStrFileInfo = NULL;
-
+ LPWSTR lpszStrFileInfo = NULL;
+
LPWSTR lpszData = NULL;
if (lpszFilename == NULL) return NULL;
return hr;
/* These methods should not fail so don't inspect result */
- (*ppDoc)->put_async(VARIANT_FALSE);
+ (*ppDoc)->put_async(VARIANT_FALSE);
(*ppDoc)->put_validateOnParse(VARIANT_FALSE);
(*ppDoc)->put_resolveExternals(VARIANT_FALSE);
#ifndef IID_PPV_ARGS
extern "C++"
{
- template<typename T> void** IID_PPV_ARGS_Helper(T** pp)
+ template<typename T> void** IID_PPV_ARGS_Helper(T** pp)
{
static_cast<IUnknown*>(*pp); // make sure everyone derives from IUnknown
return reinterpret_cast<void**>(pp);