6 * Copyright (C) 1999 - 2001 Brian Palmer <brianp@reactos.org>
8 * This library is free software; you can redistribute it and/or
9 * modify it under the terms of the GNU Lesser General Public
10 * License as published by the Free Software Foundation; either
11 * version 2.1 of the License, or (at your option) any later version.
13 * This library is distributed in the hope that it will be useful,
14 * but WITHOUT ANY WARRANTY; without even the implied warranty of
15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
16 * Lesser General Public License for more details.
18 * You should have received a copy of the GNU Lesser General Public
19 * License along with this library; if not, write to the Free Software
20 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
32 typedef struct _IO_COUNTERS {
33 ULONGLONG ReadOperationCount;
34 ULONGLONG WriteOperationCount;
35 ULONGLONG OtherOperationCount;
36 ULONGLONG ReadTransferCount;
37 ULONGLONG WriteTransferCount;
38 ULONGLONG OtherTransferCount;
39 } IO_COUNTERS, *PIO_COUNTERS;
49 #define STATUS_WINDOW 2001
53 /* Window size & position settings */
63 /* Options menu settings */
66 BOOL HideWhenMinimized;
69 /* Update speed settings */
70 /* How many half-seconds in between updates (i.e. 0 - Paused, 1 - High, 2 - Normal, 4 - Low) */
73 /* Applications page settings */
78 /* Processes page settings */
79 BOOL ShowProcessesFromAllUsers; /* Server-only? */
80 BOOL Column_ImageName;
84 BOOL Column_MemoryUsage;
85 BOOL Column_MemoryUsageDelta;
86 BOOL Column_PeakMemoryUsage;
87 BOOL Column_PageFaults;
88 BOOL Column_USERObjects;
90 BOOL Column_IOReadBytes;
91 BOOL Column_SessionID; /* Server-only? */
92 BOOL Column_UserName; /* Server-only? */
93 BOOL Column_PageFaultsDelta;
94 BOOL Column_VirtualMemorySize;
95 BOOL Column_PagedPool;
96 BOOL Column_NonPagedPool;
97 BOOL Column_BasePriority;
98 BOOL Column_HandleCount;
99 BOOL Column_ThreadCount;
100 BOOL Column_GDIObjects;
101 BOOL Column_IOWrites;
102 BOOL Column_IOWriteBytes;
104 BOOL Column_IOOtherBytes;
105 int ColumnOrderArray[25];
106 int ColumnSizeArray[25];
110 /* Performance page settings */
111 BOOL CPUHistory_OneGraphPerCPU;
112 BOOL ShowKernelTimes;
114 } TASKMANAGER_SETTINGS, *LPTASKMANAGER_SETTINGS;
116 /* Global Variables: */
117 extern HINSTANCE hInst; /* current instance */
118 extern HWND hMainWnd; /* Main Window */
119 extern HWND hStatusWnd; /* Status Bar Window */
120 extern HWND hTabWnd; /* Tab Control Window */
121 extern int nMinimumWidth; /* Minimum width of the dialog (OnSize()'s cx) */
122 extern int nMinimumHeight; /* Minimum height of the dialog (OnSize()'s cy) */
123 extern int nOldWidth; /* Holds the previous client area width */
124 extern int nOldHeight; /* Holds the previous client area height */
125 extern TASKMANAGER_SETTINGS TaskManagerSettings;
127 extern WNDPROC OldProcessListWndProc;
128 extern WNDPROC OldGraphWndProc;
130 extern HWND hProcessPage; /* Process List Property Page */
131 extern HWND hProcessPageListCtrl; /* Process ListCtrl Window */
132 extern HWND hProcessPageHeaderCtrl; /* Process Header Control */
133 extern HWND hProcessPageEndProcessButton; /* Process End Process button */
134 extern HWND hProcessPageShowAllProcessesButton; /* Process Show All Processes checkbox */
135 extern HWND hPerformancePage; /* Performance Property Page */
137 extern HWND hApplicationPage; /* Application List Property Page */
138 extern HWND hApplicationPageListCtrl; /* Application ListCtrl Window */
139 extern HWND hApplicationPageEndTaskButton; /* Application End Task button */
140 extern HWND hApplicationPageSwitchToButton; /* Application Switch To button */
141 extern HWND hApplicationPageNewTaskButton; /* Application New Task button */
144 /* Forward declarations of functions included in this code module: */
145 void FillSolidRect(HDC hDC, LPCRECT lpRect, COLORREF clr);
146 void FillSolidRect2(HDC hDC, int x, int y, int cx, int cy, COLORREF clr);
147 void Draw3dRect(HDC hDC, int x, int y, int cx, int cy, COLORREF clrTopLeft, COLORREF clrBottomRight);
148 void Draw3dRect2(HDC hDC, LPRECT lpRect, COLORREF clrTopLeft, COLORREF clrBottomRight);
149 void Font_DrawText(HDC hDC, LPCTSTR lpszText, int x, int y);
151 #define OPTIONS_MENU_INDEX 1
153 void TaskManager_OnOptionsAlwaysOnTop(void);
154 void TaskManager_OnOptionsMinimizeOnUse(void);
155 void TaskManager_OnOptionsHideWhenMinimized(void);
156 void TaskManager_OnOptionsShow16BitTasks(void);
157 void TaskManager_OnFileNew(void);
159 LPTSTR GetLastErrorText( LPTSTR lpszBuf, DWORD dwSize );
163 BOOL AreDebugChannelsSupported(void);
165 void ProcessPage_OnSetAffinity(void);
166 void ProcessPage_OnDebug(void);
167 void ProcessPage_OnEndProcess(void);
168 void ProcessPage_OnEndProcessTree(void);
169 void ProcessPage_OnSetPriorityRealTime(void);
170 void ProcessPage_OnSetPriorityHigh(void);
171 void ProcessPage_OnSetPriorityAboveNormal(void);
172 void ProcessPage_OnSetPriorityNormal(void);
173 void ProcessPage_OnSetPriorityBelowNormal(void);
174 void ProcessPage_OnSetPriorityLow(void);
175 void ProcessPage_OnDebugChannels(void);
177 #define WM_ONTRAYICON WM_USER + 5
179 HICON TrayIcon_GetProcessorUsageIcon(void);
180 BOOL TrayIcon_ShellAddTrayIcon(void);
181 BOOL TrayIcon_ShellRemoveTrayIcon(void);
182 BOOL TrayIcon_ShellUpdateTrayIcon(void);
184 void PerformancePage_OnViewShowKernelTimes(void);
185 void PerformancePage_OnViewCPUHistoryOneGraphAll(void);
186 void PerformancePage_OnViewCPUHistoryOneGraphPerCPU(void);
188 void ApplicationPage_OnViewLargeIcons(void);
189 void ApplicationPage_OnViewSmallIcons(void);
190 void ApplicationPage_OnViewDetails(void);
191 void ApplicationPage_OnWindowsTileHorizontally(void);
192 void ApplicationPage_OnWindowsTileVertically(void);
193 void ApplicationPage_OnWindowsMinimize(void);
194 void ApplicationPage_OnWindowsMaximize(void);
195 void ApplicationPage_OnWindowsCascade(void);
196 void ApplicationPage_OnWindowsBringToFront(void);
197 void ApplicationPage_OnSwitchTo(void);
198 void ApplicationPage_OnEndTask(void);
199 void ApplicationPage_OnGotoProcess(void);
201 void RefreshApplicationPage(void);
202 void UpdateApplicationListControlViewSetting(void);
203 void RefreshPerformancePage(void);
204 void RefreshProcessPage(void);
206 INT_PTR CALLBACK ApplicationPageWndProc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam);
207 INT_PTR CALLBACK Graph_WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam);
208 LRESULT CALLBACK ProcessListWndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam);
209 INT_PTR CALLBACK ProcessPageWndProc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam);
210 INT_PTR CALLBACK PerformancePageWndProc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam);
216 #endif /* __TASKMGR_H__ */