/*
 *  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: %1!u!kB / %2!u!kB"
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         "",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         "",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         "",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         "",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
