Sync'ing remaining changes after recent CVS problems. Seem to now have my route back!
authorRobert Dickenson <robd@reactos.org>
Tue, 24 Sep 2002 14:22:48 +0000 (14:22 +0000)
committerRobert Dickenson <robd@reactos.org>
Tue, 24 Sep 2002 14:22:48 +0000 (14:22 +0000)
svn path=/trunk/; revision=3540

rosapps/taskmgr/graph.c
rosapps/taskmgr/makefile
rosapps/taskmgr/perfdata.c
rosapps/taskmgr/proclist.c
rosapps/taskmgr/taskmgr.c
rosapps/taskmgr/taskmgr.h
rosapps/taskmgr/taskmgr.rc

index bba6343..6158c7a 100644 (file)
@@ -181,15 +181,15 @@ void Graph_DrawCpuUsageGraph(HDC hDC, HWND hWnd)
        //
        if (CpuUsage == 100)
        {
        //
        if (CpuUsage == 100)
        {
-               _stprintf(Text, _T("%d%%"), CpuUsage);
+               _stprintf(Text, _T("%d%%"), (int)CpuUsage);
        }
        else if (CpuUsage < 10)
        {
        }
        else if (CpuUsage < 10)
        {
-               _stprintf(Text, _T("  %d%%"), CpuUsage);
+               _stprintf(Text, _T("  %d%%"), (int)CpuUsage);
        }
        else
        {
        }
        else
        {
-               _stprintf(Text, _T(" %d%%"), CpuUsage);
+               _stprintf(Text, _T(" %d%%"), (int)CpuUsage);
        }
        
        //
        }
        
        //
@@ -347,7 +347,7 @@ void Graph_DrawMemUsageGraph(HDC hDC, HWND hWnd)
        CommitChargeTotal = (ULONGLONG)PerfDataGetCommitChargeTotalK();
        CommitChargeLimit = (ULONGLONG)PerfDataGetCommitChargeLimitK();
 
        CommitChargeTotal = (ULONGLONG)PerfDataGetCommitChargeTotalK();
        CommitChargeLimit = (ULONGLONG)PerfDataGetCommitChargeLimitK();
 
-       _stprintf(Text, _T("%dK"), CommitChargeTotal);
+       _stprintf(Text, _T("%dK"), (int)CommitChargeTotal);
        
        //
        // Draw the font text onto the graph
        
        //
        // Draw the font text onto the graph
index 01fe8fc..9bc4bfa 100644 (file)
@@ -4,6 +4,7 @@
 #  Makefile
 #
 #  Copyright (C) 1999 - 2001  Brian Palmer  <brianp@reactos.org>
 #  Makefile
 #
 #  Copyright (C) 1999 - 2001  Brian Palmer  <brianp@reactos.org>
+#  Copyright (C) 2002  Robert Dickenson <robd@reactos.org>
 #
 #  This program is free software; you can redistribute it and/or modify
 #  it under the terms of the GNU General Public License as published by
 #
 #  This program is free software; you can redistribute it and/or modify
 #  it under the terms of the GNU General Public License as published by
 #  along with this program; if not, write to the Free Software
 #  Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
 #
 #  along with this program; if not, write to the Free Software
 #  Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
 #
+       
+PATH_TO_TOP = ..
+
+TARGET = taskmgr
+
+BASE_CFLAGS = -DGCC -D_WIN32_IE=0x0400
+
+RCFLAGS = -DGCC -D_WIN32_IE=0x0400
+
+
+OBJS = about.o \
+       affinity.o \
+       applpage.o \
+       column.o \
+       debug.o \
+       endproc.o \
+       font.o \
+       graph.o \
+       optnmenu.o \
+       perfdata.o \
+       perfpage.o \
+       priority.o \
+       procpage.o \
+       proclist.o \
+       run.o \
+       trayicon.o \
+       taskmgr.o \
+       graphctl.o
 
 
-
-#export CPP = g++
-#export LD = ld
-#export AR = ar
-#export RM = cmd /C del
-#export CP = cmd /C copy
-
-FLAGS = -D_WIN32_IE=0x0400 -g
-
-OBJS = about.o affinity.o applpage.o column.o debug.o endproc.o font.o \
-               graph.o optnmenu.o perfdata.o perfpage.o priority.o procpage.o \
-               proclist.o run.o trayicon.o taskmgr.o
 LIBS = -lgdi32 -luser32 -lkernel32 -lcomctl32
 
 all:   taskmgr.exe
 
 LIBS = -lgdi32 -luser32 -lkernel32 -lcomctl32
 
 all:   taskmgr.exe
 
-taskmgr.exe:   $(OBJS)
-       $(CPP) -g -o taskmgr.exe $(OBJS) $(LIBS)
+taskmgr.res:   taskmgr.rc
+
+taskmgr.exe:   $(OBJS) taskmgr.coff
+       $(CPP) -Wl,--subsystem,windows -o taskmgr.exe $(OBJS) taskmgr.coff $(LIBS)
+       $(NM) --numeric-sort taskmgr.exe > taskmgr.sym
 
 
-about.o:       about.c about.h
-       $(CPP) $(FLAGS) -o about.o -c about.c
+
+about.o:       about.c about.h resource.h
 
 affinity.o:    affinity.c affinity.h
 
 affinity.o:    affinity.c affinity.h
-       $(CPP) $(FLAGS) -o affinity.o -c affinity.c
 
 
-applpage.o:    applpage.c applpage.h
-       $(CPP) $(FLAGS) -o applpage.o -c applpage.c
+applpage.o:    applpage.c applpage.h procpage.h taskmgr.h resource.h
 
 
-column.o:      column.c column.h
-       $(CPP) $(FLAGS) -o column.o -c column.c
+column.o:      column.c column.h resource.h
 
 debug.o:       debug.c debug.h
 
 debug.o:       debug.c debug.h
-       $(CPP) $(FLAGS) -o debug.o -c debug.c
 
 endproc.o:     endproc.c endproc.h
 
 endproc.o:     endproc.c endproc.h
-       $(CPP) $(FLAGS) -o endproc.o -c endproc.c
 
 
-font.o:        font.c font.h
-       $(CPP) $(FLAGS) -o font.o -c font.c
+font.o:                font.c font.h
+
+graph.o:       graph.c graph.h resource.h
 
 
-graph.o:       graph.c graph.h
-       $(CPP) $(FLAGS) -o graph.o -c graph.c
+graphctl.o:    graphctl.cpp graphctl.h resource.h
 
 
-optnmenu.o:    optnmenu.c optnmenu.h
-       $(CPP) $(FLAGS) -o optnmenu.o -c optnmenu.c
+optnmenu.o:    optnmenu.c optnmenu.h resource.h
 
 perfdata.o:    perfdata.c perfdata.h
 
 perfdata.o:    perfdata.c perfdata.h
-       $(CPP) $(FLAGS) -o perfdata.o -c perfdata.c
 
 
-perfpage.o:    perfpage.cpp perfpage.h
-       $(CPP) $(FLAGS) -o perfpage.o -c perfpage.cpp
+perfpage.o:    perfpage.cpp perfpage.h perfdata.h graphctl.h graph.h taskmgr.h resource.h
 
 priority.o:    priority.c priority.h
 
 priority.o:    priority.c priority.h
-       $(CPP) $(FLAGS) -o priority.o -c priority.c
 
 
-procpage.o:    procpage.c procpage.h
-       $(CPP) $(FLAGS) -o procpage.o -c procpage.c
+procpage.o:    procpage.c procpage.h perfdata.h column.h proclist.h taskmgr.h resource.h
 
 proclist.o:    proclist.c proclist.h
 
 proclist.o:    proclist.c proclist.h
-       $(CPP) $(FLAGS) -o proclist.o -c proclist.c
 
 
-run.o: run.c run.h
-       $(CPP) $(FLAGS) -o run.o -c run.c
+run.o:         run.c run.h
 
 
-trayicon.o:    trayicon.c trayicon.h
-       $(CPP) $(FLAGS) -o trayicon.o -c trayicon.c
+trayicon.o:    trayicon.c trayicon.h resource.h
 
 
-taskmgr.o:     taskmgr.c taskmgr.h
-       $(CPP) $(FLAGS) -o taskmgr.o -c taskmgr.c
+taskmgr.o:     taskmgr.c taskmgr.h resource.h
 
 clean:
        - $(RM) $(OBJS)
        - $(RM) taskmgr.exe
 
 clean:
        - $(RM) $(OBJS)
        - $(RM) taskmgr.exe
+       - $(RM) taskmgr.sym
+       - $(RM) taskmgr.coff
+
+include $(PATH_TO_TOP)/rules.mak
index e568896..fc1d535 100644 (file)
@@ -44,9 +44,9 @@ ULONG                                                 ProcessCount = 0;
 double                                                 dbIdleTime;
 double                                                 dbKernelTime;
 double                                                 dbSystemTime;
 double                                                 dbIdleTime;
 double                                                 dbKernelTime;
 double                                                 dbSystemTime;
-LARGE_INTEGER                                  liOldIdleTime = {0,0};
+LARGE_INTEGER                                  liOldIdleTime = {{0,0}};
 double                                                 OldKernelTime = 0;
 double                                                 OldKernelTime = 0;
-LARGE_INTEGER                                  liOldSystemTime = {0,0};
+LARGE_INTEGER                                  liOldSystemTime = {{0,0}};
 SYSTEM_PERFORMANCE_INFORMATION SystemPerfInfo;
 SYSTEM_BASIC_INFORMATION               SystemBasicInfo;
 SYSTEM_CACHE_INFORMATION               SystemCacheInfo;
 SYSTEM_PERFORMANCE_INFORMATION SystemPerfInfo;
 SYSTEM_BASIC_INFORMATION               SystemBasicInfo;
 SYSTEM_CACHE_INFORMATION               SystemCacheInfo;
@@ -441,7 +441,7 @@ ULONG PerfDataGetCPUUsage(ULONG Index)
 
 TIME PerfDataGetCPUTime(ULONG Index)
 {
 
 TIME PerfDataGetCPUTime(ULONG Index)
 {
-       TIME    CpuTime = {0,0};
+       TIME    CpuTime = {{0,0}};
 
        EnterCriticalSection(&PerfDataCriticalSection);
 
 
        EnterCriticalSection(&PerfDataCriticalSection);
 
index 640be04..8ca3433 100644 (file)
@@ -119,4 +119,4 @@ LRESULT CALLBACK ProcessListWndProc(HWND hWnd, UINT message, WPARAM wParam, LPAR
        // We pass on all messages except WM_ERASEBKGND
        //
        return CallWindowProc((WNDPROC)OldProcessListWndProc, hWnd, message, wParam, lParam);
        // We pass on all messages except WM_ERASEBKGND
        //
        return CallWindowProc((WNDPROC)OldProcessListWndProc, hWnd, message, wParam, lParam);
-}
\ No newline at end of file
+}
index d29a306..df04165 100644 (file)
@@ -98,7 +98,7 @@ int APIENTRY WinMain(HINSTANCE hInstance,
 #define _USE_CMD_MAP
 
 #ifdef _USE_CMD_MAP
 #define _USE_CMD_MAP
 
 #ifdef _USE_CMD_MAP
-#define BEGIN_CMD_MAP(a) switch(##a) {
+#define BEGIN_CMD_MAP(a) switch( ##a ) {
 #define CMD_MAP_ENTRY(a, b) case a: b(); break;
 #define END_CMD_MAP(a) }
 
 #define CMD_MAP_ENTRY(a, b) case a: b(); break;
 #define END_CMD_MAP(a) }
 
@@ -126,7 +126,7 @@ LRESULT CALLBACK TaskManagerWndProc(HWND hDlg, UINT message, WPARAM wParam, LPAR
             return TRUE;
         }
 #ifdef _USE_CMD_MAP
             return TRUE;
         }
 #ifdef _USE_CMD_MAP
-        BEGIN_CMD_MAP(LOWORD(wParam))
+        BEGIN_CMD_MAP( LOWORD(wParam) )
             CMD_MAP_ENTRY(ID_FILE_NEW,                             TaskManager_OnFileNew)
             CMD_MAP_ENTRY(ID_OPTIONS_ALWAYSONTOP,                  TaskManager_OnOptionsAlwaysOnTop)
             CMD_MAP_ENTRY(ID_OPTIONS_MINIMIZEONUSE,                TaskManager_OnOptionsMinimizeOnUse)
             CMD_MAP_ENTRY(ID_FILE_NEW,                             TaskManager_OnFileNew)
             CMD_MAP_ENTRY(ID_OPTIONS_ALWAYSONTOP,                  TaskManager_OnOptionsAlwaysOnTop)
             CMD_MAP_ENTRY(ID_OPTIONS_MINIMIZEONUSE,                TaskManager_OnOptionsMinimizeOnUse)
@@ -1012,7 +1012,7 @@ void TaskManager_OnTabWndSelChange(void)
     }
 }
 
     }
 }
 
-LPTSTR GetLastErrorText( LPTSTR lpszBuf, DWORD dwSize )
+LPTSTR GetLastErrorText(LPTSTR lpszBuf, DWORD dwSize)
 {
     DWORD  dwRet;
     LPTSTR lpszTemp = NULL;
 {
     DWORD  dwRet;
     LPTSTR lpszTemp = NULL;
@@ -1026,11 +1026,11 @@ LPTSTR GetLastErrorText( LPTSTR lpszBuf, DWORD dwSize )
                            NULL );
 
     // supplied buffer is not long enough
                            NULL );
 
     // supplied buffer is not long enough
-    if (!dwRet || ( (long)dwSize < (long)dwRet+14 )) {
+    if (!dwRet || ( (long)dwSize < (long)dwRet+14)) {
         lpszBuf[0] = TEXT('\0');
     } else {
         lpszTemp[lstrlen(lpszTemp)-2] = TEXT('\0');  //remove cr and newline character
         lpszBuf[0] = TEXT('\0');
     } else {
         lpszTemp[lstrlen(lpszTemp)-2] = TEXT('\0');  //remove cr and newline character
-        _stprintf(lpszBuf, TEXT("%s (0x%x)"), lpszTemp, GetLastError() );
+        _stprintf(lpszBuf, TEXT("%s (0x%x)"), lpszTemp, (int)GetLastError());
     }
     if (lpszTemp) {
         LocalFree((HLOCAL)lpszTemp);
     }
     if (lpszTemp) {
         LocalFree((HLOCAL)lpszTemp);
index effd52e..d90a3e1 100644 (file)
-/*\r
- *  ReactOS Task Manager\r
- *\r
- *  taskmgr.h\r
- *\r
- *  Copyright (C) 1999 - 2001  Brian Palmer  <brianp@reactos.org>\r
- *\r
- *  This program is free software; you can redistribute it and/or modify\r
- *  it under the terms of the GNU General Public License as published by\r
- *  the Free Software Foundation; either version 2 of the License, or\r
- *  (at your option) any later version.\r
- *\r
- *  This program is distributed in the hope that it will be useful,\r
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of\r
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\r
- *  GNU General Public License for more details.\r
- *\r
- *  You should have received a copy of the GNU General Public License\r
- *  along with this program; if not, write to the Free Software\r
- *  Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.\r
- */\r
-       \r
-\r
-#if !defined(AFX_TASKMGR_H__392F6393_0279_11D3_9C02_004005E27102__INCLUDED_)\r
-#define AFX_TASKMGR_H__392F6393_0279_11D3_9C02_004005E27102__INCLUDED_\r
-\r
-#if _MSC_VER > 1000\r
-#pragma once\r
-#endif // _MSC_VER > 1000\r
-\r
-#include "resource.h"\r
-\r
-\r
-#define STATUS_WINDOW  2001\r
-\r
-typedef struct\r
-{\r
-       // Window size & position settings\r
-       BOOL    Maximized;\r
-       int             Left;\r
-       int             Top;\r
-       int             Right;\r
-       int             Bottom;\r
-\r
-       // Tab settings\r
-       int             ActiveTabPage;\r
-\r
-       // Options menu settings\r
-       BOOL    AlwaysOnTop;\r
-       BOOL    MinimizeOnUse;\r
-       BOOL    HideWhenMinimized;\r
-       BOOL    Show16BitTasks;\r
-\r
-       // Update speed settings\r
-       int             UpdateSpeed; // How many half-seconds in between updates (i.e. 0 - Paused, 1 - High, 2 - Normal, 4 - Low)\r
-\r
-       // Applications page settings\r
-       BOOL    View_LargeIcons;\r
-       BOOL    View_SmallIcons;\r
-       BOOL    View_Details;\r
-\r
-       // Processes page settings\r
-       BOOL    ShowProcessesFromAllUsers; // Server-only?\r
-       BOOL    Column_ImageName;\r
-       BOOL    Column_PID;\r
-       BOOL    Column_CPUUsage;\r
-       BOOL    Column_CPUTime;\r
-       BOOL    Column_MemoryUsage;\r
-       BOOL    Column_MemoryUsageDelta;\r
-       BOOL    Column_PeakMemoryUsage;\r
-       BOOL    Column_PageFaults;\r
-       BOOL    Column_USERObjects;\r
-       BOOL    Column_IOReads;\r
-       BOOL    Column_IOReadBytes;\r
-       BOOL    Column_SessionID; // Server-only?\r
-       BOOL    Column_UserName; // Server-only?\r
-       BOOL    Column_PageFaultsDelta;\r
-       BOOL    Column_VirtualMemorySize;\r
-       BOOL    Column_PagedPool;\r
-       BOOL    Column_NonPagedPool;\r
-       BOOL    Column_BasePriority;\r
-       BOOL    Column_HandleCount;\r
-       BOOL    Column_ThreadCount;\r
-       BOOL    Column_GDIObjects;\r
-       BOOL    Column_IOWrites;\r
-       BOOL    Column_IOWriteBytes;\r
-       BOOL    Column_IOOther;\r
-       BOOL    Column_IOOtherBytes;\r
-       int             ColumnOrderArray[25];\r
-       int             ColumnSizeArray[25];\r
-       int             SortColumn;\r
-       BOOL    SortAscending;\r
-\r
-       // Performance page settings\r
-       BOOL    CPUHistory_OneGraphPerCPU;\r
-       BOOL    ShowKernelTimes;\r
-\r
-} TASKMANAGER_SETTINGS, *LPTASKMANAGER_SETTINGS;\r
-\r
-// Global Variables:\r
-extern HINSTANCE       hInst;                                          // current instance\r
-extern HWND            hMainWnd;                                       // Main Window\r
-extern HWND            hStatusWnd;                                     // Status Bar Window\r
-extern HWND            hTabWnd;                                        // Tab Control Window\r
-\r
-extern int                     nMinimumWidth;                          // Minimum width of the dialog (OnSize()'s cx)\r
-extern int                     nMinimumHeight;                         // Minimum height of the dialog (OnSize()'s cy)\r
-extern int                     nOldWidth;                                      // Holds the previous client area width\r
-extern int                     nOldHeight;                                     // Holds the previous client area height\r
-\r
-extern TASKMANAGER_SETTINGS    TaskManagerSettings;\r
-\r
-// Foward declarations of functions included in this code module:\r
-LRESULT CALLBACK TaskManagerWndProc(HWND, UINT, WPARAM, LPARAM);\r
-\r
-BOOL OnCreate(HWND hWnd);\r
-void OnSize( UINT nType, int cx, int cy );\r
-\r
-void FillSolidRect(HDC hDC, LPCRECT lpRect, COLORREF clr);\r
-void FillSolidRect(HDC hDC, int x, int y, int cx, int cy, COLORREF clr);\r
-void Draw3dRect(HDC hDC, int x, int y, int cx, int cy, COLORREF clrTopLeft, COLORREF clrBottomRight);\r
-void Draw3dRect(HDC hDC, LPRECT lpRect, COLORREF clrTopLeft, COLORREF clrBottomRight);\r
-\r
-void LoadSettings(void);\r
-void SaveSettings(void);\r
-\r
-void TaskManager_OnEnterMenuLoop(HWND hWnd);\r
-void TaskManager_OnExitMenuLoop(HWND hWnd);\r
-void TaskManager_OnMenuSelect(HWND hWnd, UINT nItemID, UINT nFlags, HMENU hSysMenu);\r
-\r
-void TaskManager_OnViewUpdateSpeedHigh(void);\r
-void TaskManager_OnViewUpdateSpeedNormal(void);\r
-void TaskManager_OnViewUpdateSpeedLow(void);\r
-void TaskManager_OnViewUpdateSpeedPaused(void);\r
-\r
-void TaskManager_OnTabWndSelChange(void);\r
-\r
-LPTSTR GetLastErrorText( LPTSTR lpszBuf, DWORD dwSize );\r
-\r
-#endif // !defined(AFX_TASKMGR_H__392F6393_0279_11D3_9C02_004005E27102__INCLUDED_)\r
+/*
+ *  ReactOS Task Manager
+ *
+ *  taskmgr.h
+ *
+ *  Copyright (C) 1999 - 2001  Brian Palmer  <brianp@reactos.org>
+ *
+ *  This program is free software; you can redistribute it and/or modify
+ *  it under the terms of the GNU General Public License as published by
+ *  the Free Software Foundation; either version 2 of the License, or
+ *  (at your option) any later version.
+ *
+ *  This program is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *  GNU General Public License for more details.
+ *
+ *  You should have received a copy of the GNU General Public License
+ *  along with this program; if not, write to the Free Software
+ *  Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+#ifndef __TASKMGR_H__
+#define __TASKMGR_H__
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+
+#ifdef _MSC_VER
+
+typedef struct _IO_COUNTERS {
+       ULONGLONG  ReadOperationCount;
+       ULONGLONG  WriteOperationCount;
+       ULONGLONG  OtherOperationCount;
+       ULONGLONG ReadTransferCount;
+       ULONGLONG WriteTransferCount;
+       ULONGLONG OtherTransferCount;
+} IO_COUNTERS, *PIO_COUNTERS;
+
+#else
+
+#if __MINGW32_MAJOR_VERSION == 1
+#define HDITEM HD_ITEM
+#define LPNMLISTVIEW LPNM_LISTVIEW
+#define HDN_ENDDRAG TBN_ENDDRAG
+#define LVSICF_NOSCROLL LVS_NOSCROLL
+#define HDM_GETORDERARRAY      (HDM_FIRST+19)   // TODO: FIX ME
+#endif
+
+#endif
+
+#include "resource.h"
+
+#define RUN_APPS_PAGE
+#define RUN_PROC_PAGE
+#define RUN_PERF_PAGE
+
+#define STATUS_WINDOW  2001
+
+typedef struct
+{
+       // Window size & position settings
+       BOOL    Maximized;
+       int             Left;
+       int             Top;
+       int             Right;
+       int             Bottom;
+
+       // Tab settings
+       int             ActiveTabPage;
+
+       // Options menu settings
+       BOOL    AlwaysOnTop;
+       BOOL    MinimizeOnUse;
+       BOOL    HideWhenMinimized;
+       BOOL    Show16BitTasks;
+
+       // Update speed settings
+       int             UpdateSpeed; // How many half-seconds in between updates (i.e. 0 - Paused, 1 - High, 2 - Normal, 4 - Low)
+
+       // Applications page settings
+       BOOL    View_LargeIcons;
+       BOOL    View_SmallIcons;
+       BOOL    View_Details;
+
+       // Processes page settings
+       BOOL    ShowProcessesFromAllUsers; // Server-only?
+       BOOL    Column_ImageName;
+       BOOL    Column_PID;
+       BOOL    Column_CPUUsage;
+       BOOL    Column_CPUTime;
+       BOOL    Column_MemoryUsage;
+       BOOL    Column_MemoryUsageDelta;
+       BOOL    Column_PeakMemoryUsage;
+       BOOL    Column_PageFaults;
+       BOOL    Column_USERObjects;
+       BOOL    Column_IOReads;
+       BOOL    Column_IOReadBytes;
+       BOOL    Column_SessionID; // Server-only?
+       BOOL    Column_UserName; // Server-only?
+       BOOL    Column_PageFaultsDelta;
+       BOOL    Column_VirtualMemorySize;
+       BOOL    Column_PagedPool;
+       BOOL    Column_NonPagedPool;
+       BOOL    Column_BasePriority;
+       BOOL    Column_HandleCount;
+       BOOL    Column_ThreadCount;
+       BOOL    Column_GDIObjects;
+       BOOL    Column_IOWrites;
+       BOOL    Column_IOWriteBytes;
+       BOOL    Column_IOOther;
+       BOOL    Column_IOOtherBytes;
+       int             ColumnOrderArray[25];
+       int             ColumnSizeArray[25];
+       int             SortColumn;
+       BOOL    SortAscending;
+
+       // Performance page settings
+       BOOL    CPUHistory_OneGraphPerCPU;
+       BOOL    ShowKernelTimes;
+
+} TASKMANAGER_SETTINGS, *LPTASKMANAGER_SETTINGS;
+
+// Global Variables:
+extern HINSTANCE       hInst;                                          // current instance
+extern HWND            hMainWnd;                                       // Main Window
+extern HWND            hStatusWnd;                                     // Status Bar Window
+extern HWND            hTabWnd;                                        // Tab Control Window
+
+extern int                     nMinimumWidth;                          // Minimum width of the dialog (OnSize()'s cx)
+extern int                     nMinimumHeight;                         // Minimum height of the dialog (OnSize()'s cy)
+extern int                     nOldWidth;                                      // Holds the previous client area width
+extern int                     nOldHeight;                                     // Holds the previous client area height
+
+extern TASKMANAGER_SETTINGS    TaskManagerSettings;
+
+// Foward declarations of functions included in this code module:
+LRESULT CALLBACK TaskManagerWndProc(HWND, UINT, WPARAM, LPARAM);
+
+BOOL OnCreate(HWND hWnd);
+void OnSize(UINT nType, int cx, int cy);
+void OnMove(UINT nType, int cx, int cy);
+
+void FillSolidRect(HDC hDC, LPCRECT lpRect, COLORREF clr);
+void FillSolidRect2(HDC hDC, int x, int y, int cx, int cy, COLORREF clr);
+void Draw3dRect(HDC hDC, int x, int y, int cx, int cy, COLORREF clrTopLeft, COLORREF clrBottomRight);
+void Draw3dRect2(HDC hDC, LPRECT lpRect, COLORREF clrTopLeft, COLORREF clrBottomRight);
+
+void LoadSettings(void);
+void SaveSettings(void);
+
+void TaskManager_OnEnterMenuLoop(HWND hWnd);
+void TaskManager_OnExitMenuLoop(HWND hWnd);
+void TaskManager_OnMenuSelect(HWND hWnd, UINT nItemID, UINT nFlags, HMENU hSysMenu);
+
+void TaskManager_OnViewUpdateSpeedHigh(void);
+void TaskManager_OnViewUpdateSpeedNormal(void);
+void TaskManager_OnViewUpdateSpeedLow(void);
+void TaskManager_OnViewUpdateSpeedPaused(void);
+void TaskManager_OnViewRefresh(void);
+
+void TaskManager_OnTabWndSelChange(void);
+
+LPTSTR GetLastErrorText( LPTSTR lpszBuf, DWORD dwSize );
+
+
+#ifdef __cplusplus
+};
+#endif
+
+#endif // __TASKMGR_H__
index 98ca15e..31205e7 100644 (file)
-//Microsoft Developer Studio generated resource script.\r
-//\r
-#include "resource.h"\r
-\r
-#define APSTUDIO_READONLY_SYMBOLS\r
-/////////////////////////////////////////////////////////////////////////////\r
-//\r
-// Generated from the TEXTINCLUDE 2 resource.\r
-//\r
-#define APSTUDIO_HIDDEN_SYMBOLS\r
-#include "windows.h"\r
-#undef APSTUDIO_HIDDEN_SYMBOLS\r
-#include "resource.h"\r
-\r
-/////////////////////////////////////////////////////////////////////////////\r
-#undef APSTUDIO_READONLY_SYMBOLS\r
-\r
-/////////////////////////////////////////////////////////////////////////////\r
-// English (U.S.) resources\r
-\r
-#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU)\r
-#ifdef _WIN32\r
-LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US\r
-#pragma code_page(1252)\r
-#endif //_WIN32\r
-\r
-/////////////////////////////////////////////////////////////////////////////\r
-//\r
-// Menu\r
-//\r
-\r
-IDR_TASKMANAGER MENU DISCARDABLE \r
-BEGIN\r
-    POPUP "&File"\r
-    BEGIN\r
-        MENUITEM "&New Task (Run...)",          ID_FILE_NEW\r
-        MENUITEM SEPARATOR\r
-        MENUITEM "E&xit Task Manager",          ID_FILE_EXIT\r
-    END\r
-    POPUP "&Options"\r
-    BEGIN\r
-        MENUITEM "&Always On Top",              ID_OPTIONS_ALWAYSONTOP\r
-        , CHECKED\r
-        MENUITEM "&Minimize On Use",            ID_OPTIONS_MINIMIZEONUSE\r
-        , CHECKED\r
-        MENUITEM "&Hide When Minimized",        ID_OPTIONS_HIDEWHENMINIMIZED\r
-        , CHECKED\r
-        MENUITEM "&Show 16-bit tasks",          ID_OPTIONS_SHOW16BITTASKS\r
-        , CHECKED\r
-    END\r
-    POPUP "&View"\r
-    BEGIN\r
-        MENUITEM "&Refresh Now",                ID_VIEW_REFRESH\r
-        POPUP "&Update Speed"\r
-        BEGIN\r
-            MENUITEM "&High",                       ID_VIEW_UPDATESPEED_HIGH\r
-            MENUITEM "&Normal",                     ID_VIEW_UPDATESPEED_NORMAL\r
-            , CHECKED\r
-            MENUITEM "&Low",                        ID_VIEW_UPDATESPEED_LOW\r
-            MENUITEM "&Paused",                     ID_VIEW_UPDATESPEED_PAUSED\r
-\r
-        END\r
-        MENUITEM SEPARATOR\r
-        MENUITEM "Lar&ge Icons",                ID_VIEW_LARGE\r
-        MENUITEM "S&mall Icons",                ID_VIEW_SMALL\r
-        MENUITEM "&Details",                    ID_VIEW_DETAILS, CHECKED\r
-        MENUITEM "&Select Columns...",          ID_VIEW_SELECTCOLUMNS\r
-        POPUP "&CPU History"\r
-        BEGIN\r
-            MENUITEM "&One Graph, All CPUs",        ID_VIEW_CPUHISTORY_ONEGRAPHALL\r
-\r
-            MENUITEM "One Graph &Per CPU",          ID_VIEW_CPUHISTORY_ONEGRAPHPERCPU\r
-            , CHECKED\r
-        END\r
-        MENUITEM "&Show Kernel Times",          ID_VIEW_SHOWKERNELTIMES\r
-    END\r
-    POPUP "&Windows"\r
-    BEGIN\r
-        MENUITEM "Tile &Horizontally",          ID_WINDOWS_TILEHORIZONTALLY\r
-        MENUITEM "Tile &Vertically",            ID_WINDOWS_TILEVERTICALLY\r
-        MENUITEM "&Minimize",                   ID_WINDOWS_MINIMIZE\r
-        MENUITEM "Ma&ximize",                   ID_WINDOWS_MAXIMIZE\r
-        MENUITEM "&Cascade",                    ID_WINDOWS_CASCADE\r
-        MENUITEM "&Bring To Front",             ID_WINDOWS_BRINGTOFRONT\r
-    END\r
-    POPUP "&Help"\r
-    BEGIN\r
-        MENUITEM "Task Manager &Help Topics",   ID_HELP_TOPICS\r
-        MENUITEM SEPARATOR\r
-        MENUITEM "&About Task Manager",         ID_HELP_ABOUT\r
-    END\r
-END\r
-\r
-IDR_WINDOWSMENU MENU DISCARDABLE \r
-BEGIN\r
-    MENUITEM "Tile &Horizontally",          ID_WINDOWS_TILEHORIZONTALLY\r
-    MENUITEM "Tile &Vertically",            ID_WINDOWS_TILEVERTICALLY\r
-    MENUITEM "&Minimize",                   ID_WINDOWS_MINIMIZE\r
-    MENUITEM "Ma&ximize",                   ID_WINDOWS_MAXIMIZE\r
-    MENUITEM "&Cascade",                    ID_WINDOWS_CASCADE\r
-    MENUITEM "&Bring To Front",             ID_WINDOWS_BRINGTOFRONT\r
-END\r
-\r
-IDR_APPLICATION_PAGE_CONTEXT1 MENU DISCARDABLE \r
-BEGIN\r
-    POPUP "DUMMY"\r
-    BEGIN\r
-        MENUITEM "&New Task (Run...)",          ID_FILE_NEW\r
-        MENUITEM SEPARATOR\r
-        MENUITEM "Lar&ge Icons",                ID_VIEW_LARGE\r
-        MENUITEM "S&mall Icons",                ID_VIEW_SMALL\r
-        MENUITEM "&Details",                    ID_VIEW_DETAILS, CHECKED\r
-    END\r
-END\r
-\r
-IDR_APPLICATION_PAGE_CONTEXT2 MENU DISCARDABLE \r
-BEGIN\r
-    POPUP "DUMMY"\r
-    BEGIN\r
-        MENUITEM "&Switch To",                  ID_APPLICATION_PAGE_SWITCHTO\r
-        MENUITEM "&Bring To Front",             ID_WINDOWS_BRINGTOFRONT\r
-        MENUITEM SEPARATOR\r
-        MENUITEM "Tile &Horizontally",          ID_WINDOWS_TILEHORIZONTALLY\r
-        MENUITEM "Tile &Vertically",            ID_WINDOWS_TILEVERTICALLY\r
-        MENUITEM "&Minimize",                   ID_WINDOWS_MINIMIZE\r
-        MENUITEM "Ma&ximize",                   ID_WINDOWS_MAXIMIZE\r
-        MENUITEM "&Cascade",                    ID_WINDOWS_CASCADE\r
-        MENUITEM SEPARATOR\r
-        MENUITEM "&End Task",                   ID_APPLICATION_PAGE_ENDTASK\r
-        MENUITEM "&Go To Process",              ID_APPLICATION_PAGE_GOTOPROCESS\r
-\r
-    END\r
-END\r
-\r
-IDR_TRAY_POPUP MENU DISCARDABLE \r
-BEGIN\r
-    MENUITEM "&Restore",                    ID_RESTORE\r
-    MENUITEM "&Close",                      ID_FILE_EXIT\r
-    MENUITEM SEPARATOR\r
-    MENUITEM "&Always On Top",              ID_OPTIONS_ALWAYSONTOP, CHECKED\r
-END\r
-\r
-IDR_PROCESS_PAGE_CONTEXT MENU DISCARDABLE \r
-BEGIN\r
-    POPUP "DUMMY"\r
-    BEGIN\r
-        MENUITEM "&End Process",                ID_PROCESS_PAGE_ENDPROCESS\r
-        MENUITEM "End Process &Tree",           ID_PROCESS_PAGE_ENDPROCESSTREE\r
-\r
-        MENUITEM "&Debug",                      ID_PROCESS_PAGE_DEBUG\r
-        MENUITEM SEPARATOR\r
-        POPUP "Set &Priority"\r
-        BEGIN\r
-            MENUITEM "&Realtime",                   ID_PROCESS_PAGE_SETPRIORITY_REALTIME\r
-\r
-            MENUITEM "&High",                       ID_PROCESS_PAGE_SETPRIORITY_HIGH\r
-\r
-            MENUITEM "&AboveNormal",                ID_PROCESS_PAGE_SETPRIORITY_ABOVENORMAL\r
-\r
-            MENUITEM "&Normal",                     ID_PROCESS_PAGE_SETPRIORITY_NORMAL\r
-\r
-            MENUITEM "&BelowNormal",                ID_PROCESS_PAGE_SETPRIORITY_BELOWNORMAL\r
-\r
-            MENUITEM "&Low",                        ID_PROCESS_PAGE_SETPRIORITY_LOW\r
-\r
-        END\r
-        MENUITEM "Set &Affinity...",            ID_PROCESS_PAGE_SETAFFINITY\r
-    END\r
-END\r
-\r
-\r
-/////////////////////////////////////////////////////////////////////////////\r
-//\r
-// Dialog\r
-//\r
-\r
-IDD_ABOUTBOX DIALOG DISCARDABLE  22, 17, 259, 210\r
-STYLE DS_MODALFRAME | WS_CAPTION | WS_SYSMENU\r
-CAPTION "About Task Manager"\r
-FONT 8, "Tahoma"\r
-BEGIN\r
-    CONTROL         "Task Manager v1.0\nCopyright (C) 1999 - 2001\nby Brian Palmer (brianp@reactos.org)",\r
-                    IDC_STATIC,"Static",SS_LEFTNOWORDWRAP | WS_GROUP,53,28,\r
-                    122,26\r
-    DEFPUSHBUTTON   "OK",IDOK,183,189,44,14,WS_GROUP\r
-    ICON            IDI_TASKMANAGER,IDC_STATIC,19,30,20,20\r
-    EDITTEXT        IDC_LICENSE_EDIT,53,63,174,107,ES_MULTILINE | \r
-                    ES_READONLY | WS_VSCROLL\r
-END\r
-\r
-IDD_TASKMGR_DIALOG DIALOG DISCARDABLE  0, 0, 264, 246\r
-STYLE DS_CENTER | WS_MINIMIZEBOX | WS_MAXIMIZEBOX | WS_POPUP | \r
-    WS_CLIPSIBLINGS | WS_CLIPCHILDREN | WS_CAPTION | WS_SYSMENU | \r
-    WS_THICKFRAME\r
-CAPTION "Task Manager"\r
-MENU IDR_TASKMANAGER\r
-FONT 8, "Tahoma"\r
-BEGIN\r
-    CONTROL         "Tab1",IDC_TAB,"SysTabControl32",WS_TABSTOP,3,3,257,228\r
-END\r
-\r
-IDD_APPLICATION_PAGE DIALOG DISCARDABLE  0, 0, 247, 210\r
-STYLE DS_CONTROL | WS_CHILD | WS_VISIBLE | WS_CLIPCHILDREN\r
-FONT 8, "Tahoma"\r
-BEGIN\r
-    CONTROL         "List2",IDC_APPLIST,"SysListView32",LVS_REPORT | \r
-                    LVS_SHOWSELALWAYS | WS_BORDER | WS_TABSTOP,7,7,233,177\r
-    PUSHBUTTON      "&New Task...",IDC_NEWTASK,187,189,53,14\r
-    PUSHBUTTON      "&Switch To",IDC_SWITCHTO,131,189,53,14,WS_DISABLED\r
-    PUSHBUTTON      "&End Task",IDC_ENDTASK,75,189,53,14,WS_DISABLED\r
-END\r
-\r
-IDD_PROCESS_PAGE DIALOG DISCARDABLE  0, 0, 247, 210\r
-STYLE DS_CONTROL | WS_CHILD | WS_CLIPCHILDREN\r
-FONT 8, "Tahoma"\r
-BEGIN\r
-    CONTROL         "List2",IDC_PROCESSLIST,"SysListView32",LVS_REPORT | \r
-                    LVS_SINGLESEL | LVS_SHOWSELALWAYS | LVS_OWNERDATA | \r
-                    WS_BORDER | WS_TABSTOP,7,7,233,177\r
-    PUSHBUTTON      "&End Process",IDC_ENDPROCESS,171,189,69,14\r
-    CONTROL         "&Show processes from all users",IDC_SHOWALLPROCESSES,\r
-                    "Button",BS_AUTOCHECKBOX | WS_TABSTOP,7,191,111,10\r
-END\r
-\r
-IDD_PERFORMANCE_PAGE DIALOGEX 0, 0, 247, 210\r
-STYLE DS_CONTROL | WS_CHILD\r
-FONT 8, "Tahoma"\r
-BEGIN\r
-    GROUPBOX        "CPU Usage",IDC_CPU_USAGE_FRAME,5,5,60,54,WS_TABSTOP\r
-    GROUPBOX        "MEM Usage",IDC_MEM_USAGE_FRAME,5,63,60,54\r
-    GROUPBOX        "Totals",IDC_TOTALS_FRAME,5,122,111,39\r
-    GROUPBOX        "Commit Charge (K)",IDC_COMMIT_CHARGE_FRAME,5,166,111,39\r
-    GROUPBOX        "Physical Memory (K)",IDC_PHYSICAL_MEMORY_FRAME,131,122,\r
-                    111,39\r
-    GROUPBOX        "Kernel Memory (K)",IDC_KERNEL_MEMORY_FRAME,131,166,111,\r
-                    39\r
-    LTEXT           "Handles",IDC_STATIC,12,131,27,8\r
-    LTEXT           "Threads",IDC_STATIC,12,140,27,8\r
-    LTEXT           "Processes",IDC_STATIC,12,149,34,8\r
-    EDITTEXT        IDC_TOTALS_HANDLE_COUNT,65,131,45,8,ES_RIGHT | \r
-                    ES_READONLY | ES_NUMBER | NOT WS_BORDER\r
-    EDITTEXT        IDC_TOTALS_THREAD_COUNT,65,140,45,8,ES_RIGHT | \r
-                    ES_READONLY | ES_NUMBER | NOT WS_BORDER\r
-    EDITTEXT        IDC_TOTALS_PROCESS_COUNT,65,149,45,8,ES_RIGHT | \r
-                    ES_READONLY | ES_NUMBER | NOT WS_BORDER\r
-    LTEXT           "Total",IDC_STATIC,12,175,27,8\r
-    LTEXT           "Limit",IDC_STATIC,12,184,15,8\r
-    LTEXT           "Peak",IDC_STATIC,12,193,34,8\r
-    EDITTEXT        IDC_COMMIT_CHARGE_TOTAL,65,174,45,8,ES_RIGHT | \r
-                    ES_READONLY | ES_NUMBER | NOT WS_BORDER\r
-    EDITTEXT        IDC_COMMIT_CHARGE_LIMIT,65,184,45,8,ES_RIGHT | \r
-                    ES_READONLY | ES_NUMBER | NOT WS_BORDER\r
-    EDITTEXT        IDC_COMMIT_CHARGE_PEAK,65,193,45,8,ES_RIGHT | \r
-                    ES_READONLY | ES_NUMBER | NOT WS_BORDER\r
-    LTEXT           "Total",IDC_STATIC,137,131,27,8\r
-    LTEXT           "Available",IDC_STATIC,137,140,30,8\r
-    LTEXT           "System Cache",IDC_STATIC,137,149,46,8\r
-    EDITTEXT        IDC_PHYSICAL_MEMORY_TOTAL,185,131,48,8,ES_RIGHT | \r
-                    ES_READONLY | ES_NUMBER | NOT WS_BORDER\r
-    EDITTEXT        IDC_PHYSICAL_MEMORY_AVAILABLE,185,140,48,8,ES_RIGHT | \r
-                    ES_READONLY | ES_NUMBER | NOT WS_BORDER\r
-    EDITTEXT        IDC_PHYSICAL_MEMORY_SYSTEM_CACHE,185,149,48,8,ES_RIGHT | \r
-                    ES_READONLY | ES_NUMBER | NOT WS_BORDER\r
-    LTEXT           "Total",IDC_STATIC,137,174,27,8\r
-    LTEXT           "Paged",IDC_STATIC,137,184,21,8\r
-    LTEXT           "Nonpaged",IDC_STATIC,137,193,34,8\r
-    EDITTEXT        IDC_KERNEL_MEMORY_TOTAL,185,174,48,8,ES_RIGHT | \r
-                    ES_READONLY | ES_NUMBER | NOT WS_BORDER\r
-    EDITTEXT        IDC_KERNEL_MEMORY_PAGED,185,184,48,8,ES_RIGHT | \r
-                    ES_READONLY | ES_NUMBER | NOT WS_BORDER\r
-    EDITTEXT        IDC_KERNEL_MEMORY_NONPAGED,185,193,48,8,ES_RIGHT | \r
-                    ES_READONLY | ES_NUMBER | NOT WS_BORDER\r
-    GROUPBOX        "CPU Usage History",IDC_CPU_USAGE_HISTORY_FRAME,74,5,168,\r
-                    54\r
-    GROUPBOX        "Memory Usage History",IDC_MEMORY_USAGE_HISTORY_FRAME,74,\r
-                    63,168,54\r
-    PUSHBUTTON      "CPU Usage Display",IDC_CPU_USAGE_GRAPH,12,17,47,37,0,\r
-                    WS_EX_CLIENTEDGE\r
-    PUSHBUTTON      "MEM Usage Display",IDC_MEM_USAGE_GRAPH,12,75,47,37,0,\r
-                    WS_EX_CLIENTEDGE\r
-    PUSHBUTTON      "MEM Usage History",IDC_MEM_USAGE_HISTORY_GRAPH,81,75,\r
-                    153,37,0,WS_EX_CLIENTEDGE\r
-END\r
-\r
-IDD_AFFINITY_DIALOG DIALOG DISCARDABLE  0, 0, 231, 154\r
-STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU\r
-CAPTION "Processor Affinity"\r
-FONT 8, "Tahoma"\r
-BEGIN\r
-    DEFPUSHBUTTON   "OK",IDOK,120,133,50,14\r
-    PUSHBUTTON      "Cancel",IDCANCEL,174,133,50,14\r
-    LTEXT           "The Processor Affinity setting controls which CPUs the process will be allowed to execute on.",\r
-                    IDC_STATIC,5,5,220,16\r
-    CONTROL         "CPU 0",IDC_CPU0,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,\r
-                    11,28,37,10\r
-    CONTROL         "CPU 1",IDC_CPU1,"Button",BS_AUTOCHECKBOX | WS_DISABLED | \r
-                    WS_TABSTOP,11,41,37,10\r
-    CONTROL         "CPU 2",IDC_CPU2,"Button",BS_AUTOCHECKBOX | WS_DISABLED | \r
-                    WS_TABSTOP,11,54,37,10\r
-    CONTROL         "CPU 3",IDC_CPU3,"Button",BS_AUTOCHECKBOX | WS_DISABLED | \r
-                    WS_TABSTOP,11,67,37,10\r
-    CONTROL         "CPU 4",IDC_CPU4,"Button",BS_AUTOCHECKBOX | WS_DISABLED | \r
-                    WS_TABSTOP,11,80,37,10\r
-    CONTROL         "CPU 5",IDC_CPU5,"Button",BS_AUTOCHECKBOX | WS_DISABLED | \r
-                    WS_TABSTOP,11,93,37,10\r
-    CONTROL         "CPU 6",IDC_CPU6,"Button",BS_AUTOCHECKBOX | WS_DISABLED | \r
-                    WS_TABSTOP,11,106,37,10\r
-    CONTROL         "CPU 7",IDC_CPU7,"Button",BS_AUTOCHECKBOX | WS_DISABLED | \r
-                    WS_TABSTOP,11,119,37,10\r
-    CONTROL         "CPU 8",IDC_CPU8,"Button",BS_AUTOCHECKBOX | WS_DISABLED | \r
-                    WS_TABSTOP,61,28,37,10\r
-    CONTROL         "CPU 9",IDC_CPU9,"Button",BS_AUTOCHECKBOX | WS_DISABLED | \r
-                    WS_TABSTOP,61,41,37,10\r
-    CONTROL         "CPU 10",IDC_CPU10,"Button",BS_AUTOCHECKBOX | \r
-                    WS_DISABLED | WS_TABSTOP,61,54,41,10\r
-    CONTROL         "CPU 11",IDC_CPU11,"Button",BS_AUTOCHECKBOX | \r
-                    WS_DISABLED | WS_TABSTOP,61,67,41,10\r
-    CONTROL         "CPU 12",IDC_CPU12,"Button",BS_AUTOCHECKBOX | \r
-                    WS_DISABLED | WS_TABSTOP,61,80,41,10\r
-    CONTROL         "CPU 13",IDC_CPU13,"Button",BS_AUTOCHECKBOX | \r
-                    WS_DISABLED | WS_TABSTOP,61,93,41,10\r
-    CONTROL         "CPU 14",IDC_CPU14,"Button",BS_AUTOCHECKBOX | \r
-                    WS_DISABLED | WS_TABSTOP,61,106,41,10\r
-    CONTROL         "CPU 15",IDC_CPU15,"Button",BS_AUTOCHECKBOX | \r
-                    WS_DISABLED | WS_TABSTOP,61,119,41,10\r
-    CONTROL         "CPU 16",IDC_CPU16,"Button",BS_AUTOCHECKBOX | \r
-                    WS_DISABLED | WS_TABSTOP,116,28,41,10\r
-    CONTROL         "CPU 17",IDC_CPU17,"Button",BS_AUTOCHECKBOX | \r
-                    WS_DISABLED | WS_TABSTOP,116,41,41,10\r
-    CONTROL         "CPU 18",IDC_CPU18,"Button",BS_AUTOCHECKBOX | \r
-                    WS_DISABLED | WS_TABSTOP,116,54,41,10\r
-    CONTROL         "CPU 19",IDC_CPU19,"Button",BS_AUTOCHECKBOX | \r
-                    WS_DISABLED | WS_TABSTOP,116,67,41,10\r
-    CONTROL         "CPU 20",IDC_CPU20,"Button",BS_AUTOCHECKBOX | \r
-                    WS_DISABLED | WS_TABSTOP,116,80,41,10\r
-    CONTROL         "CPU 21",IDC_CPU21,"Button",BS_AUTOCHECKBOX | \r
-                    WS_DISABLED | WS_TABSTOP,116,93,41,10\r
-    CONTROL         "CPU 22",IDC_CPU22,"Button",BS_AUTOCHECKBOX | \r
-                    WS_DISABLED | WS_TABSTOP,116,106,41,10\r
-    CONTROL         "CPU 23",IDC_CPU23,"Button",BS_AUTOCHECKBOX | \r
-                    WS_DISABLED | WS_TABSTOP,116,119,41,10\r
-    CONTROL         "CPU 24",IDC_CPU24,"Button",BS_AUTOCHECKBOX | \r
-                    WS_DISABLED | WS_TABSTOP,175,28,41,10\r
-    CONTROL         "CPU 25",IDC_CPU25,"Button",BS_AUTOCHECKBOX | \r
-                    WS_DISABLED | WS_TABSTOP,175,41,41,10\r
-    CONTROL         "CPU 26",IDC_CPU26,"Button",BS_AUTOCHECKBOX | \r
-                    WS_DISABLED | WS_TABSTOP,175,54,41,10\r
-    CONTROL         "CPU 27",IDC_CPU27,"Button",BS_AUTOCHECKBOX | \r
-                    WS_DISABLED | WS_TABSTOP,175,67,41,10\r
-    CONTROL         "CPU 28",IDC_CPU28,"Button",BS_AUTOCHECKBOX | \r
-                    WS_DISABLED | WS_TABSTOP,175,80,41,10\r
-    CONTROL         "CPU 29",IDC_CPU29,"Button",BS_AUTOCHECKBOX | \r
-                    WS_DISABLED | WS_TABSTOP,175,93,41,10\r
-    CONTROL         "CPU 30",IDC_CPU30,"Button",BS_AUTOCHECKBOX | \r
-                    WS_DISABLED | WS_TABSTOP,175,106,41,10\r
-    CONTROL         "CPU 31",IDC_CPU31,"Button",BS_AUTOCHECKBOX | \r
-                    WS_DISABLED | WS_TABSTOP,175,119,41,10\r
-END\r
-\r
-IDD_COLUMNS_DIALOG DIALOG DISCARDABLE  0, 0, 195, 199\r
-STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU\r
-CAPTION "Select Columns"\r
-FONT 8, "Tahoma"\r
-BEGIN\r
-    DEFPUSHBUTTON   "OK",IDOK,84,178,50,14\r
-    PUSHBUTTON      "Cancel",IDCANCEL,138,178,50,14\r
-    LTEXT           "Select the columns that will appear on the Process page of the Task Manager.",\r
-                    IDC_STATIC,7,7,181,17\r
-    CONTROL         "&Image Name",IDC_IMAGENAME,"Button",BS_AUTOCHECKBOX | \r
-                    WS_DISABLED | WS_TABSTOP,7,28,56,10\r
-    CONTROL         "&PID (Process Identifier)",IDC_PID,"Button",\r
-                    BS_AUTOCHECKBOX | WS_TABSTOP,7,39,88,10\r
-    CONTROL         "&CPU Usage",IDC_CPUUSAGE,"Button",BS_AUTOCHECKBOX | \r
-                    WS_TABSTOP,7,50,53,10\r
-    CONTROL         "CPU Tim&e",IDC_CPUTIME,"Button",BS_AUTOCHECKBOX | \r
-                    WS_TABSTOP,7,61,48,10\r
-    CONTROL         "&Memory Usage",IDC_MEMORYUSAGE,"Button",BS_AUTOCHECKBOX | \r
-                    WS_TABSTOP,7,72,63,10\r
-    CONTROL         "Memory Usage &Delta",IDC_MEMORYUSAGEDELTA,"Button",\r
-                    BS_AUTOCHECKBOX | WS_TABSTOP,7,83,82,10\r
-    CONTROL         "Pea&k Memory Usage",IDC_PEAKMEMORYUSAGE,"Button",\r
-                    BS_AUTOCHECKBOX | WS_TABSTOP,7,94,82,10\r
-    CONTROL         "Page &Faults",IDC_PAGEFAULTS,"Button",BS_AUTOCHECKBOX | \r
-                    WS_TABSTOP,7,105,53,10\r
-    CONTROL         "&USER Objects",IDC_USEROBJECTS,"Button",BS_AUTOCHECKBOX | \r
-                    WS_TABSTOP,7,116,62,10\r
-    CONTROL         "I/O Reads",IDC_IOREADS,"Button",BS_AUTOCHECKBOX | \r
-                    WS_TABSTOP,7,127,49,10\r
-    CONTROL         "I/O Read Bytes",IDC_IOREADBYTES,"Button",\r
-                    BS_AUTOCHECKBOX | WS_TABSTOP,7,138,65,10\r
-    CONTROL         "&Session ID",IDC_SESSIONID,"Button",BS_AUTOCHECKBOX | \r
-                    WS_TABSTOP,7,149,50,10\r
-    CONTROL         "User &Name",IDC_USERNAME,"Button",BS_AUTOCHECKBOX | \r
-                    WS_TABSTOP,7,160,51,10\r
-    CONTROL         "Page F&aults Delta",IDC_PAGEFAULTSDELTA,"Button",\r
-                    BS_AUTOCHECKBOX | WS_TABSTOP,107,28,72,10\r
-    CONTROL         "&Virtual Memory Size",IDC_VIRTUALMEMORYSIZE,"Button",\r
-                    BS_AUTOCHECKBOX | WS_TABSTOP,107,39,77,10\r
-    CONTROL         "Pa&ged Pool",IDC_PAGEDPOOL,"Button",BS_AUTOCHECKBOX | \r
-                    WS_TABSTOP,107,50,53,10\r
-    CONTROL         "N&on-paged Pool",IDC_NONPAGEDPOOL,"Button",\r
-                    BS_AUTOCHECKBOX | WS_TABSTOP,107,61,67,10\r
-    CONTROL         "Base P&riority",IDC_BASEPRIORITY,"Button",\r
-                    BS_AUTOCHECKBOX | WS_TABSTOP,107,72,55,10\r
-    CONTROL         "&Handle Count",IDC_HANDLECOUNT,"Button",BS_AUTOCHECKBOX | \r
-                    WS_TABSTOP,107,83,59,10\r
-    CONTROL         "&Thread Count",IDC_THREADCOUNT,"Button",BS_AUTOCHECKBOX | \r
-                    WS_TABSTOP,107,94,59,10\r
-    CONTROL         "GDI Objects",IDC_GDIOBJECTS,"Button",BS_AUTOCHECKBOX | \r
-                    WS_TABSTOP,107,105,55,10\r
-    CONTROL         "I/O Writes",IDC_IOWRITES,"Button",BS_AUTOCHECKBOX | \r
-                    WS_TABSTOP,107,116,49,10\r
-    CONTROL         "I/O Write Bytes",IDC_IOWRITEBYTES,"Button",\r
-                    BS_AUTOCHECKBOX | WS_TABSTOP,107,127,65,10\r
-    CONTROL         "I/O Other",IDC_IOOTHER,"Button",BS_AUTOCHECKBOX | \r
-                    WS_TABSTOP,107,138,46,10\r
-    CONTROL         "I/O Other Bytes",IDC_IOOTHERBYTES,"Button",\r
-                    BS_AUTOCHECKBOX | WS_TABSTOP,107,149,65,10\r
-END\r
-\r
-\r
-#ifdef APSTUDIO_INVOKED\r
-/////////////////////////////////////////////////////////////////////////////\r
-//\r
-// TEXTINCLUDE\r
-//\r
-\r
-2 TEXTINCLUDE DISCARDABLE \r
-BEGIN\r
-    "#define APSTUDIO_HIDDEN_SYMBOLS\r\n"\r
-    "#include ""windows.h""\r\n"\r
-    "#undef APSTUDIO_HIDDEN_SYMBOLS\r\n"\r
-    "#include ""resource.h""\r\n"\r
-    "\0"\r
-END\r
-\r
-3 TEXTINCLUDE DISCARDABLE \r
-BEGIN\r
-    "\r\n"\r
-    "\0"\r
-END\r
-\r
-1 TEXTINCLUDE DISCARDABLE \r
-BEGIN\r
-    "resource.h\0"\r
-END\r
-\r
-#endif    // APSTUDIO_INVOKED\r
-\r
-\r
-/////////////////////////////////////////////////////////////////////////////\r
-//\r
-// DESIGNINFO\r
-//\r
-\r
-#ifdef APSTUDIO_INVOKED\r
-GUIDELINES DESIGNINFO DISCARDABLE \r
-BEGIN\r
-    IDD_ABOUTBOX, DIALOG\r
-    BEGIN\r
-        LEFTMARGIN, 7\r
-        RIGHTMARGIN, 252\r
-        TOPMARGIN, 7\r
-        BOTTOMMARGIN, 203\r
-    END\r
-\r
-    IDD_TASKMGR_DIALOG, DIALOG\r
-    BEGIN\r
-        LEFTMARGIN, 3\r
-        RIGHTMARGIN, 260\r
-        TOPMARGIN, 3\r
-        BOTTOMMARGIN, 231\r
-    END\r
-\r
-    IDD_APPLICATION_PAGE, DIALOG\r
-    BEGIN\r
-        LEFTMARGIN, 7\r
-        RIGHTMARGIN, 240\r
-        TOPMARGIN, 7\r
-        BOTTOMMARGIN, 203\r
-    END\r
-\r
-    IDD_PROCESS_PAGE, DIALOG\r
-    BEGIN\r
-        LEFTMARGIN, 7\r
-        RIGHTMARGIN, 240\r
-        TOPMARGIN, 7\r
-        BOTTOMMARGIN, 203\r
-    END\r
-\r
-    IDD_PERFORMANCE_PAGE, DIALOG\r
-    BEGIN\r
-        LEFTMARGIN, 5\r
-        RIGHTMARGIN, 242\r
-        VERTGUIDE, 12\r
-        VERTGUIDE, 65\r
-        VERTGUIDE, 110\r
-        TOPMARGIN, 5\r
-        BOTTOMMARGIN, 205\r
-    END\r
-\r
-    IDD_AFFINITY_DIALOG, DIALOG\r
-    BEGIN\r
-        LEFTMARGIN, 7\r
-        RIGHTMARGIN, 224\r
-        VERTGUIDE, 11\r
-        VERTGUIDE, 61\r
-        VERTGUIDE, 116\r
-        VERTGUIDE, 175\r
-        TOPMARGIN, 7\r
-        BOTTOMMARGIN, 147\r
-        HORZGUIDE, 28\r
-        HORZGUIDE, 38\r
-        HORZGUIDE, 51\r
-        HORZGUIDE, 64\r
-        HORZGUIDE, 77\r
-        HORZGUIDE, 90\r
-        HORZGUIDE, 103\r
-        HORZGUIDE, 116\r
-        HORZGUIDE, 129\r
-    END\r
-\r
-    IDD_COLUMNS_DIALOG, DIALOG\r
-    BEGIN\r
-        LEFTMARGIN, 7\r
-        RIGHTMARGIN, 188\r
-        VERTGUIDE, 107\r
-        TOPMARGIN, 7\r
-        BOTTOMMARGIN, 192\r
-        HORZGUIDE, 28\r
-    END\r
-END\r
-#endif    // APSTUDIO_INVOKED\r
-\r
-\r
-/////////////////////////////////////////////////////////////////////////////\r
-//\r
-// Icon\r
-//\r
-\r
-// Icon with lowest ID value placed first to ensure application icon\r
-// remains consistent on all systems.\r
-IDI_TASKMANAGER         ICON    DISCARDABLE     "taskmgr.ico"\r
-IDI_WINDOW              ICON    DISCARDABLE     "window.ico"\r
-IDI_WINDOWSM            ICON    DISCARDABLE     "windowsm.ico"\r
-\r
-#ifndef _MAC\r
-/////////////////////////////////////////////////////////////////////////////\r
-//\r
-// Version\r
-//\r
-\r
-VS_VERSION_INFO VERSIONINFO\r
- FILEVERSION 1,0,0,1\r
- PRODUCTVERSION 1,0,0,1\r
- FILEFLAGSMASK 0x3fL\r
-#ifdef _DEBUG\r
- FILEFLAGS 0x1L\r
-#else\r
- FILEFLAGS 0x0L\r
-#endif\r
- FILEOS 0x40004L\r
- FILETYPE 0x1L\r
- FILESUBTYPE 0x0L\r
-BEGIN\r
-    BLOCK "StringFileInfo"\r
-    BEGIN\r
-        BLOCK "040904b0"\r
-        BEGIN\r
-            VALUE "CompanyName", "Brian Palmer\0"\r
-            VALUE "FileDescription", "ReactOS Task Manager by Brian Palmer\0"\r
-            VALUE "FileVersion", "1.0.0.1\0"\r
-            VALUE "InternalName", "taskmgr\0"\r
-            VALUE "LegalCopyright", "Copyright © Brian Palmer 2000\0"\r
-            VALUE "OriginalFilename", "taskmgr.exe\0"\r
-            VALUE "ProductName", "ReactOS Task Manager by Brian Palmer\0"\r
-            VALUE "ProductVersion", "1.0.0.1\0"\r
-        END\r
-    END\r
-    BLOCK "VarFileInfo"\r
-    BEGIN\r
-        VALUE "Translation", 0x409, 1200\r
-    END\r
-END\r
-\r
-#endif    // !_MAC\r
-\r
-\r
-/////////////////////////////////////////////////////////////////////////////\r
-//\r
-// Bitmap\r
-//\r
-\r
-IDB_TRAYMASK            BITMAP  DISCARDABLE     "traymask.bmp"\r
-IDB_TRAYICON            BITMAP  DISCARDABLE     "trayicon.bmp"\r
-IDB_FONT                BITMAP  DISCARDABLE     "font.bmp"\r
-\r
-/////////////////////////////////////////////////////////////////////////////\r
-//\r
-// String Table\r
-//\r
-\r
-STRINGTABLE DISCARDABLE \r
-BEGIN\r
-    IDS_APP_TITLE           "Task Manager"\r
-    IDC_TASKMGR             "Task Manager"\r
-END\r
-\r
-STRINGTABLE DISCARDABLE \r
-BEGIN\r
-    ID_FILE_NEW             "Runs a new program"\r
-    ID_OPTIONS_ALWAYSONTOP  "Task Manager remains in front of all other windows unless minimized"\r
-    ID_OPTIONS_MINIMIZEONUSE \r
-                            "Task Manager is minimized when a SwitchTo operation is performed"\r
-    ID_OPTIONS_HIDEWHENMINIMIZED "Hide the Task Manager when it is minimized"\r
-    ID_VIEW_REFRESH         "Force Task Manager to update now, regardless of Update Speed setting"\r
-    ID_VIEW_LARGE           "Displays tasks by using large icons"\r
-    ID_VIEW_SMALL           "Displays tasks by using small icons"\r
-    ID_VIEW_DETAILS         "Displays information about each task"\r
-    ID_VIEW_UPDATESPEED_HIGH "Updates the display twice per second"\r
-    ID_VIEW_UPDATESPEED_NORMAL "Updates the display every two seconds"\r
-    ID_VIEW_UPDATESPEED_LOW "Updates the display every four seconds"\r
-END\r
-\r
-STRINGTABLE DISCARDABLE \r
-BEGIN\r
-    ID_VIEW_UPDATESPEED_PAUSED "Does not automatically update"\r
-    ID_WINDOWS_TILEHORIZONTALLY \r
-                            "Tiles the windows horizontally on the desktop"\r
-    ID_WINDOWS_TILEVERTICALLY "Tiles the windows vertically on the desktop"\r
-    ID_WINDOWS_MINIMIZE     "Minimizes the windows"\r
-    ID_WINDOWS_MAXIMIZE     "Maximizes the windows"\r
-    ID_WINDOWS_CASCADE      "Cascades the windows diagonally on the desktop"\r
-    ID_WINDOWS_BRINGTOFRONT "Brings the window front, but does not switch to it"\r
-    ID_HELP_TOPICS          "Displays Task Manager help topics"\r
-    ID_HELP_ABOUT           "Displays program information, version number, and copyright"\r
-    ID_FILE_EXIT            "Exits the Task Manager application"\r
-    ID_OPTIONS_SHOW16BITTASKS \r
-                            "Shows 16-bit tasks under the associated ntvdm.exe"\r
-    ID_VIEW_SELECTCOLUMNS   "Select which columns will be visible on the Process page"\r
-    ID_VIEW_SHOWKERNELTIMES "Displays kernel time in the performance graphs"\r
-    ID_VIEW_CPUHISTORY_ONEGRAPHALL \r
-                            "A single history graph shows total CPU usage"\r
-    ID_VIEW_CPUHISTORY_ONEGRAPHPERCPU "Each CPU has its own history graph"\r
-    ID_APPLICATION_PAGE_SWITCHTO \r
-                            "Brings a task to the foreground, switch focus to that task"\r
-END\r
-\r
-STRINGTABLE DISCARDABLE \r
-BEGIN\r
-    ID_ENDTASK              "Tells the selected tasks to close"\r
-    ID_GOTOPROCESS          "Switches the focus to the process of the selected task"\r
-    ID_RESTORE              "Restores the Task Manager from its hidden state"\r
-    ID_PROCESS_PAGE_ENDPROCESS "Removes the process from the system"\r
-    ID_PROCESS_PAGE_ENDPROCESSTREE \r
-                            "Removes this process and all descendants from the system"\r
-    ID_PROCESS_PAGE_DEBUG   "Attaches the debugger to this process"\r
-    ID_PROCESS_PAGE_SETAFFINITY \r
-                            "Controls which processors the process will be allowed to run on"\r
-    ID_PROCESS_PAGE_SETPRIORITY_REALTIME \r
-                            "Sets process to the REALTIME priority class"\r
-    ID_PROCESS_PAGE_SETPRIORITY_HIGH "Sets process to the HIGH priority class"\r
-    ID_PROCESS_PAGE_SETPRIORITY_ABOVENORMAL \r
-                            "Sets process to the ABOVE NORMAL priority class"\r
-    ID_PROCESS_PAGE_SETPRIORITY_NORMAL \r
-                            "Sets process to the NORMAL priority class"\r
-    ID_PROCESS_PAGE_SETPRIORITY_BELOWNORMAL \r
-                            "Sets process to the BELOW NORMAL priority class"\r
-    ID_PROCESS_PAGE_SETPRIORITY_LOW "Sets process to the LOW priority class"\r
-    IDS_LICENSE             "This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.\r\n\r\nThis program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for more details.\r\n\r\nYou should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA."\r
-END\r
-\r
-#endif    // English (U.S.) resources\r
-/////////////////////////////////////////////////////////////////////////////\r
-\r
-\r
-\r
-#ifndef APSTUDIO_INVOKED\r
-/////////////////////////////////////////////////////////////////////////////\r
-//\r
-// Generated from the TEXTINCLUDE 3 resource.\r
-//\r
-\r
-\r
-/////////////////////////////////////////////////////////////////////////////\r
-#endif    // not APSTUDIO_INVOKED\r
-\r
+//Microsoft Developer Studio generated resource script.
+//
+#include "resource.h"
+
+#define APSTUDIO_READONLY_SYMBOLS
+/////////////////////////////////////////////////////////////////////////////
+//
+// Generated from the TEXTINCLUDE 2 resource.
+//
+#define APSTUDIO_HIDDEN_SYMBOLS
+#ifdef __GNUC__
+#include <windows.h>
+//#include <reactos/resource.h>
+#include <commctrl.h>
+#else
+#include "windows.h"
+#endif
+#undef APSTUDIO_HIDDEN_SYMBOLS
+#include "resource.h"
+
+/////////////////////////////////////////////////////////////////////////////
+#undef APSTUDIO_READONLY_SYMBOLS
+
+/////////////////////////////////////////////////////////////////////////////
+// English (U.S.) resources
+
+#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU)
+#ifdef _WIN32
+LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US
+#pragma code_page(1252)
+#endif //_WIN32
+
+/////////////////////////////////////////////////////////////////////////////
+//
+// Menu
+//
+
+IDR_TASKMANAGER MENU DISCARDABLE
+BEGIN
+    POPUP "&File"
+    BEGIN
+        MENUITEM "&New Task (Run...)",          ID_FILE_NEW
+        MENUITEM SEPARATOR
+        MENUITEM "E&xit Task Manager",          ID_FILE_EXIT
+    END
+    POPUP "&Options"
+    BEGIN
+        MENUITEM "&Always On Top",              ID_OPTIONS_ALWAYSONTOP
+        , CHECKED
+        MENUITEM "&Minimize On Use",            ID_OPTIONS_MINIMIZEONUSE
+        , CHECKED
+        MENUITEM "&Hide When Minimized",        ID_OPTIONS_HIDEWHENMINIMIZED
+        , CHECKED
+        MENUITEM "&Show 16-bit tasks",          ID_OPTIONS_SHOW16BITTASKS
+        , CHECKED
+    END
+    POPUP "&View"
+    BEGIN
+        MENUITEM "&Refresh Now",                ID_VIEW_REFRESH
+        POPUP "&Update Speed"
+        BEGIN
+            MENUITEM "&High",                       ID_VIEW_UPDATESPEED_HIGH
+            MENUITEM "&Normal",                     ID_VIEW_UPDATESPEED_NORMAL
+            , CHECKED
+            MENUITEM "&Low",                        ID_VIEW_UPDATESPEED_LOW
+            MENUITEM "&Paused",                     ID_VIEW_UPDATESPEED_PAUSED
+
+        END
+        MENUITEM SEPARATOR
+        MENUITEM "Lar&ge Icons",                ID_VIEW_LARGE
+        MENUITEM "S&mall Icons",                ID_VIEW_SMALL
+        MENUITEM "&Details",                    ID_VIEW_DETAILS, CHECKED
+        MENUITEM "&Select Columns...",          ID_VIEW_SELECTCOLUMNS
+        POPUP "&CPU History"
+        BEGIN
+            MENUITEM "&One Graph, All CPUs",        ID_VIEW_CPUHISTORY_ONEGRAPHALL
+
+            MENUITEM "One Graph &Per CPU",          ID_VIEW_CPUHISTORY_ONEGRAPHPERCPU
+            , CHECKED
+        END
+        MENUITEM "&Show Kernel Times",          ID_VIEW_SHOWKERNELTIMES
+    END
+    POPUP "&Windows"
+    BEGIN
+        MENUITEM "Tile &Horizontally",          ID_WINDOWS_TILEHORIZONTALLY
+        MENUITEM "Tile &Vertically",            ID_WINDOWS_TILEVERTICALLY
+        MENUITEM "&Minimize",                   ID_WINDOWS_MINIMIZE
+        MENUITEM "Ma&ximize",                   ID_WINDOWS_MAXIMIZE
+        MENUITEM "&Cascade",                    ID_WINDOWS_CASCADE
+        MENUITEM "&Bring To Front",             ID_WINDOWS_BRINGTOFRONT
+    END
+    POPUP "&Help"
+    BEGIN
+        MENUITEM "Task Manager &Help Topics",   ID_HELP_TOPICS
+        MENUITEM SEPARATOR
+        MENUITEM "&About Task Manager",         ID_HELP_ABOUT
+    END
+END
+
+IDR_WINDOWSMENU MENU DISCARDABLE
+BEGIN
+    MENUITEM "Tile &Horizontally",          ID_WINDOWS_TILEHORIZONTALLY
+    MENUITEM "Tile &Vertically",            ID_WINDOWS_TILEVERTICALLY
+    MENUITEM "&Minimize",                   ID_WINDOWS_MINIMIZE
+    MENUITEM "Ma&ximize",                   ID_WINDOWS_MAXIMIZE
+    MENUITEM "&Cascade",                    ID_WINDOWS_CASCADE
+    MENUITEM "&Bring To Front",             ID_WINDOWS_BRINGTOFRONT
+END
+
+IDR_APPLICATION_PAGE_CONTEXT1 MENU DISCARDABLE
+BEGIN
+    POPUP "DUMMY"
+    BEGIN
+        MENUITEM "&New Task (Run...)",          ID_FILE_NEW
+        MENUITEM SEPARATOR
+        MENUITEM "Lar&ge Icons",                ID_VIEW_LARGE
+        MENUITEM "S&mall Icons",                ID_VIEW_SMALL
+        MENUITEM "&Details",                    ID_VIEW_DETAILS, CHECKED
+    END
+END
+
+IDR_APPLICATION_PAGE_CONTEXT2 MENU DISCARDABLE
+BEGIN
+    POPUP "DUMMY"
+    BEGIN
+        MENUITEM "&Switch To",                  ID_APPLICATION_PAGE_SWITCHTO
+        MENUITEM "&Bring To Front",             ID_WINDOWS_BRINGTOFRONT
+        MENUITEM SEPARATOR
+        MENUITEM "Tile &Horizontally",          ID_WINDOWS_TILEHORIZONTALLY
+        MENUITEM "Tile &Vertically",            ID_WINDOWS_TILEVERTICALLY
+        MENUITEM "&Minimize",                   ID_WINDOWS_MINIMIZE
+        MENUITEM "Ma&ximize",                   ID_WINDOWS_MAXIMIZE
+        MENUITEM "&Cascade",                    ID_WINDOWS_CASCADE
+        MENUITEM SEPARATOR
+        MENUITEM "&End Task",                   ID_APPLICATION_PAGE_ENDTASK
+        MENUITEM "&Go To Process",              ID_APPLICATION_PAGE_GOTOPROCESS
+
+    END
+END
+
+IDR_TRAY_POPUP MENU DISCARDABLE
+BEGIN
+    MENUITEM "&Restore",                    ID_RESTORE
+    MENUITEM "&Close",                      ID_FILE_EXIT
+    MENUITEM SEPARATOR
+    MENUITEM "&Always On Top",              ID_OPTIONS_ALWAYSONTOP, CHECKED
+END
+
+IDR_PROCESS_PAGE_CONTEXT MENU DISCARDABLE
+BEGIN
+    POPUP "DUMMY"
+    BEGIN
+        MENUITEM "&End Process",                ID_PROCESS_PAGE_ENDPROCESS
+        MENUITEM "End Process &Tree",           ID_PROCESS_PAGE_ENDPROCESSTREE
+
+        MENUITEM "&Debug",                      ID_PROCESS_PAGE_DEBUG
+        MENUITEM SEPARATOR
+        POPUP "Set &Priority"
+        BEGIN
+            MENUITEM "&Realtime",                   ID_PROCESS_PAGE_SETPRIORITY_REALTIME
+
+            MENUITEM "&High",                       ID_PROCESS_PAGE_SETPRIORITY_HIGH
+
+            MENUITEM "&AboveNormal",                ID_PROCESS_PAGE_SETPRIORITY_ABOVENORMAL
+
+            MENUITEM "&Normal",                     ID_PROCESS_PAGE_SETPRIORITY_NORMAL
+
+            MENUITEM "&BelowNormal",                ID_PROCESS_PAGE_SETPRIORITY_BELOWNORMAL
+
+            MENUITEM "&Low",                        ID_PROCESS_PAGE_SETPRIORITY_LOW
+
+        END
+        MENUITEM "Set &Affinity...",            ID_PROCESS_PAGE_SETAFFINITY
+    END
+END
+
+
+/////////////////////////////////////////////////////////////////////////////
+//
+// Dialog
+//
+
+IDD_ABOUTBOX DIALOG DISCARDABLE  22, 17, 259, 210
+STYLE DS_MODALFRAME | WS_CAPTION | WS_SYSMENU
+CAPTION "About Task Manager"
+FONT 8, "Tahoma"
+BEGIN
+    CONTROL         "Task Manager v1.0\nCopyright (C) 1999 - 2001\nby Brian Palmer (brianp@reactos.org)",
+                    IDC_STATIC,"Static",SS_LEFTNOWORDWRAP | WS_GROUP,53,28,
+                    122,26
+    DEFPUSHBUTTON   "OK",IDOK,183,189,44,14,WS_GROUP
+    ICON            IDI_TASKMANAGER,IDC_STATIC,19,30,20,20
+    EDITTEXT        IDC_LICENSE_EDIT,53,63,174,107,ES_MULTILINE |
+                    ES_READONLY | WS_VSCROLL
+END
+
+IDD_TASKMGR_DIALOG DIALOG DISCARDABLE  0, 0, 264, 246
+STYLE DS_CENTER | WS_MINIMIZEBOX | WS_MAXIMIZEBOX | WS_POPUP |
+    WS_CLIPSIBLINGS | WS_CLIPCHILDREN | WS_CAPTION | WS_SYSMENU |
+    WS_THICKFRAME
+CAPTION "Task Manager"
+MENU IDR_TASKMANAGER
+FONT 8, "Tahoma"
+BEGIN
+    CONTROL         "Tab1",IDC_TAB,"SysTabControl32",WS_TABSTOP,3,3,257,228
+END
+
+IDD_APPLICATION_PAGE DIALOG DISCARDABLE  0, 0, 247, 210
+STYLE DS_CONTROL | WS_CHILD | WS_CLIPCHILDREN
+FONT 8, "Tahoma"
+BEGIN
+    CONTROL         "List2",IDC_APPLIST,"SysListView32",LVS_REPORT |
+                    LVS_SHOWSELALWAYS | WS_BORDER | WS_TABSTOP,7,7,233,177
+    PUSHBUTTON      "&New Task...",IDC_NEWTASK,187,189,53,14
+    PUSHBUTTON      "&Switch To",IDC_SWITCHTO,131,189,53,14,WS_DISABLED
+    PUSHBUTTON      "&End Task",IDC_ENDTASK,75,189,53,14,WS_DISABLED
+END
+
+IDD_PROCESS_PAGE DIALOG DISCARDABLE  0, 0, 247, 210
+STYLE DS_CONTROL | WS_CHILD | WS_CLIPCHILDREN
+FONT 8, "Tahoma"
+BEGIN
+    CONTROL         "List2",IDC_PROCESSLIST,"SysListView32",LVS_REPORT |
+                    LVS_SINGLESEL | LVS_SHOWSELALWAYS | LVS_OWNERDATA |
+                    WS_BORDER | WS_TABSTOP,7,7,233,177
+    PUSHBUTTON      "&End Process",IDC_ENDPROCESS,171,189,69,14
+    CONTROL         "&Show processes from all users",IDC_SHOWALLPROCESSES,
+                    "Button",BS_AUTOCHECKBOX | WS_TABSTOP,7,191,111,10
+END
+
+//IDD_PERFORMANCE_PAGE DIALOGEX 0, 0, 247, 210
+IDD_PERFORMANCE_PAGE DIALOG DISCARDABLE  0, 0, 247, 210
+STYLE DS_CONTROL | WS_CHILD | WS_CLIPCHILDREN
+FONT 8, "Tahoma"
+BEGIN
+    GROUPBOX        "CPU Usage",IDC_CPU_USAGE_FRAME,5,5,60,54,WS_TABSTOP, WS_EX_TRANSPARENT
+    GROUPBOX        "MEM Usage",IDC_MEM_USAGE_FRAME,5,63,60,54,BS_LEFTTEXT, WS_EX_TRANSPARENT
+    GROUPBOX        "Totals",IDC_TOTALS_FRAME,5,122,111,39,0,WS_EX_TRANSPARENT
+    GROUPBOX        "Commit Charge (K)",IDC_COMMIT_CHARGE_FRAME,5,166,111,39,0,WS_EX_TRANSPARENT
+    GROUPBOX        "Physical Memory (K)",IDC_PHYSICAL_MEMORY_FRAME,131,122,111,39,0,WS_EX_TRANSPARENT
+    GROUPBOX        "Kernel Memory (K)",IDC_KERNEL_MEMORY_FRAME,131,166,111,39,0,WS_EX_TRANSPARENT
+    LTEXT           "Handles",IDS_TOTALS_HANDLE_COUNT,12,131,27,8
+    LTEXT           "Threads",IDS_TOTALS_THREAD_COUNT,12,140,27,8
+    LTEXT           "Processes",IDS_TOTALS_PROCESS_COUNT,12,149,34,8
+    EDITTEXT        IDC_TOTALS_HANDLE_COUNT,65,131,45,8,ES_RIGHT |
+                    ES_READONLY | ES_NUMBER | NOT WS_BORDER
+    EDITTEXT        IDC_TOTALS_THREAD_COUNT,65,140,45,8,ES_RIGHT |
+                    ES_READONLY | ES_NUMBER | NOT WS_BORDER
+    EDITTEXT        IDC_TOTALS_PROCESS_COUNT,65,149,45,8,ES_RIGHT |
+                    ES_READONLY | ES_NUMBER | NOT WS_BORDER
+    LTEXT           "Total",IDS_COMMIT_CHARGE_TOTAL,12,175,27,8
+    LTEXT           "Limit",IDS_COMMIT_CHARGE_LIMIT,12,184,15,8
+    LTEXT           "Peak",IDS_COMMIT_CHARGE_PEAK,12,193,34,8
+    EDITTEXT        IDC_COMMIT_CHARGE_TOTAL,65,174,45,8,ES_RIGHT |
+                    ES_READONLY | ES_NUMBER | NOT WS_BORDER
+    EDITTEXT        IDC_COMMIT_CHARGE_LIMIT,65,184,45,8,ES_RIGHT |
+                    ES_READONLY | ES_NUMBER | NOT WS_BORDER
+    EDITTEXT        IDC_COMMIT_CHARGE_PEAK,65,193,45,8,ES_RIGHT |
+                    ES_READONLY | ES_NUMBER | NOT WS_BORDER
+    LTEXT           "Total",IDS_PHYSICAL_MEMORY_TOTAL,137,131,27,8
+    LTEXT           "Available",IDS_PHYSICAL_MEMORY_AVAILABLE,137,140,30,8
+    LTEXT           "System Cache",IDS_PHYSICAL_MEMORY_SYSTEM_CACHE,137,149,46,8
+    EDITTEXT        IDC_PHYSICAL_MEMORY_TOTAL,185,131,48,8,ES_RIGHT |
+                    ES_READONLY | ES_NUMBER | NOT WS_BORDER
+    EDITTEXT        IDC_PHYSICAL_MEMORY_AVAILABLE,185,140,48,8,ES_RIGHT |
+                    ES_READONLY | ES_NUMBER | NOT WS_BORDER
+    EDITTEXT        IDC_PHYSICAL_MEMORY_SYSTEM_CACHE,185,149,48,8,ES_RIGHT |
+                    ES_READONLY | ES_NUMBER | NOT WS_BORDER
+    LTEXT           "Total",IDS_KERNEL_MEMORY_TOTAL,137,174,27,8
+    LTEXT           "Paged",IDS_KERNEL_MEMORY_PAGED,137,184,21,8
+    LTEXT           "Nonpaged",IDS_KERNEL_MEMORY_NONPAGED,137,193,34,8
+    EDITTEXT        IDC_KERNEL_MEMORY_TOTAL,185,174,48,8,ES_RIGHT |
+                    ES_READONLY | ES_NUMBER | NOT WS_BORDER
+    EDITTEXT        IDC_KERNEL_MEMORY_PAGED,185,184,48,8,ES_RIGHT |
+                    ES_READONLY | ES_NUMBER | NOT WS_BORDER
+    EDITTEXT        IDC_KERNEL_MEMORY_NONPAGED,185,193,48,8,ES_RIGHT |
+                    ES_READONLY | ES_NUMBER | NOT WS_BORDER
+    GROUPBOX        "CPU Usage History",IDC_CPU_USAGE_HISTORY_FRAME,74,5,168,54,0,WS_EX_TRANSPARENT
+    GROUPBOX        "Memory Usage History",IDC_MEMORY_USAGE_HISTORY_FRAME,74,63,168,54,0,WS_EX_TRANSPARENT
+    PUSHBUTTON      "CPU Usage Display",IDC_CPU_USAGE_GRAPH,12,17,47,37,0,
+                    WS_EX_CLIENTEDGE
+    PUSHBUTTON      "MEM Usage Display",IDC_MEM_USAGE_GRAPH,12,75,47,37,0,
+                    WS_EX_CLIENTEDGE
+    PUSHBUTTON      "CPU Usage History",IDC_CPU_USAGE_HISTORY_GRAPH,81,17,
+                    153,37,0,WS_EX_CLIENTEDGE
+    PUSHBUTTON      "MEM Usage History",IDC_MEM_USAGE_HISTORY_GRAPH,81,75,
+                    153,37,0,WS_EX_CLIENTEDGE
+END
+
+IDD_AFFINITY_DIALOG DIALOG DISCARDABLE  0, 0, 231, 154
+STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
+CAPTION "Processor Affinity"
+FONT 8, "Tahoma"
+BEGIN
+    DEFPUSHBUTTON   "OK",IDOK,120,133,50,14
+    PUSHBUTTON      "Cancel",IDCANCEL,174,133,50,14
+    LTEXT           "The Processor Affinity setting controls which CPUs the process will be allowed to execute on.",
+                    IDC_STATIC,5,5,220,16
+    CONTROL         "CPU 0",IDC_CPU0,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,
+                    11,28,37,10
+    CONTROL         "CPU 1",IDC_CPU1,"Button",BS_AUTOCHECKBOX | WS_DISABLED |
+                    WS_TABSTOP,11,41,37,10
+    CONTROL         "CPU 2",IDC_CPU2,"Button",BS_AUTOCHECKBOX | WS_DISABLED |
+                    WS_TABSTOP,11,54,37,10
+    CONTROL         "CPU 3",IDC_CPU3,"Button",BS_AUTOCHECKBOX | WS_DISABLED |
+                    WS_TABSTOP,11,67,37,10
+    CONTROL         "CPU 4",IDC_CPU4,"Button",BS_AUTOCHECKBOX | WS_DISABLED |
+                    WS_TABSTOP,11,80,37,10
+    CONTROL         "CPU 5",IDC_CPU5,"Button",BS_AUTOCHECKBOX | WS_DISABLED |
+                    WS_TABSTOP,11,93,37,10
+    CONTROL         "CPU 6",IDC_CPU6,"Button",BS_AUTOCHECKBOX | WS_DISABLED |
+                    WS_TABSTOP,11,106,37,10
+    CONTROL         "CPU 7",IDC_CPU7,"Button",BS_AUTOCHECKBOX | WS_DISABLED |
+                    WS_TABSTOP,11,119,37,10
+    CONTROL         "CPU 8",IDC_CPU8,"Button",BS_AUTOCHECKBOX | WS_DISABLED |
+                    WS_TABSTOP,61,28,37,10
+    CONTROL         "CPU 9",IDC_CPU9,"Button",BS_AUTOCHECKBOX | WS_DISABLED |
+                    WS_TABSTOP,61,41,37,10
+    CONTROL         "CPU 10",IDC_CPU10,"Button",BS_AUTOCHECKBOX |
+                    WS_DISABLED | WS_TABSTOP,61,54,41,10
+    CONTROL         "CPU 11",IDC_CPU11,"Button",BS_AUTOCHECKBOX |
+                    WS_DISABLED | WS_TABSTOP,61,67,41,10
+    CONTROL         "CPU 12",IDC_CPU12,"Button",BS_AUTOCHECKBOX |
+                    WS_DISABLED | WS_TABSTOP,61,80,41,10
+    CONTROL         "CPU 13",IDC_CPU13,"Button",BS_AUTOCHECKBOX |
+                    WS_DISABLED | WS_TABSTOP,61,93,41,10
+    CONTROL         "CPU 14",IDC_CPU14,"Button",BS_AUTOCHECKBOX |
+                    WS_DISABLED | WS_TABSTOP,61,106,41,10
+    CONTROL         "CPU 15",IDC_CPU15,"Button",BS_AUTOCHECKBOX |
+                    WS_DISABLED | WS_TABSTOP,61,119,41,10
+    CONTROL         "CPU 16",IDC_CPU16,"Button",BS_AUTOCHECKBOX |
+                    WS_DISABLED | WS_TABSTOP,116,28,41,10
+    CONTROL         "CPU 17",IDC_CPU17,"Button",BS_AUTOCHECKBOX |
+                    WS_DISABLED | WS_TABSTOP,116,41,41,10
+    CONTROL         "CPU 18",IDC_CPU18,"Button",BS_AUTOCHECKBOX |
+                    WS_DISABLED | WS_TABSTOP,116,54,41,10
+    CONTROL         "CPU 19",IDC_CPU19,"Button",BS_AUTOCHECKBOX |
+                    WS_DISABLED | WS_TABSTOP,116,67,41,10
+    CONTROL         "CPU 20",IDC_CPU20,"Button",BS_AUTOCHECKBOX |
+                    WS_DISABLED | WS_TABSTOP,116,80,41,10
+    CONTROL         "CPU 21",IDC_CPU21,"Button",BS_AUTOCHECKBOX |
+                    WS_DISABLED | WS_TABSTOP,116,93,41,10
+    CONTROL         "CPU 22",IDC_CPU22,"Button",BS_AUTOCHECKBOX |
+                    WS_DISABLED | WS_TABSTOP,116,106,41,10
+    CONTROL         "CPU 23",IDC_CPU23,"Button",BS_AUTOCHECKBOX |
+                    WS_DISABLED | WS_TABSTOP,116,119,41,10
+    CONTROL         "CPU 24",IDC_CPU24,"Button",BS_AUTOCHECKBOX |
+                    WS_DISABLED | WS_TABSTOP,175,28,41,10
+    CONTROL         "CPU 25",IDC_CPU25,"Button",BS_AUTOCHECKBOX |
+                    WS_DISABLED | WS_TABSTOP,175,41,41,10
+    CONTROL         "CPU 26",IDC_CPU26,"Button",BS_AUTOCHECKBOX |
+                    WS_DISABLED | WS_TABSTOP,175,54,41,10
+    CONTROL         "CPU 27",IDC_CPU27,"Button",BS_AUTOCHECKBOX |
+                    WS_DISABLED | WS_TABSTOP,175,67,41,10
+    CONTROL         "CPU 28",IDC_CPU28,"Button",BS_AUTOCHECKBOX |
+                    WS_DISABLED | WS_TABSTOP,175,80,41,10
+    CONTROL         "CPU 29",IDC_CPU29,"Button",BS_AUTOCHECKBOX |
+                    WS_DISABLED | WS_TABSTOP,175,93,41,10
+    CONTROL         "CPU 30",IDC_CPU30,"Button",BS_AUTOCHECKBOX |
+                    WS_DISABLED | WS_TABSTOP,175,106,41,10
+    CONTROL         "CPU 31",IDC_CPU31,"Button",BS_AUTOCHECKBOX |
+                    WS_DISABLED | WS_TABSTOP,175,119,41,10
+END
+
+IDD_COLUMNS_DIALOG DIALOG DISCARDABLE  0, 0, 195, 199
+STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
+CAPTION "Select Columns"
+FONT 8, "Tahoma"
+BEGIN
+    DEFPUSHBUTTON   "OK",IDOK,84,178,50,14
+    PUSHBUTTON      "Cancel",IDCANCEL,138,178,50,14
+    LTEXT           "Select the columns that will appear on the Process page of the Task Manager.",
+                    IDC_STATIC,7,7,181,17
+    CONTROL         "&Image Name",IDC_IMAGENAME,"Button",BS_AUTOCHECKBOX |
+                    WS_DISABLED | WS_TABSTOP,7,28,56,10
+    CONTROL         "&PID (Process Identifier)",IDC_PID,"Button",
+                    BS_AUTOCHECKBOX | WS_TABSTOP,7,39,88,10
+    CONTROL         "&CPU Usage",IDC_CPUUSAGE,"Button",BS_AUTOCHECKBOX |
+                    WS_TABSTOP,7,50,53,10
+    CONTROL         "CPU Tim&e",IDC_CPUTIME,"Button",BS_AUTOCHECKBOX |
+                    WS_TABSTOP,7,61,48,10
+    CONTROL         "&Memory Usage",IDC_MEMORYUSAGE,"Button",BS_AUTOCHECKBOX |
+                    WS_TABSTOP,7,72,63,10
+    CONTROL         "Memory Usage &Delta",IDC_MEMORYUSAGEDELTA,"Button",
+                    BS_AUTOCHECKBOX | WS_TABSTOP,7,83,82,10
+    CONTROL         "Pea&k Memory Usage",IDC_PEAKMEMORYUSAGE,"Button",
+                    BS_AUTOCHECKBOX | WS_TABSTOP,7,94,82,10
+    CONTROL         "Page &Faults",IDC_PAGEFAULTS,"Button",BS_AUTOCHECKBOX |
+                    WS_TABSTOP,7,105,53,10
+    CONTROL         "&USER Objects",IDC_USEROBJECTS,"Button",BS_AUTOCHECKBOX |
+                    WS_TABSTOP,7,116,62,10
+    CONTROL         "I/O Reads",IDC_IOREADS,"Button",BS_AUTOCHECKBOX |
+                    WS_TABSTOP,7,127,49,10
+    CONTROL         "I/O Read Bytes",IDC_IOREADBYTES,"Button",
+                    BS_AUTOCHECKBOX | WS_TABSTOP,7,138,65,10
+    CONTROL         "&Session ID",IDC_SESSIONID,"Button",BS_AUTOCHECKBOX |
+                    WS_TABSTOP,7,149,50,10
+    CONTROL         "User &Name",IDC_USERNAME,"Button",BS_AUTOCHECKBOX |
+                    WS_TABSTOP,7,160,51,10
+    CONTROL         "Page F&aults Delta",IDC_PAGEFAULTSDELTA,"Button",
+                    BS_AUTOCHECKBOX | WS_TABSTOP,107,28,72,10
+    CONTROL         "&Virtual Memory Size",IDC_VIRTUALMEMORYSIZE,"Button",
+                    BS_AUTOCHECKBOX | WS_TABSTOP,107,39,77,10
+    CONTROL         "Pa&ged Pool",IDC_PAGEDPOOL,"Button",BS_AUTOCHECKBOX |
+                    WS_TABSTOP,107,50,53,10
+    CONTROL         "N&on-paged Pool",IDC_NONPAGEDPOOL,"Button",
+                    BS_AUTOCHECKBOX | WS_TABSTOP,107,61,67,10
+    CONTROL         "Base P&riority",IDC_BASEPRIORITY,"Button",
+                    BS_AUTOCHECKBOX | WS_TABSTOP,107,72,55,10
+    CONTROL         "&Handle Count",IDC_HANDLECOUNT,"Button",BS_AUTOCHECKBOX |
+                    WS_TABSTOP,107,83,59,10
+    CONTROL         "&Thread Count",IDC_THREADCOUNT,"Button",BS_AUTOCHECKBOX |
+                    WS_TABSTOP,107,94,59,10
+    CONTROL         "GDI Objects",IDC_GDIOBJECTS,"Button",BS_AUTOCHECKBOX |
+                    WS_TABSTOP,107,105,55,10
+    CONTROL         "I/O Writes",IDC_IOWRITES,"Button",BS_AUTOCHECKBOX |
+                    WS_TABSTOP,107,116,49,10
+    CONTROL         "I/O Write Bytes",IDC_IOWRITEBYTES,"Button",
+                    BS_AUTOCHECKBOX | WS_TABSTOP,107,127,65,10
+    CONTROL         "I/O Other",IDC_IOOTHER,"Button",BS_AUTOCHECKBOX |
+                    WS_TABSTOP,107,138,46,10
+    CONTROL         "I/O Other Bytes",IDC_IOOTHERBYTES,"Button",
+                    BS_AUTOCHECKBOX | WS_TABSTOP,107,149,65,10
+END
+
+
+#ifdef APSTUDIO_INVOKED
+/////////////////////////////////////////////////////////////////////////////
+//
+// TEXTINCLUDE
+//
+
+2 TEXTINCLUDE DISCARDABLE
+BEGIN
+    "#define APSTUDIO_HIDDEN_SYMBOLS\r\n"
+    "#include ""windows.h""\r\n"
+    "#undef APSTUDIO_HIDDEN_SYMBOLS\r\n"
+    "#include ""resource.h""\r\n"
+    "\0"
+END
+
+3 TEXTINCLUDE DISCARDABLE
+BEGIN
+    "\r\n"
+    "\0"
+END
+
+1 TEXTINCLUDE DISCARDABLE
+BEGIN
+    "resource.h\0"
+END
+
+#endif    // APSTUDIO_INVOKED
+
+
+/////////////////////////////////////////////////////////////////////////////
+//
+// DESIGNINFO
+//
+
+#ifdef APSTUDIO_INVOKED
+GUIDELINES DESIGNINFO DISCARDABLE
+BEGIN
+    IDD_ABOUTBOX, DIALOG
+    BEGIN
+        LEFTMARGIN, 7
+        RIGHTMARGIN, 252
+        TOPMARGIN, 7
+        BOTTOMMARGIN, 203
+    END
+
+    IDD_TASKMGR_DIALOG, DIALOG
+    BEGIN
+        LEFTMARGIN, 3
+        RIGHTMARGIN, 260
+        TOPMARGIN, 3
+        BOTTOMMARGIN, 231
+    END
+
+    IDD_APPLICATION_PAGE, DIALOG
+    BEGIN
+        LEFTMARGIN, 7
+        RIGHTMARGIN, 240
+        TOPMARGIN, 7
+        BOTTOMMARGIN, 203
+    END
+
+    IDD_PROCESS_PAGE, DIALOG
+    BEGIN
+        LEFTMARGIN, 7
+        RIGHTMARGIN, 240
+        TOPMARGIN, 7
+        BOTTOMMARGIN, 203
+    END
+
+    IDD_PERFORMANCE_PAGE, DIALOG
+    BEGIN
+        LEFTMARGIN, 5
+        RIGHTMARGIN, 242
+        VERTGUIDE, 12
+        VERTGUIDE, 65
+        VERTGUIDE, 110
+        TOPMARGIN, 5
+        BOTTOMMARGIN, 205
+    END
+
+    IDD_AFFINITY_DIALOG, DIALOG
+    BEGIN
+        LEFTMARGIN, 7
+        RIGHTMARGIN, 224
+        VERTGUIDE, 11
+        VERTGUIDE, 61
+        VERTGUIDE, 116
+        VERTGUIDE, 175
+        TOPMARGIN, 7
+        BOTTOMMARGIN, 147
+        HORZGUIDE, 28
+        HORZGUIDE, 38
+        HORZGUIDE, 51
+        HORZGUIDE, 64
+        HORZGUIDE, 77
+        HORZGUIDE, 90
+        HORZGUIDE, 103
+        HORZGUIDE, 116
+        HORZGUIDE, 129
+    END
+
+    IDD_COLUMNS_DIALOG, DIALOG
+    BEGIN
+        LEFTMARGIN, 7
+        RIGHTMARGIN, 188
+        VERTGUIDE, 107
+        TOPMARGIN, 7
+        BOTTOMMARGIN, 192
+        HORZGUIDE, 28
+    END
+END
+#endif    // APSTUDIO_INVOKED
+
+
+/////////////////////////////////////////////////////////////////////////////
+//
+// Icon
+//
+
+// Icon with lowest ID value placed first to ensure application icon
+// remains consistent on all systems.
+IDI_TASKMANAGER         ICON    DISCARDABLE     "res/taskmgr.ico"
+IDI_WINDOW              ICON    DISCARDABLE     "res/window.ico"
+IDI_WINDOWSM            ICON    DISCARDABLE     "res/windowsm.ico"
+
+#ifndef _MAC
+/////////////////////////////////////////////////////////////////////////////
+//
+// Version
+//
+
+VS_VERSION_INFO VERSIONINFO
+ FILEVERSION 1,0,0,1
+ PRODUCTVERSION 1,0,0,1
+ FILEFLAGSMASK 0x3fL
+#ifdef _DEBUG
+ FILEFLAGS 0x1L
+#else
+ FILEFLAGS 0x0L
+#endif
+ FILEOS 0x40004L
+ FILETYPE 0x1L
+ FILESUBTYPE 0x0L
+BEGIN
+    BLOCK "StringFileInfo"
+    BEGIN
+        BLOCK "040904b0"
+        BEGIN
+            VALUE "CompanyName", "Brian Palmer\0"
+            VALUE "FileDescription", "ReactOS Task Manager by Brian Palmer\0"
+            VALUE "FileVersion", "1.0.0.1\0"
+            VALUE "InternalName", "taskmgr\0"
+            VALUE "LegalCopyright", "Copyright © Brian Palmer 2000\0"
+            VALUE "OriginalFilename", "taskmgr.exe\0"
+            VALUE "ProductName", "ReactOS Task Manager by Brian Palmer\0"
+            VALUE "ProductVersion", "1.0.0.1\0"
+        END
+    END
+    BLOCK "VarFileInfo"
+    BEGIN
+        VALUE "Translation", 0x409, 1200
+    END
+END
+
+#endif    // !_MAC
+
+
+/////////////////////////////////////////////////////////////////////////////
+//
+// Bitmap
+//
+
+IDB_TRAYMASK            BITMAP  DISCARDABLE     "res/traymask.bmp"
+IDB_TRAYICON            BITMAP  DISCARDABLE     "res/trayicon.bmp"
+IDB_FONT                BITMAP  DISCARDABLE     "res/font.bmp"
+
+/////////////////////////////////////////////////////////////////////////////
+//
+// String Table
+//
+
+STRINGTABLE DISCARDABLE
+BEGIN
+    IDS_APP_TITLE           "Task Manager"
+    IDC_TASKMGR             "Task Manager"
+END
+
+STRINGTABLE DISCARDABLE
+BEGIN
+    ID_FILE_NEW             "Runs a new program"
+    ID_OPTIONS_ALWAYSONTOP  "Task Manager remains in front of all other windows unless minimized"
+    ID_OPTIONS_MINIMIZEONUSE
+                            "Task Manager is minimized when a SwitchTo operation is performed"
+    ID_OPTIONS_HIDEWHENMINIMIZED "Hide the Task Manager when it is minimized"
+    ID_VIEW_REFRESH         "Force Task Manager to update now, regardless of Update Speed setting"
+    ID_VIEW_LARGE           "Displays tasks by using large icons"
+    ID_VIEW_SMALL           "Displays tasks by using small icons"
+    ID_VIEW_DETAILS         "Displays information about each task"
+    ID_VIEW_UPDATESPEED_HIGH "Updates the display twice per second"
+    ID_VIEW_UPDATESPEED_NORMAL "Updates the display every two seconds"
+    ID_VIEW_UPDATESPEED_LOW "Updates the display every four seconds"
+END
+
+STRINGTABLE DISCARDABLE
+BEGIN
+    ID_VIEW_UPDATESPEED_PAUSED "Does not automatically update"
+    ID_WINDOWS_TILEHORIZONTALLY
+                            "Tiles the windows horizontally on the desktop"
+    ID_WINDOWS_TILEVERTICALLY "Tiles the windows vertically on the desktop"
+    ID_WINDOWS_MINIMIZE     "Minimizes the windows"
+    ID_WINDOWS_MAXIMIZE     "Maximizes the windows"
+    ID_WINDOWS_CASCADE      "Cascades the windows diagonally on the desktop"
+    ID_WINDOWS_BRINGTOFRONT "Brings the window front, but does not switch to it"
+    ID_HELP_TOPICS          "Displays Task Manager help topics"
+    ID_HELP_ABOUT           "Displays program information, version number, and copyright"
+    ID_FILE_EXIT            "Exits the Task Manager application"
+    ID_OPTIONS_SHOW16BITTASKS
+                            "Shows 16-bit tasks under the associated ntvdm.exe"
+    ID_VIEW_SELECTCOLUMNS   "Select which columns will be visible on the Process page"
+    ID_VIEW_SHOWKERNELTIMES "Displays kernel time in the performance graphs"
+    ID_VIEW_CPUHISTORY_ONEGRAPHALL
+                            "A single history graph shows total CPU usage"
+    ID_VIEW_CPUHISTORY_ONEGRAPHPERCPU "Each CPU has its own history graph"
+    ID_APPLICATION_PAGE_SWITCHTO
+                            "Brings a task to the foreground, switch focus to that task"
+END
+
+STRINGTABLE DISCARDABLE
+BEGIN
+    ID_ENDTASK              "Tells the selected tasks to close"
+    ID_GOTOPROCESS          "Switches the focus to the process of the selected task"
+    ID_RESTORE              "Restores the Task Manager from its hidden state"
+    ID_PROCESS_PAGE_ENDPROCESS "Removes the process from the system"
+    ID_PROCESS_PAGE_ENDPROCESSTREE
+                            "Removes this process and all descendants from the system"
+    ID_PROCESS_PAGE_DEBUG   "Attaches the debugger to this process"
+    ID_PROCESS_PAGE_SETAFFINITY
+                            "Controls which processors the process will be allowed to run on"
+    ID_PROCESS_PAGE_SETPRIORITY_REALTIME
+                            "Sets process to the REALTIME priority class"
+    ID_PROCESS_PAGE_SETPRIORITY_HIGH "Sets process to the HIGH priority class"
+    ID_PROCESS_PAGE_SETPRIORITY_ABOVENORMAL
+                            "Sets process to the ABOVE NORMAL priority class"
+    ID_PROCESS_PAGE_SETPRIORITY_NORMAL
+                            "Sets process to the NORMAL priority class"
+    ID_PROCESS_PAGE_SETPRIORITY_BELOWNORMAL
+                            "Sets process to the BELOW NORMAL priority class"
+    ID_PROCESS_PAGE_SETPRIORITY_LOW "Sets process to the LOW priority class"
+    IDS_LICENSE             "This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.\r\n\r\nThis program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for more details.\r\n\r\nYou should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA."
+END
+
+#endif    // English (U.S.) resources
+/////////////////////////////////////////////////////////////////////////////
+
+
+
+#ifndef APSTUDIO_INVOKED
+/////////////////////////////////////////////////////////////////////////////
+//
+// Generated from the TEXTINCLUDE 3 resource.
+//
+
+
+/////////////////////////////////////////////////////////////////////////////
+#endif    // not APSTUDIO_INVOKED
+