started implementation of msconfig tool
Modified: trunk/reactos/subsys/system/directory.xml
Added: trunk/reactos/subsys/system/msconfig/
Added: trunk/reactos/subsys/system/msconfig/De.rc
Added: trunk/reactos/subsys/system/msconfig/En.rc
Added: trunk/reactos/subsys/system/msconfig/msconfig.c
Added: trunk/reactos/subsys/system/msconfig/msconfig.h
Added: trunk/reactos/subsys/system/msconfig/msconfig.rc
Added: trunk/reactos/subsys/system/msconfig/msconfig.xml
Added: trunk/reactos/subsys/system/msconfig/precomp.h
Added: trunk/reactos/subsys/system/msconfig/resource.h
Added: trunk/reactos/subsys/system/msconfig/srvpage.c
Added: trunk/reactos/subsys/system/msconfig/srvpage.h
Added: trunk/reactos/subsys/system/msconfig/toolspage.c
Added: trunk/reactos/subsys/system/msconfig/toolspage.h
_____
Modified: trunk/reactos/subsys/system/directory.xml
--- trunk/reactos/subsys/system/directory.xml 2005-10-16 18:29:08 UTC
(rev 18503)
+++ trunk/reactos/subsys/system/directory.xml 2005-10-16 22:59:45 UTC
(rev 18504)
@@ -32,6 +32,9 @@
<directory name="lsass">
<xi:include href="lsass/lsass.xml" />
</directory>
+<directory name="msconfig">
+ <xi:include href="msconfig/msconfig.xml" />
+</directory>
<directory name="msiexec">
<xi:include href="msiexec/msiexec.xml" />
</directory>
_____
Added: trunk/reactos/subsys/system/msconfig/De.rc
--- trunk/reactos/subsys/system/msconfig/De.rc 2005-10-16 18:29:08 UTC
(rev 18503)
+++ trunk/reactos/subsys/system/msconfig/De.rc 2005-10-16 22:59:45 UTC
(rev 18504)
@@ -0,0 +1,71 @@
+LANGUAGE LANG_GERMAN, SUBLANG_GERMAN
+
+IDD_MSCONFIG_DIALOG DIALOG DISCARDABLE 0, 0, 378, 220
+STYLE DS_CENTER | WS_MINIMIZEBOX | WS_POPUP |
+ WS_CLIPSIBLINGS | WS_CLIPCHILDREN | WS_CAPTION | WS_SYSMENU |
+ WS_THICKFRAME
+CAPTION "Systemkonfigurationsprogramm"
+FONT 8, "Tahoma"
+BEGIN
+ CONTROL "Tab1",IDC_TAB,"SysTabControl32",WS_TABSTOP,2,2,374,195
+ DEFPUSHBUTTON "OK", IDOK, 211, 201, 50, 14, WS_CHILD | WS_VISIBLE |
WS_TABSTOP
+ PUSHBUTTON "&Hilfe", IDC_BTN_HELP, 2, 201, 50, 14, WS_CHILD |
WS_VISIBLE | WS_TABSTOP
+ PUSHBUTTON "Abbrechen", IDCANCEL, 267, 201, 50, 14, WS_CHILD |
WS_VISIBLE | WS_TABSTOP
+ PUSHBUTTON "?&bernehmen", IDC_BTN_APPLY, 323, 201, 50, 14, WS_CHILD
| WS_VISIBLE | WS_TABSTOP
+END
+
+IDD_TOOLS_PAGE DIALOG DISCARDABLE 0, 0, 362, 175
+STYLE DS_CONTROL | WS_CHILD | WS_CLIPCHILDREN
+FONT 8, "Tahoma"
+BEGIN
+ CONTROL "List2",IDC_TOOLS_LIST, "SysListView32", LVS_REPORT |
LVS_SINGLESEL | LVS_SHOWSELALWAYS | WS_BORDER | WS_TABSTOP, 2, 1, 360,
134
+ EDITTEXT IDC_TOOLS_CMDLINE, 1, 139, 360, 12, ES_READONLY
+ PUSHBUTTON "&Ausf³hren", IDC_BTN_RUN, 311, 155, 50, 14, WS_CHILD |
WS_VISIBLE | WS_TABSTOP
+END
+
+IDD_SERVICES_PAGE DIALOG DISCARDABLE 0, 0, 362, 175
+STYLE DS_CONTROL | WS_CHILD | WS_CLIPCHILDREN
+FONT 8, "Tahoma"
+BEGIN
+ CONTROL "List1",IDC_SERVICES_LIST, "SysListView32", LVS_REPORT |
LVS_SINGLESEL | LVS_SHOWSELALWAYS | WS_BORDER | WS_TABSTOP, 2, 1, 360,
168
+END
+
+STRINGTABLE DISCARDABLE
+BEGIN
+ IDS_TAB_GENERAL "Allgemein"
+ IDS_TAB_FREELDR "FREELDR.INI"
+ IDS_TAB_SERVICES "Dienste"
+ IDS_TAB_STARTUP "Systemstart"
+ IDS_TAB_TOOLS "Tools"
+END
+
+STRINGTABLE DISCARDABLE
+BEGIN
+ IDS_SERVICES_COLUMN_SERVICE "Dienst"
+ IDS_SERVICES_COLUMN_VENDOR "Hersteller"
+ IDS_SERVICES_COLUMN_STATUS "Status"
+END
+
+STRINGTABLE DISCARDABLE
+BEGIN
+ IDS_TOOLS_COLUMN_NAME "Name"
+ IDS_TOOLS_COLUMN_DESCR "Beschreibung"
+
+ IDS_TOOLS_CMD_NAME "Konsole"
+ IDS_TOOLS_CMD_DESCR "Íffnet die Eingabeaufforderung."
+ IDS_TOOLS_CMD_CMD "cmd.exe"
+ IDS_TOOLS_CMD_PARAM ""
+
+ IDS_TOOLS_INFO_NAME "Version"
+ IDS_TOOLS_INFO_DESCR "Zeigt die installierte ReactOS Version
an."
+ IDS_TOOLS_INFO_CMD "winver.exe"
+
+ IDS_TOOLS_REGEDIT_NAME "Registrierungs-Editor"
+ IDS_TOOLS_REGEDIT_DESCR "Íffnet den Registrierungs-Editor."
+ IDS_TOOLS_REGEDIT_CMD "regedit.exe"
+
+ IDS_TOOLS_SYSDM_NAME "Systemeigenschaften"
+ IDS_TOOLS_SYSDM_DESCR "Zeigt Informationen ³ber diesen Rechner
an."
+ IDS_TOOLS_SYSDM_CMD "control"
+ IDS_TOOLS_SYSDM_PARAM "sysdm.cpl"
+END
_____
Added: trunk/reactos/subsys/system/msconfig/En.rc
--- trunk/reactos/subsys/system/msconfig/En.rc 2005-10-16 18:29:08 UTC
(rev 18503)
+++ trunk/reactos/subsys/system/msconfig/En.rc 2005-10-16 22:59:45 UTC
(rev 18504)
@@ -0,0 +1,70 @@
+LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US
+
+IDD_MSCONFIG_DIALOG DIALOG DISCARDABLE 0, 0, 378, 220
+STYLE DS_CENTER | WS_MINIMIZEBOX | WS_POPUP |
+ WS_CLIPSIBLINGS | WS_CLIPCHILDREN | WS_CAPTION | WS_SYSMENU |
+ WS_THICKFRAME
+CAPTION "Systemkonfigurationsprogramm"
+FONT 8, "Tahoma"
+BEGIN
+ CONTROL "Tab1",IDC_TAB,"SysTabControl32",WS_TABSTOP,2,2,374,195
+ DEFPUSHBUTTON "OK", IDOK, 211, 201, 50, 14, WS_CHILD | WS_VISIBLE |
WS_TABSTOP
+ PUSHBUTTON "&Help", IDC_BTN_HELP, 2, 201, 50, 14, WS_CHILD |
WS_VISIBLE | WS_TABSTOP
+ PUSHBUTTON "Cancel", IDCANCEL, 267, 201, 50, 14, WS_CHILD |
WS_VISIBLE | WS_TABSTOP
+ PUSHBUTTON "Apply", IDC_BTN_APPLY, 323, 201, 50, 14, WS_CHILD |
WS_VISIBLE | WS_TABSTOP
+END
+
+IDD_TOOLS_PAGE DIALOG DISCARDABLE 0, 0, 362, 175
+STYLE DS_CONTROL | WS_CHILD | WS_CLIPCHILDREN
+FONT 8, "Tahoma"
+BEGIN
+ CONTROL "List2",IDC_TOOLS_LIST, "SysListView32", LVS_REPORT |
LVS_SINGLESEL | LVS_SHOWSELALWAYS | WS_BORDER | WS_TABSTOP, 2, 1, 360,
134
+ EDITTEXT IDC_TOOLS_CMDLINE, 1, 139, 360, 12, ES_READONLY
+ PUSHBUTTON "&Run", IDC_BTN_RUN, 311, 155, 50, 14, WS_CHILD |
WS_VISIBLE | WS_TABSTOP
+END
+
+IDD_SERVICES_PAGE DIALOG DISCARDABLE 0, 0, 362, 175
+STYLE DS_CONTROL | WS_CHILD | WS_CLIPCHILDREN
+FONT 8, "Tahoma"
+BEGIN
+ CONTROL "List1",IDC_SERVICES_LIST, "SysListView32", LVS_REPORT |
LVS_SINGLESEL | LVS_SHOWSELALWAYS | WS_BORDER | WS_TABSTOP, 2, 1, 360,
168
+END
+
+STRINGTABLE DISCARDABLE
+BEGIN
+ IDS_TAB_GENERAL "General"
+ IDS_TAB_FREELDR "FREELDR.INI"
+ IDS_TAB_SERVICES "Services"
+ IDS_TAB_STARTUP "Startup"
+ IDS_TAB_TOOLS "Tools"
+END
+
+STRINGTABLE DISCARDABLE
+BEGIN
+ IDS_SERVICES_COLUMN_SERVICE "Service"
+ IDS_SERVICES_COLUMN_VENDOR "Vendor"
+ IDS_SERVICES_COLUMN_STATUS "Status"
+END
+
+STRINGTABLE DISCARDABLE
+BEGIN
+ IDS_TOOLS_COLUMN_NAME "Name"
+ IDS_TOOLS_COLUMN_DESCR "Description"
+
+ IDS_TOOLS_CMD_NAME "Console"
+ IDS_TOOLS_CMD_DESCR ""
+ IDS_TOOLS_CMD_CMD "cmd.exe"
+
+ IDS_TOOLS_INFO_NAME "Version"
+ IDS_TOOLS_INFO_DESCR "Displays version information."
+ IDS_TOOLS_INFO_CMD "winver.exe"
+
+ IDS_TOOLS_REGEDIT_NAME "Registry-Editor"
+ IDS_TOOLS_REGEDIT_DESCR "Opens the Registry-Editor."
+ IDS_TOOLS_REGEDIT_CMD "regedit.exe"
+
+ IDS_TOOLS_SYSDM_NAME "Systemproperties"
+ IDS_TOOLS_SYSDM_DESCR "Shows information about this computer."
+ IDS_TOOLS_SYSDM_CMD "control"
+ IDS_TOOLS_SYSDM_PARAM "sysdm.cpl"
+END
_____
Added: trunk/reactos/subsys/system/msconfig/msconfig.c
--- trunk/reactos/subsys/system/msconfig/msconfig.c 2005-10-16
18:29:08 UTC (rev 18503)
+++ trunk/reactos/subsys/system/msconfig/msconfig.c 2005-10-16
22:59:45 UTC (rev 18504)
@@ -0,0 +1,152 @@
+#include <precomp.h>
+
+HINSTANCE hInst = 0;
+
+HWND hMainWnd; /* Main Window */
+HWND hTabWnd; /* Tab Control Window */
+
+
+BOOL OnCreate(HWND hWnd)
+{
+ TCHAR szTemp[256];
+ TCITEM item;
+
+ hTabWnd = GetDlgItem(hWnd, IDC_TAB);
+ hToolsPage = CreateDialog(hInst, MAKEINTRESOURCE(IDD_TOOLS_PAGE),
hWnd, ToolsPageWndProc);
+ hServicesPage = CreateDialog(hInst,
MAKEINTRESOURCE(IDD_SERVICES_PAGE), hWnd, ServicesPageWndProc);
+
+ // Insert Tab Pages
+ LoadString(hInst, IDS_TAB_GENERAL, szTemp, 256);
+ memset(&item, 0, sizeof(TCITEM));
+ item.mask = TCIF_TEXT;
+ item.pszText = szTemp;
+ TabCtrl_InsertItem(hTabWnd, 0, &item);
+
+ LoadString(hInst, IDS_TAB_FREELDR, szTemp, 256);
+ memset(&item, 0, sizeof(TCITEM));
+ item.mask = TCIF_TEXT;
+ item.pszText = szTemp;
+ TabCtrl_InsertItem(hTabWnd, 1, &item);
+
+ LoadString(hInst, IDS_TAB_SERVICES, szTemp, 256);
+ memset(&item, 0, sizeof(TCITEM));
+ item.mask = TCIF_TEXT;
+ item.pszText = szTemp;
+ TabCtrl_InsertItem(hTabWnd, 2, &item);
+
+ LoadString(hInst, IDS_TAB_STARTUP, szTemp, 256);
+ memset(&item, 0, sizeof(TCITEM));
+ item.mask = TCIF_TEXT;
+ item.pszText = szTemp;
+ TabCtrl_InsertItem(hTabWnd, 3, &item);
+
+ LoadString(hInst, IDS_TAB_TOOLS, szTemp, 256);
+ memset(&item, 0, sizeof(TCITEM));
+ item.mask = TCIF_TEXT;
+ item.pszText = szTemp;
+ TabCtrl_InsertItem(hTabWnd, 4, &item);
+
+ return TRUE;
+}
+
+
+void MsConfig_OnTabWndSelChange(void)
+{
+ switch (TabCtrl_GetCurSel(hTabWnd)) {
+ case 0:
+ ShowWindow(hToolsPage, SW_HIDE);
+ //ShowWindow(hFreeLdrPage, SW_SHOW);
+ ShowWindow(hServicesPage, SW_HIDE);
+ //BringWindowToTop(hFreeLdrPage);
+ break;
+ case 1:
+ ShowWindow(hToolsPage, SW_HIDE);
+ //ShowWindow(hFreeLdrPage, SW_SHOW);
+ ShowWindow(hServicesPage, SW_HIDE);
+ //BringWindowToTop(hFreeLdrPage);
+ break;
+ case 2:
+ ShowWindow(hToolsPage, SW_HIDE);
+ //ShowWindow(hFreeLdrPage, SW_HIDE);
+ ShowWindow(hServicesPage, SW_SHOW);
+ //BringWindowToTop(hFreeLdrPage);
+ break;
+ case 3:
+ ShowWindow(hToolsPage, SW_HIDE);
+ //ShowWindow(hFreeLdrPage, SW_HIDE);
+ ShowWindow(hServicesPage, SW_HIDE);
+ //BringWindowToTop(hFreeLdrPage);
+ break;
+ case 4:
+ ShowWindow(hToolsPage, SW_SHOW);
+ //ShowWindow(hFreeLdrPage, SW_HIDE);
+ ShowWindow(hServicesPage, SW_HIDE);
+ BringWindowToTop(hToolsPage);
+ break;
+ }
+}
+
+
+/* Message handler for dialog box. */
+INT_PTR CALLBACK
+MsConfigWndProc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam)
+{
+ int idctrl;
+ LPNMHDR pnmh;
+
+ switch (message) {
+ case WM_INITDIALOG:
+ hMainWnd = hDlg;
+ return OnCreate(hDlg);
+
+ case WM_COMMAND:
+
+ if (LOWORD(wParam) == IDOK) {
+ //MsConfig_OnSaveChanges();
+ }
+
+ if (LOWORD(wParam) == IDOK || LOWORD(wParam) == IDCANCEL) {
+ EndDialog(hDlg, LOWORD(wParam));
+ return TRUE;
+ }
+ break;
+
+ case WM_NOTIFY:
+ idctrl = (int)wParam;
+ pnmh = (LPNMHDR)lParam;
+ if ((pnmh->hwndFrom == hTabWnd) &&
+ (pnmh->idFrom == IDC_TAB) &&
+ (pnmh->code == TCN_SELCHANGE))
+ {
+ MsConfig_OnTabWndSelChange();
+ }
+ break;
+
+ case WM_DESTROY:
+ return DefWindowProc(hDlg, message, wParam, lParam);
+
+ }
+
+ return 0;
+}
+
+int APIENTRY WinMain(HINSTANCE hInstance,
+ HINSTANCE hPrevInstance,
+ LPSTR lpCmdLine,
+ int nCmdShow)
+{
+
+ INITCOMMONCONTROLSEX InitControls;
+
+ InitControls.dwSize = sizeof(INITCOMMONCONTROLSEX);
+ InitControls.dwICC = ICC_TAB_CLASSES | ICC_LISTVIEW_CLASSES;
+ InitCommonControlsEx(&InitControls);
+
+ hInst = hInstance;
+
+ DialogBox(hInst, (LPCTSTR)IDD_MSCONFIG_DIALOG, NULL,
MsConfigWndProc);
+
+ return 0;
+}
+
+/* EOF */
_____
Added: trunk/reactos/subsys/system/msconfig/msconfig.h
--- trunk/reactos/subsys/system/msconfig/msconfig.h 2005-10-16
18:29:08 UTC (rev 18503)
+++ trunk/reactos/subsys/system/msconfig/msconfig.h 2005-10-16
22:59:45 UTC (rev 18504)
@@ -0,0 +1,2 @@
+extern HINSTANCE hInst;
+
_____
Added: trunk/reactos/subsys/system/msconfig/msconfig.rc
--- trunk/reactos/subsys/system/msconfig/msconfig.rc 2005-10-16
18:29:08 UTC (rev 18503)
+++ trunk/reactos/subsys/system/msconfig/msconfig.rc 2005-10-16
22:59:45 UTC (rev 18504)
@@ -0,0 +1,18 @@
+#include <windows.h>
+#include <commctrl.h>
+
+#include "resource.h"
+
+
+LANGUAGE LANG_NEUTRAL, SUBLANG_NEUTRAL
+
+#define REACTOS_VERSION_DLL
+#define REACTOS_STR_FILE_DESCRIPTION "ReactOS Systemconfiguration
Tool\0"
+#define REACTOS_STR_INTERNAL_NAME "msconfig\0"
+#define REACTOS_STR_ORIGINAL_FILENAME "msconfig.exe\0"
+#include <reactos/version.rc>
+
+
+#include "De.rc"
+#include "En.rc"
+
_____
Added: trunk/reactos/subsys/system/msconfig/msconfig.xml
--- trunk/reactos/subsys/system/msconfig/msconfig.xml 2005-10-16
18:29:08 UTC (rev 18503)
+++ trunk/reactos/subsys/system/msconfig/msconfig.xml 2005-10-16
22:59:45 UTC (rev 18504)
@@ -0,0 +1,16 @@
+<module name="msconfig" type="win32gui"
installbase="system32"
installname="msconfig.exe">
+ <include base="msconfig">.</include>
+ <define name="UNICODE" />
+ <define name="_UNICODE" />
+ <define name="__REACTOS__" />
+ <define name="__USE_W32API" />
+ <define name="_WIN32_IE">0x600</define>
+ <define name="_WIN32_WINNT">0x501</define>
+ <library>kernel32</library>
+ <library>user32</library>
+ <library>comctl32</library>
+ <file>toolspage.c</file>
+ <file>srvpage.c</file>
+ <file>msconfig.c</file>
+ <file>msconfig.rc</file>
+</module>
_____
Added: trunk/reactos/subsys/system/msconfig/precomp.h
--- trunk/reactos/subsys/system/msconfig/precomp.h 2005-10-16
18:29:08 UTC (rev 18503)
+++ trunk/reactos/subsys/system/msconfig/precomp.h 2005-10-16
22:59:45 UTC (rev 18504)
@@ -0,0 +1,11 @@
+#include <windows.h>
+#define NTOS_MODE_USER
+#include <commctrl.h>
+#include <winuser.h>
+#include <tchar.h>
+
+#include "resource.h"
+#include "msconfig.h"
+#include "toolspage.h"
+#include "srvpage.h"
+
_____
Added: trunk/reactos/subsys/system/msconfig/resource.h
--- trunk/reactos/subsys/system/msconfig/resource.h 2005-10-16
18:29:08 UTC (rev 18503)
+++ trunk/reactos/subsys/system/msconfig/resource.h 2005-10-16
22:59:45 UTC (rev 18504)
@@ -0,0 +1,47 @@
+#define IDD_MSCONFIG_DIALOG 101
+#define IDD_TOOLS_PAGE 102
+#define IDD_SERVICES_PAGE 103
+#define IDD_GENERAL_PAGE 104
+#define IDD_STARTUP_PAGE 105
+
+#define IDC_TAB 1001
+#define IDC_BTN_APPLY 1002
+#define IDC_BTN_HELP 1003
+#define IDC_TOOLS_CMDLINE 1004
+#define IDC_BTN_RUN 1005
+#define IDC_SERVICES_LIST 1006
+#define IDC_TOOLS_LIST 1007
+
+#define IDS_TAB_TOOLS 2001
+#define IDS_TAB_FREELDR 2002
+#define IDS_TAB_STARTUP 2003
+#define IDS_TAB_SERVICES 2004
+#define IDS_TAB_GENERAL 2005
+
+#define IDS_TOOLS_COLUMN_NAME 2010
+#define IDS_TOOLS_COLUMN_DESCR 2011
+#define IDS_SERVICES_COLUMN_SERVICE 2012
+#define IDS_SERVICES_COLUMN_VENDOR 2013
+#define IDS_SERVICES_COLUMN_STATUS 2014
+
+#define IDS_TOOLS_CMD_NAME 2100
+#define IDS_TOOLS_CMD_DESCR 2101
+#define IDS_TOOLS_CMD_CMD 2102
+#define IDS_TOOLS_CMD_PARAM 2103
+
+#define IDS_TOOLS_INFO_NAME 2104
+#define IDS_TOOLS_INFO_DESCR 2105
+#define IDS_TOOLS_INFO_CMD 2106
+#define IDS_TOOLS_INFO_PARAM 2107
+
+#define IDS_TOOLS_REGEDIT_NAME 2108
+#define IDS_TOOLS_REGEDIT_DESCR 2109
+#define IDS_TOOLS_REGEDIT_CMD 2110
+#define IDS_TOOLS_REGEDIT_PARAM 2111
+
+#define IDS_TOOLS_SYSDM_NAME 2112
+#define IDS_TOOLS_SYSDM_DESCR 2113
+#define IDS_TOOLS_SYSDM_CMD 2114
+#define IDS_TOOLS_SYSDM_PARAM 2115
+
+/* EOF */
_____
Added: trunk/reactos/subsys/system/msconfig/srvpage.c
--- trunk/reactos/subsys/system/msconfig/srvpage.c 2005-10-16
18:29:08 UTC (rev 18503)
+++ trunk/reactos/subsys/system/msconfig/srvpage.c 2005-10-16
22:59:45 UTC (rev 18504)
@@ -0,0 +1,50 @@
+#include <precomp.h>
+
+HWND hServicesPage;
+HWND hServicesListCtrl;
+HWND hServicesDialog;
+
+INT_PTR CALLBACK
+ServicesPageWndProc(HWND hDlg, UINT message, WPARAM wParam, LPARAM
lParam)
+{
+ LV_COLUMN column;
+ TCHAR szTemp[256];
+
+ switch (message) {
+ case WM_INITDIALOG:
+
+ hServicesListCtrl = GetDlgItem(hDlg, IDC_TOOLS_LIST);
+ hServicesDialog = hDlg;
+
+ DWORD dwStyle;
+ dwStyle = 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 = 150;
+ ListView_InsertColumn(hServicesListCtrl, 0, &column);
+
+ column.mask = LVCF_TEXT | LVCF_WIDTH;
+ LoadString(hInst, IDS_SERVICES_COLUMN_VENDOR, szTemp, 256);
+ column.pszText = szTemp;
+ column.cx = 200;
+ ListView_InsertColumn(hServicesListCtrl, 1, &column);
+
+ column.mask = LVCF_TEXT | LVCF_WIDTH;
+ LoadString(hInst, IDS_SERVICES_COLUMN_STATUS, szTemp, 256);
+ column.pszText = szTemp;
+ column.cx = 70;
+ ListView_InsertColumn(hServicesListCtrl, 1, &column);
+
+ return TRUE;
+ }
+
+ return 0;
+}
_____
Added: trunk/reactos/subsys/system/msconfig/srvpage.h
--- trunk/reactos/subsys/system/msconfig/srvpage.h 2005-10-16
18:29:08 UTC (rev 18503)
+++ trunk/reactos/subsys/system/msconfig/srvpage.h 2005-10-16
22:59:45 UTC (rev 18504)
@@ -0,0 +1,4 @@
+extern HWND hServicesPage;
+extern HWND hServicesListCtrl;
+
+INT_PTR CALLBACK ServicesPageWndProc(HWND hDlg, UINT message, WPARAM
wParam, LPARAM lParam);
_____
Added: trunk/reactos/subsys/system/msconfig/toolspage.c
--- trunk/reactos/subsys/system/msconfig/toolspage.c 2005-10-16
18:29:08 UTC (rev 18503)
+++ trunk/reactos/subsys/system/msconfig/toolspage.c 2005-10-16
22:59:45 UTC (rev 18504)
@@ -0,0 +1,124 @@
+#include <precomp.h>
+
+HWND hToolsPage;
+HWND hToolsListCtrl;
+HWND hToolsDialog;
+
+void AddItem ( DWORD, DWORD, DWORD, DWORD );
+void FillListView ( void );
+
+DWORD ListItems_Cmds[20];
+DWORD ListItems_Params[20];
+
+void AddItem ( DWORD name_id, DWORD descr_id, DWORD cmd_id , DWORD
param_id ) {
+ TCHAR szTemp[256];
+ LV_ITEM item;
+
+ LoadString(hInst, name_id, szTemp, 256);
+ memset(&item, 0, sizeof(LV_ITEM));
+ item.mask = LVIF_TEXT;
+ item.iImage = 0;
+ item.pszText = szTemp;
+ item.iItem = ListView_GetItemCount(hToolsListCtrl);
+ item.lParam = 0;
+ ListView_InsertItem(hToolsListCtrl, &item);
+
+ ListItems_Cmds[item.iItem] = cmd_id;
+ ListItems_Params[item.iItem] = param_id;
+
+ LoadString(hInst, descr_id, szTemp, 256);
+ item.pszText = szTemp;
+ item.iSubItem = 1;
+ SendMessage(hToolsListCtrl, LVM_SETITEMTEXT, item.iItem,
(LPARAM) &item);
+}
+
+void FillListView ( void ) {
+ AddItem(IDS_TOOLS_CMD_NAME, IDS_TOOLS_CMD_DESCR,
IDS_TOOLS_CMD_CMD, IDS_TOOLS_CMD_PARAM);
+ AddItem(IDS_TOOLS_REGEDIT_NAME, IDS_TOOLS_REGEDIT_DESCR,
IDS_TOOLS_REGEDIT_CMD,IDS_TOOLS_REGEDIT_PARAM);
+ AddItem(IDS_TOOLS_SYSDM_NAME, IDS_TOOLS_SYSDM_DESCR,
IDS_TOOLS_SYSDM_CMD, IDS_TOOLS_SYSDM_PARAM);
+ AddItem(IDS_TOOLS_INFO_NAME, IDS_TOOLS_INFO_DESCR,
IDS_TOOLS_INFO_CMD, IDS_TOOLS_INFO_PARAM);
+}
+
+INT_PTR CALLBACK
+ToolsPageWndProc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam)
+{
+ LV_COLUMN column;
+ TCHAR szTemp[256];
+ TCHAR szTemp2[256];
+ LPNMITEMACTIVATE lpnmitem;
+ LPNMHDR nmh;
+
+ switch (message) {
+ case WM_INITDIALOG:
+
+ hToolsListCtrl = GetDlgItem(hDlg, IDC_TOOLS_LIST);
+ hToolsDialog = hDlg;
+
+ DWORD dwStyle;
+ dwStyle = SendMessage(hToolsListCtrl,
LVM_GETEXTENDEDLISTVIEWSTYLE, 0, 0);
+ dwStyle = dwStyle | LVS_EX_FULLROWSELECT;
+ SendMessage(hToolsListCtrl, 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_TOOLS_COLUMN_NAME, szTemp, 256);
+ column.pszText = szTemp;
+ column.cx = 150;
+ ListView_InsertColumn(hToolsListCtrl, 0, &column);
+
+ column.mask = LVCF_TEXT | LVCF_WIDTH;
+ LoadString(hInst, IDS_TOOLS_COLUMN_DESCR, szTemp, 256);
+ column.pszText = szTemp;
+ column.cx = 500;
+ ListView_InsertColumn(hToolsListCtrl, 1, &column);
+
+ FillListView();
+ return TRUE;
+
+ case WM_COMMAND:
+ switch (LOWORD(wParam))
+ {
+ case IDC_BTN_RUN:
+ if (ListView_GetSelectionMark(hToolsListCtrl) !=
-1) {
+ LoadString(hInst,
ListItems_Cmds[ListView_GetSelectionMark(hToolsListCtrl)], szTemp, 256);
+ LoadString(hInst,
ListItems_Params[ListView_GetSelectionMark(hToolsListCtrl)], szTemp2,
256);
+ ShellExecute(0, _T("open"), szTemp,
szTemp2, _T(""), SW_NORMAL);
+ }
+ }
+ break;
+
+ case WM_NOTIFY:
+ nmh = (LPNMHDR) lParam;
+ if (nmh->hwndFrom == hToolsListCtrl)
+ {
+ switch (nmh->code)
+ {
+ case NM_CLICK:
+ lpnmitem = (LPNMITEMACTIVATE) lParam;
+ if (lpnmitem->iItem > -1) {
+ LoadString(hInst,
ListItems_Cmds[lpnmitem->iItem], szTemp, 256);
+ LoadString(hInst,
ListItems_Params[lpnmitem->iItem], szTemp2, 256);
+ _tcscat(szTemp, _T(" "));
+ _tcscat(szTemp, szTemp2);
+ SendDlgItemMessage(hToolsDialog,
IDC_TOOLS_CMDLINE, WM_SETTEXT, 0, (LPARAM) szTemp);
+ }
+ break;
+ case NM_DBLCLK:
+ lpnmitem = (LPNMITEMACTIVATE) lParam;
+ if (lpnmitem->iItem > -1) {
+ LoadString(hInst,
ListItems_Cmds[lpnmitem->iItem], szTemp, 256);
+ LoadString(hInst,
ListItems_Params[lpnmitem->iItem], szTemp2, 256);
+ ShellExecute(0, _T("open"),
szTemp, szTemp2, _T(""), SW_NORMAL);
+ }
+ break;
+ }
+ }
+ break;
+ }
+
+ return 0;
+}
+
_____
Added: trunk/reactos/subsys/system/msconfig/toolspage.h
--- trunk/reactos/subsys/system/msconfig/toolspage.h 2005-10-16
18:29:08 UTC (rev 18503)
+++ trunk/reactos/subsys/system/msconfig/toolspage.h 2005-10-16
22:59:45 UTC (rev 18504)
@@ -0,0 +1,5 @@
+extern HWND hToolsPage;
+extern HWND hToolsListCtrl;
+
+INT_PTR CALLBACK ToolsPageWndProc(HWND hDlg, UINT message, WPARAM
wParam, LPARAM lParam);
+