started implementation of msconfig tool

svn path=/trunk/; revision=18504
This commit is contained in:
Christoph von Wittich 2005-10-16 22:59:45 +00:00
parent 5cd92ce1f5
commit dc37877edc
13 changed files with 573 additions and 0 deletions

View file

@ -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>

View file

@ -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

View file

@ -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

View file

@ -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 */

View file

@ -0,0 +1,2 @@
extern HINSTANCE hInst;

View file

@ -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"

View file

@ -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>

View file

@ -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"

View file

@ -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 */

View file

@ -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;
}

View file

@ -0,0 +1,4 @@
extern HWND hServicesPage;
extern HWND hServicesListCtrl;
INT_PTR CALLBACK ServicesPageWndProc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam);

View file

@ -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;
}

View file

@ -0,0 +1,5 @@
extern HWND hToolsPage;
extern HWND hToolsListCtrl;
INT_PTR CALLBACK ToolsPageWndProc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam);