215 lines
7.0 KiB
C
215 lines
7.0 KiB
C
/*
|
|
* 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 FillSolidRect2(HDC hDC, int x, int y, int cx, int cy, COLORREF clr);
|
|
void Draw3dRect(HDC hDC, int x, int y, int cx, int cy, COLORREF clrTopLeft, COLORREF clrBottomRight);
|
|
void Draw3dRect2(HDC hDC, LPRECT lpRect, COLORREF clrTopLeft, COLORREF clrBottomRight);
|
|
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);
|
|
|
|
BOOL AreDebugChannelsSupported(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__ */
|