ReactOS 0.4.16-dev-336-gb667d82
applpage.c
Go to the documentation of this file.
1/*
2 * PROJECT: ReactOS Task Manager
3 * LICENSE: LGPL-2.1-or-later (https://spdx.org/licenses/LGPL-2.1-or-later)
4 * PURPOSE: Applications Page
5 * COPYRIGHT: Copyright 1999-2001 Brian Palmer <brianp@reactos.org>
6 * Copyright 2005 Klemens Friedl <frik85@reactos.at>
7 * Copyright 2021 Katayama Hirofumi MZ <katayama.hirofumi.mz@gmail.com>
8 */
9
10#include "precomp.h"
11
12typedef struct
13{
19
20HWND hApplicationPage; /* Application List Property Page */
21HWND hApplicationPageListCtrl; /* Application ListCtrl Window */
22HWND hApplicationPageEndTaskButton; /* Application End Task button */
23HWND hApplicationPageSwitchToButton; /* Application Switch To button */
24HWND hApplicationPageNewTaskButton; /* Application New Task button */
31
34void ApplicationPageUpdate(void);
38int CALLBACK ApplicationPageCompareFunc(LPARAM lParam1, LPARAM lParam2, LPARAM lParamSort);
39int ProcGetIndexByProcessId(DWORD dwProcessId);
40
41#ifdef RUN_APPS_PAGE
44#endif
45
46static INT
48{
49 DEVMODE pDevMode;
50 INT ColorDepth;
51
52 pDevMode.dmSize = sizeof(DEVMODE);
53 pDevMode.dmDriverExtra = 0;
54
55 if (!EnumDisplaySettings(NULL, ENUM_CURRENT_SETTINGS, &pDevMode))
56 return ILC_COLOR;
57
58 switch (pDevMode.dmBitsPerPel)
59 {
60 case 32: ColorDepth = ILC_COLOR32; break;
61 case 24: ColorDepth = ILC_COLOR24; break;
62 case 16: ColorDepth = ILC_COLOR16; break;
63 case 8: ColorDepth = ILC_COLOR8; break;
64 case 4: ColorDepth = ILC_COLOR4; break;
65 default: ColorDepth = ILC_COLOR; break;
66 }
67
68 return ColorDepth;
69}
70
72{
73 int i;
77 {
78 memset(&item, 0, sizeof(LV_ITEM));
79 item.mask = LVIF_PARAM;
80 item.iItem = i;
84 }
85}
86
87
90{
91 RECT rc;
92 int nXDifference;
93 int nYDifference;
95 WCHAR szTemp[256];
96 int cx, cy;
97
98 switch (message) {
99 case WM_INITDIALOG:
100 /* Save the width and height */
101 GetClientRect(hDlg, &rc);
104
105 /* Update window position */
107
108 /* Get handles to the controls */
113
115
116 /* Initialize the application page's controls */
118
119 LoadStringW(hInst, IDS_TAB_TASK, szTemp, 256);
120 column.pszText = szTemp;
121 column.cx = 250;
122 (void)ListView_InsertColumn(hApplicationPageListCtrl, 0, &column); /* Add the "Task" column */
124 LoadStringW(hInst, IDS_TAB_STATUS, szTemp, 256);
125 column.pszText = szTemp;
126 column.cx = 95;
127 (void)ListView_InsertColumn(hApplicationPageListCtrl, 1, &column); /* Add the "Status" column */
128
131
133
134 /* Start our refresh thread */
135#ifdef RUN_APPS_PAGE
137#endif
138
139 /* Refresh page */
141
142 return TRUE;
143
144 case WM_DESTROY:
145 /* Close refresh thread */
146#ifdef RUN_APPS_PAGE
148#endif
150 break;
151
152 case WM_COMMAND:
153 /* Handle the button clicks */
154 switch (LOWORD(wParam))
155 {
156 case IDC_ENDTASK:
158 break;
159 case IDC_SWITCHTO:
161 break;
162 case IDC_NEWTASK:
164 break;
165 }
166
167 break;
168
169 case WM_SIZE:
170 if (wParam == SIZE_MINIMIZED)
171 return 0;
172
173 cx = LOWORD(lParam);
174 cy = HIWORD(lParam);
175 nXDifference = cx - nApplicationPageWidth;
176 nYDifference = cy - nApplicationPageHeight;
179
180 /* Reposition the application page's controls */
182 cx = (rc.right - rc.left) + nXDifference;
183 cy = (rc.bottom - rc.top) + nYDifference;
186
188 MapWindowPoints(hApplicationPageEndTaskButton, hDlg, (LPPOINT)(PRECT)(&rc), sizeof(RECT)/sizeof(POINT));
189 cx = rc.left + nXDifference;
190 cy = rc.top + nYDifference;
193
195 MapWindowPoints(hApplicationPageSwitchToButton, hDlg, (LPPOINT)(PRECT)(&rc), sizeof(RECT)/sizeof(POINT));
196 cx = rc.left + nXDifference;
197 cy = rc.top + nYDifference;
200
202 MapWindowPoints(hApplicationPageNewTaskButton, hDlg, (LPPOINT)(PRECT)(&rc), sizeof(RECT)/sizeof(POINT));
203 cx = rc.left + nXDifference;
204 cy = rc.top + nYDifference;
207
208 break;
209
210 case WM_NOTIFY:
212 break;
213
214 case WM_KEYDOWN:
215 if (wParam == VK_DELETE)
217 break;
218 }
219
220 return 0;
221}
222
224{
225#ifdef RUN_APPS_PAGE
226 /* Signal the event so that our refresh thread
227 * will wake up and refresh the application page */
229#endif
230}
231
233{
235
236 dwStyle &= ~(LVS_REPORT | LVS_ICON | LVS_LIST | LVS_SMALLICON);
237
239 case ID_VIEW_LARGE: dwStyle |= LVS_ICON; break;
240 case ID_VIEW_SMALL: dwStyle |= LVS_SMALLICON; break;
241 case ID_VIEW_DETAILS: dwStyle |= LVS_REPORT; break;
242 }
244
246}
247
249{
250 MSG msg;
251 INT i;
252 BOOL bItemRemoved = FALSE;
255 HIMAGELIST hImageListLarge;
256 HIMAGELIST hImageListSmall;
257
258 /* If we couldn't create the event then exit the thread */
259 while (1)
260 {
261 /* Wait for an the event or application close */
262 if (GetMessage(&msg, NULL, 0, 0) <= 0)
263 return 0;
264
265 if (msg.message == WM_TIMER)
266 {
267 // FIXME: Should this be EnumDesktopWindows() instead?
268 noApps = TRUE;
270 if (noApps)
271 {
274 }
275
276 /* Get the image lists */
279
280 /* Check to see if we need to remove any items from the list */
282 {
283 memset(&item, 0, sizeof(LV_ITEM));
285 item.iItem = i;
287
288 pAPLI = (LPAPPLICATION_PAGE_LIST_ITEM)item.lParam;
289 if (!IsWindow(pAPLI->hWnd)||
290 (wcslen(pAPLI->szTitle) <= 0) ||
291 !IsWindowVisible(pAPLI->hWnd) ||
292 (GetParent(pAPLI->hWnd) != NULL) ||
293 (GetWindow(pAPLI->hWnd, GW_OWNER) != NULL) ||
295 {
296 ImageList_Remove(hImageListLarge, item.iItem);
297 ImageList_Remove(hImageListSmall, item.iItem);
298
300 HeapFree(GetProcessHeap(), 0, pAPLI);
301 bItemRemoved = TRUE;
302 }
303 }
304
305 /*
306 * If an item was removed from the list then
307 * we need to resync all the items with the
308 * image list
309 */
310 if (bItemRemoved)
311 {
313 {
314 memset(&item, 0, sizeof(LV_ITEM));
315 item.mask = LVIF_IMAGE;
316 item.iItem = i;
317 item.iImage = i;
319 }
320 bItemRemoved = FALSE;
321 }
322
324 }
325 }
326}
327
329{
330 HICON hIcon;
331 WCHAR szText[260];
332 BOOL bLargeIcon;
333 BOOL bHung = FALSE;
334 LRESULT bAlive;
335
336 typedef int (FAR __stdcall *IsHungAppWindowProc)(HWND);
337 IsHungAppWindowProc IsHungAppWindow;
338
339 /* Skip our window */
340 if (hWnd == hMainWnd)
341 return TRUE;
342
344
345 GetWindowTextW(hWnd, szText, 260); /* Get the window text */
346
347 /* Check and see if this is a top-level app window */
348 if ((wcslen(szText) <= 0) ||
350 (GetParent(hWnd) != NULL) ||
351 (GetWindow(hWnd, GW_OWNER) != NULL) ||
353 {
354 return TRUE; /* Skip this window */
355 }
356
357 noApps = FALSE;
358
359#define GET_ICON(type) \
360 SendMessageTimeoutW(hWnd, WM_GETICON, (type), 0, SMTO_ABORTIFHUNG, 100, (PDWORD_PTR)&hIcon)
361
362 /* Get the icon for this window */
363 hIcon = NULL;
364 bAlive = GET_ICON(bLargeIcon ? ICON_BIG : ICON_SMALL);
365 if (!hIcon)
366 {
367 /* We failed, try to retrieve other icons... */
368 if (!hIcon && bAlive)
369 GET_ICON(bLargeIcon ? ICON_SMALL : ICON_BIG);
370 if (!hIcon)
372 if (!hIcon)
374
375 /* If we still do not have any icon, load the default one */
377 }
378#undef GET_ICON
379
380 bHung = FALSE;
381
382 IsHungAppWindow = (IsHungAppWindowProc)(FARPROC)GetProcAddress(GetModuleHandleW(L"USER32.DLL"), "IsHungAppWindow");
383
384 if (IsHungAppWindow)
385 bHung = IsHungAppWindow(hWnd);
386
387 AddOrUpdateHwnd(hWnd, szText, hIcon, bHung);
388
389 return TRUE;
390}
391
393{
395 HIMAGELIST hImageListLarge;
396 HIMAGELIST hImageListSmall;
398 int i;
399 BOOL bAlreadyInList = FALSE;
400
401 memset(&item, 0, sizeof(LV_ITEM));
402
403 /* Get the image lists */
406
407 /* Check to see if it's already in our list */
409 {
410 memset(&item, 0, sizeof(LV_ITEM));
412 item.iItem = i;
414
415 pAPLI = (LPAPPLICATION_PAGE_LIST_ITEM)item.lParam;
416 if (pAPLI->hWnd == hWnd)
417 {
418 bAlreadyInList = TRUE;
419 break;
420 }
421 }
422
423 /* If it is already in the list then update it if necessary */
424 if (bAlreadyInList)
425 {
426 /* Check to see if anything needs updating */
427 if ((pAPLI->hIcon != hIcon) ||
428 (_wcsicmp(pAPLI->szTitle, szTitle) != 0) ||
429 (pAPLI->bHung != bHung))
430 {
431 /* Update the structure */
432 pAPLI->hIcon = hIcon;
433 pAPLI->bHung = bHung;
434 wcscpy(pAPLI->szTitle, szTitle);
435
436 /* Update the image list */
437 ImageList_ReplaceIcon(hImageListLarge, item.iItem, hIcon);
438 ImageList_ReplaceIcon(hImageListSmall, item.iItem, hIcon);
439
440 /* Update the list view */
442 /* UpdateWindow(hApplicationPageListCtrl); */
444 }
445 }
446 else
447 { // It is not already in the list so add it
449
450 pAPLI->hWnd = hWnd;
451 pAPLI->hIcon = hIcon;
452 pAPLI->bHung = bHung;
453 wcscpy(pAPLI->szTitle, szTitle);
454
455 /* Add the item to the list */
456 memset(&item, 0, sizeof(LV_ITEM));
458 ImageList_AddIcon(hImageListLarge, hIcon);
459 item.iImage = ImageList_AddIcon(hImageListSmall, hIcon);
460 item.pszText = LPSTR_TEXTCALLBACK;
462 item.lParam = (LPARAM)pAPLI;
464 }
465
466 /* Select first item if any */
469 {
472 }
473}
474
476{
477 /* Enable or disable the "End Task" & "Switch To" buttons */
480 else
482
483 /* Enable "Switch To" button only if only one app is selected */
485
486 /* If we are on the applications tab the windows menu will be */
487 /* present on the menu bar so enable & disable the menu items */
488 if (TabCtrl_GetCurSel(hTabWnd) == 0)
489 {
490 HMENU hMenu;
491 HMENU hWindowsMenu;
492
493 hMenu = GetMenu(hMainWnd);
494 hWindowsMenu = GetSubMenu(hMenu, 3);
495
497 { // Only one item selected
504 }
506 { // More than one item selected
513 }
514 else
515 { // No items selected
522 }
523 }
524}
525
527{
528 LPNMHDR pnmh;
529 LV_DISPINFO* pnmdi;
531 WCHAR szMsg[256];
532
533 pnmh = (LPNMHDR) lParam;
534 pnmdi = (LV_DISPINFO*) lParam;
535
536 if (pnmh->hwndFrom == hApplicationPageListCtrl) {
537 switch (pnmh->code) {
538 case LVN_ITEMCHANGED:
540 break;
541
542 case LVN_GETDISPINFO:
543 pAPLI = (LPAPPLICATION_PAGE_LIST_ITEM)pnmdi->item.lParam;
544
545 /* Update the item text */
546 if (pnmdi->item.iSubItem == 0)
547 wcsncpy(pnmdi->item.pszText, pAPLI->szTitle, pnmdi->item.cchTextMax);
548
549 /* Update the item status */
550 else if (pnmdi->item.iSubItem == 1)
551 {
552 if (pAPLI->bHung)
554 else
556 wcsncpy(pnmdi->item.pszText, szMsg, pnmdi->item.cchTextMax);
557 }
558
559 break;
560
561 case NM_RCLICK:
564 else
566 break;
567
568 case NM_DBLCLK:
570 break;
571
572 case LVN_KEYDOWN:
573 if (((LPNMLVKEYDOWN)lParam)->wVKey == VK_DELETE)
575 break;
576 }
577 }
579 {
580 switch (pnmh->code)
581 {
582 case NM_RCLICK:
585 else
587 break;
588
589 case HDN_ITEMCLICK:
592 break;
593 }
594 }
595}
596
598{
599 HMENU hMenu;
600 HMENU hSubMenu;
601 POINT pt;
602
604
606 hSubMenu = GetSubMenu(hMenu, 0);
607
609
611
612 DestroyMenu(hMenu);
613}
614
616{
617 HMENU hMenu;
618 HMENU hSubMenu;
619 POINT pt;
620
622
624 hSubMenu = GetSubMenu(hMenu, 0);
625
627 {
635 }
637 {
645 }
646 else
647 {
655 }
656
658
660
661 DestroyMenu(hMenu);
662}
663
665{
666 HMENU hMenu;
667 HMENU hViewMenu;
668
669 hMenu = GetMenu(hMainWnd);
670 hViewMenu = GetSubMenu(hMenu, 2);
671
674
676}
677
679{
682 int i;
683 HWND* hWndArray;
684 int nWndCount;
685
687 nWndCount = 0;
688
690 memset(&item, 0, sizeof(LV_ITEM));
692 item.iItem = i;
693 item.stateMask = (UINT)-1;
695
696 if (item.state & LVIS_SELECTED) {
697 pAPLI = (LPAPPLICATION_PAGE_LIST_ITEM)item.lParam;
698 if (pAPLI) {
699 hWndArray[nWndCount] = pAPLI->hWnd;
700 nWndCount++;
701 }
702 }
703 }
704
705 TileWindows(NULL, dwMode, NULL, nWndCount, hWndArray);
706 HeapFree(GetProcessHeap(), 0, hWndArray);
707}
708
710{
713 int i;
714
716 memset(&item, 0, sizeof(LV_ITEM));
718 item.iItem = i;
719 item.stateMask = (UINT)-1;
721 if (item.state & LVIS_SELECTED) {
722 pAPLI = (LPAPPLICATION_PAGE_LIST_ITEM)item.lParam;
723 if (pAPLI) {
725 }
726 }
727 }
728}
729
731{
734 int i;
735
737 memset(&item, 0, sizeof(LV_ITEM));
739 item.iItem = i;
740 item.stateMask = (UINT)-1;
742 if (item.state & LVIS_SELECTED) {
743 pAPLI = (LPAPPLICATION_PAGE_LIST_ITEM)item.lParam;
744 if (pAPLI) {
746 }
747 }
748 }
749}
750
752{
755 int i;
756 HWND* hWndArray;
757 int nWndCount;
758
760 nWndCount = 0;
761
763 memset(&item, 0, sizeof(LV_ITEM));
765 item.iItem = i;
766 item.stateMask = (UINT)-1;
768 if (item.state & LVIS_SELECTED) {
769 pAPLI = (LPAPPLICATION_PAGE_LIST_ITEM)item.lParam;
770 if (pAPLI) {
771 hWndArray[nWndCount] = pAPLI->hWnd;
772 nWndCount++;
773 }
774 }
775 }
776 CascadeWindows(NULL, 0, NULL, nWndCount, hWndArray);
777 HeapFree(GetProcessHeap(), 0, hWndArray);
778}
779
781{
784 int i;
785
787 memset(&item, 0, sizeof(LV_ITEM));
789 item.iItem = i;
790 item.stateMask = (UINT)-1;
792 if (item.state & LVIS_SELECTED) {
793 pAPLI = (LPAPPLICATION_PAGE_LIST_ITEM)item.lParam;
794 break;
795 }
796 }
797 if (pAPLI) {
799 }
800}
801
803{
806 int i;
807
809 memset(&item, 0, sizeof(LV_ITEM));
811 item.iItem = i;
812 item.stateMask = (UINT)-1;
814
815 if (item.state & LVIS_SELECTED) {
816 pAPLI = (LPAPPLICATION_PAGE_LIST_ITEM)item.lParam;
817 break;
818 }
819 }
820 if (pAPLI) {
824 }
825}
826
828{
831 int i;
832
833 /* Trick: on Windows, pressing the CTRL key forces the task to be ended */
834 BOOL ForceEndTask = !!(GetKeyState(VK_CONTROL) & 0x8000);
835
837 memset(&item, 0, sizeof(LV_ITEM));
839 item.iItem = i;
840 item.stateMask = (UINT)-1;
842 if (item.state & LVIS_SELECTED) {
843 pAPLI = (LPAPPLICATION_PAGE_LIST_ITEM)item.lParam;
844 if (pAPLI) {
845 EndTask(pAPLI->hWnd, 0, ForceEndTask);
846 }
847 }
848 }
849}
850
852{
855 int i;
856
858 memset(&item, 0, sizeof(LV_ITEM));
860 item.iItem = i;
861 item.stateMask = (UINT)-1;
863 if (item.state & LVIS_SELECTED) {
864 pAPLI = (LPAPPLICATION_PAGE_LIST_ITEM)item.lParam;
865 break;
866 }
867 }
868 if (pAPLI) {
869 DWORD dwProcessId;
870
871 GetWindowThreadProcessId(pAPLI->hWnd, &dwProcessId);
872 /*
873 * Switch to the process tab
874 */
876 /*
877 * Select the process item in the list
878 */
879 i = ProcGetIndexByProcessId(dwProcessId);
880 if (i != -1)
881 {
883 i,
887 }
888 }
889}
890
891int CALLBACK ApplicationPageCompareFunc(LPARAM lParam1, LPARAM lParam2, LPARAM lParamSort)
892{
895
896 if (bSortAscending) {
897 Param1 = (LPAPPLICATION_PAGE_LIST_ITEM)lParam1;
898 Param2 = (LPAPPLICATION_PAGE_LIST_ITEM)lParam2;
899 } else {
900 Param1 = (LPAPPLICATION_PAGE_LIST_ITEM)lParam2;
901 Param2 = (LPAPPLICATION_PAGE_LIST_ITEM)lParam1;
902 }
903 return wcscmp(Param1->szTitle, Param2->szTitle);
904}
void RefreshApplicationPage(void)
Definition: applpage.c:223
void ApplicationPage_OnEndTask(void)
Definition: applpage.c:827
HWND hApplicationPage
Definition: applpage.c:20
HWND hApplicationPageEndTaskButton
Definition: applpage.c:22
static DWORD dwApplicationThread
Definition: applpage.c:43
DWORD WINAPI ApplicationPageRefreshThread(void *lpParameter)
Definition: applpage.c:248
static HANDLE hApplicationThread
Definition: applpage.c:42
BOOL CALLBACK EnumWindowsProc(HWND hWnd, LPARAM lParam)
Definition: applpage.c:328
void ApplicationPage_OnWindowsCascade(void)
Definition: applpage.c:751
void ApplicationPage_OnWindowsBringToFront(void)
Definition: applpage.c:780
BOOL noApps
Definition: applpage.c:29
struct APPLICATION_PAGE_LIST_ITEM * LPAPPLICATION_PAGE_LIST_ITEM
HWND hApplicationPageNewTaskButton
Definition: applpage.c:24
void ApplicationPageOnNotify(WPARAM wParam, LPARAM lParam)
Definition: applpage.c:526
void UpdateApplicationListControlViewSetting(void)
Definition: applpage.c:232
static int nApplicationPageWidth
Definition: applpage.c:25
void ApplicationPage_OnWindowsMinimize(void)
Definition: applpage.c:709
void AddOrUpdateHwnd(HWND hWnd, WCHAR *szTitle, HICON hIcon, BOOL bHung)
Definition: applpage.c:392
HWND hApplicationPageSwitchToButton
Definition: applpage.c:23
#define GET_ICON(type)
int CALLBACK ApplicationPageCompareFunc(LPARAM lParam1, LPARAM lParam2, LPARAM lParamSort)
Definition: applpage.c:891
void ApplicationPage_OnView(DWORD dwMode)
Definition: applpage.c:664
void ApplicationPageShowContextMenu2(void)
Definition: applpage.c:615
void ApplicationPage_OnWindowsTile(DWORD dwMode)
Definition: applpage.c:678
void ApplicationPageShowContextMenu1(void)
Definition: applpage.c:597
INT_PTR CALLBACK ApplicationPageWndProc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam)
Definition: applpage.c:89
BOOL bApplicationPageSelectionMade
Definition: applpage.c:30
void AppPageCleanup(void)
Definition: applpage.c:71
static int nApplicationPageHeight
Definition: applpage.c:26
HWND hApplicationPageListCtrl
Definition: applpage.c:21
void ApplicationPage_OnGotoProcess(void)
Definition: applpage.c:851
void ApplicationPageUpdate(void)
Definition: applpage.c:475
void ApplicationPage_OnSwitchTo(void)
Definition: applpage.c:802
void ApplicationPage_OnWindowsMaximize(void)
Definition: applpage.c:730
static BOOL bSortAscending
Definition: applpage.c:27
int ProcGetIndexByProcessId(DWORD dwProcessId)
Definition: procpage.c:67
#define msg(x)
Definition: auth_time.c:54
HWND hWnd
Definition: settings.c:17
#define ID_VIEW_LARGE
Definition: resource.h:33
#define ID_VIEW_SMALL
Definition: resource.h:34
#define ID_VIEW_DETAILS
Definition: resource.h:36
INT GetSystemColorDepth()
Definition: misc.cpp:328
#define ID_FILE_NEW
Definition: resource.h:40
#define ID_APPLICATION_PAGE_SWITCHTO
Definition: resource.h:170
#define IDR_APPLICATION_PAGE_CONTEXT2
Definition: resource.h:28
#define IDS_TAB_TASK
Definition: resource.h:205
#define ID_WINDOWS_MINIMIZE
Definition: resource.h:156
#define IDS_NOT_RESPONDING
Definition: resource.h:263
#define IDS_TAB_STATUS
Definition: resource.h:206
#define ID_WINDOWS_MAXIMIZE
Definition: resource.h:157
#define IDS_RUNNING
Definition: resource.h:264
#define IDI_WINDOWSM
Definition: resource.h:26
#define IDC_ENDTASK
Definition: resource.h:36
#define ID_WINDOWS_BRINGTOFRONT
Definition: resource.h:159
#define IDC_SWITCHTO
Definition: resource.h:37
#define ID_WINDOWS_TILEHORIZONTALLY
Definition: resource.h:154
#define IDC_APPLIST
Definition: resource.h:40
#define IDC_NEWTASK
Definition: resource.h:38
#define IDR_APPLICATION_PAGE_CONTEXT1
Definition: resource.h:27
#define ID_WINDOWS_TILEVERTICALLY
Definition: resource.h:155
#define IDI_WINDOW
Definition: resource.h:25
#define ID_WINDOWS_CASCADE
Definition: resource.h:158
WPARAM wParam
Definition: combotst.c:138
LPARAM lParam
Definition: combotst.c:139
#define NULL
Definition: types.h:112
#define TRUE
Definition: types.h:120
#define FALSE
Definition: types.h:117
BOOL WINAPI ImageList_Remove(HIMAGELIST himl, INT i)
Definition: imagelist.c:2568
INT WINAPI ImageList_ReplaceIcon(HIMAGELIST himl, INT nIndex, HICON hIcon)
Definition: imagelist.c:2779
HIMAGELIST WINAPI ImageList_Create(INT cx, INT cy, UINT flags, INT cInitial, INT cGrow)
Definition: imagelist.c:804
#define GetProcessHeap()
Definition: compat.h:736
int(* FARPROC)()
Definition: compat.h:36
HANDLE HWND
Definition: compat.h:19
#define GetProcAddress(x, y)
Definition: compat.h:753
#define HeapAlloc
Definition: compat.h:733
#define HeapFree(x, y, z)
Definition: compat.h:735
#define CALLBACK
Definition: compat.h:35
#define FAR
Definition: zlib.h:34
HMODULE WINAPI GetModuleHandleW(LPCWSTR lpModuleName)
Definition: loader.c:838
HANDLE WINAPI DECLSPEC_HOTPATCH CreateThread(IN LPSECURITY_ATTRIBUTES lpThreadAttributes, IN DWORD dwStackSize, IN LPTHREAD_START_ROUTINE lpStartAddress, IN LPVOID lpParameter, IN DWORD dwCreationFlags, OUT LPDWORD lpThreadId)
Definition: thread.c:137
unsigned int(__cdecl typeof(jpeg_read_scanlines))(struct jpeg_decompress_struct *
Definition: typeof.h:31
#define pt(x, y)
Definition: drawing.c:79
HINSTANCE hInst
Definition: dxdiag.c:13
void ProcessPage_OnEndProcess(void)
Definition: endproc.c:15
BOOL WINAPI EndTask(HWND hWnd, BOOL fShutDown, BOOL fForce)
Definition: exit.c:207
unsigned int BOOL
Definition: ntddk_ex.h:94
unsigned long DWORD
Definition: ntddk_ex.h:95
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i
Definition: glfuncs.h:248
_CRTIMP size_t __cdecl wcslen(_In_z_ const wchar_t *_Str)
if(dx< 0)
Definition: linetemp.h:194
TCHAR szTitle[MAX_LOADSTRING]
Definition: magnifier.c:35
HWND hMainWnd
Definition: magnifier.c:32
static HICON
Definition: imagelist.c:80
static const CLSID *static CLSID *static const GUID VARIANT VARIANT *static IServiceProvider DWORD *static HMENU
Definition: ordinal.c:63
static ATOM item
Definition: dde.c:856
HWND hTabWnd
Definition: msconfig.c:22
HICON hIcon
Definition: msconfig.c:44
__int3264 LONG_PTR
Definition: mstsclib_h.h:276
unsigned int UINT
Definition: ndis.h:50
#define L(x)
Definition: ntvdm.h:50
#define LOWORD(l)
Definition: pedump.c:82
HWND hProcessPageListCtrl
Definition: procpage.c:28
#define ILC_COLOR4
Definition: commctrl.h:354
#define LVSIL_SMALL
Definition: commctrl.h:2304
_Out_opt_ int _Out_opt_ int * cy
Definition: commctrl.h:586
#define ListView_InsertItem(hwnd, pitem)
Definition: commctrl.h:2413
#define ListView_SetItemState(hwndLV, i, data, mask)
Definition: commctrl.h:2678
#define TabCtrl_GetCurSel(hwnd)
Definition: commctrl.h:4068
#define LVS_ICON
Definition: commctrl.h:2266
#define ListView_InsertColumn(hwnd, iCol, pcol)
Definition: commctrl.h:2641
#define NM_DBLCLK
Definition: commctrl.h:131
#define ILC_COLOR16
Definition: commctrl.h:356
#define LVIF_STATE
Definition: commctrl.h:2317
#define ListView_SetImageList(hwnd, himl, iImageList)
Definition: commctrl.h:2309
#define ILC_COLOR8
Definition: commctrl.h:355
#define LVNI_SELECTED
Definition: commctrl.h:2429
#define ListView_GetHeader(hwnd)
Definition: commctrl.h:2656
#define LVS_REPORT
Definition: commctrl.h:2267
#define LVS_SMALLICON
Definition: commctrl.h:2268
#define LVN_GETDISPINFO
Definition: commctrl.h:3165
#define LVCF_WIDTH
Definition: commctrl.h:2592
#define LVNI_FOCUSED
Definition: commctrl.h:2428
#define LV_DISPINFO
Definition: commctrl.h:3175
#define ListView_GetImageList(hwnd, iImageList)
Definition: commctrl.h:2301
_Out_opt_ int * cx
Definition: commctrl.h:585
#define ILC_COLOR32
Definition: commctrl.h:358
#define ListView_GetNextItem(hwnd, i, flags)
Definition: commctrl.h:2439
#define LPSTR_TEXTCALLBACK
Definition: commctrl.h:2388
#define ListView_GetItemCount(hwnd)
Definition: commctrl.h:2312
#define ListView_SortItems(hwndLV, _pfnCompare, _lPrm)
Definition: commctrl.h:2708
#define HDN_ITEMCLICK
Definition: commctrl.h:868
#define LVIS_SELECTED
Definition: commctrl.h:2324
#define ListView_GetSelectedCount(hwndLV)
Definition: commctrl.h:2714
#define ListView_RedrawItems(hwndLV, iFirst, iLast)
Definition: commctrl.h:2530
#define LVIF_PARAM
Definition: commctrl.h:2316
#define LV_ITEM
Definition: commctrl.h:2342
#define ListView_DeleteAllItems(hwnd)
Definition: commctrl.h:2419
#define LVIF_TEXT
Definition: commctrl.h:2314
#define ListView_SetItem(hwnd, pitem)
Definition: commctrl.h:2406
#define ImageList_AddIcon(himl, hicon)
Definition: commctrl.h:415
#define NM_RCLICK
Definition: commctrl.h:133
#define ILC_MASK
Definition: commctrl.h:351
#define ListView_DeleteItem(hwnd, i)
Definition: commctrl.h:2416
#define LVN_KEYDOWN
Definition: commctrl.h:3189
#define LVIF_IMAGE
Definition: commctrl.h:2315
#define LVN_ITEMCHANGED
Definition: commctrl.h:3136
#define LVCF_TEXT
Definition: commctrl.h:2593
#define ILC_COLOR24
Definition: commctrl.h:357
#define LVIS_FOCUSED
Definition: commctrl.h:2323
#define ListView_GetItem(hwnd, pitem)
Definition: commctrl.h:2399
#define ListView_EnsureVisible(hwndLV, i, fPartialOK)
Definition: commctrl.h:2524
#define LVS_LIST
Definition: commctrl.h:2269
#define TabCtrl_SetCurFocus(hwnd, i)
Definition: commctrl.h:4107
#define ILC_COLOR
Definition: commctrl.h:352
#define LV_COLUMN
Definition: commctrl.h:2552
#define LVSIL_NORMAL
Definition: commctrl.h:2303
#define WM_NOTIFY
Definition: richedit.h:61
_Check_return_ _CRTIMP int __cdecl _wcsicmp(_In_z_ const wchar_t *_Str1, _In_z_ const wchar_t *_Str2)
_CRTIMP wchar_t *__cdecl wcscpy(_Out_writes_z_(_String_length_(_Source)+1) wchar_t *_Dest, _In_z_ const wchar_t *_Source)
_CRTIMP wchar_t *__cdecl wcsncpy(wchar_t *_Dest, const wchar_t *_Source, size_t _Count)
_Check_return_ _CRTIMP int __cdecl wcscmp(_In_z_ const wchar_t *_Str1, _In_z_ const wchar_t *_Str2)
#define memset(x, y, z)
Definition: compat.h:39
#define _countof(array)
Definition: sndvol32.h:70
DWORD dmBitsPerPel
Definition: wingdi.h:1595
WORD dmDriverExtra
Definition: wingdi.h:1569
WORD dmSize
Definition: wingdi.h:1568
Definition: tftpd.h:60
UINT code
Definition: winuser.h:3162
HWND hwndFrom
Definition: winuser.h:3160
LONG right
Definition: windef.h:308
LONG bottom
Definition: windef.h:309
LONG top
Definition: windef.h:307
LONG left
Definition: windef.h:306
DWORD EndLocalThread(HANDLE *hThread, DWORD dwThread)
Definition: taskmgr.c:1109
TASKMANAGER_SETTINGS TaskManagerSettings
Definition: taskmgr.c:37
#define ICON_BIG
Definition: tnclass.cpp:51
#define ICON_SMALL
Definition: tnclass.cpp:48
#define GetWindowLongPtr
Definition: treelist.c:73
TW_UINT32 TW_UINT16 TW_UINT16 TW_MEMREF pData
Definition: twain.h:1830
TW_UINT32 TW_UINT16 TW_UINT16 MSG
Definition: twain.h:1829
int32_t INT_PTR
Definition: typedefs.h:64
int32_t INT
Definition: typedefs.h:58
#define __stdcall
Definition: typedefs.h:25
#define HIWORD(l)
Definition: typedefs.h:247
VOID WINAPI SwitchToThisWindow(HWND hwnd, BOOL fAltTab)
Definition: window.c:82
BOOL WINAPI IsHungAppWindow(HWND hwnd)
Definition: window.c:1847
int WINAPI GetWindowTextW(HWND hWnd, LPWSTR lpString, int nMaxCount)
Definition: window.c:1384
DWORD WINAPI GetWindowThreadProcessId(HWND hWnd, PDWORD lpdwProcessId)
LONG_PTR LPARAM
Definition: windef.h:208
LONG_PTR LRESULT
Definition: windef.h:209
UINT_PTR WPARAM
Definition: windef.h:207
#define WINAPI
Definition: msvc.h:6
DEVMODEA DEVMODE
Definition: wingdi.h:4418
#define GW_OWNER
Definition: winuser.h:769
#define MAKEWPARAM(l, h)
Definition: winuser.h:4012
BOOL WINAPI IsWindow(_In_opt_ HWND)
#define SWP_NOACTIVATE
Definition: winuser.h:1245
#define MF_BYCOMMAND
Definition: winuser.h:202
#define GetWindowLongPtrW
Definition: winuser.h:4832
BOOL WINAPI SetMenuDefaultItem(_In_ HMENU, _In_ UINT, _In_ UINT)
BOOL WINAPI GetWindowRect(_In_ HWND, _Out_ LPRECT)
int WINAPI LoadStringW(_In_opt_ HINSTANCE hInstance, _In_ UINT uID, _Out_writes_to_(cchBufferMax, return+1) LPWSTR lpBuffer, _In_ int cchBufferMax)
#define SW_MINIMIZE
Definition: winuser.h:779
BOOL WINAPI SetWindowPos(_In_ HWND, _In_opt_ HWND, _In_ int, _In_ int, _In_ int, _In_ int, _In_ UINT)
#define WM_SIZE
Definition: winuser.h:1614
WORD WINAPI CascadeWindows(_In_opt_ HWND hwndParent, _In_ UINT wHow, _In_opt_ CONST RECT *lpRect, _In_ UINT cKids, _In_reads_opt_(cKids) const HWND FAR *lpKids)
#define SWP_NOMOVE
Definition: winuser.h:1247
#define WM_COMMAND
Definition: winuser.h:1743
#define VK_CONTROL
Definition: winuser.h:2206
BOOL WINAPI GetCursorPos(_Out_ LPPOINT)
Definition: cursoricon.c:2722
#define WS_EX_TOOLWINDOW
Definition: winuser.h:404
#define SWP_NOSIZE
Definition: winuser.h:1248
#define SIZE_MINIMIZED
Definition: winuser.h:2509
#define WM_INITDIALOG
Definition: winuser.h:1742
#define PostThreadMessage
Definition: winuser.h:5845
int WINAPI MapWindowPoints(_In_opt_ HWND hWndFrom, _In_opt_ HWND hWndTo, _Inout_updates_(cPoints) LPPOINT lpPoints, _In_ UINT cPoints)
#define GCL_HICONSM
Definition: winuser.h:667
HWND WINAPI GetDlgItem(_In_opt_ HWND, _In_ int)
#define TPM_TOPALIGN
Definition: winuser.h:2386
BOOL WINAPI SetWindowTextW(_In_ HWND, _In_opt_ LPCWSTR)
BOOL WINAPI ShowWindowAsync(_In_ HWND, _In_ int)
#define GetMessage
Definition: winuser.h:5802
WORD WINAPI TileWindows(_In_opt_ HWND hwndParent, _In_ UINT wHow, _In_opt_ CONST RECT *lpRect, _In_ UINT cKids, _In_reads_opt_(cKids) const HWND FAR *lpKids)
BOOL WINAPI GetClientRect(_In_ HWND, _Out_ LPRECT)
#define ENUM_CURRENT_SETTINGS
Definition: winuser.h:179
HMENU WINAPI GetSubMenu(_In_ HMENU, _In_ int)
BOOL WINAPI EnumWindows(_In_ WNDENUMPROC lpEnumFunc, _In_ LPARAM lParam)
#define MF_ENABLED
Definition: winuser.h:128
#define WM_TIMER
Definition: winuser.h:1745
#define TPM_LEFTALIGN
Definition: winuser.h:2380
struct tagNMHDR * LPNMHDR
BOOL WINAPI EnableWindow(_In_ HWND, _In_ BOOL)
#define TPM_LEFTBUTTON
Definition: winuser.h:2382
BOOL WINAPI CheckMenuRadioItem(_In_ HMENU, _In_ UINT, _In_ UINT, _In_ UINT, _In_ UINT)
HWND WINAPI GetParent(_In_ HWND)
#define GetClassLongPtrW
Definition: winuser.h:4567
BOOL WINAPI DestroyMenu(_In_ HMENU)
HWND WINAPI GetWindow(_In_ HWND, _In_ UINT)
#define SWP_NOOWNERZORDER
Definition: winuser.h:1252
BOOL WINAPI TrackPopupMenu(_In_ HMENU, _In_ UINT, _In_ int, _In_ int, _Reserved_ int, _In_ HWND, _Reserved_ LPCRECT)
#define VK_DELETE
Definition: winuser.h:2236
#define WM_DESTROY
Definition: winuser.h:1612
#define WM_KEYDOWN
Definition: winuser.h:1718
BOOL WINAPI InvalidateRect(_In_opt_ HWND, _In_opt_ LPCRECT, _In_ BOOL)
#define MAKEINTRESOURCEW(i)
Definition: winuser.h:582
HMENU WINAPI LoadMenuW(_In_opt_ HINSTANCE, _In_ LPCWSTR)
#define SWP_NOZORDER
Definition: winuser.h:1250
#define SW_MAXIMIZE
Definition: winuser.h:775
#define SetWindowLongPtrW
Definition: winuser.h:5358
#define GCL_HICON
Definition: winuser.h:666
#define GWL_STYLE
Definition: winuser.h:855
BOOL WINAPI IsWindowVisible(_In_ HWND)
BOOL WINAPI EnableMenuItem(_In_ HMENU, _In_ UINT, _In_ UINT)
HICON WINAPI LoadIconW(_In_opt_ HINSTANCE hInstance, _In_ LPCWSTR lpIconName)
Definition: cursoricon.c:2127
LRESULT WINAPI SendMessageW(_In_ HWND, _In_ UINT, _In_ WPARAM, _In_ LPARAM)
HMENU WINAPI GetMenu(_In_ HWND)
SHORT WINAPI GetKeyState(_In_ int)
#define GWL_EXSTYLE
Definition: winuser.h:854
#define MF_GRAYED
Definition: winuser.h:129
#define MF_DISABLED
Definition: winuser.h:130
__wchar_t WCHAR
Definition: xmlstorage.h:180
WCHAR * LPWSTR
Definition: xmlstorage.h:184