ReactOS 0.4.15-dev-8135-g1bc6c90
applpage.c File Reference
#include "precomp.h"
Include dependency graph for applpage.c:

Go to the source code of this file.

Classes

struct  APPLICATION_PAGE_LIST_ITEM
 

Macros

#define GET_ICON(type)    SendMessageTimeoutW(hWnd, WM_GETICON, (type), 0, SMTO_ABORTIFHUNG, 100, (PDWORD_PTR)&hIcon)
 

Typedefs

typedef struct APPLICATION_PAGE_LIST_ITEMLPAPPLICATION_PAGE_LIST_ITEM
 

Functions

DWORD WINAPI ApplicationPageRefreshThread (void *lpParameter)
 
BOOL CALLBACK EnumWindowsProc (HWND hWnd, LPARAM lParam)
 
void AddOrUpdateHwnd (HWND hWnd, WCHAR *szTitle, HICON hIcon, BOOL bHung)
 
void ApplicationPageUpdate (void)
 
void ApplicationPageOnNotify (WPARAM wParam, LPARAM lParam)
 
void ApplicationPageShowContextMenu1 (void)
 
void ApplicationPageShowContextMenu2 (void)
 
int CALLBACK ApplicationPageCompareFunc (LPARAM lParam1, LPARAM lParam2, LPARAM lParamSort)
 
int ProcGetIndexByProcessId (DWORD dwProcessId)
 
static INT GetSystemColorDepth (VOID)
 
void AppPageCleanup (void)
 
INT_PTR CALLBACK ApplicationPageWndProc (HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam)
 
void RefreshApplicationPage (void)
 
void UpdateApplicationListControlViewSetting (void)
 
void ApplicationPage_OnView (DWORD dwMode)
 
void ApplicationPage_OnWindowsTile (DWORD dwMode)
 
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)
 

Variables

HWND hApplicationPage
 
HWND hApplicationPageListCtrl
 
HWND hApplicationPageEndTaskButton
 
HWND hApplicationPageSwitchToButton
 
HWND hApplicationPageNewTaskButton
 
static int nApplicationPageWidth
 
static int nApplicationPageHeight
 
static BOOL bSortAscending = TRUE
 
BOOL noApps
 
BOOL bApplicationPageSelectionMade = FALSE
 
static HANDLE hApplicationThread = NULL
 
static DWORD dwApplicationThread
 

Macro Definition Documentation

◆ GET_ICON

#define GET_ICON (   type)     SendMessageTimeoutW(hWnd, WM_GETICON, (type), 0, SMTO_ABORTIFHUNG, 100, (PDWORD_PTR)&hIcon)

Typedef Documentation

◆ LPAPPLICATION_PAGE_LIST_ITEM

Function Documentation

◆ AddOrUpdateHwnd()

void AddOrUpdateHwnd ( HWND  hWnd,
WCHAR szTitle,
HICON  hIcon,
BOOL  bHung 
)

Definition at line 392 of file applpage.c.

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}
struct APPLICATION_PAGE_LIST_ITEM * LPAPPLICATION_PAGE_LIST_ITEM
BOOL bApplicationPageSelectionMade
Definition: applpage.c:30
HWND hApplicationPageListCtrl
Definition: applpage.c:21
HWND hWnd
Definition: settings.c:17
#define NULL
Definition: types.h:112
#define TRUE
Definition: types.h:120
#define FALSE
Definition: types.h:117
INT WINAPI ImageList_ReplaceIcon(HIMAGELIST himl, INT nIndex, HICON hIcon)
Definition: imagelist.c:2779
#define GetProcessHeap()
Definition: compat.h:736
#define HeapAlloc
Definition: compat.h:733
unsigned int BOOL
Definition: ntddk_ex.h:94
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
if(dx< 0)
Definition: linetemp.h:194
TCHAR szTitle[MAX_LOADSTRING]
Definition: magnifier.c:35
static ATOM item
Definition: dde.c:856
HICON hIcon
Definition: msconfig.c:44
#define LVSIL_SMALL
Definition: commctrl.h:2299
#define ListView_InsertItem(hwnd, pitem)
Definition: commctrl.h:2408
#define ListView_SetItemState(hwndLV, i, data, mask)
Definition: commctrl.h:2673
#define LVNI_SELECTED
Definition: commctrl.h:2424
#define LVNI_FOCUSED
Definition: commctrl.h:2423
#define ListView_GetImageList(hwnd, iImageList)
Definition: commctrl.h:2296
#define ListView_GetNextItem(hwnd, i, flags)
Definition: commctrl.h:2434
#define LPSTR_TEXTCALLBACK
Definition: commctrl.h:2383
#define ListView_GetItemCount(hwnd)
Definition: commctrl.h:2307
#define LVIS_SELECTED
Definition: commctrl.h:2319
#define ListView_RedrawItems(hwndLV, iFirst, iLast)
Definition: commctrl.h:2525
#define LVIF_PARAM
Definition: commctrl.h:2311
#define LV_ITEM
Definition: commctrl.h:2337
#define LVIF_TEXT
Definition: commctrl.h:2309
#define ImageList_AddIcon(himl, hicon)
Definition: commctrl.h:415
#define LVIF_IMAGE
Definition: commctrl.h:2310
#define LVIS_FOCUSED
Definition: commctrl.h:2318
#define ListView_GetItem(hwnd, pitem)
Definition: commctrl.h:2394
#define LVSIL_NORMAL
Definition: commctrl.h:2298
_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)
#define memset(x, y, z)
Definition: compat.h:39
LONG_PTR LPARAM
Definition: windef.h:208
BOOL WINAPI InvalidateRect(_In_opt_ HWND, _In_opt_ LPCRECT, _In_ BOOL)

Referenced by EnumWindowsProc().

◆ ApplicationPage_OnEndTask()

void ApplicationPage_OnEndTask ( void  )

Definition at line 827 of file applpage.c.

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}
BOOL WINAPI EndTask(HWND hWnd, BOOL fShutDown, BOOL fForce)
Definition: exit.c:207
unsigned int UINT
Definition: ndis.h:50
#define LVIF_STATE
Definition: commctrl.h:2312
#define VK_CONTROL
Definition: winuser.h:2203
SHORT WINAPI GetKeyState(_In_ int)

Referenced by ApplicationPageOnNotify(), ApplicationPageWndProc(), and TaskManagerWndProc().

◆ ApplicationPage_OnGotoProcess()

void ApplicationPage_OnGotoProcess ( void  )

Definition at line 851 of file applpage.c.

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}
int ProcGetIndexByProcessId(DWORD dwProcessId)
Definition: procpage.c:67
unsigned long DWORD
Definition: ntddk_ex.h:95
HWND hTabWnd
Definition: msconfig.c:22
HWND hProcessPageListCtrl
Definition: procpage.c:28
#define ListView_EnsureVisible(hwndLV, i, fPartialOK)
Definition: commctrl.h:2519
#define TabCtrl_SetCurFocus(hwnd, i)
Definition: commctrl.h:4102
DWORD WINAPI GetWindowThreadProcessId(HWND hWnd, PDWORD lpdwProcessId)

Referenced by TaskManagerWndProc().

◆ ApplicationPage_OnSwitchTo()

void ApplicationPage_OnSwitchTo ( void  )

Definition at line 802 of file applpage.c.

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}
HWND hMainWnd
Definition: magnifier.c:32
TASKMANAGER_SETTINGS TaskManagerSettings
Definition: taskmgr.c:37
VOID WINAPI SwitchToThisWindow(HWND hwnd, BOOL fAltTab)
Definition: window.c:82
#define SW_MINIMIZE
Definition: winuser.h:776
BOOL WINAPI ShowWindowAsync(_In_ HWND, _In_ int)

Referenced by ApplicationPageOnNotify(), ApplicationPageWndProc(), and TaskManagerWndProc().

◆ ApplicationPage_OnView()

void ApplicationPage_OnView ( DWORD  dwMode)

Definition at line 664 of file applpage.c.

665{
666 HMENU hMenu;
667 HMENU hViewMenu;
668
669 hMenu = GetMenu(hMainWnd);
670 hViewMenu = GetSubMenu(hMenu, 2);
671
674
676}
void UpdateApplicationListControlViewSetting(void)
Definition: applpage.c:232
#define ID_VIEW_LARGE
Definition: resource.h:33
#define ID_VIEW_DETAILS
Definition: resource.h:36
static const CLSID *static CLSID *static const GUID VARIANT VARIANT *static IServiceProvider DWORD *static HMENU
Definition: ordinal.c:63
#define MF_BYCOMMAND
Definition: winuser.h:202
HMENU WINAPI GetSubMenu(_In_ HMENU, _In_ int)
BOOL WINAPI CheckMenuRadioItem(_In_ HMENU, _In_ UINT, _In_ UINT, _In_ UINT, _In_ UINT)
HMENU WINAPI GetMenu(_In_ HWND)

Referenced by TaskManagerWndProc().

◆ ApplicationPage_OnWindowsBringToFront()

void ApplicationPage_OnWindowsBringToFront ( void  )

Definition at line 780 of file applpage.c.

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}

Referenced by TaskManagerWndProc().

◆ ApplicationPage_OnWindowsCascade()

void ApplicationPage_OnWindowsCascade ( void  )

Definition at line 751 of file applpage.c.

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}
HANDLE HWND
Definition: compat.h:19
#define HeapFree(x, y, z)
Definition: compat.h:735
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)

Referenced by TaskManagerWndProc().

◆ ApplicationPage_OnWindowsMaximize()

void ApplicationPage_OnWindowsMaximize ( void  )

Definition at line 730 of file applpage.c.

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}
#define SW_MAXIMIZE
Definition: winuser.h:772

Referenced by TaskManagerWndProc().

◆ ApplicationPage_OnWindowsMinimize()

void ApplicationPage_OnWindowsMinimize ( void  )

Definition at line 709 of file applpage.c.

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}

Referenced by TaskManagerWndProc().

◆ ApplicationPage_OnWindowsTile()

void ApplicationPage_OnWindowsTile ( DWORD  dwMode)

Definition at line 678 of file applpage.c.

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}
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)

Referenced by TaskManagerWndProc().

◆ ApplicationPageCompareFunc()

int CALLBACK ApplicationPageCompareFunc ( LPARAM  lParam1,
LPARAM  lParam2,
LPARAM  lParamSort 
)

Definition at line 891 of file applpage.c.

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}
static BOOL bSortAscending
Definition: applpage.c:27
_Check_return_ _CRTIMP int __cdecl wcscmp(_In_z_ const wchar_t *_Str1, _In_z_ const wchar_t *_Str2)

Referenced by ApplicationPageOnNotify().

◆ ApplicationPageOnNotify()

void ApplicationPageOnNotify ( WPARAM  wParam,
LPARAM  lParam 
)

Definition at line 526 of file applpage.c.

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}
void ApplicationPage_OnEndTask(void)
Definition: applpage.c:827
int CALLBACK ApplicationPageCompareFunc(LPARAM lParam1, LPARAM lParam2, LPARAM lParamSort)
Definition: applpage.c:891
void ApplicationPageShowContextMenu2(void)
Definition: applpage.c:615
void ApplicationPageShowContextMenu1(void)
Definition: applpage.c:597
void ApplicationPageUpdate(void)
Definition: applpage.c:475
void ApplicationPage_OnSwitchTo(void)
Definition: applpage.c:802
#define IDS_NOT_RESPONDING
Definition: resource.h:263
#define IDS_RUNNING
Definition: resource.h:264
LPARAM lParam
Definition: combotst.c:139
HMODULE WINAPI GetModuleHandleW(LPCWSTR lpModuleName)
Definition: loader.c:838
#define NM_DBLCLK
Definition: commctrl.h:131
#define ListView_GetHeader(hwnd)
Definition: commctrl.h:2651
#define LVN_GETDISPINFO
Definition: commctrl.h:3160
#define LV_DISPINFO
Definition: commctrl.h:3170
#define ListView_SortItems(hwndLV, _pfnCompare, _lPrm)
Definition: commctrl.h:2703
#define HDN_ITEMCLICK
Definition: commctrl.h:868
#define ListView_GetSelectedCount(hwndLV)
Definition: commctrl.h:2709
#define NM_RCLICK
Definition: commctrl.h:133
#define LVN_KEYDOWN
Definition: commctrl.h:3184
#define LVN_ITEMCHANGED
Definition: commctrl.h:3131
_CRTIMP wchar_t *__cdecl wcsncpy(wchar_t *_Dest, const wchar_t *_Source, size_t _Count)
#define _countof(array)
Definition: sndvol32.h:70
UINT code
Definition: winuser.h:3159
HWND hwndFrom
Definition: winuser.h:3157
int WINAPI LoadStringW(_In_opt_ HINSTANCE hInstance, _In_ UINT uID, _Out_writes_to_(cchBufferMax, return+1) LPWSTR lpBuffer, _In_ int cchBufferMax)
struct tagNMHDR * LPNMHDR
#define VK_DELETE
Definition: winuser.h:2233
__wchar_t WCHAR
Definition: xmlstorage.h:180
WCHAR * LPWSTR
Definition: xmlstorage.h:184

Referenced by ApplicationPageWndProc().

◆ ApplicationPageRefreshThread()

DWORD WINAPI ApplicationPageRefreshThread ( void lpParameter)

Definition at line 248 of file applpage.c.

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}
BOOL CALLBACK EnumWindowsProc(HWND hWnd, LPARAM lParam)
Definition: applpage.c:328
BOOL noApps
Definition: applpage.c:29
#define msg(x)
Definition: auth_time.c:54
BOOL WINAPI ImageList_Remove(HIMAGELIST himl, INT i)
Definition: imagelist.c:2568
_CRTIMP size_t __cdecl wcslen(_In_z_ const wchar_t *_Str)
#define ListView_DeleteAllItems(hwnd)
Definition: commctrl.h:2414
#define ListView_SetItem(hwnd, pitem)
Definition: commctrl.h:2401
#define ListView_DeleteItem(hwnd, i)
Definition: commctrl.h:2411
#define GetWindowLongPtr
Definition: treelist.c:73
TW_UINT32 TW_UINT16 TW_UINT16 MSG
Definition: twain.h:1829
int32_t INT
Definition: typedefs.h:58
#define GW_OWNER
Definition: winuser.h:766
BOOL WINAPI IsWindow(_In_opt_ HWND)
#define WS_EX_TOOLWINDOW
Definition: winuser.h:404
#define GetMessage
Definition: winuser.h:5790
BOOL WINAPI EnumWindows(_In_ WNDENUMPROC lpEnumFunc, _In_ LPARAM lParam)
#define WM_TIMER
Definition: winuser.h:1742
HWND WINAPI GetParent(_In_ HWND)
HWND WINAPI GetWindow(_In_ HWND, _In_ UINT)
BOOL WINAPI IsWindowVisible(_In_ HWND)
#define GWL_EXSTYLE
Definition: winuser.h:851

Referenced by ApplicationPageWndProc().

◆ ApplicationPageShowContextMenu1()

void ApplicationPageShowContextMenu1 ( void  )

Definition at line 597 of file applpage.c.

598{
599 HMENU hMenu;
600 HMENU hSubMenu;
601 POINT pt;
602
604
606 hSubMenu = GetSubMenu(hMenu, 0);
607
609
611
612 DestroyMenu(hMenu);
613}
#define IDR_APPLICATION_PAGE_CONTEXT1
Definition: resource.h:27
#define pt(x, y)
Definition: drawing.c:79
HINSTANCE hInst
Definition: dxdiag.c:13
BOOL WINAPI GetCursorPos(_Out_ LPPOINT)
Definition: cursoricon.c:2701
#define TPM_TOPALIGN
Definition: winuser.h:2383
#define TPM_LEFTALIGN
Definition: winuser.h:2377
#define TPM_LEFTBUTTON
Definition: winuser.h:2379
BOOL WINAPI DestroyMenu(_In_ HMENU)
BOOL WINAPI TrackPopupMenu(_In_ HMENU, _In_ UINT, _In_ int, _In_ int, _Reserved_ int, _In_ HWND, _Reserved_ LPCRECT)
#define MAKEINTRESOURCEW(i)
Definition: winuser.h:582
HMENU WINAPI LoadMenuW(_In_opt_ HINSTANCE, _In_ LPCWSTR)

Referenced by ApplicationPageOnNotify().

◆ ApplicationPageShowContextMenu2()

void ApplicationPageShowContextMenu2 ( void  )

Definition at line 615 of file applpage.c.

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}
#define ID_APPLICATION_PAGE_SWITCHTO
Definition: resource.h:170
#define IDR_APPLICATION_PAGE_CONTEXT2
Definition: resource.h:28
#define ID_WINDOWS_MINIMIZE
Definition: resource.h:156
#define ID_WINDOWS_MAXIMIZE
Definition: resource.h:157
#define ID_WINDOWS_BRINGTOFRONT
Definition: resource.h:159
#define ID_WINDOWS_TILEHORIZONTALLY
Definition: resource.h:154
#define ID_WINDOWS_TILEVERTICALLY
Definition: resource.h:155
#define ID_WINDOWS_CASCADE
Definition: resource.h:158
BOOL WINAPI SetMenuDefaultItem(_In_ HMENU, _In_ UINT, _In_ UINT)
#define MF_ENABLED
Definition: winuser.h:128
BOOL WINAPI EnableMenuItem(_In_ HMENU, _In_ UINT, _In_ UINT)
#define MF_GRAYED
Definition: winuser.h:129
#define MF_DISABLED
Definition: winuser.h:130

Referenced by ApplicationPageOnNotify().

◆ ApplicationPageUpdate()

void ApplicationPageUpdate ( void  )

Definition at line 475 of file applpage.c.

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}
HWND hApplicationPageEndTaskButton
Definition: applpage.c:22
HWND hApplicationPageSwitchToButton
Definition: applpage.c:23
#define TabCtrl_GetCurSel(hwnd)
Definition: commctrl.h:4063
BOOL WINAPI EnableWindow(_In_ HWND, _In_ BOOL)

Referenced by ApplicationPageOnNotify(), ApplicationPageRefreshThread(), and ApplicationPageWndProc().

◆ ApplicationPageWndProc()

INT_PTR CALLBACK ApplicationPageWndProc ( HWND  hDlg,
UINT  message,
WPARAM  wParam,
LPARAM  lParam 
)

Definition at line 89 of file applpage.c.

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}
static DWORD dwApplicationThread
Definition: applpage.c:43
DWORD WINAPI ApplicationPageRefreshThread(void *lpParameter)
Definition: applpage.c:248
static HANDLE hApplicationThread
Definition: applpage.c:42
HWND hApplicationPageNewTaskButton
Definition: applpage.c:24
void ApplicationPageOnNotify(WPARAM wParam, LPARAM lParam)
Definition: applpage.c:526
static int nApplicationPageWidth
Definition: applpage.c:25
void AppPageCleanup(void)
Definition: applpage.c:71
static int nApplicationPageHeight
Definition: applpage.c:26
INT GetSystemColorDepth()
Definition: misc.cpp:300
#define ID_FILE_NEW
Definition: resource.h:40
#define IDS_TAB_TASK
Definition: resource.h:205
#define IDS_TAB_STATUS
Definition: resource.h:206
#define IDC_ENDTASK
Definition: resource.h:36
#define IDC_SWITCHTO
Definition: resource.h:37
#define IDC_APPLIST
Definition: resource.h:40
#define IDC_NEWTASK
Definition: resource.h:38
WPARAM wParam
Definition: combotst.c:138
HIMAGELIST WINAPI ImageList_Create(INT cx, INT cy, UINT flags, INT cInitial, INT cGrow)
Definition: imagelist.c:804
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
void ProcessPage_OnEndProcess(void)
Definition: endproc.c:15
#define L(x)
Definition: ntvdm.h:50
#define LOWORD(l)
Definition: pedump.c:82
_Out_opt_ int _Out_opt_ int * cy
Definition: commctrl.h:586
#define ListView_InsertColumn(hwnd, iCol, pcol)
Definition: commctrl.h:2636
#define ListView_SetImageList(hwnd, himl, iImageList)
Definition: commctrl.h:2304
#define LVCF_WIDTH
Definition: commctrl.h:2587
_Out_opt_ int * cx
Definition: commctrl.h:585
#define ILC_MASK
Definition: commctrl.h:351
#define LVCF_TEXT
Definition: commctrl.h:2588
#define LV_COLUMN
Definition: commctrl.h:2547
#define WM_NOTIFY
Definition: richedit.h:61
Definition: tftpd.h:60
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
#define HIWORD(l)
Definition: typedefs.h:247
#define MAKEWPARAM(l, h)
Definition: winuser.h:4009
#define SWP_NOACTIVATE
Definition: winuser.h:1242
BOOL WINAPI GetWindowRect(_In_ HWND, _Out_ LPRECT)
BOOL WINAPI SetWindowPos(_In_ HWND, _In_opt_ HWND, _In_ int, _In_ int, _In_ int, _In_ int, _In_ UINT)
#define WM_SIZE
Definition: winuser.h:1611
#define SWP_NOMOVE
Definition: winuser.h:1244
#define WM_COMMAND
Definition: winuser.h:1740
#define SWP_NOSIZE
Definition: winuser.h:1245
#define SIZE_MINIMIZED
Definition: winuser.h:2506
#define WM_INITDIALOG
Definition: winuser.h:1739
int WINAPI MapWindowPoints(_In_opt_ HWND hWndFrom, _In_opt_ HWND hWndTo, _Inout_updates_(cPoints) LPPOINT lpPoints, _In_ UINT cPoints)
HWND WINAPI GetDlgItem(_In_opt_ HWND, _In_ int)
BOOL WINAPI SetWindowTextW(_In_ HWND, _In_opt_ LPCWSTR)
BOOL WINAPI GetClientRect(_In_ HWND, _Out_ LPRECT)
#define SWP_NOOWNERZORDER
Definition: winuser.h:1249
#define WM_DESTROY
Definition: winuser.h:1609
#define WM_KEYDOWN
Definition: winuser.h:1715
#define SWP_NOZORDER
Definition: winuser.h:1247
LRESULT WINAPI SendMessageW(_In_ HWND, _In_ UINT, _In_ WPARAM, _In_ LPARAM)

Referenced by OnCreate().

◆ AppPageCleanup()

void AppPageCleanup ( void  )

Definition at line 71 of file applpage.c.

72{
73 int i;
77 {
78 memset(&item, 0, sizeof(LV_ITEM));
79 item.mask = LVIF_PARAM;
80 item.iItem = i;
84 }
85}
TW_UINT32 TW_UINT16 TW_UINT16 TW_MEMREF pData
Definition: twain.h:1830

Referenced by ApplicationPageWndProc().

◆ EnumWindowsProc()

BOOL CALLBACK EnumWindowsProc ( HWND  hWnd,
LPARAM  lParam 
)

Definition at line 328 of file applpage.c.

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}
void AddOrUpdateHwnd(HWND hWnd, WCHAR *szTitle, HICON hIcon, BOOL bHung)
Definition: applpage.c:392
#define GET_ICON(type)
#define IDI_WINDOWSM
Definition: resource.h:26
#define IDI_WINDOW
Definition: resource.h:25
int(* FARPROC)()
Definition: compat.h:36
#define GetProcAddress(x, y)
Definition: compat.h:753
#define FAR
Definition: zlib.h:34
unsigned int(__cdecl typeof(jpeg_read_scanlines))(struct jpeg_decompress_struct *
Definition: typeof.h:31
static HICON
Definition: imagelist.c:84
__int3264 LONG_PTR
Definition: mstsclib_h.h:276
#define ICON_BIG
Definition: tnclass.cpp:51
#define ICON_SMALL
Definition: tnclass.cpp:48
#define __stdcall
Definition: typedefs.h:25
BOOL WINAPI IsHungAppWindow(HWND hwnd)
Definition: window.c:1875
int WINAPI GetWindowTextW(HWND hWnd, LPWSTR lpString, int nMaxCount)
Definition: window.c:1412
LONG_PTR LRESULT
Definition: windef.h:209
#define GetWindowLongPtrW
Definition: winuser.h:4829
#define GCL_HICONSM
Definition: winuser.h:667
#define GetClassLongPtrW
Definition: winuser.h:4564
#define GCL_HICON
Definition: winuser.h:666
HICON WINAPI LoadIconW(_In_opt_ HINSTANCE hInstance, _In_ LPCWSTR lpIconName)
Definition: cursoricon.c:2106

Referenced by ApplicationPageRefreshThread().

◆ GetSystemColorDepth()

static INT GetSystemColorDepth ( VOID  )
static

Definition at line 47 of file applpage.c.

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}
#define ILC_COLOR4
Definition: commctrl.h:354
#define ILC_COLOR16
Definition: commctrl.h:356
#define ILC_COLOR8
Definition: commctrl.h:355
#define ILC_COLOR32
Definition: commctrl.h:358
#define ILC_COLOR24
Definition: commctrl.h:357
#define ILC_COLOR
Definition: commctrl.h:352
DWORD dmBitsPerPel
Definition: wingdi.h:1595
WORD dmDriverExtra
Definition: wingdi.h:1569
WORD dmSize
Definition: wingdi.h:1568
DEVMODEA DEVMODE
Definition: wingdi.h:4418
#define ENUM_CURRENT_SETTINGS
Definition: winuser.h:179

◆ ProcGetIndexByProcessId()

int ProcGetIndexByProcessId ( DWORD  dwProcessId)

Definition at line 67 of file procpage.c.

68{
69 int i;
72
74 {
75 memset(&item, 0, sizeof(LV_ITEM));
76 item.mask = LVIF_PARAM;
77 item.iItem = i;
80 if (pData->ProcessId == dwProcessId)
81 {
82 return i;
83 }
84 }
85 return 0;
86}
struct PROCESS_PAGE_LIST_ITEM * LPPROCESS_PAGE_LIST_ITEM
#define LVITEM
Definition: commctrl.h:2375

Referenced by ApplicationPage_OnGotoProcess().

◆ RefreshApplicationPage()

void RefreshApplicationPage ( void  )

Definition at line 223 of file applpage.c.

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}
#define PostThreadMessage
Definition: winuser.h:5833

Referenced by OnCreate(), TaskManagerWndProc(), and UpdateApplicationListControlViewSetting().

◆ UpdateApplicationListControlViewSetting()

void UpdateApplicationListControlViewSetting ( void  )

Definition at line 232 of file applpage.c.

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}
void RefreshApplicationPage(void)
Definition: applpage.c:223
#define ID_VIEW_SMALL
Definition: resource.h:34
#define LVS_ICON
Definition: commctrl.h:2261
#define LVS_REPORT
Definition: commctrl.h:2262
#define LVS_SMALLICON
Definition: commctrl.h:2263
#define LVS_LIST
Definition: commctrl.h:2264
#define SetWindowLongPtrW
Definition: winuser.h:5346
#define GWL_STYLE
Definition: winuser.h:852

Referenced by ApplicationPage_OnView(), and ApplicationPageWndProc().

Variable Documentation

◆ bApplicationPageSelectionMade

BOOL bApplicationPageSelectionMade = FALSE

Definition at line 30 of file applpage.c.

Referenced by AddOrUpdateHwnd(), and ApplicationPageRefreshThread().

◆ bSortAscending

BOOL bSortAscending = TRUE
static

Definition at line 27 of file applpage.c.

Referenced by ApplicationPageCompareFunc(), ApplicationPageOnNotify(), and ListView_Sort().

◆ dwApplicationThread

DWORD dwApplicationThread
static

Definition at line 43 of file applpage.c.

Referenced by ApplicationPageWndProc(), and RefreshApplicationPage().

◆ hApplicationPage

HWND hApplicationPage

Definition at line 20 of file applpage.c.

Referenced by OnCreate(), OnMove(), OnSize(), and TaskManager_OnTabWndSelChange().

◆ hApplicationPageEndTaskButton

HWND hApplicationPageEndTaskButton

Definition at line 22 of file applpage.c.

Referenced by ApplicationPageUpdate(), and ApplicationPageWndProc().

◆ hApplicationPageListCtrl

◆ hApplicationPageNewTaskButton

HWND hApplicationPageNewTaskButton

Definition at line 24 of file applpage.c.

Referenced by ApplicationPageWndProc().

◆ hApplicationPageSwitchToButton

HWND hApplicationPageSwitchToButton

Definition at line 23 of file applpage.c.

Referenced by ApplicationPageUpdate(), and ApplicationPageWndProc().

◆ hApplicationThread

HANDLE hApplicationThread = NULL
static

Definition at line 42 of file applpage.c.

Referenced by ApplicationPageWndProc().

◆ nApplicationPageHeight

int nApplicationPageHeight
static

Definition at line 26 of file applpage.c.

Referenced by ApplicationPageWndProc().

◆ nApplicationPageWidth

int nApplicationPageWidth
static

Definition at line 25 of file applpage.c.

Referenced by ApplicationPageWndProc().

◆ noApps

BOOL noApps

Definition at line 29 of file applpage.c.

Referenced by ApplicationPageRefreshThread(), and EnumWindowsProc().