re-added some files and fixed a few errors
authorguido <guido@svn.reactos.org>
Mon, 23 Sep 2002 21:22:42 +0000 (21:22 +0000)
committerguido <guido@svn.reactos.org>
Mon, 23 Sep 2002 21:22:42 +0000 (21:22 +0000)
svn path=/trunk/; revision=3536

rosapps/taskmgr/applpage.c
rosapps/taskmgr/graph.c
rosapps/taskmgr/makefile [new file with mode: 0644]
rosapps/taskmgr/perfdata.c
rosapps/taskmgr/taskmgr.h [new file with mode: 0644]
rosapps/taskmgr/taskmgr.rc [new file with mode: 0644]

index d57967a..12dd69c 100644 (file)
@@ -29,7 +29,7 @@
 #include <tchar.h>
 #include <process.h>
 #include <stdio.h>
 #include <tchar.h>
 #include <process.h>
 #include <stdio.h>
-    
+
 #include "taskmgr.h"
 #include "applpage.h"
 #include "procpage.h"
 #include "taskmgr.h"
 #include "applpage.h"
 #include "procpage.h"
@@ -374,7 +374,7 @@ void AddOrUpdateHwnd(HWND hWnd, TCHAR *szTitle, HICON hIcon, BOOL bHung)
     else
     {
         //pAPLI = new APPLICATION_PAGE_LIST_ITEM;
     else
     {
         //pAPLI = new APPLICATION_PAGE_LIST_ITEM;
-        pAPLI = malloc(sizeof(APPLICATION_PAGE_LIST_ITEM));
+        pAPLI = (LPAPPLICATION_PAGE_LIST_ITEM)malloc(sizeof(APPLICATION_PAGE_LIST_ITEM));
 
         pAPLI->hWnd = hWnd;
         pAPLI->hIcon = hIcon;
 
         pAPLI->hWnd = hWnd;
         pAPLI->hIcon = hIcon;
@@ -709,7 +709,7 @@ void ApplicationPage_OnWindowsTileHorizontally(void)
     HWND*                           hWndArray;
     int                             nWndCount;
 
     HWND*                           hWndArray;
     int                             nWndCount;
 
-    hWndArray = malloc(sizeof(HWND) * ListView_GetItemCount(hApplicationPageListCtrl));
+    hWndArray = (HWND*)malloc(sizeof(HWND) * ListView_GetItemCount(hApplicationPageListCtrl));
     nWndCount = 0;
 
     for (i=0; i<ListView_GetItemCount(hApplicationPageListCtrl); i++) {
     nWndCount = 0;
 
     for (i=0; i<ListView_GetItemCount(hApplicationPageListCtrl); i++) {
@@ -742,7 +742,7 @@ void ApplicationPage_OnWindowsTileVertically(void)
     int                             nWndCount;
 
     //hWndArray = new HWND[ListView_GetItemCount(hApplicationPageListCtrl)];
     int                             nWndCount;
 
     //hWndArray = new HWND[ListView_GetItemCount(hApplicationPageListCtrl)];
-    hWndArray = malloc(sizeof(HWND) * ListView_GetItemCount(hApplicationPageListCtrl));
+    hWndArray = (HWND*)malloc(sizeof(HWND) * ListView_GetItemCount(hApplicationPageListCtrl));
     nWndCount = 0;
 
     for (i=0; i<ListView_GetItemCount(hApplicationPageListCtrl); i++) {
     nWndCount = 0;
 
     for (i=0; i<ListView_GetItemCount(hApplicationPageListCtrl); i++) {
@@ -817,7 +817,7 @@ void ApplicationPage_OnWindowsCascade(void)
     int                             nWndCount;
 
     //hWndArray = new HWND[ListView_GetItemCount(hApplicationPageListCtrl)];
     int                             nWndCount;
 
     //hWndArray = new HWND[ListView_GetItemCount(hApplicationPageListCtrl)];
-    hWndArray = malloc(sizeof(HWND) * ListView_GetItemCount(hApplicationPageListCtrl));
+    hWndArray = (HWND*)malloc(sizeof(HWND) * ListView_GetItemCount(hApplicationPageListCtrl));
     nWndCount = 0;
 
     for (i=0; i<ListView_GetItemCount(hApplicationPageListCtrl); i++) {
     nWndCount = 0;
 
     for (i=0; i<ListView_GetItemCount(hApplicationPageListCtrl); i++) {
index 8b28d38..bba6343 100644 (file)
@@ -228,7 +228,7 @@ void Graph_DrawCpuUsageGraph(HDC hDC, HWND hWnd)
        rcBarRight.right = rcBarLeft.right + 17;
        rcBarLeft.top = rcBarRight.top = 5;
        rcBarLeft.bottom = rcBarRight.bottom = 7;
        rcBarRight.right = rcBarLeft.right + 17;
        rcBarLeft.top = rcBarRight.top = 5;
        rcBarLeft.bottom = rcBarRight.bottom = 7;
-       
+
     if (nBarsUsed < 0)     nBarsUsed = 0;
     if (nBarsUsed > nBars) nBarsUsed = nBars;
 
     if (nBarsUsed < 0)     nBarsUsed = 0;
     if (nBarsUsed > nBars) nBarsUsed = nBars;
 
@@ -429,7 +429,7 @@ void Graph_DrawMemUsageHistoryGraph(HDC hDC, HWND hWnd)
        // Fill it with blackness
        //
        FillSolidRect(hDC, &rcClient, RGB(0, 0, 0));
        // Fill it with blackness
        //
        FillSolidRect(hDC, &rcClient, RGB(0, 0, 0));
-       
+
        //
        // Get the memory usage
        //
        //
        // Get the memory usage
        //
@@ -444,7 +444,7 @@ void Graph_DrawMemUsageHistoryGraph(HDC hDC, HWND hWnd)
        {
                if ((i % 11) == 0)
                {
        {
                if ((i % 11) == 0)
                {
-                       FillSolidRect2(hDC, 0, i, rcClient.right, 1, DARK_GREEN);
+                       // FillSolidRect2(hDC, 0, i, rcClient.right, 1, DARK_GREEN);
                }
        }
        //
                }
        }
        //
@@ -454,7 +454,7 @@ void Graph_DrawMemUsageHistoryGraph(HDC hDC, HWND hWnd)
        {
                if ((i % 11) == 0)
                {
        {
                if ((i % 11) == 0)
                {
-                       FillSolidRect2(hDC, i - offset, 0, 1, rcClient.bottom, DARK_GREEN);
+                       // FillSolidRect2(hDC, i - offset, 0, 1, rcClient.bottom, DARK_GREEN);
                }
        }
 
                }
        }
 
diff --git a/rosapps/taskmgr/makefile b/rosapps/taskmgr/makefile
new file mode 100644 (file)
index 0000000..01fe8fc
--- /dev/null
@@ -0,0 +1,95 @@
+#
+#  ReactOS Task Manager
+#
+#  Makefile
+#
+#  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.
+#
+
+
+#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
+
+taskmgr.exe:   $(OBJS)
+       $(CPP) -g -o taskmgr.exe $(OBJS) $(LIBS)
+
+about.o:       about.c about.h
+       $(CPP) $(FLAGS) -o about.o -c about.c
+
+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
+
+column.o:      column.c column.h
+       $(CPP) $(FLAGS) -o column.o -c column.c
+
+debug.o:       debug.c debug.h
+       $(CPP) $(FLAGS) -o debug.o -c debug.c
+
+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
+
+graph.o:       graph.c graph.h
+       $(CPP) $(FLAGS) -o graph.o -c graph.c
+
+optnmenu.o:    optnmenu.c optnmenu.h
+       $(CPP) $(FLAGS) -o optnmenu.o -c optnmenu.c
+
+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
+
+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
+
+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
+
+trayicon.o:    trayicon.c trayicon.h
+       $(CPP) $(FLAGS) -o trayicon.o -c trayicon.c
+
+taskmgr.o:     taskmgr.c taskmgr.h
+       $(CPP) $(FLAGS) -o taskmgr.o -c taskmgr.c
+
+clean:
+       - $(RM) $(OBJS)
+       - $(RM) taskmgr.exe
index c7e21df..e568896 100644 (file)
@@ -102,7 +102,7 @@ void PerfDataRefresh(void)
        LPBYTE                                                  SysHandleInfoData;
        PSYSTEM_PROCESSORTIME_INFO              SysProcessorTimeInfo;
        double                                                  CurrentKernelTime;
        LPBYTE                                                  SysHandleInfoData;
        PSYSTEM_PROCESSORTIME_INFO              SysProcessorTimeInfo;
        double                                                  CurrentKernelTime;
-       
+
 
        if (!NtQuerySystemInformation)
                return;
 
        if (!NtQuerySystemInformation)
                return;
@@ -121,14 +121,14 @@ void PerfDataRefresh(void)
        status = NtQuerySystemInformation(SystemCacheInformation, &SysCacheInfo, sizeof(SysCacheInfo), NULL);
        if (status != NO_ERROR)
                return;
        status = NtQuerySystemInformation(SystemCacheInformation, &SysCacheInfo, sizeof(SysCacheInfo), NULL);
        if (status != NO_ERROR)
                return;
-       
+
        // Get processor time information
        //SysProcessorTimeInfo = new SYSTEM_PROCESSORTIME_INFO[SystemBasicInfo.bKeNumberProcessors];
        // Get processor time information
        //SysProcessorTimeInfo = new SYSTEM_PROCESSORTIME_INFO[SystemBasicInfo.bKeNumberProcessors];
-       SysProcessorTimeInfo = malloc(sizeof(SYSTEM_PROCESSORTIME_INFO) * SystemBasicInfo.bKeNumberProcessors);
+       SysProcessorTimeInfo = (PSYSTEM_PROCESSORTIME_INFO)malloc(sizeof(SYSTEM_PROCESSORTIME_INFO) * SystemBasicInfo.bKeNumberProcessors);
        status = NtQuerySystemInformation(SystemProcessorTimeInformation, SysProcessorTimeInfo, sizeof(SYSTEM_PROCESSORTIME_INFO) * SystemBasicInfo.bKeNumberProcessors, &ulSize);
        if (status != NO_ERROR)
                return;
        status = NtQuerySystemInformation(SystemProcessorTimeInformation, SysProcessorTimeInfo, sizeof(SYSTEM_PROCESSORTIME_INFO) * SystemBasicInfo.bKeNumberProcessors, &ulSize);
        if (status != NO_ERROR)
                return;
-       
+
        // Get handle information
        // We don't know how much data there is so just keep
        // increasing the buffer size until the call succeeds
        // Get handle information
        // We don't know how much data there is so just keep
        // increasing the buffer size until the call succeeds
@@ -137,15 +137,15 @@ void PerfDataRefresh(void)
        {
                BufferSize += 0x10000;
                //SysHandleInfoData = new BYTE[BufferSize];
        {
                BufferSize += 0x10000;
                //SysHandleInfoData = new BYTE[BufferSize];
-               SysHandleInfoData = malloc(BufferSize);
-               
+               SysHandleInfoData = (LPBYTE)malloc(BufferSize);
+
                status = NtQuerySystemInformation(SystemHandleInformation, SysHandleInfoData, BufferSize, &ulSize);
                status = NtQuerySystemInformation(SystemHandleInformation, SysHandleInfoData, BufferSize, &ulSize);
-               
+
                if (status == 0xC0000004 /*STATUS_INFO_LENGTH_MISMATCH*/) {
                        //delete[] SysHandleInfoData;
                        free(SysHandleInfoData);
                }
                if (status == 0xC0000004 /*STATUS_INFO_LENGTH_MISMATCH*/) {
                        //delete[] SysHandleInfoData;
                        free(SysHandleInfoData);
                }
-               
+
        } while (status == 0xC0000004 /*STATUS_INFO_LENGTH_MISMATCH*/);
 
        // Get process information
        } while (status == 0xC0000004 /*STATUS_INFO_LENGTH_MISMATCH*/);
 
        // Get process information
@@ -156,7 +156,7 @@ void PerfDataRefresh(void)
        {
                BufferSize += 0x10000;
                //pBuffer = new BYTE[BufferSize];
        {
                BufferSize += 0x10000;
                //pBuffer = new BYTE[BufferSize];
-               pBuffer = malloc(BufferSize);
+               pBuffer = (LPBYTE)malloc(BufferSize);
 
                status = NtQuerySystemInformation(SystemProcessInformation, pBuffer, BufferSize, &ulSize);
 
 
                status = NtQuerySystemInformation(SystemProcessInformation, pBuffer, BufferSize, &ulSize);
 
@@ -242,7 +242,7 @@ void PerfDataRefresh(void)
        }
        pPerfDataOld = pPerfData;
        //pPerfData = new PERFDATA[ProcessCount];
        }
        pPerfDataOld = pPerfData;
        //pPerfData = new PERFDATA[ProcessCount];
-       pPerfData = malloc(sizeof(PERFDATA) * ProcessCount);
+       pPerfData = (PPERFDATA)malloc(sizeof(PERFDATA) * ProcessCount);
        pSPI = (PSYSTEM_PROCESS_INFORMATION)pBuffer;
        for (Idx=0; Idx<ProcessCount; Idx++) {
                // Get the old perf data for this process (if any)
        pSPI = (PSYSTEM_PROCESS_INFORMATION)pBuffer;
        for (Idx=0; Idx<ProcessCount; Idx++) {
                // Get the old perf data for this process (if any)
diff --git a/rosapps/taskmgr/taskmgr.h b/rosapps/taskmgr/taskmgr.h
new file mode 100644 (file)
index 0000000..effd52e
--- /dev/null
@@ -0,0 +1,140 @@
+/*\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
diff --git a/rosapps/taskmgr/taskmgr.rc b/rosapps/taskmgr/taskmgr.rc
new file mode 100644 (file)
index 0000000..98ca15e
--- /dev/null
@@ -0,0 +1,687 @@
+//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