22 #include <commoncontrols.h> 27 #define DEBUG_SHELL_HOOK 0 29 #define MAX_TASKS_COUNT (0x7FFF) 30 #define TASK_ITEM_ARRAY_ALLOC 64 43 { HSHELL_WINDOWACTIVATED,
L"HSHELL_WINDOWACTIVATED" },
44 { HSHELL_GETMINRECT,
L"HSHELL_GETMINRECT" },
45 { HSHELL_REDRAW,
L"HSHELL_REDRAW" },
46 { HSHELL_TASKMAN,
L"HSHELL_TASKMAN" },
47 { HSHELL_LANGUAGE,
L"HSHELL_LANGUAGE" },
48 { HSHELL_SYSMENU,
L"HSHELL_SYSMENU" },
49 { HSHELL_ENDTASK,
L"HSHELL_ENDTASK" },
50 { HSHELL_ACCESSIBILITYSTATE,
L"HSHELL_ACCESSIBILITYSTATE" },
51 { HSHELL_APPCOMMAND,
L"HSHELL_APPCOMMAND" },
52 { HSHELL_WINDOWREPLACED,
L"HSHELL_WINDOWREPLACED" },
53 { HSHELL_WINDOWREPLACING,
L"HSHELL_WINDOWREPLACING" },
147 CLSCTX_INPROC_SERVER,
161 hr = pnotification->Show(
NULL, 0);
219 if (bHorizontal || uiBtnsPerLine > 1)
224 if (!bHorizontal || uiRows > 1)
250 tbbi.cbSize =
sizeof(tbbi);
252 tbbi.idCommand = iCommandId;
299 public CWindowImpl < CTaskSwitchWnd, CWindow, CControlWinTraits >,
363 TRACE(
"Tasks dump:\n");
367 while (CurrentGroup !=
NULL)
373 while (CurrentTaskItem != LastTaskItem)
375 if (CurrentTaskItem->
Group == CurrentGroup)
377 TRACE(
" + Task hwnd: 0x%p Index: %d\n", CurrentTaskItem->
hWnd, CurrentTaskItem->
Index);
382 CurrentGroup = CurrentGroup->
Next;
387 while (CurrentTaskItem != LastTaskItem)
391 TRACE(
"- Task hwnd: 0x%p Index: %d\n", CurrentTaskItem->
hWnd, CurrentTaskItem->
Index);
400 while (CurrentTaskItem != LastTaskItem)
402 TRACE(
"- Task hwnd: 0x%p Index: %d\n", CurrentTaskItem->
hWnd, CurrentTaskItem->
Index);
415 int offset = bInserted ? +1 : -1;
421 while (CurrentGroup !=
NULL)
424 CurrentGroup->
Index >= iIndex)
430 CurrentGroup->
Index = NewIndex;
433 CurrentGroup->
Index = -1;
436 CurrentGroup = CurrentGroup->
Next;
443 while (CurrentTaskItem != LastTaskItem)
445 CurrentGroup = CurrentTaskItem->
Group;
446 if (CurrentGroup !=
NULL)
449 CurrentTaskItem->
Index >= iIndex)
451 goto UpdateTaskItemBtn;
454 else if (CurrentTaskItem->
Index >= iIndex)
461 CurrentTaskItem->
Index = NewIndex;
464 CurrentTaskItem->
Index = -1;
474 ASSERT(TaskGroup->Index >= 0);
478 return TaskGroup->Index;
483 ASSERT(TaskGroup->dwTaskCount > 0);
484 ASSERT(TaskGroup->IsCollapsed);
485 ASSERT(TaskGroup->Index >= 0);
493 #define GET_ICON(type) \ 494 SendMessageTimeout(hwnd, WM_GETICON, (type), 0, SMTO_NOTIMEOUTIFNOTHUNG, 100, (PDWORD_PTR)&hIcon) 528 ASSERT(TaskItem->Index >= 0);
530 tbbi.cbSize =
sizeof(tbbi);
536 if (TaskItem->RenderFlashed)
556 tbbi.iImage = TaskItem->IconIndex;
560 TaskItem->Index = -1;
564 TRACE(
"Updated button %d for hwnd 0x%p\n", TaskItem->Index, TaskItem->hWnd);
565 return TaskItem->Index;
573 if (TaskItem->IconIndex == -1)
576 tbbi.cbSize =
sizeof(tbbi);
581 while (currentTaskItem != LastItem)
583 if (currentTaskItem->
IconIndex > TaskItem->IconIndex)
586 tbbi.iImage = currentTaskItem->
IconIndex;
612 while (TaskItem != LastTaskItem)
614 if (TaskItem->
Group == TaskGroup)
616 if ((NewTaskItem !=
NULL && TaskItem != NewTaskItem) || NewTaskItem ==
NULL)
618 FoundTaskItem = TaskItem;
621 if (--dwTaskCount == 0)
631 return FoundTaskItem;
641 TaskGroup = TaskItem->Group;
644 if (TaskGroup !=
NULL)
652 if (LastTaskItem !=
NULL)
657 return LastTaskItem->
Index + 1;
666 if (LastTaskItem !=
NULL)
670 return LastTaskItem->
Index + 1;
685 if (TaskItem->Index >= 0)
690 if (TaskItem->Group !=
NULL &&
691 TaskItem->Group->IsCollapsed)
702 tbBtn.
iBitmap = TaskItem->IconIndex;
705 tbBtn.
dwData = TaskItem->Index;
723 TRACE(
"Added button %d for hwnd 0x%p\n", iIndex, TaskItem->hWnd);
725 TaskItem->Index = iIndex;
743 TaskGroup = TaskItem->Group;
745 if (TaskItem->Index >= 0)
753 iIndex = TaskItem->Index;
756 TaskItem->Index = -1;
781 TRACE(
"Cannot get process id of hwnd 0x%p\n",
hWnd);
788 while (TaskGroup !=
NULL)
796 PrevLink = &TaskGroup->
Next;
797 TaskGroup = TaskGroup->
Next;
804 if (TaskGroup !=
NULL)
808 TaskGroup->
Index = -1;
811 *PrevLink = TaskGroup;
821 TaskGroup = TaskItem->Group;
822 if (TaskGroup !=
NULL)
825 if (dwNewTaskCount == 0)
830 while (CurrentGroup != TaskGroup)
832 PrevLink = &CurrentGroup->
Next;
833 CurrentGroup = CurrentGroup->
Next;
837 ASSERT(TaskGroup == CurrentGroup);
838 *PrevLink = TaskGroup->
Next;
846 TaskGroup->
Index >= 0)
848 if (dwNewTaskCount > 1)
869 while (TaskItem != LastItem)
895 while (TaskItem != LastItem)
897 TaskGroup = TaskItem->
Group;
898 if (TaskGroup !=
NULL)
905 DWORD dwProcessIdTask;
909 dwProcessIdTask == dwProcessId)
947 SIZE_T NewArrayLength, ActiveTaskItemIndex;
955 if (NewArray !=
NULL)
1013 if (TaskItem !=
NULL)
1014 TaskGroup = TaskItem->Group;
1017 TaskGroup !=
NULL &&
1024 if (CurrentTaskItem !=
NULL)
1028 if (CurrentTaskItem == TaskItem)
1031 CurrentTaskGroup = CurrentTaskItem->
Group;
1034 CurrentTaskGroup !=
NULL &&
1037 if (CurrentTaskGroup == TaskGroup)
1045 if (CurrentTaskItem->
Index >= 0)
1054 if (TaskItem !=
NULL && TaskItem->Index >= 0)
1058 else if (TaskItem ==
NULL)
1060 TRACE(
"Active TaskItem now NULL\n");
1070 while (TaskItem != LastItem)
1086 while (CurrentGroup !=
NULL)
1091 CurrentGroup = CurrentGroup->
Next;
1094 return CurrentGroup;
1105 if (TaskItem ==
NULL)
1109 if (TaskItem !=
NULL)
1113 TaskItem->
Index = -1;
1123 return TaskItem !=
NULL;
1128 if (TaskItem !=
NULL)
1130 TRACE(
"Activate window 0x%p on button %d\n", TaskItem->hWnd, TaskItem->Index);
1148 if (TaskItem ==
NULL)
1153 if (TaskItem ==
NULL)
1155 WARN(
"Activate window 0x%p, could not find task\n",
hWnd);
1167 if (TaskItem !=
NULL)
1169 TRACE(
"Delete window 0x%p on button %d\n",
hWnd, TaskItem->
Index);
1195 TaskItem->RenderFlashed = 1;
1204 if (TaskItem !=
NULL)
1206 TRACE(
"Flashing window 0x%p on button %d\n",
hWnd, TaskItem->
Index);
1218 TaskGroup = TaskItem->Group;
1225 else if (TaskItem->Index >= 0)
1227 goto UpdateTaskItem;
1230 else if (TaskItem->Index >= 0)
1233 TaskItem->RenderFlashed = 0;
1244 if (TaskItem !=
NULL)
1256 UINT uiRows, uiMax, uiMin, uiBtnsPerLine,
ui;
1270 while (TaskItem != LastTaskItem)
1284 Horizontal =
m_Tray->IsHorizontal();
1289 tbm.
cbSize =
sizeof(tbm);
1309 if (!bRedrawDisabled)
1315 uiRows, uiBtnsPerLine);
1324 NewBtnSize = (rcClient.
right - (uiBtnsPerLine * cxButtonSpacing)) / uiBtnsPerLine;
1326 if (NewBtnSize < (
LONG) uiMin)
1328 if (NewBtnSize >(
LONG)uiMax)
1332 uiBtnsPerLine = rcClient.
right / (NewBtnSize + cxButtonSpacing);
1333 if (uiBtnsPerLine == 0)
1338 NewBtnSize = uiMax = rcClient.
right;
1348 tbbi.
cbSize =
sizeof(tbbi);
1350 tbbi.
cx = (
INT) NewBtnSize;
1357 if ((
ui + 1) % uiBtnsPerLine == 0)
1410 return This->EnumWindowsProc(
hWnd);
1415 TRACE(
"Refreshing window list...\n");
1422 TRACE(
"OmThemeChanged\n");
1482 switch (GET_APPCOMMAND_LPARAM(
lParam))
1484 case APPCOMMAND_BROWSER_SEARCH:
1489 case APPCOMMAND_BROWSER_HOME:
1490 case APPCOMMAND_LAUNCH_MAIL:
1492 TRACE(
"Shell app command %d unhandled!\n", (
INT) GET_APPCOMMAND_LPARAM(
lParam));
1510 TRACE(
"Received shell hook message: wParam=%08lx, lParam=%08lx\n",
wParam,
lParam);
1514 case HSHELL_APPCOMMAND:
1528 case HSHELL_WINDOWACTIVATED:
1540 case HSHELL_TASKMAN:
1549 case HSHELL_LANGUAGE:
1550 case HSHELL_SYSMENU:
1551 case HSHELL_ENDTASK:
1552 case HSHELL_ACCESSIBILITYSTATE:
1553 case HSHELL_WINDOWREPLACED:
1554 case HSHELL_WINDOWREPLACING:
1556 case HSHELL_GETMINRECT:
1559 #if DEBUG_SHELL_HOOK 1561 for (
i = 0, found = 0;
i !=
_countof(hshell_msg);
i++)
1565 TRACE(
"Shell message %ws unhandled (lParam = 0x%p)!\n", hshell_msg[
i].msg_name,
lParam);
1595 TRACE(
"Valid button clicked. HWND=%p, IsMinimized=%s, IsActive=%s...\n",
1596 TaskItem->hWnd, bIsMinimized ?
"Yes" :
"No", bIsActive ?
"Yes" :
"No");
1598 if (!bIsMinimized && bIsActive)
1601 TRACE(
"Valid button clicked. App window Minimized.\n");
1606 TRACE(
"Valid button clicked. App window Restored.\n");
1632 if (TaskItem !=
NULL)
1657 ERR(
"HandleTaskItemRightClick detected the window did not become foreground\n");
1684 if (TaskItem !=
NULL)
1702 if (TaskGroup ==
NULL && TaskItem !=
NULL)
1716 nmtbcd->nmcd.rc.left,
1717 nmtbcd->nmcd.rc.top,
1718 nmtbcd->nmcd.rc.right,
1719 nmtbcd->nmcd.rc.bottom);
1730 else if (TaskGroup !=
NULL)
1891 RECT rcItem, rcToolbar;
1897 *prcMinRect = rcItem;
1928 if (
wParam == SPI_SETNONCLIENTMETRICS)
WORD m_AllocatedTaskItems
LRESULT OnKludgeItemRect(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL &bHandled)
VOID HandleTaskGroupRightClick(IN OUT PTASK_GROUP TaskGroup)
VOID DeleteTaskItem(IN OUT PTASK_ITEM TaskItem)
INT WINAPI ImageList_ReplaceIcon(HIMAGELIST himl, INT nIndex, HICON hIcon)
LRESULT OnMouseActivate(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL &bHandled)
LRESULT OnCommand(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL &bHandled)
BOOL WINAPI RegisterShellHook(HWND hWnd, DWORD dwType)
VOID HandleTaskItemClick(IN OUT PTASK_ITEM TaskItem)
HRESULT Initialize(IN HWND hWndParent, IN OUT ITrayWindow *tray)
DWORD WINAPI GetWindowThreadProcessId(HWND hWnd, PDWORD lpdwProcessId)
BOOL WINAPI TerminateThread(IN HANDLE hThread, IN DWORD dwExitCode)
BOOL WINAPI OffsetRect(_Inout_ LPRECT, _In_ int, _In_ int)
LRESULT OnNcHitTest(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL &bHandled)
PTASK_GROUP FindTaskGroupByIndex(IN INT Index)
BOOL WINAPI Rectangle(_In_ HDC, _In_ int, _In_ int, _In_ int, _In_ int)
BOOL ShowWindowAsync(int nCmdShow)
#define TBSTYLE_TRANSPARENT
HWND Create(HWND hWndParent, _U_RECT rect=NULL, LPCTSTR szWindowName=NULL, DWORD dwStyle=0, DWORD dwExStyle=0, _U_MENUorID MenuOrID=0U, LPVOID lpCreateParam=NULL)
PTASK_ITEM m_ActiveTaskItem
HRESULT WINAPI GetWindow(HWND *phwnd)
#define DECLARE_WND_CLASS_EX(WndClassName, style, bkgnd)
LRESULT OnShellHook(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL &bHandled)
#define HSHELL_WINDOWCREATED
BOOL HandleAppCommand(IN WPARAM wParam, IN LPARAM lParam)
static HANDLE ULONG_PTR dwData
HGDIOBJ WINAPI SelectObject(_In_ HDC, _In_ HGDIOBJ)
#define CDDS_ITEMPREPAINT
static HTHEME(WINAPI *pOpenThemeDataEx)(HWND
#define DECLARE_NOT_AGGREGATABLE(x)
LRESULT OnDestroy(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL &bHandled)
BOOL CALLBACK EnumWindowsProc(IN HWND hWnd)
VOID RedrawTaskItem(IN OUT PTASK_ITEM TaskItem)
BOOL FlashTask(IN HWND hWnd)
LRESULT OnSetFont(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL &bHandled)
BOOL DeleteTaskItemButton(IN OUT PTASK_ITEM TaskItem)
VOID RemoveIcon(IN PTASK_ITEM TaskItem)
LRESULT OnSettingChanged(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL &bHandled)
BOOL WINAPI GetCursorPos(_Out_ LPPOINT)
struct _TASK_GROUP * PTASK_GROUP
LRESULT OnContextMenu(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL &bHandled)
void StartThread(PBALLOON_HARD_ERROR_DATA pData)
#define IID_PPV_ARG(Itype, ppType)
#define TASK_ITEM_ARRAY_ALLOC
HRESULT WINAPI DrawThemeBackground(HTHEME hTheme, HDC hdc, int iPartId, int iStateId, const RECT *pRect, const RECT *pClipRect)
PTASK_ITEM FindTaskItem(IN HWND hWnd)
DWORD WINAPI GetSysColor(_In_ int)
LRESULT DefWindowProc(UINT uMsg, WPARAM wParam, LPARAM lParam)
struct _TASK_ITEM TASK_ITEM
PTASK_ITEM AllocTaskItem()
BOOL HandleButtonClick(IN WORD wIndex)
INT UpdateTaskItemButton(IN PTASK_ITEM TaskItem)
VOID CheckActivateTaskItem(IN OUT PTASK_ITEM TaskItem)
LRESULT OnEraseBackground(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL &bHandled)
struct _TASK_ITEM * PTASK_ITEM
DWORD WINAPI WaitForSingleObject(IN HANDLE hHandle, IN DWORD dwMilliseconds)
BOOL ActivateTask(IN HWND hWnd)
BOOL SubclassWindow(HWND hWnd)
BOOL ActivateTaskItem(IN OUT PTASK_ITEM TaskItem OPTIONAL)
HIMAGELIST WINAPI ImageList_Create(INT cx, INT cy, UINT flags, INT cInitial, INT cGrow)
struct _BALLOON_HARD_ERROR_DATA * PBALLOON_HARD_ERROR_DATA
VOID UpdateIndexesAfter(IN INT iIndex, BOOL bInserted)
#define TWM_SETTINGSCHANGED
BOOL HandleButtonRightClick(IN WORD wIndex)
#define WM_POPUPSYSTEMMENU
HANDLE WINAPI LoadImageW(_In_opt_ HINSTANCE, _In_ LPCWSTR, _In_ UINT, _In_ int, _In_ int, _In_ UINT)
BOOL WINAPI IsAppThemed(void)
BOOL RedrawTask(IN HWND hWnd)
struct _TASK_GROUP * Next
UINT_PTR SetTimer(UINT_PTR nIDEvent, UINT nElapse, void(CALLBACK *lpfnTimer)(HWND, UINT, UINT_PTR, DWORD)=NULL)
BOOL GetClientRect(LPRECT lpRect) const
HRESULT WINAPI SetWindowTheme(_In_ HWND hwnd, _In_ LPCWSTR pszSubAppName, _In_ LPCWSTR pszSubIdList)
#define TBMF_BUTTONSPACING
BOOL WINAPI SHFindFiles(PCIDLIST_ABSOLUTE pidlFolder, PCIDLIST_ABSOLUTE pidlSaveFile)
_Out_opt_ int _Out_opt_ int * cy
BOOL WINAPI IsRectEmpty(_In_ LPCRECT)
VOID HandleTaskGroupClick(IN OUT PTASK_GROUP TaskGroup)
virtual ~CTaskSwitchWnd()
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)
TaskbarSettings g_TaskbarSettings
#define TWM_OPENSTARTMENU
LRESULT OnSize(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL &bHandled)
#define CDRF_NOTIFYITEMDRAW
PTASK_ITEM FindLastTaskItemOfGroup(IN PTASK_GROUP TaskGroup OPTIONAL, IN PTASK_ITEM NewTaskItem OPTIONAL)
#define COLOR_HIGHLIGHTTEXT
VOID RemoveTaskFromTaskGroup(IN OUT PTASK_ITEM TaskItem)
static DWORD CALLBACK s_HardErrorThreadProc(IN OUT LPVOID lpParameter)
HRESULT WINAPI DrawThemeParentBackground(HWND hwnd, HDC hdc, RECT *prc)
BOOL DeleteTask(IN HWND hWnd)
PVOID WINAPI HeapAlloc(HANDLE, DWORD, SIZE_T)
static VOID CALLBACK SendAsyncProc(HWND hwnd, UINT uMsg, DWORD_PTR dwData, LRESULT lResult)
_In_ WDFCOLLECTION _In_ ULONG Index
#define FAILED_UNEXPECTEDLY(hr)
#define PostThreadMessage
HRESULT WINAPI ContextSensitiveHelp(BOOL fEnterMode)
BOOL WINAPI InvalidateRect(_In_opt_ HWND, _In_opt_ LPCRECT, _In_ BOOL)
HICON GetWndIcon(HWND hwnd)
int WINAPI GetSystemMetrics(_In_ int)
LRESULT OnNotify(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL &bHandled)
BOOL WINAPI EnumWindows(_In_ WNDENUMPROC lpEnumFunc, _In_ LPARAM lParam)
HTHEME WINAPI OpenThemeData(HWND hwnd, LPCWSTR classlist)
const WCHAR szRunningApps[]
struct _TASK_GROUP TASK_GROUP
BOOL WINAPI ImageList_Remove(HIMAGELIST himl, INT i)
BOOL ScreenToClient(LPPOINT lpPoint) const
PTASK_ITEM FindOtherTaskItem(IN HWND hWnd)
struct tagCOPYDATASTRUCT * PCOPYDATASTRUCT
INT AddTaskItemButton(IN OUT PTASK_ITEM TaskItem)
LRESULT OnCopyData(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL &bHandled)
LONG GetWindowLong(int nIndex) const
LRESULT HandleToolbarNotification(IN const NMHDR *nmh)
const WCHAR szTaskSwitchWndClass[]
BOOL AddTask(IN HWND hWnd)
#define InterlockedExchange
#define HSHELL_WINDOWDESTROYED
HRESULT WINAPI DECLSPEC_HOTPATCH CoCreateInstance(REFCLSID rclsid, LPUNKNOWN pUnkOuter, DWORD dwClsContext, REFIID iid, LPVOID *ppv)
HRESULT WINAPI DECLSPEC_HOTPATCH OleInitialize(LPVOID reserved)
LRESULT OnTaskbarSettingsChanged(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL &bHandled)
VOID FreeTaskItem(IN OUT PTASK_ITEM TaskItem)
UINT WINAPI RegisterWindowMessageW(_In_ LPCWSTR)
#define TSWM_UPDATETASKBARPOS
HRESULT CTaskSwitchWnd_CreateInstance(IN HWND hWndParent, IN OUT ITrayWindow *Tray, REFIID riid, void **ppv)
struct _NMTBCUSTOMDRAW * LPNMTBCUSTOMDRAW
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
INT CalculateTaskItemNewButtonIndex(IN PTASK_ITEM TaskItem)
BOOL PostMessage(UINT message, WPARAM wParam=0, LPARAM lParam=0)
VOID HandleTaskItemRightClick(IN OUT PTASK_ITEM TaskItem)
INT WINAPI InternalGetWindowText(_In_ HWND hWnd, _Out_writes_to_(cchMaxCount, return+1) LPWSTR pString, _In_ int cchMaxCount)
BOOL WINAPI SendMessageCallbackW(_In_ HWND, _In_ UINT, _In_ WPARAM, _In_ LPARAM, _In_ SENDASYNCPROC, _In_ ULONG_PTR)
#define COM_INTERFACE_ENTRY_IID(iid, x)
LRESULT WINAPI SendMessageW(_In_ HWND, _In_ UINT, _In_ WPARAM, _In_ LPARAM)
LRESULT HandleItemPaint(IN OUT NMTBCUSTOMDRAW *nmtbcd)
INT UpdateTaskGroupButton(IN PTASK_GROUP TaskGroup)
LRESULT OnThemeChanged(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL &bHandled)
#define TBCDRF_NOBACKGROUND
LRESULT OnCreate(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL &bHandled)
HWND WINAPI GetForegroundWindow(void)
PTASK_ITEM FindTaskItemByIndex(IN INT Index)
VOID FlashTaskItem(IN OUT PTASK_ITEM TaskItem)
#define BEGIN_MSG_MAP(theClass)
CComPtr< ITrayWindow > m_Tray
#define DECLARE_PROTECT_FINAL_CONSTRUCT()
#define MESSAGE_HANDLER(msg, func)
#define HSHELL_RUDEAPPACTIVATED
VOID ExpandTaskGroup(IN PTASK_GROUP TaskGroup)
BOOL WINAPI PostMessageW(_In_opt_ HWND, _In_ UINT, _In_ WPARAM, _In_ LPARAM)
LRESULT OnUpdateTaskbarPos(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL &bHandled)
BOOL WINAPI ImageList_GetIconSize(HIMAGELIST himl, INT *cx, INT *cy)
#define HSHELL_ACTIVATESHELLWINDOW
const GUID IID_IOleWindow
LRESULT SendMessage(UINT message, WPARAM wParam=0, LPARAM lParam=0)
static BOOL CALLBACK s_EnumWindowsProc(IN HWND hWnd, IN LPARAM lParam)
BOOL WINAPI IsThemeActive(void)
BOOL WINAPI SetForegroundWindow(_In_ HWND)
#define MAKEINTRESOURCEW(i)
BOOL WINAPI ScreenToClient(_In_ HWND, _Inout_ LPPOINT)
TW_UINT32 TW_UINT16 TW_UINT16 TW_MEMREF pData
BOOL WINAPI ImageList_SetIconSize(HIMAGELIST himl, INT cx, INT cy)
LRESULT OnTimer(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL &bHandled)
HBRUSH WINAPI GetSysColorBrush(_In_ int)
void WINAPI DECLSPEC_HOTPATCH OleUninitialize(void)
CHardErrorThread m_HardErrorThread
VOID WINAPI SwitchToThisWindow(HWND hwnd, BOOL fAltTab)
INT GetWndTextFromTaskItem(IN PTASK_ITEM TaskItem, LPWSTR szBuf, DWORD cchBuf)
#define HeapFree(x, y, z)
HRESULT WINAPI CloseThemeData(HTHEME hTheme)
PTASK_GROUP AddToTaskGroup(IN HWND hWnd)
VOID UpdateButtonsSize(IN BOOL bRedrawDisabled)
BOOL IsWindowVisible() const
PULONG MinorVersion OPTIONAL