/*
 *  Task Manager
 *
 *  Copyright 1999-2001 Brian Palmer
 *
 *
 * This library is free software; you can redistribute it and/or
 * modify it under the terms of the GNU Lesser General Public
 * License as published by the Free Software Foundation; either
 * version 2.1 of the License, or (at your option) any later version.
 *
 * This library 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
 * Lesser General Public License for more details.
 *
 * You should have received a copy of the GNU Lesser General Public
 * License along with this library; if not, write to the Free Software
 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
 */

#include "resource.h"

#pragma code_page(65001)

LANGUAGE LANG_ENGLISH, SUBLANG_DEFAULT

/*
 Menus
*/

IDR_TASKMANAGER MENU
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 "&Contents",                   ID_HELP_TOPICS
        MENUITEM "&About Task Manager",         ID_HELP_ABOUT
    END
END

IDR_WINDOWSMENU MENU
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
BEGIN
    POPUP ""
    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
BEGIN
    POPUP ""
    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
BEGIN
    POPUP ""
    BEGIN
        MENUITEM "#msgctxt#window#&Restore",    ID_RESTORE
        MENUITEM "&Close",                      ID_FILE_EXIT
        MENUITEM SEPARATOR
        MENUITEM "&Always on Top",              ID_OPTIONS_ALWAYSONTOP
    END
END

IDR_PROCESS_PAGE_CONTEXT MENU
BEGIN
    POPUP ""
    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 "&Above Normal",               ID_PROCESS_PAGE_SETPRIORITY_ABOVENORMAL

            MENUITEM "&Normal",                     ID_PROCESS_PAGE_SETPRIORITY_NORMAL

            MENUITEM "&Below Normal",               ID_PROCESS_PAGE_SETPRIORITY_BELOWNORMAL

            MENUITEM "&Low",                        ID_PROCESS_PAGE_SETPRIORITY_LOW

        END
        MENUITEM "Set &Affinity...",            ID_PROCESS_PAGE_SETAFFINITY
	MENUITEM "Edit Debug &Channels...",	ID_PROCESS_PAGE_DEBUGCHANNELS
    END
END

/*
 String Tables
*/

STRINGTABLE
BEGIN
    IDS_APP_TITLE           "Task Manager"
    IDC_TASKMGR             "Task Manager"
    IDS_RUNDLG_CAPTION      "Create New Task"
END

STRINGTABLE
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
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
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"
    ID_PROCESS_PAGE_DEBUGCHANNELS
                            "Controls Debug Channels"
END

STRINGTABLE
BEGIN
    IDS_VIEW_LARGE                     "Lar&ge Icons"
    IDS_VIEW_SMALL                     "S&mall Icons"
    IDS_VIEW_DETAILS                   "&Details"
    IDS_WINDOWS                        "&Windows"
    IDS_VIEW_SELECTCOLUMNS             "&Select Columns..."
    IDS_OPTIONS_SHOW16BITTASKS         "&Show 16-bit tasks"
    IDS_VIEW_CPUHISTORY                "&CPU History"
    IDS_VIEW_CPUHISTORY_ONEGRAPHALL    "&One Graph, All CPUs"
    IDS_VIEW_CPUHISTORY_ONEGRAPHPERCPU "One Graph &Per CPU"
    IDS_VIEW_SHOWKERNELTIMES           "&Show Kernel Times"
    IDS_APPLICATIONS                   "Applications"
    IDS_PROCESSES                      "Processes"
    IDS_PERFORMANCE                    "Performance"
    IDS_STATUS_BAR_CPU_USAGE           "CPU Usage: %3d%%"
    IDS_STATUS_BAR_PROCESSES           "Processes: %d"
    IDS_STATUS_BAR_MEMORY_USAGE        "Mem Usage: %dK / %dK"
END

STRINGTABLE
BEGIN
    IDS_IMAGENAME         "Image Name"
    IDS_PID               "PID"
    IDS_CPUUSAGE          "CPU"
    IDS_CPUTIME           "CPU Time"
    IDS_MEMORYUSAGE       "Mem Usage"
    IDS_MEMORYUSAGEDELTA  "Mem Delta"
    IDS_PEAKMEMORYUSAGE   "Peak Mem Usage"
    IDS_PAGEFAULTS        "Page Faults"
    IDS_USEROBJECTS       "USER Objects"
    IDS_IOREADS           "I/O Reads"
    IDS_IOREADBYTES       "I/O Read Bytes"
    IDS_SESSIONID         "Session ID"
    IDS_USERNAME          "Username"
    IDS_PAGEFAULTSDELTA   "PF Delta"
    IDS_VIRTUALMEMORYSIZE "VM Size"
    IDS_PAGEDPOOL         "Paged Pool"
    IDS_NONPAGEDPOOL      "NP Pool"
    IDS_BASEPRIORITY      "Base Pri"
    IDS_HANDLECOUNT       "Handles"
    IDS_THREADCOUNT       "Threads"
    IDS_GDIOBJECTS        "GDI Objects"
    IDS_IOWRITES          "I/O Writes"
    IDS_IOWRITEBYTES      "I/O Write Bytes"
    IDS_IOOTHER           "I/O Other"
    IDS_IOOTHERBYTES      "I/O Other Bytes"
END

STRINGTABLE
BEGIN
    IDS_WARNING_TITLE               "Task Manager Warning"
    IDS_PRIORITY_CHANGE_MESSAGE     "WARNING: Changing the priority class of this process may\n\
                                     cause undesired results including system instability. Are you\n\
                                     sure you want to change the priority class?"
    IDS_PRIORITY_UNABLE2CHANGE      "Unable to Change Priority"
    IDS_TERMINATE_MESSAGE           "WARNING: Terminating a process can cause undesired\n\
                                     results including loss of data and system instability. The\n\
                                     process will not be given the chance to save its state or\n\
                                     data before it is terminated. Are you sure you want to\n\
                                     terminate the process?"
    IDS_TERMINATE_UNABLE2TERMINATE  "Unable to Terminate Process"
    IDS_DEBUG_MESSAGE               "WARNING: Debugging this process may result in loss of data.\n\
                                     Are you sure you wish to attach the debugger?"
    IDS_DEBUG_UNABLE2DEBUG          "Unable to Debug Process"
    IDS_AFFINITY_ERROR_MESSAGE      "The process must have affinity with at least one processor"
    IDS_AFFINITY_ERROR_TITLE        "Invalid Option"
    IDS_AFFINITY_UNABLE2ACCESS      "Unable to Access or Set Process Affinity"
END

STRINGTABLE
BEGIN
    IDS_SYSTEM_IDLE_PROCESS            "System Idle Process"
    IDS_APPLICATION_NOT_RESPONDING     "Not Responding"
    IDS_APPLICATION_RUNNING            "Running"
    IDS_APPLICATION_TASK               "Task"
    IDS_APPLICATION_STATUS             "Status"
    IDS_DEBUG_CHANNEL                  "Debug Channels"
    IDS_DEBUG_CHANNEL_FIXME            "Fixme"
    IDS_DEBUG_CHANNEL_ERR              "Err"
    IDS_DEBUG_CHANNEL_WARN             "Warn"
    IDS_DEBUG_CHANNEL_TRACE            "Trace"
END

/*
 Dialogs
*/

IDD_TASKMGR_DIALOG DIALOG  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, "MS Shell Dlg"
BEGIN
    CONTROL         "Tab1",IDC_TAB,"SysTabControl32",WS_TABSTOP,3,3,257,228
END

IDD_APPLICATION_PAGE DIALOG  0, 0, 247, 210
STYLE DS_CONTROL | WS_CHILD | WS_CLIPCHILDREN
FONT 8, "MS Shell Dlg"
BEGIN
    CONTROL         "List2",IDC_APPLIST,"SysListView32",LVS_REPORT |
                    LVS_SHOWSELALWAYS | WS_BORDER | WS_TABSTOP,4,4,239,180
    PUSHBUTTON      "&New Task...",IDC_NEWTASK,175,189,68,14
    PUSHBUTTON      "&Switch To",IDC_SWITCHTO,104,189,68,14,WS_DISABLED
    PUSHBUTTON      "&End Task",IDC_ENDTASK,33,189,68,14,WS_DISABLED
END

IDD_PROCESS_PAGE DIALOG  0, 0, 247, 210
STYLE DS_CONTROL | WS_CHILD | WS_CLIPCHILDREN
FONT 8, "MS Shell Dlg"
BEGIN
    CONTROL         "List2",IDC_PROCESSLIST,"SysListView32",LVS_REPORT |
                    LVS_SINGLESEL | LVS_SHOWSELALWAYS | LVS_OWNERDATA |
                    WS_BORDER | WS_TABSTOP,4,4,239,180
    PUSHBUTTON      "&End Process",IDC_ENDPROCESS,165,189,78,14
    CONTROL         "&Show processes from all users",IDC_SHOWALLPROCESSES,
                    "Button",BS_AUTOCHECKBOX | WS_TABSTOP,4,191,160,10
END

IDD_PERFORMANCE_PAGE DIALOGEX  0, 0, 247, 210
STYLE DS_CONTROL | WS_CHILD | WS_CLIPCHILDREN
FONT 8, "MS Shell Dlg"
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,126,122,116,39,0,WS_EX_TRANSPARENT
    GROUPBOX        "Kernel Memory (K)",IDC_KERNEL_MEMORY_FRAME,126,166,116,39,0,WS_EX_TRANSPARENT
    LTEXT           "Handles",IDS_TOTALS_HANDLE_COUNT,12,131,43,8
    LTEXT           "Threads",IDS_TOTALS_THREAD_COUNT,12,140,43,8
    LTEXT           "Processes",IDS_TOTALS_PROCESS_COUNT,12,149,43,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,43,8
    LTEXT           "Limit",IDS_COMMIT_CHARGE_LIMIT,12,184,43,8
    LTEXT           "Peak",IDS_COMMIT_CHARGE_PEAK,12,193,43,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,132,131,53,8
    LTEXT           "Available",IDS_PHYSICAL_MEMORY_AVAILABLE,132,140,53,8
    LTEXT           "System Cache",IDS_PHYSICAL_MEMORY_SYSTEM_CACHE,132,149,53,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,132,174,53,8
    LTEXT           "Paged",IDS_KERNEL_MEMORY_PAGED,132,184,53,8
    LTEXT           "Nonpaged",IDS_KERNEL_MEMORY_NONPAGED,132,193,53,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      "",IDC_CPU_USAGE_GRAPH,12,17,47,37,0,
		    WS_EX_CLIENTEDGE
    PUSHBUTTON      "",IDC_MEM_USAGE_GRAPH,12,75,47,37,0,
                    WS_EX_CLIENTEDGE
    PUSHBUTTON      "",IDC_CPU_USAGE_HISTORY_GRAPH,81,17,
                    153,37,0,WS_EX_CLIENTEDGE
    PUSHBUTTON      "",IDC_MEM_USAGE_HISTORY_GRAPH,81,75,
                    153,37,0,WS_EX_CLIENTEDGE
END

IDD_DEBUG_CHANNELS_DIALOG DIALOG  0, 0, 247, 210
STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "Debug Channels"
FONT 8, "MS Shell Dlg"
BEGIN
    CONTROL         "List2",IDC_DEBUG_CHANNELS_LIST,"SysListView32",LVS_REPORT |
                    LVS_SINGLESEL | LVS_SHOWSELALWAYS | WS_BORDER | WS_TABSTOP |
		    LVS_SORTASCENDING,7,7,233,177
    PUSHBUTTON      "Close",IDOK,171,189,69,14
END

IDD_AFFINITY_DIALOG DIALOG  0, 0, 231, 154
STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "Processor Affinity"
FONT 8, "MS Shell Dlg"
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  0, 0, 255, 199
STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "Select Columns"
FONT 8, "MS Shell Dlg"
BEGIN
    DEFPUSHBUTTON   "OK",IDOK,144,178,50,14
    PUSHBUTTON      "Cancel",IDCANCEL,198,178,50,14
    LTEXT           "Select the columns that will appear on the Process page of the Task Manager.",
                    IDC_STATIC,7,7,200,17
    CONTROL         "&Image Name",IDC_IMAGENAME,"Button",BS_AUTOCHECKBOX |
                    WS_DISABLED | WS_TABSTOP,7,28,120,10
    CONTROL         "&PID (Process Identifier)",IDC_PID,"Button",
                    BS_AUTOCHECKBOX | WS_TABSTOP,7,39,120,10
    CONTROL         "&CPU Usage",IDC_CPUUSAGE,"Button",BS_AUTOCHECKBOX |
                    WS_TABSTOP,7,50,120,10
    CONTROL         "CPU Tim&e",IDC_CPUTIME,"Button",BS_AUTOCHECKBOX |
                    WS_TABSTOP,7,61,120,10
    CONTROL         "&Memory Usage",IDC_MEMORYUSAGE,"Button",BS_AUTOCHECKBOX |
                    WS_TABSTOP,7,72,120,10
    CONTROL         "Memory Usage &Delta",IDC_MEMORYUSAGEDELTA,"Button",
                    BS_AUTOCHECKBOX | WS_TABSTOP,7,83,120,10
    CONTROL         "Pea&k Memory Usage",IDC_PEAKMEMORYUSAGE,"Button",
                    BS_AUTOCHECKBOX | WS_TABSTOP,7,94,120,10
    CONTROL         "Page &Faults",IDC_PAGEFAULTS,"Button",BS_AUTOCHECKBOX |
                    WS_TABSTOP,7,105,120,10
    CONTROL         "&USER Objects",IDC_USEROBJECTS,"Button",BS_AUTOCHECKBOX |
                    WS_TABSTOP,7,116,120,10
    CONTROL         "I/O Reads",IDC_IOREADS,"Button",BS_AUTOCHECKBOX |
                    WS_TABSTOP,7,127,120,10
    CONTROL         "I/O Read Bytes",IDC_IOREADBYTES,"Button",
                    BS_AUTOCHECKBOX | WS_TABSTOP,7,138,120,10
    CONTROL         "&Session ID",IDC_SESSIONID,"Button",BS_AUTOCHECKBOX |
                    WS_TABSTOP,7,149,120,10
    CONTROL         "User &Name",IDC_USERNAME,"Button",BS_AUTOCHECKBOX |
                    WS_TABSTOP,7,160,120,10
    CONTROL         "Page F&aults Delta",IDC_PAGEFAULTSDELTA,"Button",
                    BS_AUTOCHECKBOX | WS_TABSTOP,132,28,120,10
    CONTROL         "&Virtual Memory Size",IDC_VIRTUALMEMORYSIZE,"Button",
                    BS_AUTOCHECKBOX | WS_TABSTOP,132,39,120,10
    CONTROL         "Pa&ged Pool",IDC_PAGEDPOOL,"Button",BS_AUTOCHECKBOX |
                    WS_TABSTOP,132,50,120,10
    CONTROL         "N&on-paged Pool",IDC_NONPAGEDPOOL,"Button",
                    BS_AUTOCHECKBOX | WS_TABSTOP,132,61,120,10
    CONTROL         "Base P&riority",IDC_BASEPRIORITY,"Button",
                    BS_AUTOCHECKBOX | WS_TABSTOP,132,72,120,10
    CONTROL         "&Handle Count",IDC_HANDLECOUNT,"Button",BS_AUTOCHECKBOX |
                    WS_TABSTOP,132,83,120,10
    CONTROL         "&Thread Count",IDC_THREADCOUNT,"Button",BS_AUTOCHECKBOX |
                    WS_TABSTOP,132,94,120,10
    CONTROL         "GDI Objects",IDC_GDIOBJECTS,"Button",BS_AUTOCHECKBOX |
                    WS_TABSTOP,132,105,120,10
    CONTROL         "I/O Writes",IDC_IOWRITES,"Button",BS_AUTOCHECKBOX |
                    WS_TABSTOP,132,116,120,10
    CONTROL         "I/O Write Bytes",IDC_IOWRITEBYTES,"Button",
                    BS_AUTOCHECKBOX | WS_TABSTOP,132,127,120,10
    CONTROL         "I/O Other",IDC_IOOTHER,"Button",BS_AUTOCHECKBOX |
                    WS_TABSTOP,132,138,120,10
    CONTROL         "I/O Other Bytes",IDC_IOOTHERBYTES,"Button",
                    BS_AUTOCHECKBOX | WS_TABSTOP,132,149,120,10
END

LANGUAGE LANG_NEUTRAL, SUBLANG_NEUTRAL

/*
 Icon
*/

/* Icon with lowest ID value placed first to ensure application icon
   remains consistent on all systems. */
/* @makedep: taskmgr.ico */
IDI_TASKMANAGER         ICON taskmgr.ico

/* @makedep: window.ico */
IDI_WINDOW              ICON window.ico

/* @makedep: windowsm.ico */
IDI_WINDOWSM            ICON windowsm.ico

/*
 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", "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", "Task Manager by Brian Palmer\0"
            VALUE "ProductVersion", "1.0.0.1\0"
        END
    END
    BLOCK "VarFileInfo"
    BEGIN
        VALUE "Translation", 0x409, 1200
    END
END

/*
 Bitmap
*/

/* @makedep: traymask.bmp */
IDB_TRAYMASK            BITMAP traymask.bmp

/* @makedep: trayicon.bmp */
IDB_TRAYICON            BITMAP trayicon.bmp

/* @makedep: font.bmp */
IDB_FONT                BITMAP font.bmp
