TASKMGR: [07] Move hardcoded English strings to resources

Richard Cohen richard at daijobu.co.uk
Thu Sep 29 07:05:36 CDT 2005


Resend with some changes.

Changelog:

Klemens Friedl <frik85 at hotmail.com>
Filip Navara <xnavara at volny.cz>
greatlrd
Thomas Weidenmueller <wine-patches at reactsoft.com>
Richard Cohen <richard at daijobu.co.uk>


Move hardcoded English strings to resources


-------------- next part --------------
Index: programs/taskmgr/En.rc
===================================================================
RCS file: /home/wine/wine/programs/taskmgr/En.rc,v
retrieving revision 1.2
diff -u -p -r1.2 En.rc
--- programs/taskmgr/En.rc	14 Sep 2005 19:17:12 -0000	1.2
+++ programs/taskmgr/En.rc	29 Sep 2005 11:59:52 -0000
@@ -498,3 +498,68 @@ BEGIN
     ID_PROCESS_PAGE_SETPRIORITY_LOW "Sets process to the LOW priority class"
     IDS_LICENSE             "This program is free software; you can redistribute it and/or modify it under the terms of the GNU 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.\r\n\r\nThis program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for more details.\r\n\r\nYou should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA."
 END
+
+
+STRINGTABLE DISCARDABLE
+BEGIN
+    IDS_TAB_APPS                  "Applications"
+    IDS_TAB_PROCESSES             "Processes"
+    IDS_TAB_PERFORMANCE           "Performance"
+    IDS_TAB_TASK                  "Task"
+    IDS_TAB_STATUS                "Status"
+    IDS_TAB_IMAGENAME             "Image Name"
+    IDS_TAB_PID                   "PID"
+    IDS_TAB_USERNAME              "Username"
+    IDS_TAB_SESSIONID             "Session ID"
+    IDS_TAB_CPU                   "CPU"
+    IDS_TAB_CPUTIME               "CPU Time"
+    IDS_TAB_MEMUSAGE              "Mem Usage"
+    IDS_TAB_PEAKMEMUSAGE          "Peak Mem Usage"
+    IDS_TAB_MEMDELTA              "Mem Delta"
+    IDS_TAB_PAGEFAULT             "Page Faults"
+    IDS_TAB_PFDELTA               "PF Delta"
+    IDS_TAB_VMSIZE                "VM Size"
+    IDS_TAB_PAGEDPOOL             "Paged Pool"
+    IDS_TAB_NPPOOL                "NP Pool"
+    IDS_TAB_BASEPRI               "Base Pri"
+    IDS_TAB_HANDLES               "Handles"
+    IDS_TAB_THREADS               "Threads"
+    IDS_TAB_USERPBJECTS           "USER Objects"
+    IDS_TAB_GDIOBJECTS            "GDI Objects"
+    IDS_TAB_IOREADS               "I/O Reads"
+    IDS_TAB_IOWRITES              "I/O Writes"
+    IDS_TAB_IOOTHER               "I/O Other"
+    IDS_TAB_IOREADBYTES           "I/O Read Bytes"
+    IDS_TAB_IOWRITESBYTES         "I/O Write Bytes"
+    IDS_TAB_IOOTHERBYTES          "I/O Other Bytes"
+    IDS_MENU_SELECTCOLUMNS        "&Select Columns..."
+    IDS_MENU_16BITTASK            "&Show 16-bit tasks"
+    IDS_MENU_WINDOWS              "&Windows"
+    IDS_MENU_LARGEICONS           "Lar&ge Icons"
+    IDS_MENU_SMALLICONS           "S&mall Icons"
+    IDS_MENU_DETAILS              "&Details"
+    IDS_MENU_ONEGRAPHALLCPUS      "&One Graph, All CPUs"
+    IDS_MENU_ONEGRAPHPERCPU       "One Graph &Per CPU"
+    IDS_MENU_CPUHISTORY           "&CPU History"
+    IDS_MENU_SHOWKERNELTIMES      "&Show Kernel Times"
+    IDS_CREATENEWTASK             "Create New Task"
+    IDS_CREATENEWTASK_DESC        "Type the name of a program, folder, document, or Internet resource, and Task Manager will open it for you."
+    IDS_MSG_ACCESSPROCESSAFF      "Unable to Access or Set Process Affinity"
+    IDS_MSG_PROCESSONEPRO         "The process must have affinity with at least one processor."
+    IDS_MSG_INVALIDOPTION         "Invalid Option"
+    IDS_MSG_UNABLEDEBUGPROCESS    "Unable to Debug Process"
+    IDS_MSG_WARNINGDEBUG          "WARNING: Debugging this process may result in loss of data.\nAre you sure you wish to attach the debugger?"
+    IDS_MSG_TASKMGRWARNING        "Task Manager Warning"
+    IDS_MSG_WARNINGTERMINATING    "WARNING: Terminating a process can cause undesired\nresults including loss of data and system instability. The\nprocess will not be given the chance to save its state or\ndata before it is terminated. Are you sure you want to\nterminate the process?"
+    IDS_MSG_UNABLETERMINATEPRO    "Unable to Terminate Process"
+    IDS_MSG_UNABLECHANGEPRIORITY  "Unable to Change Priority"
+    IDS_MSG_WARNINGCHANGEPRIORITY "WARNING: Changing the priority class of this process may\ncause undesired results including system instability. Are you\nsure you want to change the priority class?"
+    IDS_MSG_TRAYICONCPUUSAGE      "CPU Usage: %d%%"
+    IDS_STATUS_MEMUSAGE           "Mem Usage: %dK / %dK"
+    IDS_STATUS_CPUUSAGE           "CPU Usage: %3d%%"
+    IDS_STATUS_PROCESSES          "Processes: %d"
+    IDS_Not_Responding            "Not Responding"
+    IDS_Running                   "Running"  
+END
+
+
Index: programs/taskmgr/affinity.c
===================================================================
RCS file: /home/wine/wine/programs/taskmgr/affinity.c,v
retrieving revision 1.2
diff -u -p -r1.2 affinity.c
--- programs/taskmgr/affinity.c	14 Sep 2005 10:06:09 -0000	1.2
+++ programs/taskmgr/affinity.c	29 Sep 2005 11:59:53 -0000
@@ -4,6 +4,7 @@
  *  affinity.c
  *
  *  Copyright (C) 1999 - 2001  Brian Palmer  <brianp at reactos.org>
+ *                2005         Klemens Friedl <frik85 at reactos.at>
  *
  * This library is free software; you can redistribute it and/or
  * modify it under the terms of the GNU Lesser General Public
@@ -39,10 +40,11 @@ INT_PTR CALLBACK AffinityDialogWndProc(H
 
 void ProcessPage_OnSetAffinity(void)
 {
-    LV_ITEM            lvitem;
+    LV_ITEM          lvitem;
     ULONG            Index;
     DWORD            dwProcessId;
     TCHAR            strErrorText[260];
+    TCHAR            szTitle[256];
 
     for (Index=0; Index<(ULONG)ListView_GetItemCount(hProcessPageListCtrl); Index++) {
         memset(&lvitem, 0, sizeof(LV_ITEM));
@@ -59,7 +61,8 @@ void ProcessPage_OnSetAffinity(void)
     hProcessAffinityHandle = OpenProcess(PROCESS_QUERY_INFORMATION|PROCESS_SET_INFORMATION, FALSE, dwProcessId);
     if (!hProcessAffinityHandle) {
         GetLastErrorText(strErrorText, 260);
-        MessageBox(hMainWnd, strErrorText, _T("Unable to Access or Set Process Affinity"), MB_OK|MB_ICONSTOP);
+        LoadString(hInst, IDS_MSG_ACCESSPROCESSAFF, szTitle, 256);
+        MessageBox(hMainWnd, strErrorText, szTitle, MB_OK|MB_ICONSTOP);
         return;
     }
     DialogBox(hInst, MAKEINTRESOURCE(IDD_AFFINITY_DIALOG), hMainWnd, AffinityDialogWndProc);
@@ -75,6 +78,7 @@ AffinityDialogWndProc(HWND hDlg, UINT me
     DWORD    dwProcessAffinityMask = 0;
     DWORD    dwSystemAffinityMask = 0;
     TCHAR    strErrorText[260];
+    TCHAR    szTitle[256];
 
     switch (message) {
     case WM_INITDIALOG:
@@ -86,7 +90,8 @@ AffinityDialogWndProc(HWND hDlg, UINT me
         if (!GetProcessAffinityMask(hProcessAffinityHandle, &dwProcessAffinityMask, &dwSystemAffinityMask))    {
             GetLastErrorText(strErrorText, 260);
             EndDialog(hDlg, 0);
-            MessageBox(hMainWnd, strErrorText, _T("Unable to Access or Set Process Affinity"), MB_OK|MB_ICONSTOP);
+            LoadString(hInst, IDS_MSG_ACCESSPROCESSAFF, szTitle, 256);
+            MessageBox(hMainWnd, strErrorText, szTitle, MB_OK|MB_ICONSTOP);
         }
 
         /*
@@ -321,7 +326,9 @@ AffinityDialogWndProc(HWND hDlg, UINT me
              * of it's cpu time.
              */
             if (!dwProcessAffinityMask) {
-                MessageBox(hDlg, _T("The process must have affinity with at least one processor."), _T("Invalid Option"), MB_OK|MB_ICONSTOP);
+                LoadString(hInst, IDS_MSG_PROCESSONEPRO, strErrorText, 260);
+                LoadString(hInst, IDS_MSG_INVALIDOPTION, szTitle, 256);
+                MessageBox(hDlg, strErrorText, szTitle, MB_OK|MB_ICONSTOP);
                 return TRUE;
             }
 
@@ -331,7 +338,8 @@ AffinityDialogWndProc(HWND hDlg, UINT me
             if (!SetProcessAffinityMask(hProcessAffinityHandle, dwProcessAffinityMask)) {
                 GetLastErrorText(strErrorText, 260);
                 EndDialog(hDlg, LOWORD(wParam));
-                MessageBox(hMainWnd, strErrorText, _T("Unable to Access or Set Process Affinity"), MB_OK|MB_ICONSTOP);
+                LoadString(hInst, IDS_MSG_ACCESSPROCESSAFF, szTitle, 256);
+                MessageBox(hMainWnd, strErrorText, szTitle, MB_OK|MB_ICONSTOP);
             }
 
             EndDialog(hDlg, LOWORD(wParam));
Index: programs/taskmgr/applpage.c
===================================================================
RCS file: /home/wine/wine/programs/taskmgr/applpage.c,v
retrieving revision 1.5
diff -u -p -r1.5 applpage.c
--- programs/taskmgr/applpage.c	14 Sep 2005 10:29:45 -0000	1.5
+++ programs/taskmgr/applpage.c	29 Sep 2005 11:59:53 -0000
@@ -4,6 +4,7 @@
  *  applpage.c
  *
  *  Copyright (C) 1999 - 2001  Brian Palmer  <brianp at reactos.org>
+ *                2005         Klemens Friedl <frik85 at reactos.at>
  *
  * This library is free software; you can redistribute it and/or
  * modify it under the terms of the GNU Lesser General Public
@@ -95,12 +96,13 @@ ApplicationPageWndProc(HWND hDlg, UINT m
 
         /* Initialize the application page's controls */
         column.mask = LVCF_TEXT|LVCF_WIDTH;
-        _tcscpy(szTemp, _T("Task"));
+
+        LoadString(hInst, IDS_TAB_TASK, szTemp, 256);
         column.pszText = szTemp;
         column.cx = 250;
         ListView_InsertColumn(hApplicationPageListCtrl, 0, &column);    /* Add the "Task" column */
         column.mask = LVCF_TEXT|LVCF_WIDTH;
-        _tcscpy(szTemp, _T("Status"));
+        LoadString(hInst, IDS_TAB_STATUS, szTemp, 256);
         column.pszText = szTemp;
         column.cx = 95;
         ListView_InsertColumn(hApplicationPageListCtrl, 1, &column);    /* Add the "Status" column */
@@ -494,6 +496,7 @@ void ApplicationPageOnNotify(WPARAM wPar
     LPNM_LISTVIEW   pnmv;
     LV_DISPINFO*    pnmdi;
     LPAPPLICATION_PAGE_LIST_ITEM pAPLI;
+    TCHAR szMsg[256];
 
 
     idctrl = (int) wParam;
@@ -520,9 +523,15 @@ void ApplicationPageOnNotify(WPARAM wPar
             else if (pnmdi->item.iSubItem == 1)
             {
                 if (pAPLI->bHung)
-                    _tcsncpy(pnmdi->item.pszText, _T("Not Responding"), pnmdi->item.cchTextMax);
+                {
+                    LoadString(hInst, IDS_Not_Responding, szMsg, 256);
+                    _tcsncpy(pnmdi->item.pszText, szMsg, pnmdi->item.cchTextMax);
+                }
                 else
-                    _tcsncpy(pnmdi->item.pszText, _T("Running"), pnmdi->item.cchTextMax);
+                {
+                    LoadString(hInst, IDS_Running, (LPTSTR) szMsg, 256);
+                    _tcsncpy(pnmdi->item.pszText, szMsg, pnmdi->item.cchTextMax);
+                }
             }
 
             break;
Index: programs/taskmgr/column.c
===================================================================
RCS file: /home/wine/wine/programs/taskmgr/column.c,v
retrieving revision 1.2
diff -u -p -r1.2 column.c
--- programs/taskmgr/column.c	14 Sep 2005 10:06:09 -0000	1.2
+++ programs/taskmgr/column.c	29 Sep 2005 11:59:53 -0000
@@ -4,6 +4,7 @@
  *  column.c
  *
  *  Copyright (C) 1999 - 2001  Brian Palmer  <brianp at reactos.org>
+ *                2005         Klemens Friedl <frik85 at reactos.at>
  *
  * This library is free software; you can redistribute it and/or
  * modify it under the terms of the GNU Lesser General Public
@@ -40,57 +41,128 @@ INT_PTR CALLBACK    ColumnsDialogWndProc
 void AddColumns(void)
 {
     int        size;
+    TCHAR      szTemp[256];
 
-    if (TaskManagerSettings.Column_ImageName)
-        InsertColumn(0, _T("Image Name"), LVCFMT_LEFT, TaskManagerSettings.ColumnSizeArray[0], -1);
-    if (TaskManagerSettings.Column_PID)
-        InsertColumn(1, _T("PID"), LVCFMT_RIGHT, TaskManagerSettings.ColumnSizeArray[1], -1);
-    if (TaskManagerSettings.Column_UserName)
-        InsertColumn(2, _T("Username"), LVCFMT_LEFT, TaskManagerSettings.ColumnSizeArray[2], -1);
-    if (TaskManagerSettings.Column_SessionID)
-        InsertColumn(3, _T("Session ID"), LVCFMT_RIGHT, TaskManagerSettings.ColumnSizeArray[3], -1);
-    if (TaskManagerSettings.Column_CPUUsage)
-        InsertColumn(4, _T("CPU"), LVCFMT_RIGHT, TaskManagerSettings.ColumnSizeArray[4], -1);
-    if (TaskManagerSettings.Column_CPUTime)
-        InsertColumn(5, _T("CPU Time"), LVCFMT_RIGHT, TaskManagerSettings.ColumnSizeArray[5], -1);
-    if (TaskManagerSettings.Column_MemoryUsage)
-        InsertColumn(6, _T("Mem Usage"), LVCFMT_RIGHT, TaskManagerSettings.ColumnSizeArray[6], -1);
-    if (TaskManagerSettings.Column_PeakMemoryUsage)
-        InsertColumn(7, _T("Peak Mem Usage"), LVCFMT_RIGHT, TaskManagerSettings.ColumnSizeArray[7], -1);
-    if (TaskManagerSettings.Column_MemoryUsageDelta)
-        InsertColumn(8, _T("Mem Delta"), LVCFMT_RIGHT, TaskManagerSettings.ColumnSizeArray[8], -1);
-    if (TaskManagerSettings.Column_PageFaults)
-        InsertColumn(9, _T("Page Faults"), LVCFMT_RIGHT, TaskManagerSettings.ColumnSizeArray[9], -1);
-    if (TaskManagerSettings.Column_PageFaultsDelta)
-        InsertColumn(10, _T("PF Delta"), LVCFMT_RIGHT, TaskManagerSettings.ColumnSizeArray[10], -1);
-    if (TaskManagerSettings.Column_VirtualMemorySize)
-        InsertColumn(11, _T("VM Size"), LVCFMT_RIGHT, TaskManagerSettings.ColumnSizeArray[11], -1);
-    if (TaskManagerSettings.Column_PagedPool)
-        InsertColumn(12, _T("Paged Pool"), LVCFMT_RIGHT, TaskManagerSettings.ColumnSizeArray[12], -1);
-    if (TaskManagerSettings.Column_NonPagedPool)
-        InsertColumn(13, _T("NP Pool"), LVCFMT_RIGHT, TaskManagerSettings.ColumnSizeArray[13], -1);
-    if (TaskManagerSettings.Column_BasePriority)
-        InsertColumn(14, _T("Base Pri"), LVCFMT_RIGHT, TaskManagerSettings.ColumnSizeArray[14], -1);
-    if (TaskManagerSettings.Column_HandleCount)
-        InsertColumn(15, _T("Handles"), LVCFMT_RIGHT, TaskManagerSettings.ColumnSizeArray[15], -1);
-    if (TaskManagerSettings.Column_ThreadCount)
-        InsertColumn(16, _T("Threads"), LVCFMT_RIGHT, TaskManagerSettings.ColumnSizeArray[16], -1);
-    if (TaskManagerSettings.Column_USERObjects)
-        InsertColumn(17, _T("USER Objects"), LVCFMT_RIGHT, TaskManagerSettings.ColumnSizeArray[17], -1);
-    if (TaskManagerSettings.Column_GDIObjects)
-        InsertColumn(18, _T("GDI Objects"), LVCFMT_RIGHT, TaskManagerSettings.ColumnSizeArray[18], -1);
-    if (TaskManagerSettings.Column_IOReads)
-        InsertColumn(19, _T("I/O Reads"), LVCFMT_RIGHT, TaskManagerSettings.ColumnSizeArray[19], -1);
-    if (TaskManagerSettings.Column_IOWrites)
-        InsertColumn(20, _T("I/O Writes"), LVCFMT_RIGHT, TaskManagerSettings.ColumnSizeArray[20], -1);
-    if (TaskManagerSettings.Column_IOOther)
-        InsertColumn(21, _T("I/O Other"), LVCFMT_RIGHT, TaskManagerSettings.ColumnSizeArray[21], -1);
-    if (TaskManagerSettings.Column_IOReadBytes)
-        InsertColumn(22, _T("I/O Read Bytes"), LVCFMT_RIGHT, TaskManagerSettings.ColumnSizeArray[22], -1);
-    if (TaskManagerSettings.Column_IOWriteBytes)
-        InsertColumn(23, _T("I/O Write Bytes"), LVCFMT_RIGHT, TaskManagerSettings.ColumnSizeArray[23], -1);
-    if (TaskManagerSettings.Column_IOOtherBytes)
-        InsertColumn(24, _T("I/O Other Bytes"), LVCFMT_RIGHT, TaskManagerSettings.ColumnSizeArray[24], -1);
+    if (TaskManagerSettings.Column_ImageName) {
+        LoadString(hInst, IDS_TAB_IMAGENAME, szTemp, 256);
+        InsertColumn(0, szTemp, LVCFMT_LEFT, TaskManagerSettings.ColumnSizeArray[0], -1);
+    }
+    if (TaskManagerSettings.Column_PID) {
+        LoadString(hInst, IDS_TAB_PID, szTemp, 256);
+        InsertColumn(1, szTemp, LVCFMT_LEFT, TaskManagerSettings.ColumnSizeArray[1], -1);
+    }
+    if (TaskManagerSettings.Column_UserName) {
+        LoadString(hInst, IDS_TAB_USERNAME, szTemp, 256);
+        InsertColumn(2, szTemp, LVCFMT_LEFT, TaskManagerSettings.ColumnSizeArray[2], -1);
+    }
+    if (TaskManagerSettings.Column_SessionID) {
+        LoadString(hInst, IDS_TAB_SESSIONID, szTemp, 256);
+        InsertColumn(3, szTemp, LVCFMT_LEFT, TaskManagerSettings.ColumnSizeArray[3], -1);
+    }
+    if (TaskManagerSettings.Column_CPUUsage) {
+        LoadString(hInst, IDS_TAB_CPU, szTemp, 256);
+        InsertColumn(4, szTemp, LVCFMT_LEFT, TaskManagerSettings.ColumnSizeArray[4], -1);
+    }
+
+    if (TaskManagerSettings.Column_CPUTime) {
+        LoadString(hInst, IDS_TAB_CPUTIME, szTemp, 256);
+        InsertColumn(5, szTemp, LVCFMT_LEFT, TaskManagerSettings.ColumnSizeArray[5], -1);
+    }
+
+    if (TaskManagerSettings.Column_MemoryUsage) {
+        LoadString(hInst, IDS_TAB_MEMUSAGE, szTemp, 256);
+        InsertColumn(6, szTemp, LVCFMT_LEFT, TaskManagerSettings.ColumnSizeArray[6], -1);
+    }
+
+    if (TaskManagerSettings.Column_PeakMemoryUsage) {
+        LoadString(hInst, IDS_TAB_PEAKMEMUSAGE, szTemp, 256);
+        InsertColumn(7, szTemp, LVCFMT_LEFT, TaskManagerSettings.ColumnSizeArray[7], -1);
+    }
+
+    if (TaskManagerSettings.Column_MemoryUsageDelta) {
+        LoadString(hInst, IDS_TAB_MEMDELTA, szTemp, 256);
+        InsertColumn(8, szTemp, LVCFMT_LEFT, TaskManagerSettings.ColumnSizeArray[8], -1);
+    }
+
+    if (TaskManagerSettings.Column_PageFaults) {
+        LoadString(hInst, IDS_TAB_PAGEFAULT, szTemp, 256);
+        InsertColumn(9, szTemp, LVCFMT_LEFT, TaskManagerSettings.ColumnSizeArray[9], -1);
+    }
+
+    if (TaskManagerSettings.Column_PageFaultsDelta) {
+        LoadString(hInst, IDS_TAB_PFDELTA, szTemp, 256);
+        InsertColumn(10, szTemp, LVCFMT_LEFT, TaskManagerSettings.ColumnSizeArray[10], -1);
+    }
+
+    if (TaskManagerSettings.Column_VirtualMemorySize) {
+        LoadString(hInst, IDS_TAB_VMSIZE, szTemp, 256);
+        InsertColumn(11, szTemp, LVCFMT_LEFT, TaskManagerSettings.ColumnSizeArray[11], -1);
+    }
+
+    if (TaskManagerSettings.Column_PagedPool) {
+        LoadString(hInst, IDS_TAB_PAGEDPOOL, szTemp, 256);
+        InsertColumn(12, szTemp, LVCFMT_LEFT, TaskManagerSettings.ColumnSizeArray[12], -1);
+    }
+
+    if (TaskManagerSettings.Column_NonPagedPool) {
+        LoadString(hInst, IDS_TAB_NPPOOL, szTemp, 256);
+        InsertColumn(13, szTemp, LVCFMT_LEFT, TaskManagerSettings.ColumnSizeArray[13], -1);
+    }
+
+    if (TaskManagerSettings.Column_BasePriority) {
+        LoadString(hInst, IDS_TAB_BASEPRI, szTemp, 256);
+        InsertColumn(14, szTemp, LVCFMT_LEFT, TaskManagerSettings.ColumnSizeArray[14], -1);
+    }
+
+    if (TaskManagerSettings.Column_HandleCount) {
+        LoadString(hInst, IDS_TAB_HANDLES, szTemp, 256);
+        InsertColumn(15, szTemp, LVCFMT_LEFT, TaskManagerSettings.ColumnSizeArray[15], -1);
+    }
+
+    if (TaskManagerSettings.Column_ThreadCount) {
+        LoadString(hInst, IDS_TAB_THREADS, szTemp, 256);
+        InsertColumn(16, szTemp, LVCFMT_LEFT, TaskManagerSettings.ColumnSizeArray[16], -1);
+    }
+
+    if (TaskManagerSettings.Column_USERObjects) {
+        LoadString(hInst, IDS_TAB_USERPBJECTS, szTemp, 256);
+        InsertColumn(17, szTemp, LVCFMT_LEFT, TaskManagerSettings.ColumnSizeArray[17], -1);
+    }
+
+    if (TaskManagerSettings.Column_GDIObjects) {
+        LoadString(hInst, IDS_TAB_GDIOBJECTS, szTemp, 256);
+        InsertColumn(18, szTemp, LVCFMT_LEFT, TaskManagerSettings.ColumnSizeArray[18], -1);
+    }
+
+    if (TaskManagerSettings.Column_IOReads) {
+        LoadString(hInst, IDS_TAB_IOREADS, szTemp, 256);
+        InsertColumn(19, szTemp, LVCFMT_LEFT, TaskManagerSettings.ColumnSizeArray[19], -1);
+    }
+
+    if (TaskManagerSettings.Column_IOWrites) {
+        LoadString(hInst, IDS_TAB_IOWRITES, szTemp, 256);
+        InsertColumn(20, szTemp, LVCFMT_LEFT, TaskManagerSettings.ColumnSizeArray[20], -1);
+    }
+
+    if (TaskManagerSettings.Column_IOOther) {
+        LoadString(hInst, IDS_TAB_IOOTHER, szTemp, 256);
+        InsertColumn(21, szTemp, LVCFMT_LEFT, TaskManagerSettings.ColumnSizeArray[21], -1);
+    }
+
+    if (TaskManagerSettings.Column_IOReadBytes) {
+        LoadString(hInst, IDS_TAB_IOREADBYTES, szTemp, 256);
+        InsertColumn(22, szTemp, LVCFMT_LEFT, TaskManagerSettings.ColumnSizeArray[22], -1);
+    }
+
+    if (TaskManagerSettings.Column_IOWriteBytes) {
+        LoadString(hInst, IDS_TAB_IOWRITESBYTES, szTemp, 256);
+        InsertColumn(23, szTemp, LVCFMT_LEFT, TaskManagerSettings.ColumnSizeArray[23], -1);
+    }
+
+    if (TaskManagerSettings.Column_IOOtherBytes) {
+        LoadString(hInst, IDS_TAB_IOOTHERBYTES, szTemp, 256);
+        InsertColumn(24, szTemp, LVCFMT_LEFT, TaskManagerSettings.ColumnSizeArray[24], -1);
+    }
 
     size = SendMessage(hProcessPageHeaderCtrl, HDM_GETITEMCOUNT, 0, 0);
     SendMessage(hProcessPageHeaderCtrl, HDM_SETORDERARRAY, (WPARAM) size, (LPARAM) &TaskManagerSettings.ColumnOrderArray);
@@ -124,9 +196,10 @@ int InsertColumn(int nCol, LPCTSTR lpszC
 void SaveColumnSettings(void)
 {
     HDITEM    hditem;
-    int        i;
-    TCHAR    text[260];
-    int        size;
+    int       i;
+    TCHAR     text[260];
+    TCHAR     szTemp[256];
+    int       size;
 
     /* Reset column data */
     for (i=0; i<25; i++)
@@ -197,127 +270,176 @@ void SaveColumnSettings(void)
 
         SendMessage(hProcessPageHeaderCtrl, HDM_GETITEM, i, (LPARAM) &hditem);
 
-        if (_tcsicmp(text, _T("Image Name")) == 0)
+        LoadString(hInst, IDS_TAB_IMAGENAME, szTemp, 256);
+        if (_tcsicmp(text, szTemp) == 0)
         {
             TaskManagerSettings.Column_ImageName = TRUE;
             TaskManagerSettings.ColumnSizeArray[0] = hditem.cxy;
         }
-        if (_tcsicmp(text, _T("PID")) == 0)
+
+        LoadString(hInst, IDS_TAB_PID, szTemp, 256);
+        if (_tcsicmp(text, szTemp) == 0)
         {
             TaskManagerSettings.Column_PID = TRUE;
             TaskManagerSettings.ColumnSizeArray[1] = hditem.cxy;
         }
-        if (_tcsicmp(text, _T("Username")) == 0)
+
+        LoadString(hInst, IDS_TAB_USERNAME, szTemp, 256);
+        if (_tcsicmp(text, szTemp) == 0)
         {
             TaskManagerSettings.Column_UserName = TRUE;
             TaskManagerSettings.ColumnSizeArray[2] = hditem.cxy;
         }
-        if (_tcsicmp(text, _T("Session ID")) == 0)
+
+        LoadString(hInst, IDS_TAB_SESSIONID, szTemp, 256);
+        if (_tcsicmp(text, szTemp) == 0)
         {
             TaskManagerSettings.Column_SessionID = TRUE;
             TaskManagerSettings.ColumnSizeArray[3] = hditem.cxy;
         }
-        if (_tcsicmp(text, _T("CPU")) == 0)
+
+        LoadString(hInst, IDS_TAB_CPU, szTemp, 256);
+        if (_tcsicmp(text, szTemp) == 0)
         {
             TaskManagerSettings.Column_CPUUsage = TRUE;
             TaskManagerSettings.ColumnSizeArray[4] = hditem.cxy;
         }
-        if (_tcsicmp(text, _T("CPU Time")) == 0)
+
+        LoadString(hInst, IDS_TAB_CPUTIME, szTemp, 256);
+        if (_tcsicmp(text, szTemp) == 0)
         {
             TaskManagerSettings.Column_CPUTime = TRUE;
             TaskManagerSettings.ColumnSizeArray[5] = hditem.cxy;
         }
-        if (_tcsicmp(text, _T("Mem Usage")) == 0)
+
+        LoadString(hInst, IDS_TAB_MEMUSAGE, szTemp, 256);
+        if (_tcsicmp(text, szTemp) == 0)
         {
             TaskManagerSettings.Column_MemoryUsage = TRUE;
             TaskManagerSettings.ColumnSizeArray[6] = hditem.cxy;
         }
-        if (_tcsicmp(text, _T("Peak Mem Usage")) == 0)
+
+        LoadString(hInst, IDS_TAB_PEAKMEMUSAGE, szTemp, 256);
+        if (_tcsicmp(text, szTemp) == 0)
         {
             TaskManagerSettings.Column_PeakMemoryUsage = TRUE;
             TaskManagerSettings.ColumnSizeArray[7] = hditem.cxy;
         }
-        if (_tcsicmp(text, _T("Mem Delta")) == 0)
+
+        LoadString(hInst, IDS_TAB_MEMDELTA, szTemp, 256);
+        if (_tcsicmp(text, szTemp) == 0)
         {
             TaskManagerSettings.Column_MemoryUsageDelta = TRUE;
             TaskManagerSettings.ColumnSizeArray[8] = hditem.cxy;
         }
-        if (_tcsicmp(text, _T("Page Faults")) == 0)
+
+        LoadString(hInst, IDS_TAB_PAGEFAULT, szTemp, 256);
+        if (_tcsicmp(text, szTemp) == 0)
         {
             TaskManagerSettings.Column_PageFaults = TRUE;
             TaskManagerSettings.ColumnSizeArray[9] = hditem.cxy;
         }
-        if (_tcsicmp(text, _T("PF Delta")) == 0)
+
+        LoadString(hInst, IDS_TAB_PFDELTA, szTemp, 256);
+        if (_tcsicmp(text, szTemp) == 0)
         {
             TaskManagerSettings.Column_PageFaultsDelta = TRUE;
             TaskManagerSettings.ColumnSizeArray[10] = hditem.cxy;
         }
-        if (_tcsicmp(text, _T("VM Size")) == 0)
+
+        LoadString(hInst, IDS_TAB_VMSIZE, szTemp, 256);
+        if (_tcsicmp(text, szTemp) == 0)
         {
             TaskManagerSettings.Column_VirtualMemorySize = TRUE;
             TaskManagerSettings.ColumnSizeArray[11] = hditem.cxy;
         }
-        if (_tcsicmp(text, _T("Paged Pool")) == 0)
+
+        LoadString(hInst, IDS_TAB_PAGEDPOOL, szTemp, 256);
+        if (_tcsicmp(text, szTemp) == 0)
         {
             TaskManagerSettings.Column_PagedPool = TRUE;
             TaskManagerSettings.ColumnSizeArray[12] = hditem.cxy;
         }
-        if (_tcsicmp(text, _T("NP Pool")) == 0)
+
+        LoadString(hInst, IDS_TAB_NPPOOL, szTemp, 256);
+        if (_tcsicmp(text, szTemp) == 0)
         {
             TaskManagerSettings.Column_NonPagedPool = TRUE;
             TaskManagerSettings.ColumnSizeArray[13] = hditem.cxy;
         }
-        if (_tcsicmp(text, _T("Base Pri")) == 0)
+
+        LoadString(hInst, IDS_TAB_BASEPRI, szTemp, 256);
+        if (_tcsicmp(text, szTemp) == 0)
         {
             TaskManagerSettings.Column_BasePriority = TRUE;
             TaskManagerSettings.ColumnSizeArray[14] = hditem.cxy;
         }
-        if (_tcsicmp(text, _T("Handles")) == 0)
+
+        LoadString(hInst, IDS_TAB_HANDLES, szTemp, 256);
+        if (_tcsicmp(text, szTemp) == 0)
         {
             TaskManagerSettings.Column_HandleCount = TRUE;
             TaskManagerSettings.ColumnSizeArray[15] = hditem.cxy;
         }
-        if (_tcsicmp(text, _T("Threads")) == 0)
+
+        LoadString(hInst, IDS_TAB_THREADS, szTemp, 256);
+        if (_tcsicmp(text, szTemp) == 0)
         {
             TaskManagerSettings.Column_ThreadCount = TRUE;
             TaskManagerSettings.ColumnSizeArray[16] = hditem.cxy;
         }
-        if (_tcsicmp(text, _T("USER Objects")) == 0)
+
+        LoadString(hInst, IDS_TAB_USERPBJECTS, szTemp, 256);
+        if (_tcsicmp(text, szTemp) == 0)
         {
             TaskManagerSettings.Column_USERObjects = TRUE;
             TaskManagerSettings.ColumnSizeArray[17] = hditem.cxy;
         }
-        if (_tcsicmp(text, _T("GDI Objects")) == 0)
+
+        LoadString(hInst, IDS_TAB_GDIOBJECTS, szTemp, 256);
+        if (_tcsicmp(text, szTemp) == 0)
         {
             TaskManagerSettings.Column_GDIObjects = TRUE;
             TaskManagerSettings.ColumnSizeArray[18] = hditem.cxy;
         }
-        if (_tcsicmp(text, _T("I/O Reads")) == 0)
+
+        LoadString(hInst, IDS_TAB_IOREADS, szTemp, 256);
+        if (_tcsicmp(text, szTemp) == 0)
         {
             TaskManagerSettings.Column_IOReads = TRUE;
             TaskManagerSettings.ColumnSizeArray[19] = hditem.cxy;
         }
-        if (_tcsicmp(text, _T("I/O Writes")) == 0)
+
+        LoadString(hInst, IDS_TAB_IOWRITES, szTemp, 256);
+        if (_tcsicmp(text, szTemp) == 0)
         {
             TaskManagerSettings.Column_IOWrites = TRUE;
             TaskManagerSettings.ColumnSizeArray[20] = hditem.cxy;
         }
-        if (_tcsicmp(text, _T("I/O Other")) == 0)
+
+        LoadString(hInst, IDS_TAB_IOOTHER, szTemp, 256);
+        if (_tcsicmp(text, szTemp) == 0)
         {
             TaskManagerSettings.Column_IOOther = TRUE;
             TaskManagerSettings.ColumnSizeArray[21] = hditem.cxy;
         }
-        if (_tcsicmp(text, _T("I/O Read Bytes")) == 0)
+
+        LoadString(hInst, IDS_TAB_IOREADBYTES, szTemp, 256);
+        if (_tcsicmp(text, szTemp) == 0)
         {
             TaskManagerSettings.Column_IOReadBytes = TRUE;
             TaskManagerSettings.ColumnSizeArray[22] = hditem.cxy;
         }
-        if (_tcsicmp(text, _T("I/O Write Bytes")) == 0)
+
+        LoadString(hInst, IDS_TAB_IOWRITESBYTES, szTemp, 256);
+        if (_tcsicmp(text, szTemp) == 0)
         {
             TaskManagerSettings.Column_IOWriteBytes = TRUE;
             TaskManagerSettings.ColumnSizeArray[23] = hditem.cxy;
         }
-        if (_tcsicmp(text, _T("I/O Other Bytes")) == 0)
+
+        LoadString(hInst, IDS_TAB_IOOTHERBYTES, szTemp, 256);
+        if (_tcsicmp(text, szTemp) == 0)
         {
             TaskManagerSettings.Column_IOOtherBytes = TRUE;
             TaskManagerSettings.ColumnSizeArray[24] = hditem.cxy;
@@ -478,8 +600,9 @@ ColumnsDialogWndProc(HWND hDlg, UINT mes
 
 void UpdateColumnDataHints(void)
 {
-    HDITEM            hditem;
+    HDITEM           hditem;
     TCHAR            text[260];
+    TCHAR            szTemp[256];
     ULONG            Index;
 
     for (Index=0; Index<(ULONG)SendMessage(hProcessPageHeaderCtrl, HDM_GETITEMCOUNT, 0, 0); Index++)
@@ -492,55 +615,104 @@ void UpdateColumnDataHints(void)
 
         SendMessage(hProcessPageHeaderCtrl, HDM_GETITEM, Index, (LPARAM) &hditem);
 
-        if (_tcsicmp(text, _T("Image Name")) == 0)
+        LoadString(hInst, IDS_TAB_IMAGENAME, szTemp, 256);
+        if (_tcsicmp(text, szTemp) == 0)
             ColumnDataHints[Index] = COLUMN_IMAGENAME;
-        if (_tcsicmp(text, _T("PID")) == 0)
+
+        LoadString(hInst, IDS_TAB_PID, szTemp, 256);
+        if (_tcsicmp(text, szTemp) == 0)
             ColumnDataHints[Index] = COLUMN_PID;
-        if (_tcsicmp(text, _T("Username")) == 0)
+
+        LoadString(hInst, IDS_TAB_USERNAME, szTemp, 256);
+        if (_tcsicmp(text, szTemp) == 0)
             ColumnDataHints[Index] = COLUMN_USERNAME;
-        if (_tcsicmp(text, _T("Session ID")) == 0)
+
+        LoadString(hInst, IDS_TAB_SESSIONID, szTemp, 256);
+        if (_tcsicmp(text, szTemp) == 0)
             ColumnDataHints[Index] = COLUMN_SESSIONID;
-        if (_tcsicmp(text, _T("CPU")) == 0)
+
+        LoadString(hInst, IDS_TAB_CPU, szTemp, 256);
+        if (_tcsicmp(text, szTemp) == 0)
             ColumnDataHints[Index] = COLUMN_CPUUSAGE;
-        if (_tcsicmp(text, _T("CPU Time")) == 0)
+
+        LoadString(hInst, IDS_TAB_CPUTIME, szTemp, 256);
+        if (_tcsicmp(text, szTemp) == 0)
             ColumnDataHints[Index] = COLUMN_CPUTIME;
-        if (_tcsicmp(text, _T("Mem Usage")) == 0)
+
+        LoadString(hInst, IDS_TAB_MEMUSAGE, szTemp, 256);
+        if (_tcsicmp(text, szTemp) == 0)
             ColumnDataHints[Index] = COLUMN_MEMORYUSAGE;
-        if (_tcsicmp(text, _T("Peak Mem Usage")) == 0)
+
+        LoadString(hInst, IDS_TAB_PEAKMEMUSAGE, szTemp, 256);
+        if (_tcsicmp(text, szTemp) == 0)
             ColumnDataHints[Index] = COLUMN_PEAKMEMORYUSAGE;
-        if (_tcsicmp(text, _T("Mem Delta")) == 0)
+
+        LoadString(hInst, IDS_TAB_MEMDELTA, szTemp, 256);
+        if (_tcsicmp(text, szTemp) == 0)
             ColumnDataHints[Index] = COLUMN_MEMORYUSAGEDELTA;
-        if (_tcsicmp(text, _T("Page Faults")) == 0)
+
+        LoadString(hInst, IDS_TAB_PAGEFAULT, szTemp, 256);
+        if (_tcsicmp(text, szTemp) == 0)
             ColumnDataHints[Index] = COLUMN_PAGEFAULTS;
-        if (_tcsicmp(text, _T("PF Delta")) == 0)
+
+        LoadString(hInst, IDS_TAB_PFDELTA, szTemp, 256);
+        if (_tcsicmp(text, szTemp) == 0)
             ColumnDataHints[Index] = COLUMN_PAGEFAULTSDELTA;
-        if (_tcsicmp(text, _T("VM Size")) == 0)
+
+        LoadString(hInst, IDS_TAB_VMSIZE, szTemp, 256);
+        if (_tcsicmp(text, szTemp) == 0)
             ColumnDataHints[Index] = COLUMN_VIRTUALMEMORYSIZE;
-        if (_tcsicmp(text, _T("Paged Pool")) == 0)
+
+        LoadString(hInst, IDS_TAB_PAGEDPOOL, szTemp, 256);
+        if (_tcsicmp(text, szTemp) == 0)
             ColumnDataHints[Index] = COLUMN_PAGEDPOOL;
-        if (_tcsicmp(text, _T("NP Pool")) == 0)
+
+        LoadString(hInst, IDS_TAB_NPPOOL, szTemp, 256);
+        if (_tcsicmp(text, szTemp) == 0)
             ColumnDataHints[Index] = COLUMN_NONPAGEDPOOL;
-        if (_tcsicmp(text, _T("Base Pri")) == 0)
+
+        LoadString(hInst, IDS_TAB_BASEPRI, szTemp, 256);
+        if (_tcsicmp(text, szTemp) == 0)
             ColumnDataHints[Index] = COLUMN_BASEPRIORITY;
-        if (_tcsicmp(text, _T("Handles")) == 0)
+
+        LoadString(hInst, IDS_TAB_HANDLES, szTemp, 256);
+        if (_tcsicmp(text, szTemp) == 0)
             ColumnDataHints[Index] = COLUMN_HANDLECOUNT;
-        if (_tcsicmp(text, _T("Threads")) == 0)
+
+        LoadString(hInst, IDS_TAB_THREADS, szTemp, 256);
+        if (_tcsicmp(text, szTemp) == 0)
             ColumnDataHints[Index] = COLUMN_THREADCOUNT;
-        if (_tcsicmp(text, _T("USER Objects")) == 0)
+
+        LoadString(hInst, IDS_TAB_USERPBJECTS, szTemp, 256);
+        if (_tcsicmp(text, szTemp) == 0)
             ColumnDataHints[Index] = COLUMN_USEROBJECTS;
-        if (_tcsicmp(text, _T("GDI Objects")) == 0)
+
+        LoadString(hInst, IDS_TAB_GDIOBJECTS, szTemp, 256);
+        if (_tcsicmp(text, szTemp) == 0)
             ColumnDataHints[Index] = COLUMN_GDIOBJECTS;
-        if (_tcsicmp(text, _T("I/O Reads")) == 0)
+
+        LoadString(hInst, IDS_TAB_IOREADS, szTemp, 256);
+        if (_tcsicmp(text, szTemp) == 0)
             ColumnDataHints[Index] = COLUMN_IOREADS;
-        if (_tcsicmp(text, _T("I/O Writes")) == 0)
+
+        LoadString(hInst, IDS_TAB_IOWRITES, szTemp, 256);
+        if (_tcsicmp(text, szTemp) == 0)
             ColumnDataHints[Index] = COLUMN_IOWRITES;
-        if (_tcsicmp(text, _T("I/O Other")) == 0)
+
+        LoadString(hInst, IDS_TAB_IOOTHER, szTemp, 256);
+        if (_tcsicmp(text, szTemp) == 0)
             ColumnDataHints[Index] = COLUMN_IOOTHER;
-        if (_tcsicmp(text, _T("I/O Read Bytes")) == 0)
+
+        LoadString(hInst, IDS_TAB_IOREADBYTES, szTemp, 256);
+        if (_tcsicmp(text, szTemp) == 0)
             ColumnDataHints[Index] = COLUMN_IOREADBYTES;
-        if (_tcsicmp(text, _T("I/O Write Bytes")) == 0)
+
+        LoadString(hInst, IDS_TAB_IOWRITESBYTES, szTemp, 256);
+        if (_tcsicmp(text, szTemp) == 0)
             ColumnDataHints[Index] = COLUMN_IOWRITEBYTES;
-        if (_tcsicmp(text, _T("I/O Other Bytes")) == 0)
+
+        LoadString(hInst, IDS_TAB_IOOTHERBYTES, szTemp, 256);
+        if (_tcsicmp(text, szTemp) == 0)
             ColumnDataHints[Index] = COLUMN_IOOTHERBYTES;
     }
 }
Index: programs/taskmgr/debug.c
===================================================================
RCS file: /home/wine/wine/programs/taskmgr/debug.c,v
retrieving revision 1.1
diff -u -p -r1.1 debug.c
--- programs/taskmgr/debug.c	23 Mar 2004 01:19:54 -0000	1.1
+++ programs/taskmgr/debug.c	29 Sep 2005 11:59:53 -0000
@@ -4,6 +4,7 @@
  *  debug.c
  *
  *  Copyright (C) 1999 - 2001  Brian Palmer  <brianp at reactos.org>
+ *                2005         Klemens Friedl <frik85 at reactos.at>
  *
  * This library is free software; you can redistribute it and/or
  * modify it under the terms of the GNU Lesser General Public
@@ -35,17 +36,20 @@
 
 void ProcessPage_OnDebug(void)
 {
-    LVITEM                lvitem;
+    LVITEM               lvitem;
     ULONG                Index;
     DWORD                dwProcessId;
     TCHAR                strErrorText[260];
-    HKEY                hKey;
+    HKEY                 hKey;
     TCHAR                strDebugPath[260];
     TCHAR                strDebugger[260];
     DWORD                dwDebuggerSize;
-    PROCESS_INFORMATION    pi;
-    STARTUPINFO            si;
-    HANDLE                hDebugEvent;
+    PROCESS_INFORMATION  pi;
+    STARTUPINFO          si;
+    HANDLE               hDebugEvent;
+    TCHAR                szTemp[256];
+    TCHAR                szTempA[256];
+
 
     for (Index=0; Index<(ULONG)ListView_GetItemCount(hProcessPageListCtrl); Index++)
     {
@@ -66,17 +70,22 @@ void ProcessPage_OnDebug(void)
     if ((ListView_GetSelectedCount(hProcessPageListCtrl) != 1) || (dwProcessId == 0))
         return;
 
-    if (MessageBox(hMainWnd, _T("WARNING: Debugging this process may result in loss of data.\nAre you sure you wish to attach the debugger?"), _T("Task Manager Warning"), MB_YESNO|MB_ICONWARNING) != IDYES)
+    LoadString(hInst, IDS_MSG_WARNINGDEBUG, szTemp, 256);
+    LoadString(hInst, IDS_MSG_TASKMGRWARNING, szTempA, 256);
+
+    if (MessageBox(hMainWnd, szTemp, szTempA, MB_YESNO|MB_ICONWARNING) != IDYES)
     {
         GetLastErrorText(strErrorText, 260);
-        MessageBox(hMainWnd, strErrorText, _T("Unable to Debug Process"), MB_OK|MB_ICONSTOP);
+        LoadString(hInst, IDS_MSG_UNABLEDEBUGPROCESS, szTemp, 256);
+        MessageBox(hMainWnd, strErrorText, szTemp, MB_OK|MB_ICONSTOP);
         return;
     }
 
     if (RegOpenKeyEx(HKEY_LOCAL_MACHINE, _T("Software\\Microsoft\\Windows NT\\CurrentVersion\\AeDebug"), 0, KEY_READ, &hKey) != ERROR_SUCCESS)
     {
         GetLastErrorText(strErrorText, 260);
-        MessageBox(hMainWnd, strErrorText, _T("Unable to Debug Process"), MB_OK|MB_ICONSTOP);
+        LoadString(hInst, IDS_MSG_UNABLEDEBUGPROCESS, szTemp, 256);
+        MessageBox(hMainWnd, strErrorText, szTemp, MB_OK|MB_ICONSTOP);
         return;
     }
 
@@ -84,7 +93,8 @@ void ProcessPage_OnDebug(void)
     if (RegQueryValueEx(hKey, _T("Debugger"), NULL, NULL, (LPBYTE)strDebugger, &dwDebuggerSize) != ERROR_SUCCESS)
     {
         GetLastErrorText(strErrorText, 260);
-        MessageBox(hMainWnd, strErrorText, _T("Unable to Debug Process"), MB_OK|MB_ICONSTOP);
+        LoadString(hInst, IDS_MSG_UNABLEDEBUGPROCESS, szTemp, 256);
+        MessageBox(hMainWnd, strErrorText, szTemp, MB_OK|MB_ICONSTOP);
         RegCloseKey(hKey);
         return;
     }
@@ -95,7 +105,8 @@ void ProcessPage_OnDebug(void)
     if (!hDebugEvent)
     {
         GetLastErrorText(strErrorText, 260);
-        MessageBox(hMainWnd, strErrorText, _T("Unable to Debug Process"), MB_OK|MB_ICONSTOP);
+        LoadString(hInst, IDS_MSG_UNABLEDEBUGPROCESS, szTemp, 256);
+        MessageBox(hMainWnd, strErrorText, szTemp, MB_OK|MB_ICONSTOP);
         return;
     }
 
@@ -107,7 +118,8 @@ void ProcessPage_OnDebug(void)
     if (!CreateProcess(NULL, strDebugPath, NULL, NULL, FALSE, 0, NULL, NULL, &si, &pi))
     {
         GetLastErrorText(strErrorText, 260);
-        MessageBox(hMainWnd, strErrorText, _T("Unable to Debug Process"), MB_OK|MB_ICONSTOP);
+        LoadString(hInst, IDS_MSG_UNABLEDEBUGPROCESS, szTemp, 256);
+        MessageBox(hMainWnd, strErrorText, szTemp, MB_OK|MB_ICONSTOP);
     }
 
     CloseHandle(hDebugEvent);
Index: programs/taskmgr/endproc.c
===================================================================
RCS file: /home/wine/wine/programs/taskmgr/endproc.c,v
retrieving revision 1.1
diff -u -p -r1.1 endproc.c
--- programs/taskmgr/endproc.c	23 Mar 2004 01:19:54 -0000	1.1
+++ programs/taskmgr/endproc.c	29 Sep 2005 11:59:53 -0000
@@ -4,6 +4,7 @@
  *  endproc.c
  *
  *  Copyright (C) 1999 - 2001  Brian Palmer  <brianp at reactos.org>
+ *                2005         Klemens Friedl <frik85 at reactos.at>
  *
  * This library is free software; you can redistribute it and/or
  * modify it under the terms of the GNU Lesser General Public
@@ -35,11 +36,13 @@
 
 void ProcessPage_OnEndProcess(void)
 {
-    LVITEM            lvitem;
+    LVITEM           lvitem;
     ULONG            Index;
     DWORD            dwProcessId;
-    HANDLE            hProcess;
+    HANDLE           hProcess;
     TCHAR            strErrorText[260];
+    TCHAR            szTitle[256];
+
 
     for (Index=0; Index<(ULONG)ListView_GetItemCount(hProcessPageListCtrl); Index++)
     {
@@ -60,7 +63,9 @@ void ProcessPage_OnEndProcess(void)
     if ((ListView_GetSelectedCount(hProcessPageListCtrl) != 1) || (dwProcessId == 0))
         return;
 
-    if (MessageBox(hMainWnd, _T("WARNING: Terminating a process can cause undesired\nresults including loss of data and system instability. The\nprocess will not be given the chance to save its state or\ndata before it is terminated. Are you sure you want to\nterminate the process?"), _T("Task Manager Warning"), MB_YESNO|MB_ICONWARNING) != IDYES)
+    LoadString(hInst, IDS_MSG_WARNINGTERMINATING, strErrorText, 260);
+    LoadString(hInst, IDS_MSG_TASKMGRWARNING, szTitle, 256);
+    if (MessageBox(hMainWnd, strErrorText, szTitle, MB_YESNO|MB_ICONWARNING) != IDYES)
         return;
 
     hProcess = OpenProcess(PROCESS_TERMINATE, FALSE, dwProcessId);
@@ -68,14 +73,16 @@ void ProcessPage_OnEndProcess(void)
     if (!hProcess)
     {
         GetLastErrorText(strErrorText, 260);
-        MessageBox(hMainWnd, strErrorText, _T("Unable to Terminate Process"), MB_OK|MB_ICONSTOP);
+        LoadString(hInst, IDS_MSG_UNABLETERMINATEPRO, szTitle, 256);
+        MessageBox(hMainWnd, strErrorText, szTitle, MB_OK|MB_ICONSTOP);
         return;
     }
 
     if (!TerminateProcess(hProcess, 0))
     {
         GetLastErrorText(strErrorText, 260);
-        MessageBox(hMainWnd, strErrorText, _T("Unable to Terminate Process"), MB_OK|MB_ICONSTOP);
+        LoadString(hInst, IDS_MSG_UNABLETERMINATEPRO, szTitle, 256);
+        MessageBox(hMainWnd, strErrorText, szTitle, MB_OK|MB_ICONSTOP);
     }
 
     CloseHandle(hProcess);
@@ -88,6 +95,7 @@ void ProcessPage_OnEndProcessTree(void)
     DWORD            dwProcessId;
     HANDLE            hProcess;
     TCHAR            strErrorText[260];
+    TCHAR            szTitle[256];
 
     for (Index=0; Index<(ULONG)ListView_GetItemCount(hProcessPageListCtrl); Index++)
     {
@@ -108,7 +116,9 @@ void ProcessPage_OnEndProcessTree(void)
     if ((ListView_GetSelectedCount(hProcessPageListCtrl) != 1) || (dwProcessId == 0))
         return;
 
-    if (MessageBox(hMainWnd, _T("WARNING: Terminating a process can cause undesired\nresults including loss of data and system instability. The\nprocess will not be given the chance to save its state or\ndata before it is terminated. Are you sure you want to\nterminate the process?"), _T("Task Manager Warning"), MB_YESNO|MB_ICONWARNING) != IDYES)
+    LoadString(hInst, IDS_MSG_WARNINGTERMINATING, strErrorText, 260);
+    LoadString(hInst, IDS_MSG_TASKMGRWARNING, szTitle, 256);
+    if (MessageBox(hMainWnd, strErrorText, szTitle, MB_YESNO|MB_ICONWARNING) != IDYES)
         return;
 
     hProcess = OpenProcess(PROCESS_TERMINATE, FALSE, dwProcessId);
@@ -116,14 +126,16 @@ void ProcessPage_OnEndProcessTree(void)
     if (!hProcess)
     {
         GetLastErrorText(strErrorText, 260);
-        MessageBox(hMainWnd, strErrorText, _T("Unable to Terminate Process"), MB_OK|MB_ICONSTOP);
+        LoadString(hInst, IDS_MSG_UNABLETERMINATEPRO, szTitle, 256);
+        MessageBox(hMainWnd, strErrorText, szTitle, MB_OK|MB_ICONSTOP);
         return;
     }
 
     if (!TerminateProcess(hProcess, 0))
     {
         GetLastErrorText(strErrorText, 260);
-        MessageBox(hMainWnd, strErrorText, _T("Unable to Terminate Process"), MB_OK|MB_ICONSTOP);
+        LoadString(hInst, IDS_MSG_UNABLETERMINATEPRO, szTitle, 256);
+        MessageBox(hMainWnd, strErrorText, szTitle, MB_OK|MB_ICONSTOP);
     }
 
     CloseHandle(hProcess);
Index: programs/taskmgr/perfpage.c
===================================================================
RCS file: /home/wine/wine/programs/taskmgr/perfpage.c,v
retrieving revision 1.6
diff -u -p -r1.6 perfpage.c
--- programs/taskmgr/perfpage.c	14 Sep 2005 10:29:45 -0000	1.6
+++ programs/taskmgr/perfpage.c	29 Sep 2005 11:59:53 -0000
@@ -331,6 +331,7 @@ DWORD WINAPI PerformancePageRefreshThrea
 	ULONG	TotalProcesses;
 
 	TCHAR	Text[260];
+	TCHAR	szMemUsage[256];
 
 	/*  Create the event */
 	hPerformancePageEvent = CreateEvent(NULL, TRUE, TRUE, NULL);
@@ -339,6 +340,8 @@ DWORD WINAPI PerformancePageRefreshThrea
 	if (!hPerformancePageEvent)
 		return 0;
 
+	LoadString(hInst, IDS_STATUS_MEMUSAGE, szMemUsage, 256);
+
 	while (1)
 	{
 		DWORD	dwWaitVal;
@@ -373,7 +376,7 @@ DWORD WINAPI PerformancePageRefreshThrea
 			SetWindowText(hPerformancePageCommitChargeLimitEdit, Text);
 			_ultoa(CommitChargePeak, Text, 10);
 			SetWindowText(hPerformancePageCommitChargePeakEdit, Text);
-			wsprintf(Text, _T("Mem Usage: %dK / %dK"), CommitChargeTotal, CommitChargeLimit);
+			wsprintf(Text, szMemUsage, CommitChargeTotal, CommitChargeLimit);
 			SendMessage(hStatusWnd, SB_SETTEXT, 2, (LPARAM)Text);
 
 			/* 
Index: programs/taskmgr/priority.c
===================================================================
RCS file: /home/wine/wine/programs/taskmgr/priority.c,v
retrieving revision 1.1
diff -u -p -r1.1 priority.c
--- programs/taskmgr/priority.c	23 Mar 2004 01:19:54 -0000	1.1
+++ programs/taskmgr/priority.c	29 Sep 2005 11:59:53 -0000
@@ -4,6 +4,7 @@
  *  priority.c
  *
  *  Copyright (C) 1999 - 2001  Brian Palmer  <brianp at reactos.org>
+ *                2005         Klemens Friedl <frik85 at reactos.at>
  *
  * This library is free software; you can redistribute it and/or
  * modify it under the terms of the GNU Lesser General Public
@@ -35,11 +36,12 @@
 
 void ProcessPage_OnSetPriorityRealTime(void)
 {
-    LVITEM            lvitem;
+    LVITEM           lvitem;
     ULONG            Index;
     DWORD            dwProcessId;
-    HANDLE            hProcess;
+    HANDLE           hProcess;
     TCHAR            strErrorText[260];
+    TCHAR            szTitle[256];
 
     for (Index=0; Index<(ULONG)ListView_GetItemCount(hProcessPageListCtrl); Index++)
     {
@@ -60,7 +62,9 @@ void ProcessPage_OnSetPriorityRealTime(v
     if ((ListView_GetSelectedCount(hProcessPageListCtrl) != 1) || (dwProcessId == 0))
         return;
 
-    if (MessageBox(hMainWnd, _T("WARNING: Changing the priority class of this process may\ncause undesired results including system instability. Are you\nsure you want to change the priority class?"), _T("Task Manager Warning"), MB_YESNO|MB_ICONWARNING) != IDYES)
+    LoadString(hInst, IDS_MSG_WARNINGCHANGEPRIORITY, strErrorText, 260);
+    LoadString(hInst, IDS_MSG_TASKMGRWARNING, szTitle, 256);
+    if (MessageBox(hMainWnd, strErrorText, szTitle, MB_YESNO|MB_ICONWARNING) != IDYES)
         return;
 
     hProcess = OpenProcess(PROCESS_SET_INFORMATION, FALSE, dwProcessId);
@@ -68,14 +72,16 @@ void ProcessPage_OnSetPriorityRealTime(v
     if (!hProcess)
     {
         GetLastErrorText(strErrorText, 260);
-        MessageBox(hMainWnd, strErrorText, _T("Unable to Change Priority"), MB_OK|MB_ICONSTOP);
+        LoadString(hInst, IDS_MSG_UNABLECHANGEPRIORITY, szTitle, 256);
+        MessageBox(hMainWnd, strErrorText, szTitle, MB_OK|MB_ICONSTOP);
         return;
     }
 
     if (!SetPriorityClass(hProcess, REALTIME_PRIORITY_CLASS))
     {
         GetLastErrorText(strErrorText, 260);
-        MessageBox(hMainWnd, strErrorText, _T("Unable to Change Priority"), MB_OK|MB_ICONSTOP);
+        LoadString(hInst, IDS_MSG_UNABLECHANGEPRIORITY, szTitle, 256);
+        MessageBox(hMainWnd, strErrorText, szTitle, MB_OK|MB_ICONSTOP);
     }
 
     CloseHandle(hProcess);
@@ -83,11 +89,12 @@ void ProcessPage_OnSetPriorityRealTime(v
 
 void ProcessPage_OnSetPriorityHigh(void)
 {
-    LVITEM            lvitem;
+    LVITEM           lvitem;
     ULONG            Index;
     DWORD            dwProcessId;
-    HANDLE            hProcess;
+    HANDLE           hProcess;
     TCHAR            strErrorText[260];
+    TCHAR            szTitle[256];
 
     for (Index=0; Index<(ULONG)ListView_GetItemCount(hProcessPageListCtrl); Index++)
     {
@@ -108,7 +115,9 @@ void ProcessPage_OnSetPriorityHigh(void)
     if ((ListView_GetSelectedCount(hProcessPageListCtrl) != 1) || (dwProcessId == 0))
         return;
 
-    if (MessageBox(hMainWnd, _T("WARNING: Changing the priority class of this process may\ncause undesired results including system instability. Are you\nsure you want to change the priority class?"), _T("Task Manager Warning"), MB_YESNO|MB_ICONWARNING) != IDYES)
+    LoadString(hInst, IDS_MSG_WARNINGCHANGEPRIORITY, strErrorText, 260);
+    LoadString(hInst, IDS_MSG_TASKMGRWARNING, szTitle, 256);
+    if (MessageBox(hMainWnd, strErrorText, szTitle, MB_YESNO|MB_ICONWARNING) != IDYES)
         return;
 
     hProcess = OpenProcess(PROCESS_SET_INFORMATION, FALSE, dwProcessId);
@@ -116,14 +125,16 @@ void ProcessPage_OnSetPriorityHigh(void)
     if (!hProcess)
     {
         GetLastErrorText(strErrorText, 260);
-        MessageBox(hMainWnd, strErrorText, _T("Unable to Change Priority"), MB_OK|MB_ICONSTOP);
+        LoadString(hInst, IDS_MSG_UNABLECHANGEPRIORITY, szTitle, 256);
+        MessageBox(hMainWnd, strErrorText, szTitle, MB_OK|MB_ICONSTOP);
         return;
     }
 
     if (!SetPriorityClass(hProcess, HIGH_PRIORITY_CLASS))
     {
         GetLastErrorText(strErrorText, 260);
-        MessageBox(hMainWnd, strErrorText, _T("Unable to Change Priority"), MB_OK|MB_ICONSTOP);
+        LoadString(hInst, IDS_MSG_UNABLECHANGEPRIORITY, szTitle, 256);
+        MessageBox(hMainWnd, strErrorText, szTitle, MB_OK|MB_ICONSTOP);
     }
 
     CloseHandle(hProcess);
@@ -131,11 +142,12 @@ void ProcessPage_OnSetPriorityHigh(void)
 
 void ProcessPage_OnSetPriorityAboveNormal(void)
 {
-    LVITEM            lvitem;
+    LVITEM           lvitem;
     ULONG            Index;
     DWORD            dwProcessId;
-    HANDLE            hProcess;
+    HANDLE           hProcess;
     TCHAR            strErrorText[260];
+    TCHAR            szTitle[256];
 
     for (Index=0; Index<(ULONG)ListView_GetItemCount(hProcessPageListCtrl); Index++)
     {
@@ -156,7 +168,9 @@ void ProcessPage_OnSetPriorityAboveNorma
     if ((ListView_GetSelectedCount(hProcessPageListCtrl) != 1) || (dwProcessId == 0))
         return;
 
-    if (MessageBox(hMainWnd, _T("WARNING: Changing the priority class of this process may\ncause undesired results including system instability. Are you\nsure you want to change the priority class?"), _T("Task Manager Warning"), MB_YESNO|MB_ICONWARNING) != IDYES)
+    LoadString(hInst, IDS_MSG_WARNINGCHANGEPRIORITY, strErrorText, 260);
+    LoadString(hInst, IDS_MSG_TASKMGRWARNING, szTitle, 256);
+    if (MessageBox(hMainWnd, strErrorText, szTitle, MB_YESNO|MB_ICONWARNING) != IDYES)
         return;
 
     hProcess = OpenProcess(PROCESS_SET_INFORMATION, FALSE, dwProcessId);
@@ -164,14 +178,16 @@ void ProcessPage_OnSetPriorityAboveNorma
     if (!hProcess)
     {
         GetLastErrorText(strErrorText, 260);
-        MessageBox(hMainWnd, strErrorText, _T("Unable to Change Priority"), MB_OK|MB_ICONSTOP);
+        LoadString(hInst, IDS_MSG_UNABLECHANGEPRIORITY, szTitle, 256);
+        MessageBox(hMainWnd, strErrorText, szTitle, MB_OK|MB_ICONSTOP);
         return;
     }
 
     if (!SetPriorityClass(hProcess, ABOVE_NORMAL_PRIORITY_CLASS))
     {
         GetLastErrorText(strErrorText, 260);
-        MessageBox(hMainWnd, strErrorText, _T("Unable to Change Priority"), MB_OK|MB_ICONSTOP);
+        LoadString(hInst, IDS_MSG_UNABLECHANGEPRIORITY, szTitle, 256);
+        MessageBox(hMainWnd, strErrorText, szTitle, MB_OK|MB_ICONSTOP);
     }
 
     CloseHandle(hProcess);
@@ -179,11 +195,12 @@ void ProcessPage_OnSetPriorityAboveNorma
 
 void ProcessPage_OnSetPriorityNormal(void)
 {
-    LVITEM            lvitem;
+    LVITEM           lvitem;
     ULONG            Index;
     DWORD            dwProcessId;
-    HANDLE            hProcess;
+    HANDLE           hProcess;
     TCHAR            strErrorText[260];
+    TCHAR            szTitle[256];
 
     for (Index=0; Index<(ULONG)ListView_GetItemCount(hProcessPageListCtrl); Index++)
     {
@@ -204,7 +221,9 @@ void ProcessPage_OnSetPriorityNormal(voi
     if ((ListView_GetSelectedCount(hProcessPageListCtrl) != 1) || (dwProcessId == 0))
         return;
 
-    if (MessageBox(hMainWnd, _T("WARNING: Changing the priority class of this process may\ncause undesired results including system instability. Are you\nsure you want to change the priority class?"), _T("Task Manager Warning"), MB_YESNO|MB_ICONWARNING) != IDYES)
+    LoadString(hInst, IDS_MSG_WARNINGCHANGEPRIORITY, strErrorText, 260);
+    LoadString(hInst, IDS_MSG_TASKMGRWARNING, szTitle, 256);
+    if (MessageBox(hMainWnd, strErrorText, szTitle, MB_YESNO|MB_ICONWARNING) != IDYES)
         return;
 
     hProcess = OpenProcess(PROCESS_SET_INFORMATION, FALSE, dwProcessId);
@@ -212,14 +231,16 @@ void ProcessPage_OnSetPriorityNormal(voi
     if (!hProcess)
     {
         GetLastErrorText(strErrorText, 260);
-        MessageBox(hMainWnd, strErrorText, _T("Unable to Change Priority"), MB_OK|MB_ICONSTOP);
+        LoadString(hInst, IDS_MSG_UNABLECHANGEPRIORITY, szTitle, 256);
+        MessageBox(hMainWnd, strErrorText, szTitle, MB_OK|MB_ICONSTOP);
         return;
     }
 
     if (!SetPriorityClass(hProcess, NORMAL_PRIORITY_CLASS))
     {
         GetLastErrorText(strErrorText, 260);
-        MessageBox(hMainWnd, strErrorText, _T("Unable to Change Priority"), MB_OK|MB_ICONSTOP);
+        LoadString(hInst, IDS_MSG_UNABLECHANGEPRIORITY, szTitle, 256);
+        MessageBox(hMainWnd, strErrorText, szTitle, MB_OK|MB_ICONSTOP);
     }
 
     CloseHandle(hProcess);
@@ -227,11 +248,12 @@ void ProcessPage_OnSetPriorityNormal(voi
 
 void ProcessPage_OnSetPriorityBelowNormal(void)
 {
-    LVITEM            lvitem;
+    LVITEM           lvitem;
     ULONG            Index;
     DWORD            dwProcessId;
-    HANDLE            hProcess;
+    HANDLE           hProcess;
     TCHAR            strErrorText[260];
+    TCHAR            szTitle[256];
 
     for (Index=0; Index<(ULONG)ListView_GetItemCount(hProcessPageListCtrl); Index++)
     {
@@ -252,7 +274,9 @@ void ProcessPage_OnSetPriorityBelowNorma
     if ((ListView_GetSelectedCount(hProcessPageListCtrl) != 1) || (dwProcessId == 0))
         return;
 
-    if (MessageBox(hMainWnd, _T("WARNING: Changing the priority class of this process may\ncause undesired results including system instability. Are you\nsure you want to change the priority class?"), _T("Task Manager Warning"), MB_YESNO|MB_ICONWARNING) != IDYES)
+    LoadString(hInst, IDS_MSG_WARNINGCHANGEPRIORITY, strErrorText, 260);
+    LoadString(hInst, IDS_MSG_TASKMGRWARNING, szTitle, 256);
+    if (MessageBox(hMainWnd, strErrorText, szTitle, MB_YESNO|MB_ICONWARNING) != IDYES)
         return;
 
     hProcess = OpenProcess(PROCESS_SET_INFORMATION, FALSE, dwProcessId);
@@ -260,14 +284,16 @@ void ProcessPage_OnSetPriorityBelowNorma
     if (!hProcess)
     {
         GetLastErrorText(strErrorText, 260);
-        MessageBox(hMainWnd, strErrorText, _T("Unable to Change Priority"), MB_OK|MB_ICONSTOP);
+        LoadString(hInst, IDS_MSG_UNABLECHANGEPRIORITY, szTitle, 256);
+        MessageBox(hMainWnd, strErrorText, szTitle, MB_OK|MB_ICONSTOP);
         return;
     }
 
     if (!SetPriorityClass(hProcess, BELOW_NORMAL_PRIORITY_CLASS))
     {
         GetLastErrorText(strErrorText, 260);
-        MessageBox(hMainWnd, strErrorText, _T("Unable to Change Priority"), MB_OK|MB_ICONSTOP);
+        LoadString(hInst, IDS_MSG_UNABLECHANGEPRIORITY, szTitle, 256);
+        MessageBox(hMainWnd, strErrorText, szTitle, MB_OK|MB_ICONSTOP);
     }
 
     CloseHandle(hProcess);
@@ -275,11 +301,12 @@ void ProcessPage_OnSetPriorityBelowNorma
 
 void ProcessPage_OnSetPriorityLow(void)
 {
-    LVITEM            lvitem;
+    LVITEM           lvitem;
     ULONG            Index;
     DWORD            dwProcessId;
-    HANDLE            hProcess;
+    HANDLE           hProcess;
     TCHAR            strErrorText[260];
+    TCHAR            szTitle[256];
 
     for (Index=0; Index<(ULONG)ListView_GetItemCount(hProcessPageListCtrl); Index++)
     {
@@ -300,7 +327,9 @@ void ProcessPage_OnSetPriorityLow(void)
     if ((ListView_GetSelectedCount(hProcessPageListCtrl) != 1) || (dwProcessId == 0))
         return;
 
-    if (MessageBox(hMainWnd, _T("WARNING: Changing the priority class of this process may\ncause undesired results including system instability. Are you\nsure you want to change the priority class?"), _T("Task Manager Warning"), MB_YESNO|MB_ICONWARNING) != IDYES)
+    LoadString(hInst, IDS_MSG_WARNINGCHANGEPRIORITY, strErrorText, 260);
+    LoadString(hInst, IDS_MSG_TASKMGRWARNING, szTitle, 256);
+    if (MessageBox(hMainWnd, strErrorText, szTitle, MB_YESNO|MB_ICONWARNING) != IDYES)
         return;
 
     hProcess = OpenProcess(PROCESS_SET_INFORMATION, FALSE, dwProcessId);
@@ -308,14 +337,16 @@ void ProcessPage_OnSetPriorityLow(void)
     if (!hProcess)
     {
         GetLastErrorText(strErrorText, 260);
-        MessageBox(hMainWnd, strErrorText, _T("Unable to Change Priority"), MB_OK|MB_ICONSTOP);
+        LoadString(hInst, IDS_MSG_UNABLECHANGEPRIORITY, szTitle, 256);
+        MessageBox(hMainWnd, strErrorText, szTitle, MB_OK|MB_ICONSTOP);
         return;
     }
 
     if (!SetPriorityClass(hProcess, IDLE_PRIORITY_CLASS))
     {
         GetLastErrorText(strErrorText, 260);
-        MessageBox(hMainWnd, strErrorText, _T("Unable to Change Priority"), MB_OK|MB_ICONSTOP);
+        LoadString(hInst, IDS_MSG_UNABLECHANGEPRIORITY, szTitle, 256);
+        MessageBox(hMainWnd, strErrorText, szTitle, MB_OK|MB_ICONSTOP);
     }
 
     CloseHandle(hProcess);
Index: programs/taskmgr/procpage.c
===================================================================
RCS file: /home/wine/wine/programs/taskmgr/procpage.c,v
retrieving revision 1.8
diff -u -p -r1.8 procpage.c
--- programs/taskmgr/procpage.c	14 Sep 2005 15:37:15 -0000	1.8
+++ programs/taskmgr/procpage.c	29 Sep 2005 11:59:53 -0000
@@ -499,6 +499,7 @@ DWORD WINAPI ProcessPageRefreshThread(vo
 {
     ULONG    OldProcessorUsage = 0;
     ULONG    OldProcessCount = 0;
+    TCHAR    szCpuUsage[256], szProcesses[256];
 
     /* Create the event */
     hProcessPageEvent = CreateEvent(NULL, TRUE, TRUE, NULL);
@@ -507,6 +508,9 @@ DWORD WINAPI ProcessPageRefreshThread(vo
     if (!hProcessPageEvent)
         return 0;
 
+    LoadString(hInst, IDS_STATUS_CPUUSAGE, szCpuUsage, 256);
+    LoadString(hInst, IDS_STATUS_PROCESSES, szProcesses, 256);
+
     while (1) {
         DWORD    dwWaitVal;
 
@@ -532,12 +536,12 @@ DWORD WINAPI ProcessPageRefreshThread(vo
 
             if (OldProcessorUsage != PerfDataGetProcessorUsage()) {
                 OldProcessorUsage = PerfDataGetProcessorUsage();
-                wsprintf(text, _T("CPU Usage: %3d%%"), OldProcessorUsage);
+                wsprintf(text, szCpuUsage, OldProcessorUsage);
                 SendMessage(hStatusWnd, SB_SETTEXT, 1, (LPARAM)text);
             }
             if (OldProcessCount != PerfDataGetProcessCount()) {
                 OldProcessCount = PerfDataGetProcessCount();
-                wsprintf(text, _T("Processes: %d"), OldProcessCount);
+                wsprintf(text, szProcesses, OldProcessCount);
                 SendMessage(hStatusWnd, SB_SETTEXT, 0, (LPARAM)text);
             }
         }
Index: programs/taskmgr/resource.h
===================================================================
RCS file: /home/wine/wine/programs/taskmgr/resource.h,v
retrieving revision 1.1
diff -u -p -r1.1 resource.h
--- programs/taskmgr/resource.h	23 Mar 2004 01:19:54 -0000	1.1
+++ programs/taskmgr/resource.h	29 Sep 2005 11:59:53 -0000
@@ -185,6 +185,66 @@
 #define IDS_LICENSE                     32816
 #define IDC_STATIC                      -1
 
+#define IDS_TAB_APPS                    310
+#define IDS_TAB_PROCESSES               311
+#define IDS_TAB_PERFORMANCE             312
+#define IDS_TAB_TASK                    313
+#define IDS_TAB_STATUS                  314
+#define IDS_TAB_IMAGENAME               315
+#define IDS_TAB_PID                     316
+#define IDS_TAB_USERNAME                317
+#define IDS_TAB_SESSIONID               318
+#define IDS_TAB_CPU                     319
+#define IDS_TAB_CPUTIME                 320
+#define IDS_TAB_MEMUSAGE                321
+#define IDS_TAB_PEAKMEMUSAGE            322
+#define IDS_TAB_MEMDELTA                323
+#define IDS_TAB_PAGEFAULT               324
+#define IDS_TAB_PFDELTA                 325
+#define IDS_TAB_VMSIZE                  326
+#define IDS_TAB_PAGEDPOOL               327
+#define IDS_TAB_NPPOOL                  328
+#define IDS_TAB_BASEPRI                 329
+#define IDS_TAB_HANDLES                 330
+#define IDS_TAB_THREADS                 331
+#define IDS_TAB_USERPBJECTS             332
+#define IDS_TAB_GDIOBJECTS              333
+#define IDS_TAB_IOREADS                 334
+#define IDS_TAB_IOWRITES                335
+#define IDS_TAB_IOOTHER                 336
+#define IDS_TAB_IOREADBYTES             337
+#define IDS_TAB_IOWRITESBYTES           338
+#define IDS_TAB_IOOTHERBYTES            339
+#define IDS_MENU_SELECTCOLUMNS          340
+#define IDS_MENU_16BITTASK              341
+#define IDS_MENU_WINDOWS                342
+#define IDS_MENU_LARGEICONS             343
+#define IDS_MENU_SMALLICONS             344
+#define IDS_MENU_DETAILS                345
+#define IDS_MENU_ONEGRAPHALLCPUS        346
+#define IDS_MENU_ONEGRAPHPERCPU         347
+#define IDS_MENU_CPUHISTORY             348
+#define IDS_MENU_SHOWKERNELTIMES        349
+#define IDS_CREATENEWTASK               350
+#define IDS_CREATENEWTASK_DESC          351
+#define IDS_MSG_ACCESSPROCESSAFF        352
+#define IDS_MSG_PROCESSONEPRO           353
+#define IDS_MSG_INVALIDOPTION           354
+#define IDS_MSG_UNABLEDEBUGPROCESS      355
+#define IDS_MSG_WARNINGDEBUG            356
+#define IDS_MSG_TASKMGRWARNING          357
+#define IDS_MSG_WARNINGTERMINATING      358
+#define IDS_MSG_UNABLETERMINATEPRO      359
+#define IDS_MSG_UNABLECHANGEPRIORITY    360
+#define IDS_MSG_WARNINGCHANGEPRIORITY   361
+#define IDS_MSG_TRAYICONCPUUSAGE        362
+#define IDS_STATUS_MEMUSAGE             363
+#define IDS_STATUS_CPUUSAGE             364
+#define IDS_STATUS_PROCESSES            365
+#define IDS_Not_Responding              366
+#define IDS_Running                     367
+
+
 /*
  * Next default values for new objects
  *
Index: programs/taskmgr/run.c
===================================================================
RCS file: /home/wine/wine/programs/taskmgr/run.c,v
retrieving revision 1.1
diff -u -p -r1.1 run.c
--- programs/taskmgr/run.c	23 Mar 2004 01:19:54 -0000	1.1
+++ programs/taskmgr/run.c	29 Sep 2005 11:59:53 -0000
@@ -4,6 +4,7 @@
  *  run.c
  *
  *  Copyright (C) 1999 - 2001  Brian Palmer  <brianp at reactos.org>
+ *                2005         Klemens Friedl <frik85 at reactos.at>
  *
  * This library is free software; you can redistribute it and/or
  * modify it under the terms of the GNU Lesser General Public
@@ -51,31 +52,26 @@ UINT    uFlags); 
 
 void TaskManager_OnFileNew(void)
 {
-    HMODULE            hShell32;
-    RUNFILEDLG        RunFileDlg;
-    OSVERSIONINFO    versionInfo;
-    WCHAR            wTitle[40];
-    WCHAR            wText[256];
-    char            szTitle[40] = "Create New Task";
-    char            szText[256] = "Type the name of a program, folder, document, or Internet resource, and Task Manager will open it for you.";
+    HMODULE          hShell32;
+    RUNFILEDLG       RunFileDlg;
 
     hShell32 = LoadLibrary(_T("SHELL32.DLL"));
-    RunFileDlg = (RUNFILEDLG)(FARPROC)GetProcAddress(hShell32, (char*)((long)0x3D));
+    RunFileDlg = (RUNFILEDLG)GetProcAddress(hShell32, (LPCSTR)0x3D);
 
     /* Show "Run..." dialog */
     if (RunFileDlg)
     {
-        versionInfo.dwOSVersionInfoSize = sizeof(OSVERSIONINFO);
-        GetVersionEx(&versionInfo);
+        char            szTitle[40];
+        char            szText[256];
 
-        if (versionInfo.dwPlatformId == VER_PLATFORM_WIN32_NT)
-        {
-            MultiByteToWideChar(CP_ACP, MB_PRECOMPOSED, szTitle, -1, wTitle, 40);
-            MultiByteToWideChar(CP_ACP, MB_PRECOMPOSED, szText, -1, wText, 256);
-            RunFileDlg(hMainWnd, 0, NULL, (LPCSTR)wTitle, (LPCSTR)wText, RFF_CALCDIRECTORY);
-        }
-        else
-            RunFileDlg(hMainWnd, 0, NULL, szTitle, szText, RFF_CALCDIRECTORY);
+        /* FIXME - On Windows RunFileDlg is Unicode on NT and ANSI on Win98
+           -- on Wine, RunFileDlg is always ANSI
+        */
+        /* Load language strings from resource file */
+        LoadStringA(hInst, IDS_CREATENEWTASK, szTitle, 40);
+        LoadStringA(hInst, IDS_CREATENEWTASK_DESC, szText, 256);
+
+        RunFileDlg(hMainWnd, 0, NULL, szTitle, szText, RFF_CALCDIRECTORY);
     }
 
     FreeLibrary(hShell32);
Index: programs/taskmgr/taskmgr.c
===================================================================
RCS file: /home/wine/wine/programs/taskmgr/taskmgr.c,v
retrieving revision 1.6
diff -u -p -r1.6 taskmgr.c
--- programs/taskmgr/taskmgr.c	14 Sep 2005 19:17:12 -0000	1.6
+++ programs/taskmgr/taskmgr.c	29 Sep 2005 11:59:54 -0000
@@ -4,6 +4,7 @@
  * taskmgr.c : Defines the entry point for the application.
  *
  *  Copyright (C) 1999 - 2001  Brian Palmer  <brianp at reactos.org>
+ *                2005         Klemens Friedl <frik85 at reactos.at>
  *
  * This library is free software; you can redistribute it and/or
  * modify it under the terms of the GNU Lesser General Public
@@ -500,17 +501,17 @@ BOOL OnCreate(HWND hWnd)
 #endif
 
     /* Insert tabs */
-    _tcscpy(szTemp, _T("Applications"));
+    LoadString(hInst, IDS_TAB_APPS, szTemp, 256);
     memset(&item, 0, sizeof(TCITEM));
     item.mask = TCIF_TEXT;
     item.pszText = szTemp;
     TabCtrl_InsertItem(hTabWnd, 0, &item);
-    _tcscpy(szTemp, _T("Processes"));
+    LoadString(hInst, IDS_TAB_PROCESSES, szTemp, 256);
     memset(&item, 0, sizeof(TCITEM));
     item.mask = TCIF_TEXT;
     item.pszText = szTemp;
     TabCtrl_InsertItem(hTabWnd, 1, &item);
-    _tcscpy(szTemp, _T("Performance"));
+    LoadString(hInst, IDS_TAB_PERFORMANCE, szTemp, 256);
     memset(&item, 0, sizeof(TCITEM));
     item.mask = TCIF_TEXT;
     item.pszText = szTemp;
@@ -859,6 +860,10 @@ void TaskManager_OnExitMenuLoop(HWND hWn
     RECT  rc;
     int   nParts[3];
     TCHAR text[260];
+    TCHAR szCpuUsage[256], szProcesses[256];
+
+    LoadString(hInst, IDS_STATUS_CPUUSAGE, szCpuUsage, 256);
+    LoadString(hInst, IDS_STATUS_PROCESSES, szProcesses, 256);
 
     bInMenuLoop = FALSE;
     /* Update the status bar pane sizes */
@@ -868,9 +873,9 @@ void TaskManager_OnExitMenuLoop(HWND hWn
     nParts[2] = rc.right;
     SendMessage(hStatusWnd, SB_SETPARTS, 3, (long)nParts);
     SendMessage(hStatusWnd, SB_SETTEXT, 0, (LPARAM)_T(""));
-    wsprintf(text, _T("CPU Usage: %3d%%"), PerfDataGetProcessorUsage());
+    wsprintf(text, szCpuUsage, PerfDataGetProcessorUsage());
     SendMessage(hStatusWnd, SB_SETTEXT, 1, (LPARAM)text);
-    wsprintf(text, _T("Processes: %d"), PerfDataGetProcessCount());
+    wsprintf(text, szProcesses, PerfDataGetProcessCount());
     SendMessage(hStatusWnd, SB_SETTEXT, 0, (LPARAM)text);
 }
 
@@ -967,6 +972,7 @@ void TaskManager_OnTabWndSelChange(void)
     HMENU hOptionsMenu;
     HMENU hViewMenu;
     HMENU hSubMenu;
+    TCHAR       szTemp[256];
 
     hMenu = GetMenu(hMainWnd);
     hViewMenu = GetSubMenu(hMenu, 2);
@@ -985,13 +991,22 @@ void TaskManager_OnTabWndSelChange(void)
         ShowWindow(hProcessPage, SW_HIDE);
         ShowWindow(hPerformancePage, SW_HIDE);
         BringWindowToTop(hApplicationPage);
-        AppendMenu(hViewMenu, MF_STRING, ID_VIEW_LARGE, _T("Lar&ge Icons"));
-        AppendMenu(hViewMenu, MF_STRING, ID_VIEW_SMALL, _T("S&mall Icons"));
-        AppendMenu(hViewMenu, MF_STRING, ID_VIEW_DETAILS, _T("&Details"));
+
+	LoadString(hInst, IDS_MENU_LARGEICONS, szTemp, 256);
+        AppendMenu(hViewMenu, MF_STRING, ID_VIEW_LARGE, szTemp);
+
+	LoadString(hInst, IDS_MENU_SMALLICONS, szTemp, 256);
+        AppendMenu(hViewMenu, MF_STRING, ID_VIEW_SMALL, szTemp);
+
+	LoadString(hInst, IDS_MENU_DETAILS, szTemp, 256);
+        AppendMenu(hViewMenu, MF_STRING, ID_VIEW_DETAILS, szTemp);
 
         if (GetMenuItemCount(hMenu) <= 4) {
             hSubMenu = LoadMenu(hInst, MAKEINTRESOURCE(IDR_WINDOWSMENU));
-            InsertMenu(hMenu, 3, MF_BYPOSITION|MF_POPUP, (UINT)hSubMenu, _T("&Windows"));
+
+	    LoadString(hInst, IDS_MENU_WINDOWS, szTemp, 256);
+            InsertMenu(hMenu, 3, MF_BYPOSITION|MF_POPUP, (UINT)hSubMenu, szTemp);
+
             DrawMenuBar(hMainWnd);
         }
         if (TaskManagerSettings.View_LargeIcons)
@@ -1011,8 +1026,13 @@ void TaskManager_OnTabWndSelChange(void)
         ShowWindow(hProcessPage, SW_SHOW);
         ShowWindow(hPerformancePage, SW_HIDE);
         BringWindowToTop(hProcessPage);
-        AppendMenu(hViewMenu, MF_STRING, ID_VIEW_SELECTCOLUMNS, _T("&Select Columns..."));
-        AppendMenu(hOptionsMenu, MF_STRING, ID_OPTIONS_SHOW16BITTASKS, _T("&Show 16-bit tasks"));
+
+        LoadString(hInst, IDS_MENU_SELECTCOLUMNS, szTemp, 256);
+        AppendMenu(hViewMenu, MF_STRING, ID_VIEW_SELECTCOLUMNS, szTemp);
+
+        LoadString(hInst, IDS_MENU_16BITTASK, szTemp, 256);
+        AppendMenu(hOptionsMenu, MF_STRING, ID_OPTIONS_SHOW16BITTASKS, szTemp);
+
         if (TaskManagerSettings.Show16BitTasks)
             CheckMenuItem(hOptionsMenu, ID_OPTIONS_SHOW16BITTASKS, MF_BYCOMMAND|MF_CHECKED);
         if (GetMenuItemCount(hMenu) > 4)
@@ -1036,10 +1056,19 @@ void TaskManager_OnTabWndSelChange(void)
             DrawMenuBar(hMainWnd);
         }
         hSubMenu = CreatePopupMenu();
-        AppendMenu(hSubMenu, MF_STRING, ID_VIEW_CPUHISTORY_ONEGRAPHALL, _T("&One Graph, All CPUs"));
-        AppendMenu(hSubMenu, MF_STRING, ID_VIEW_CPUHISTORY_ONEGRAPHPERCPU, _T("One Graph &Per CPU"));
-        AppendMenu(hViewMenu, MF_STRING|MF_POPUP, (UINT)hSubMenu, _T("&CPU History"));
-        AppendMenu(hViewMenu, MF_STRING, ID_VIEW_SHOWKERNELTIMES, _T("&Show Kernel Times"));
+
+        LoadString(hInst, IDS_MENU_ONEGRAPHALLCPUS, szTemp, 256);
+        AppendMenu(hSubMenu, MF_STRING, ID_VIEW_CPUHISTORY_ONEGRAPHALL, szTemp);
+
+        LoadString(hInst, IDS_MENU_ONEGRAPHPERCPU, szTemp, 256);
+        AppendMenu(hSubMenu, MF_STRING, ID_VIEW_CPUHISTORY_ONEGRAPHPERCPU, szTemp);
+
+        LoadString(hInst, IDS_MENU_CPUHISTORY, szTemp, 256);
+        AppendMenu(hViewMenu, MF_STRING|MF_POPUP, (UINT)hSubMenu, szTemp);
+
+        LoadString(hInst, IDS_MENU_SHOWKERNELTIMES, szTemp, 256);
+        AppendMenu(hViewMenu, MF_STRING, ID_VIEW_SHOWKERNELTIMES, szTemp);
+
         if (TaskManagerSettings.ShowKernelTimes)
             CheckMenuItem(hViewMenu, ID_VIEW_SHOWKERNELTIMES, MF_BYCOMMAND|MF_CHECKED);
         else
Index: programs/taskmgr/trayicon.c
===================================================================
RCS file: /home/wine/wine/programs/taskmgr/trayicon.c,v
retrieving revision 1.2
diff -u -p -r1.2 trayicon.c
--- programs/taskmgr/trayicon.c	14 Sep 2005 19:17:12 -0000	1.2
+++ programs/taskmgr/trayicon.c	29 Sep 2005 11:59:54 -0000
@@ -4,6 +4,7 @@
  *  trayicon.c
  *
  *  Copyright (C) 1999 - 2001  Brian Palmer  <brianp at reactos.org>
+ *                2005         Klemens Friedl <frik85 at reactos.at>
  *
  * This library is free software; you can redistribute it and/or
  * modify it under the terms of the GNU Lesser General Public
@@ -146,6 +147,7 @@ BOOL TrayIcon_ShellAddTrayIcon(void)
     NOTIFYICONDATA    nid;
     HICON            hIcon = NULL;
     BOOL            bRetVal;
+    TCHAR szMsg[256];
 
     memset(&nid, 0, sizeof(NOTIFYICONDATA));
 
@@ -157,7 +159,10 @@ BOOL TrayIcon_ShellAddTrayIcon(void)
     nid.uFlags = NIF_ICON | NIF_MESSAGE | NIF_TIP;
     nid.uCallbackMessage = WM_ONTRAYICON;
     nid.hIcon = hIcon;
-    wsprintf(nid.szTip, _T("CPU Usage: %d%%"), PerfDataGetProcessorUsage());
+
+	      
+    LoadString( hInst, IDS_MSG_TRAYICONCPUUSAGE, szMsg, 256);
+    wsprintf(nid.szTip, szMsg, PerfDataGetProcessorUsage());
 
     bRetVal = Shell_NotifyIcon(NIM_ADD, &nid);
 
@@ -187,9 +192,10 @@ BOOL TrayIcon_ShellRemoveTrayIcon(void)
 
 BOOL TrayIcon_ShellUpdateTrayIcon(void)
 {
-    NOTIFYICONDATA    nid;
-    HICON            hIcon = NULL;
+    NOTIFYICONDATA  nid;
+    HICON           hIcon = NULL;
     BOOL            bRetVal;
+    TCHAR           szTemp[256];
     
     memset(&nid, 0, sizeof(NOTIFYICONDATA));
     
@@ -201,7 +207,8 @@ BOOL TrayIcon_ShellUpdateTrayIcon(void)
     nid.uFlags = NIF_ICON | NIF_MESSAGE | NIF_TIP;
     nid.uCallbackMessage = WM_ONTRAYICON;
     nid.hIcon = hIcon;
-    wsprintf(nid.szTip, _T("CPU Usage: %d%%"), PerfDataGetProcessorUsage());
+    LoadString(hInst, IDS_MSG_TRAYICONCPUUSAGE, szTemp, 256);
+    wsprintf(nid.szTip, szTemp, PerfDataGetProcessorUsage());
     
     bRetVal = Shell_NotifyIcon(NIM_MODIFY, &nid);
     


More information about the wine-patches mailing list