/* * ReactOS Task Manager * * taskmgr.h * * Copyright (C) 1999 - 2001 Brian Palmer <brianp@reactos.org> * * 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 */ #ifndef __TASKMGR_H__ #define __TASKMGR_H__ #ifdef __cplusplus extern "C" { #endif #ifdef _MSC_VER /*MF typedef struct _IO_COUNTERS { ULONGLONG ReadOperationCount; ULONGLONG WriteOperationCount; ULONGLONG OtherOperationCount; ULONGLONG ReadTransferCount; ULONGLONG WriteTransferCount; ULONGLONG OtherTransferCount; } IO_COUNTERS, *PIO_COUNTERS; */ #endif /* _MSC_VER */ #include "resource.h" #define RUN_APPS_PAGE #define RUN_PROC_PAGE #define RUN_PERF_PAGE #define STATUS_WINDOW 2001 typedef struct { /* Window size & position settings */ BOOL Maximized; int Left; int Top; int Right; int Bottom; /* Tab settings */ int ActiveTabPage; /* Options menu settings */ BOOL AlwaysOnTop; BOOL MinimizeOnUse; BOOL HideWhenMinimized; BOOL Show16BitTasks; /* Update speed settings */ /* How many half-seconds in between updates (i.e. 0 - Paused, 1 - High, 2 - Normal, 4 - Low) */ int UpdateSpeed; /* Applications page settings */ BOOL View_LargeIcons; BOOL View_SmallIcons; BOOL View_Details; /* Processes page settings */ BOOL ShowProcessesFromAllUsers; /* Server-only? */ BOOL Column_ImageName; BOOL Column_PID; BOOL Column_CPUUsage; BOOL Column_CPUTime; BOOL Column_MemoryUsage; BOOL Column_MemoryUsageDelta; BOOL Column_PeakMemoryUsage; BOOL Column_PageFaults; BOOL Column_USERObjects; BOOL Column_IOReads; BOOL Column_IOReadBytes; BOOL Column_SessionID; /* Server-only? */ BOOL Column_UserName; /* Server-only? */ BOOL Column_PageFaultsDelta; BOOL Column_VirtualMemorySize; BOOL Column_PagedPool; BOOL Column_NonPagedPool; BOOL Column_BasePriority; BOOL Column_HandleCount; BOOL Column_ThreadCount; BOOL Column_GDIObjects; BOOL Column_IOWrites; BOOL Column_IOWriteBytes; BOOL Column_IOOther; BOOL Column_IOOtherBytes; int ColumnOrderArray[25]; int ColumnSizeArray[25]; int SortColumn; BOOL SortAscending; /* Performance page settings */ BOOL CPUHistory_OneGraphPerCPU; BOOL ShowKernelTimes; } TASKMANAGER_SETTINGS, *LPTASKMANAGER_SETTINGS; /* Global Variables: */ extern HINSTANCE hInst; /* current instance */ extern HWND hMainWnd; /* Main Window */ extern HWND hStatusWnd; /* Status Bar Window */ extern HWND hTabWnd; /* Tab Control Window */ extern int nMinimumWidth; /* Minimum width of the dialog (OnSize()'s cx) */ extern int nMinimumHeight; /* Minimum height of the dialog (OnSize()'s cy) */ extern int nOldWidth; /* Holds the previous client area width */ extern int nOldHeight; /* Holds the previous client area height */ extern TASKMANAGER_SETTINGS TaskManagerSettings; extern WNDPROC OldProcessListWndProc; extern WNDPROC OldGraphWndProc; extern HWND hProcessPage; /* Process List Property Page */ extern HWND hProcessPageListCtrl; /* Process ListCtrl Window */ extern HWND hProcessPageHeaderCtrl; /* Process Header Control */ extern HWND hProcessPageEndProcessButton; /* Process End Process button */ extern HWND hProcessPageShowAllProcessesButton; /* Process Show All Processes checkbox */ extern HWND hPerformancePage; /* Performance Property Page */ extern HWND hApplicationPage; /* Application List Property Page */ extern HWND hApplicationPageListCtrl; /* Application ListCtrl Window */ extern HWND hApplicationPageEndTaskButton; /* Application End Task button */ extern HWND hApplicationPageSwitchToButton; /* Application Switch To button */ extern HWND hApplicationPageNewTaskButton; /* Application New Task button */ /* Forward declarations of functions included in this code module: */ void FillSolidRect(HDC hDC, LPCRECT lpRect, COLORREF clr); void Font_DrawText(HDC hDC, LPWSTR lpwszText, int x, int y); #define OPTIONS_MENU_INDEX 1 void TaskManager_OnOptionsAlwaysOnTop(void); void TaskManager_OnOptionsMinimizeOnUse(void); void TaskManager_OnOptionsHideWhenMinimized(void); void TaskManager_OnOptionsShow16BitTasks(void); void TaskManager_OnFileNew(void); LPWSTR GetLastErrorText( LPWSTR lpwszBuf, DWORD dwSize ); void OnAbout(void); void ProcessPage_OnSetAffinity(void); void ProcessPage_OnDebug(void); void ProcessPage_OnEndProcess(void); void ProcessPage_OnEndProcessTree(void); void ProcessPage_OnSetPriorityRealTime(void); void ProcessPage_OnSetPriorityHigh(void); void ProcessPage_OnSetPriorityAboveNormal(void); void ProcessPage_OnSetPriorityNormal(void); void ProcessPage_OnSetPriorityBelowNormal(void); void ProcessPage_OnSetPriorityLow(void); void ProcessPage_OnDebugChannels(void); #define WM_ONTRAYICON WM_USER + 5 BOOL TrayIcon_ShellAddTrayIcon(void); BOOL TrayIcon_ShellRemoveTrayIcon(void); BOOL TrayIcon_ShellUpdateTrayIcon(void); void PerformancePage_OnViewShowKernelTimes(void); void PerformancePage_OnViewCPUHistoryOneGraphAll(void); void PerformancePage_OnViewCPUHistoryOneGraphPerCPU(void); void ApplicationPage_OnViewLargeIcons(void); void ApplicationPage_OnViewSmallIcons(void); void ApplicationPage_OnViewDetails(void); void ApplicationPage_OnWindowsTileHorizontally(void); void ApplicationPage_OnWindowsTileVertically(void); void ApplicationPage_OnWindowsMinimize(void); void ApplicationPage_OnWindowsMaximize(void); void ApplicationPage_OnWindowsCascade(void); void ApplicationPage_OnWindowsBringToFront(void); void ApplicationPage_OnSwitchTo(void); void ApplicationPage_OnEndTask(void); void ApplicationPage_OnGotoProcess(void); void RefreshApplicationPage(void); void RefreshPerformancePage(void); void RefreshProcessPage(void); INT_PTR CALLBACK ApplicationPageWndProc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam); INT_PTR CALLBACK Graph_WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam); LRESULT CALLBACK ProcessListWndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam); INT_PTR CALLBACK ProcessPageWndProc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam); INT_PTR CALLBACK PerformancePageWndProc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam); #ifdef __cplusplus } #endif #endif /* __TASKMGR_H__ */