1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
|
/*++
Copyright (c) 1990 Microsoft Corporation
Module Name:
winperf.h
Abstract:
This module contains the definit
Author:
Mark Lucovsky (markl) 28-Mar-1991
Revision History:
--*/
#ifndef _WINPERFH_INCLUDED_
#define _WINPERFH_INCLUDED_
#define DIALOG_SUCCESS 100
#define DIALOG_CANCEL 0
#define IDM_EXIT 1100
#define IDM_SELECT 1101
#define IDM_ALL 1103
#define TIMER_ID 1001
#define IDM_CPU_GRP 1002
#define IDM_PERF_GRP 1003
#define IDM_SEL_DLG 1004
#define IDM_STYLE_GRP 1005
#define IDM_CPU0 101
#define IDM_CPU1 102
#define IDM_CPU2 103
#define IDM_CPU3 104
#define IDM_CPU4 105
#define IDM_CPU5 106
#define IDM_CPU6 107
#define IDM_CPU7 108
#define IDM_CPU8 109
#define IDM_CPU9 110
#define IDM_CPU10 111
#define IDM_CPU11 112
#define IDM_CPU12 113
#define IDM_CPU13 114
#define IDM_CPU14 115
#define IDM_CPU15 116
#define IDM_PGFLT 117
#define IDM_PGAV 118
#define IDM_CONTEXT 119
#define IDM_1TB 120
#define IDM_2TB 121
#define IDM_SYSCALL 122
#define IDM_INT 123
#define IDM_POOL 124
#define IDM_NONPOOL 125
#define IDM_PROCESS 126
#define IDM_THREAD 127
#define IDM_ALIGN 128
#define IDM_EXCEPT 129
#define IDM_FLOAT 130
#define IDM_INS_EMUL 131
#define IDM_CPU_TOTAL 132
#define IDM_SEL_LINE 133
#define IDM_SEL_BAR 134
#define WINPERF_ICON 1011
#define CPUTHERM_ICON 1012
#define BALL_BITMAP 1011
#define CPU_STYLE_LINE 0
#define CPU_STYLE_BAR 1
#include "calcperf.h"
typedef struct _WINPERF_INFO
{
DWORD WindowPositionX;
DWORD WindowPositionY;
DWORD WindowSizeX;
DWORD WindowSizeY;
DWORD DisplayElement[SAVE_SUBJECTS];
DWORD DisplayMode;
DWORD CpuStyle;
HPEN hBluePen;
HPEN hRedPen;
HPEN hGreenPen;
HPEN hMagentaPen;
HPEN hYellowPen;
HPEN hDotPen;
HBRUSH hBackground;
HBRUSH hRedBrush;
HBRUSH hGreenBrush;
HBRUSH hBlueBrush;
HBRUSH hMagentaBrush;
HBRUSH hYellowBrush;
HBRUSH hLightBrush;
HBRUSH hDarkBrush;
HFONT LargeFont;
HFONT MediumFont;
HFONT SmallFont;
HFONT hOldFont;
HMENU hMenu;
HWND hWndMain;
UINT TimerId;
UINT NumberOfProcessors;
BOOL DisplayMenu;
} WINPERF_INFO,*PWINPERF_INFO;
BOOL
InitApplication(
HANDLE hInstance,
HBRUSH hBackground
);
BOOL
InitInstance(
HANDLE hInstance,
int nCmdShow
);
LONG APIENTRY
MainWndProc(
HWND hWnd,
UINT message,
DWORD DWORD,
LONG lParam
);
LONG APIENTRY
CpuWndProc(
HWND hWnd,
UINT message,
DWORD DWORD,
LONG lParam
);
BOOL
APIENTRY About(
HWND hDlg,
unsigned message,
WORD DWORD,
LONG lParam
);
BOOL APIENTRY MoveToEx(IN HDC, IN int, IN int, OUT LPPOINT);
BOOL APIENTRY SetViewportExtEx(IN HDC, IN int, IN int, OUT LPSIZE);
BOOL APIENTRY SetViewportOrgEx(IN HDC, IN int, IN int, OUT LPPOINT);
BOOL APIENTRY SetWindowExtEx(IN HDC, IN int, IN int, OUT LPSIZE);
BOOL APIENTRY SetWindowOrgEx(IN HDC, IN int, IN int, OUT LPPOINT);
BOOL APIENTRY GetWindowExtEx(IN HDC, OUT LPSIZE);
BOOL APIENTRY GetCurrentPositionEx(IN HDC, OUT LPPOINT);
BOOL APIENTRY MGetWindowExt(HDC hdc, INT * pcx, INT * pcy);
BOOL APIENTRY MGetCurrentPosition(HDC hdc, INT * px, INT * py);
HANDLE APIENTRY MGetInstHandle(VOID);
LPSTR MGetCmdLine(VOID);
VOID
UpdateCpuMeter(
IN HDC hDC,
IN SHORT cxClient,
IN SHORT cyClient
);
VOID
DrawCpuMeter(
IN HDC hDC,
IN SHORT cxClient,
IN SHORT cyClient,
IN ULONG DisplayItem
);
VOID
ReScalePerfWindow(
IN HDC hDC,
IN PDISPLAY_ITEM DisplayItem
);
BOOL
CalcCpuTime(
PDISPLAY_ITEM PerfListItem
);
ULONG
InitPerfInfo(VOID);
VOID
InitProfileData(PWINPERF_INFO pWinperfInfo);
VOID
SaveProfileData(PWINPERF_INFO pWinperfInfo);
VOID
DrawPerfWindow(
IN HDC hDC,
IN PDISPLAY_ITEM DisplayItem
);
VOID
UpdatePerfWindow(
IN HDC hDC,
IN PDISPLAY_ITEM DisplayItem
);
//
// change style constants
//
#define STYLE_ENABLE_MENU WS_OVERLAPPEDWINDOW
#define STYLE_DISABLE_MENU (WS_THICKFRAME+WS_BORDER)
LONG APIENTRY
DbgWndProc(
HWND hWnd,
UINT message,
DWORD wParam,
LONG lParam
);
BOOLEAN
FitPerfWindows(
IN HWND hWnd,
IN HDC hDC,
IN PDISPLAY_ITEM DisplayItems,
IN ULONG NumberOfWindows
);
BOOLEAN
InitPerfWindowDisplay(
IN HWND hWnd,
IN HDC hDC,
IN PDISPLAY_ITEM DisplayItems,
IN ULONG NumberOfWindows
);
BOOL
APIENTRY SelectDlgProc(
HWND hDlg,
unsigned message,
DWORD wParam,
LONG lParam
);
VOID
DrawFrame(
HDC hDC,
PDISPLAY_ITEM DisplayItem
);
VOID
CalcDrawFrame(
PDISPLAY_ITEM DisplayItem
);
VOID
DrawPerfText(
HDC hDC,
PDISPLAY_ITEM DisplayItem,
UINT Item
);
VOID
DrawPerfGraph(
HDC hDC,
PDISPLAY_ITEM DisplayItem
);
BOOLEAN
CreateMemoryContext(
HDC hDC,
PDISPLAY_ITEM DisplayItem
);
VOID
DeleteMemoryContext(
PDISPLAY_ITEM DisplayItem
);
VOID
ShiftPerfGraph(
HDC hDC,
PDISPLAY_ITEM DisplayItem
);
VOID
DrawCpuBarGraph(
HDC hDC,
PDISPLAY_ITEM DisplayItem,
UINT Item
);
#endif /* _WINPERFH_INCLUDED_ */
|