mirror of
https://github.com/reactos/reactos.git
synced 2025-08-03 18:35:41 +00:00
[TASKMGR]: Clarify the icon handle retrieval, getting rid also of that xhIcon variable.
CORE-8148 #resolve #comment The original code was ok, but was not very clear. svn path=/trunk/; revision=63941
This commit is contained in:
parent
1270840cc9
commit
da06be6a77
1 changed files with 8 additions and 9 deletions
|
@ -332,12 +332,10 @@ BOOL CALLBACK EnumWindowsProc(HWND hWnd, LPARAM lParam)
|
||||||
WCHAR szText[260];
|
WCHAR szText[260];
|
||||||
BOOL bLargeIcon;
|
BOOL bLargeIcon;
|
||||||
BOOL bHung = FALSE;
|
BOOL bHung = FALSE;
|
||||||
HICON* xhIcon = (HICON*)&hIcon;
|
|
||||||
|
|
||||||
typedef int (FAR __stdcall *IsHungAppWindowProc)(HWND);
|
typedef int (FAR __stdcall *IsHungAppWindowProc)(HWND);
|
||||||
IsHungAppWindowProc IsHungAppWindow;
|
IsHungAppWindowProc IsHungAppWindow;
|
||||||
|
|
||||||
|
|
||||||
/* Skip our window */
|
/* Skip our window */
|
||||||
if (hWnd == hMainWnd)
|
if (hWnd == hMainWnd)
|
||||||
return TRUE;
|
return TRUE;
|
||||||
|
@ -357,20 +355,21 @@ BOOL CALLBACK EnumWindowsProc(HWND hWnd, LPARAM lParam)
|
||||||
}
|
}
|
||||||
|
|
||||||
noApps = FALSE;
|
noApps = FALSE;
|
||||||
|
|
||||||
/* Get the icon for this window */
|
/* Get the icon for this window */
|
||||||
hIcon = NULL;
|
hIcon = NULL;
|
||||||
SendMessageTimeoutW(hWnd, WM_GETICON,bLargeIcon ? ICON_BIG /*1*/ : ICON_SMALL /*0*/, 0, 0, 1000, (PDWORD_PTR)xhIcon);
|
SendMessageTimeoutW(hWnd, WM_GETICON, bLargeIcon ? ICON_BIG : ICON_SMALL, 0, 0, 1000, (PDWORD_PTR)&hIcon);
|
||||||
|
|
||||||
if (!hIcon)
|
if (!hIcon)
|
||||||
{
|
{
|
||||||
|
/* We failed, try to retrieve other icons... */
|
||||||
hIcon = (HICON)(LONG_PTR)GetClassLongPtrW(hWnd, bLargeIcon ? GCL_HICON : GCL_HICONSM);
|
hIcon = (HICON)(LONG_PTR)GetClassLongPtrW(hWnd, bLargeIcon ? GCL_HICON : GCL_HICONSM);
|
||||||
if (!hIcon) hIcon = (HICON)(LONG_PTR)GetClassLongPtrW(hWnd, bLargeIcon ? GCL_HICONSM : GCL_HICON);
|
if (!hIcon) hIcon = (HICON)(LONG_PTR)GetClassLongPtrW(hWnd, bLargeIcon ? GCL_HICONSM : GCL_HICON);
|
||||||
if (!hIcon) SendMessageTimeoutW(hWnd, WM_QUERYDRAGICON, 0, 0, 0, 1000, (PDWORD_PTR)xhIcon);
|
if (!hIcon) SendMessageTimeoutW(hWnd, WM_QUERYDRAGICON, 0, 0, 0, 1000, (PDWORD_PTR)&hIcon);
|
||||||
if (!hIcon) SendMessageTimeoutW(hWnd, WM_GETICON, bLargeIcon ? ICON_SMALL /*0*/ : ICON_BIG /*1*/, 0, 0, 1000, (PDWORD_PTR)xhIcon);
|
if (!hIcon) SendMessageTimeoutW(hWnd, WM_GETICON, bLargeIcon ? ICON_SMALL : ICON_BIG, 0, 0, 1000, (PDWORD_PTR)&hIcon);
|
||||||
}
|
|
||||||
|
|
||||||
if (!hIcon)
|
/* If we still do not have any icon, load the default one */
|
||||||
hIcon = LoadIconW(hInst, bLargeIcon ? MAKEINTRESOURCEW(IDI_WINDOW) : MAKEINTRESOURCEW(IDI_WINDOWSM));
|
if (!hIcon) hIcon = LoadIconW(hInst, bLargeIcon ? MAKEINTRESOURCEW(IDI_WINDOW) : MAKEINTRESOURCEW(IDI_WINDOWSM));
|
||||||
|
}
|
||||||
|
|
||||||
bHung = FALSE;
|
bHung = FALSE;
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue