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); +