23 #include <commoncontrols.h> 29 #define WM_APP_TRAYDESTROY (WM_APP + 0x100) 31 #define TIMER_ID_AUTOHIDE 1 32 #define TIMER_ID_MOUSETRACK 2 33 #define MOUSETRACK_INTERVAL 100 34 #define AUTOHIDE_DELAY_HIDE 2000 35 #define AUTOHIDE_DELAY_SHOW 50 36 #define AUTOHIDE_INTERVAL_ANIMATING 10 38 #define AUTOHIDE_SPEED_SHOW 10 39 #define AUTOHIDE_SPEED_HIDE 1 41 #define AUTOHIDE_HIDDEN 0 42 #define AUTOHIDE_SHOWING 1 43 #define AUTOHIDE_SHOWN 2 44 #define AUTOHIDE_HIDING 3 46 #define IDHK_RUN 0x1f4 47 #define IDHK_MINIMIZE_ALL 0x1f5 48 #define IDHK_RESTORE_ALL 0x1f6 49 #define IDHK_HELP 0x1f7 50 #define IDHK_EXPLORE 0x1f8 51 #define IDHK_FIND 0x1f9 52 #define IDHK_FIND_COMPUTER 0x1fa 53 #define IDHK_NEXT_TASK 0x1fb 54 #define IDHK_PREV_TASK 0x1fc 55 #define IDHK_SYS_PROPERTIES 0x1fd 56 #define IDHK_DESKTOP 0x1fe 57 #define IDHK_PAGER 0x1ff 136 RECT rcWindow, rcMonitor, rcIntersect;
137 rcMonitor =
info.rcMonitor;
162 if (ei.hwndFound &&
FALSE)
164 WCHAR szClass[64], szText[64];
169 return ei.hwndFound !=
NULL;
178 const GUID IID_IShellDesktopTray = { 0x213e2df9, 0x9a14, 0x4328, { 0x99, 0xb1, 0x69, 0x61, 0xf9, 0x14, 0x3c, 0xe9 } };
229 NONCLIENTMETRICS ncm = {
sizeof(ncm)};
236 ncm.lfCaptionFont.lfWeight =
FW_BOLD;
264 WCHAR szStartCaption[32];
270 wcscpy(szStartCaption,
L"Start");
313 public CWindowImpl<CTrayShowDesktopButton, CWindow, CControlWinTraits>
328 #define SHOW_DESKTOP_MINIMUM_WIDTH 3 350 if (nTime1 - nTime0 >= 600)
358 #define TSDB_CLICK (WM_USER + 100) 410 #define SHOW_DESKTOP_TIMER_ID 999 411 #define SHOW_DESKTOP_TIMER_INTERVAL 200 507 public CWindowImpl < CTrayWindow, CWindow, CControlWinTraits >,
509 public IShellDesktopTray,
625 WCHAR szCommand[256];
626 WCHAR *pszParameters;
636 pszParameters =
wcschr(szCommand,
L'>');
688 CStringW strDefaultDir, strHomePath;
691 strDefaultDir += strHomePath;
704 return This->RunFileDlgThread();
713 if (hRunDlg !=
NULL &&
757 return This->TrayPropertiesThread();
767 if (hTrayProp !=
NULL &&
903 TRACE(
"ITrayWindow::ExecContextMenuCmd(%u): Unhandled Command ID!\n", uiCmd);
1059 if (hwndExclude !=
NULL)
1099 tmp.
cbSize =
sizeof(tmp);
1106 fuFlags |= (TrackUp ? TPM_VERNEGANIMATION : TPM_VERPOSANIMATION);
1146 TRACE(
"Before Query\n");
1147 hr = contextMenu->QueryContextMenu(popup, 0, 0,
UINT_MAX, CMF_NORMAL);
1150 TRACE(
"Query failed\n");
1155 TRACE(
"Before Tracking\n");
1173 TRACE(
"Before InvokeCommand\n");
1175 cmi.
cbSize =
sizeof(cmi);
1178 hr = contextMenu->InvokeCommand(&cmi);
1182 TRACE(
"TrackPopupMenu failed. Code=%d, LastError=%d\n", uCommand,
GetLastError());
1206 NONCLIENTMETRICS ncm = {
sizeof(ncm)};
1209 ERR(
"SPI_GETNONCLIENTMETRICS failed\n");
1220 ERR(
"CreateFontIndirect failed\n");
1271 pt.x = pRect->left + ((pRect->right - pRect->left) / 2);
1272 pt.y = pRect->top + ((pRect->bottom - pRect->top) / 2);
1287 if (hMonitor !=
NULL)
1301 goto GetPrimaryRect;
1349 IN const SIZE *pTraySize,
1355 pRect->right = pRect->left + pTraySize->cx;
1359 pRect->bottom = pRect->top + pTraySize->cy;
1363 pRect->left = pRect->right - pTraySize->cx;
1368 pRect->top = pRect->bottom - pTraySize->cy;
1378 if (pTraySize ==
NULL)
1410 szWnd.
cx = pRect->right - pRect->left;
1411 szWnd.
cy = pRect->bottom - pRect->top;
1416 MONITOR_DEFAULTTONEAREST);
1422 if (szWnd.
cx > szMax.
cx)
1423 szWnd.
cx = szMax.
cx;
1424 if (szWnd.
cy > szMax.
cy)
1425 szWnd.
cy = szMax.
cy;
1439 GetMinimumWindowSize(
1463 SIZE DeltaPt, ScreenOffset;
1479 goto GetPrimaryScreenRect;
1494 GetPrimaryScreenRect:
1495 ScreenOffset.
cx = 0;
1496 ScreenOffset.
cy = 0;
1502 if (
pt.x < rcScreen.
right / 2)
1534 if (hMon != hMonNew)
1567 pt.x = pRect->left + ((pRect->right - pRect->left) / 2);
1568 pt.y = pRect->top + ((pRect->bottom - pRect->top) / 2);
1582 rcTray.
left = pwp->x;
1583 rcTray.
top = pwp->y;
1615 rcTray.
left = pwp->x;
1616 rcTray.
top = pwp->y;
1661 pwp->x = rcTray.
left;
1662 pwp->y = rcTray.
top;
1670 RECT rcClip, rcWindow;
1707 #if !WIN7_DEBUG_MODE 1708 RECT rcTray, rcWorkArea;
1782 SIZE WndSize, EdgeSize, DlgFrameSize;
1822 WndSize.
cx = 2 * (EdgeSize.
cx + DlgFrameSize.
cx);
1823 WndSize.
cy = StartBtnSize.
cy + (2 * (EdgeSize.
cy + DlgFrameSize.
cy));
1827 WndSize.
cx = StartBtnSize.
cx;
1828 WndSize.
cy = StartBtnSize.
cy - EdgeSize.
cy;
1859 SIZE TraySize, StartSize;
1860 POINT ptTrayNotify = { 0, 0 };
1865 if (prcClient !=
NULL)
1867 rcClient = *prcClient;
1891 if (StartSize.
cx > rcClient.
right)
1892 StartSize.
cx = rcClient.
right;
1895 if (hwndTaskToolbar)
1915 ERR(
"DeferWindowPos for start button failed. lastErr=%d\n",
GetLastError());
1969 ptTrayNotify.
x = rcClient.
right - TraySize.cx;
1971 ptTrayNotify.
y = rcClient.
bottom - TraySize.cy;
1983 ERR(
"DeferWindowPos for notification area failed. lastErr=%d\n",
GetLastError());
1991 POINT ptRebar = { 0, 0 };
1999 szRebar.
cx = ptTrayNotify.
x - ptRebar.
x;
2006 szRebar.
cy = ptTrayNotify.
y - ptRebar.
y;
2032 RECT rebarRect, taskbarRect, clientRect;
2049 pRect->
bottom = pRect->
top + rebarRect.bottom - rebarRect.top +
margins.cy;
2052 rebarRect.top = rebarRect.bottom - (pRect->
bottom - pRect->
top -
margins.cy);
2054 pRect->
top = pRect->
bottom - (rebarRect.bottom - rebarRect.top +
margins.cy);
2057 rebarRect.right = rebarRect.left + (pRect->
right - pRect->
left -
margins.cx);
2059 pRect->
right = pRect->
left + (rebarRect.right - rebarRect.left +
margins.cx);
2062 rebarRect.left = rebarRect.right - (pRect->
right - pRect->
left -
margins.cx);
2064 pRect->
left = pRect->
right - (rebarRect.right - rebarRect.left +
margins.cx);
2085 pt.y = rcExclude.
top;
2095 pt.y = rcExclude.
top;
2100 pt.y = rcExclude.
top;
2132 TRACE(
"AutoHide cancelling hide.\n");
2138 TRACE(
"AutoHide starting show.\n");
2147 TRACE(
"AutoHide cancelling show.\n");
2153 TRACE(
"AutoHide starting hide.\n");
2436 RECT rcGripper = {0};
2506 L"SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Explorer\\Advanced",
2520 ((ITrayWindow*)
this)->AddRef();
2621 if (
wParam == SPI_SETNONCLIENTMETRICS)
2660 switch (pCopyData->
dwData)
2677 RECT rcButton, rcWnd;
2740 if (
pt.y > rcClient.bottom)
2744 if (
pt.x > rcClient.right)
2748 if (
pt.x < rcClient.left)
2753 if (
pt.y < rcClient.top)
2821 rcClient.
left = rcClient.
top = 0;
2865 static const UINT uidDisableItem [] = {
2879 if (hSysMenu !=
NULL)
2997 if (
pt.x != -1 ||
pt.y != -1)
3019 POINT ptClient = *ppt;
3025 if (hWndAtPt !=
NULL &&
3034 goto HandleTrayContextMenu;
3040 goto HandleTrayContextMenu;
3044 HandleTrayContextMenu:
3182 return wcscmp(szClass,
L"#32770") == 0;
3193 if (!
info->bShowDesktop)
3218 info.bShowDesktop = bShowDesktop;
3325 rc = &prms->
rgrc[0];
3349 mii.
dwTypeData = const_cast<LPWSTR>(&strCaption[0]);
3391 szWindow.
cx - szTarget.
cx,
3392 szWindow.
cy - szTarget.
cx,
3398 szWindow.
cx = szActual.
cx + borders.
cx;
3401 szWindow.
cy = szActual.
cy + borders.
cy;
3404 szWindow.
cx = szActual.
cx + borders.
cx;
3408 szWindow.
cy = szActual.
cy + borders.
cy;
3551 if (!Ret || Ret == -1)
3576 TRACE(
"IShellDesktopTray::GetState() unimplemented!\n");
3582 TRACE(
"IShellDesktopTray::GetTrayWindow(0x%p)\n", phWndTray);
3589 TRACE(
"IShellDesktopTray::RegisterDesktopWindow(0x%p)\n", hWndDesktop);
3597 TRACE(
"IShellDesktopTray::Unknown(%u,%u) unimplemented!\n", dwUnknown1, dwUnknown2);
3650 this->hWndOwner = hWndOwner;
3651 this->m_idCmdCmFirst = 0;
3673 mii.
dwTypeData = const_cast<LPWSTR>(&strRestoreAll[0]);
3693 m_idCmdCmFirst = idCmdNext - idCmdFirst;
3697 if (TrayWnd->m_TrayBandSite !=
NULL)
3700 if (
FAILED(TrayWnd->m_TrayBandSite->AddContextMenus(
3708 WARN(
"AddContextMenus failed.\n");
3722 if (uiCmdId >= m_idCmdCmFirst)
3729 cmici.
cbSize =
sizeof(cmici);
3730 cmici.
hwnd = hWndOwner;
3734 pcm->InvokeCommand(&cmici);
3739 TrayWnd->ExecContextMenuCmd(uiCmdId);
3786 *ppTray = (ITrayWindow *) Tray;
3794 CTrayWindow * TrayWindow = static_cast<CTrayWindow *>(Tray);
3800 CTrayWindow * TrayWindow = static_cast<CTrayWindow *>(Tray);
3801 TrayWindow->TrayProcessMessages();
3806 CTrayWindow * TrayWindow = static_cast<CTrayWindow *>(Tray);
HGDIOBJ WINAPI GetStockObject(_In_ int)
#define SHOW_DESKTOP_TIMER_ID
EXTERN_C BOOL WINAPI SHFindComputer(LPCITEMIDLIST pidl1, LPCITEMIDLIST pidl2)
HRESULT WINAPI GetThemePartSize(HTHEME hTheme, HDC hdc, int iPartId, int iStateId, RECT *prc, THEMESIZE eSize, SIZE *psz)
HMONITOR WINAPI MonitorFromPoint(POINT, DWORD)
LRESULT OnGetTaskSwitch(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL &bHandled)
HMONITOR GetMonitorFromRect(IN const RECT *pRect)
BOOL IsShowDesktopButtonNeeded()
BOOL IsWindowEnabled() const
#define TRAYCMD_HELP_AND_SUPPORT
LRESULT OnCopyData(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL &bHandled)
int MapWindowPoints(HWND hWndTo, LPPOINT lpPoint, UINT nCount) const
static DWORD WINAPI s_TrayPropertiesThread(IN OUT PVOID pParam)
BOOL WINAPI TranslateMessage(_In_ const MSG *)
BOOL WINAPI InflateRect(_Inout_ LPRECT, _In_ int, _In_ int)
HDWP WINAPI BeginDeferWindowPos(_In_ int)
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)
LRESULT HandleHotKey(DWORD id)
GLubyte GLubyte GLubyte GLubyte w
#define HRESULT_FROM_WIN32(x)
#define AUTOHIDE_INTERVAL_ANIMATING
LRESULT OnEnterSizeMove(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL &bHandled)
HRESULT STDMETHODCALLTYPE InvokeCommand(LPCMINVOKECOMMANDINFO lpici)
#define ABN_WINDOWARRANGE
LRESULT OnDisplayChange(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL &bHandled)
#define ID_SHELL_CMD_PROPERTIES
#define TWM_DOEXITWINDOWS
BOOL WINAPI OffsetRect(_Inout_ LPRECT, _In_ int, _In_ int)
#define IDHK_FIND_COMPUTER
LRESULT OnThemeChanged(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL &bHandled)
void FitToRebar(PRECT pRect)
#define IDHK_SYS_PROPERTIES
VOID GetTrayRectFromScreenRect(IN DWORD Position, IN const RECT *pScreen, IN const SIZE *pTraySize OPTIONAL, OUT RECT *pRect)
DWORD WINAPI TrayPropertiesThread()
HRESULT ShutdownShellServices(HDPA hdpa)
void SetFont(HFONT hFont, BOOL bRedraw=TRUE)
HRESULT STDMETHODCALLTYPE GetCommandString(UINT_PTR idCmd, UINT uType, UINT *pwReserved, LPSTR pszName, UINT cchMax)
#define AUTOHIDE_SPEED_SHOW
#define ID_SHELL_CMD_RESTORE_ALL
#define ID_SHELL_CMD_UNDO_ACTION
BOOL ShowWindowAsync(int nCmdShow)
LRESULT OnMoving(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL &bHandled)
HWND Create(HWND hWndParent, _U_RECT rect=NULL, LPCTSTR szWindowName=NULL, DWORD dwStyle=0, DWORD dwExStyle=0, _U_MENUorID MenuOrID=0U, LPVOID lpCreateParam=NULL)
LRESULT OnNotify(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL &bHandled)
HWND GetLastActivePopup() const
LRESULT HandleCommand(UINT uCommand)
#define ID_SHELL_CMD_OPEN_TASKMGR
TW_UINT32 TW_UINT16 TW_UINT16 MSG
VOID ShowCustomizeNotifyIcons(HINSTANCE hInst, HWND hExplorer)
LRESULT OnNcLButtonDown(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL &bHandled)
BOOL WINAPI TrackPopupMenuEx(_In_ HMENU, _In_ UINT, _In_ int, _In_ int, _In_ HWND, _In_opt_ LPTPMPARAMS)
BOOL WINAPI SHRegGetBoolUSValueW(LPCWSTR pszSubKey, LPCWSTR pszValue, BOOL fIgnoreHKCU, BOOL fDefault)
HRGN WINAPI CreateRectRgnIndirect(_In_ LPCRECT)
#define TNWM_GETMINIMUMSIZE
#define SHOW_DESKTOP_MINIMUM_WIDTH
#define DECLARE_WND_CLASS_EX(WndClassName, style, bkgnd)
CComPtr< IContextMenu > m_ContextMenu
#define ID_SHELL_CMD_SHOW_DESKTOP
LRESULT OnNcLButtonDblClick(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL &bHandled)
#define TIMER_ID_AUTOHIDE
BOOL SetWindowPos(HWND hWndInsertAfter, int x, int y, int cx, int cy, UINT nFlags)
#define AUTOHIDE_DELAY_SHOW
CTrayShowDesktopButton m_ShowDesktopButton
int DrawSizerWithTheme(IN HRGN hRgn)
IMenuPopup * CreateStartMenu(IN ITrayWindow *Tray, OUT IMenuBand **ppMenuBand, IN HBITMAP hbmBanner OPTIONAL, IN BOOL bSmallIcons)
virtual HRESULT STDMETHODCALLTYPE GetTrayWindow(OUT HWND *phWndTray)
static HTHEME(WINAPI *pOpenThemeDataEx)(HWND
IN PVOID IN PVOID IN USHORT IN USHORT Size
BOOL WINAPI AdjustWindowRectEx(_Inout_ LPRECT, _In_ DWORD, _In_ BOOL, _In_ DWORD)
DWORD WINAPI GetLastError(VOID)
LRESULT OnHotkey(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL &bHandled)
BOOL WINAPI DeleteObject(_In_ HGDIOBJ)
LONG WINAPI GetMessageTime(void)
#define DECLARE_NOT_AGGREGATABLE(x)
#define MAKEINTRESOURCEA(i)
LRESULT OnExitSizeMove(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL &bHandled)
DWORD GetDraggingRectFromPt(IN POINT pt, OUT RECT *pRect, OUT HMONITOR *phMonitor)
#define ID_SHELL_CMD_CUST_NOTIF
HMONITOR GetScreenRectFromRect(IN OUT RECT *pRect, IN DWORD dwFlags)
#define TRAYCMD_RESTORE_ALL
BOOL WINAPI DrawFrameControl(_In_ HDC, _Inout_ LPRECT, _In_ UINT, _In_ UINT)
int WINAPI MessageBoxW(_In_opt_ HWND hWnd, _In_opt_ LPCWSTR lpText, _In_opt_ LPCWSTR lpCaption, _In_ UINT uType)
#define IDHK_MINIMIZE_ALL
void EndPaint(LPPAINTSTRUCT lpPaint)
#define AUTOHIDE_DELAY_HIDE
#define TRAYCMD_TOGGLE_DESKTOP
CComPtr< ITrayBandSite > m_TrayBandSite
static BOOL CALLBACK FindEffectiveProc(HWND hwnd, LPARAM lParam)
BOOL WINAPI GetCursorPos(_Out_ LPPOINT)
HMONITOR CalculateValidSize(IN DWORD Position, IN OUT RECT *pRect)
#define SetWindowStyle(hwnd, val)
BOOL WINAPI IsIconic(_In_ HWND)
VOID CheckTrayWndPosition()
#define IID_PPV_ARG(Itype, ppType)
HRESULT WINAPI IUnknown_GetWindow(IUnknown *lpUnknown, HWND *lphWnd)
#define TWM_GETTASKSWITCH
LRESULT OnEraseBackground(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL &bHandled)
HRESULT WINAPI DrawThemeBackground(HTHEME hTheme, HDC hdc, int iPartId, int iStateId, const RECT *pRect, const RECT *pClipRect)
static BOOL IsThereAnyEffectiveWindow(BOOL bMustBeInMonitor)
int WINAPI LoadStringW(_In_opt_ HINSTANCE hInstance, _In_ UINT uID, _Out_writes_to_(cchBufferMax, return+1) LPWSTR lpBuffer, _In_ int cchBufferMax)
BOOL WINAPI SetWindowPlacement(_In_ HWND hWnd, _In_ const WINDOWPLACEMENT *)
#define ID_SHELL_CMD_CASCADE_WND
#define SWP_NOSENDCHANGING
LRESULT OnDoExitWindows(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL &bHandled)
void appbar_notify_all(HMONITOR hMon, UINT uMsg, HWND hwndExclude, LPARAM lParam)
HWND STDMETHODCALLTYPE DisplayProperties()
LRESULT DefWindowProc(UINT uMsg, WPARAM wParam, LPARAM lParam)
HRESULT CStartMenuBtnCtxMenu_CreateInstance(ITrayWindow *TrayWnd, IN HWND hWndOwner, IContextMenu **ppCtxMenu)
LRESULT OnCtlColorBtn(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL &bHandled)
#define TRAYCMD_SHOW_DESKTOP
VOID OpenTaskManager(IN HWND hWndOwner)
LRESULT OnSysCommand(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL &bHandled)
HMONITOR m_PreviousMonitor
#define TRAYCMD_SHOW_TASK_MGR
GLfloat GLfloat GLfloat GLfloat h
LRESULT OnWindowPosChanging(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL &bHandled)
BOOL WINAPI ImageList_Destroy(HIMAGELIST himl)
int WINAPI GetClassNameW(_In_ HWND hWnd, _Out_writes_to_(nMaxCount, return) LPWSTR lpClassName, _In_ int nMaxCount)
BOOL InvalidateRect(LPCRECT lpRect, BOOL bErase=TRUE)
BOOL STDMETHODCALLTYPE IsSpecialHWND(IN HWND hWnd)
LRESULT appbar_message(COPYDATASTRUCT *cds)
LRESULT EraseBackgroundWithTheme(HDC hdc)
int WINAPI SetBkMode(_In_ HDC, _In_ int)
BOOL IsChild(const HWND hWnd) const
HRESULT CTrayNotifyWnd_CreateInstance(HWND hwndParent, REFIID riid, void **ppv)
BOOL SubclassWindow(HWND hWnd)
LRESULT OnNcPaint(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL &bHandled)
BOOL WINAPI EnableMenuItem(_In_ HMENU, _In_ UINT, _In_ UINT)
#define IDS_TRAYWND_UNDO_CASCADE
VOID DisplayTrayProperties(IN HWND hwndOwner, IN HWND hwndTaskbar)
VOID MakeTrayRectWithSize(IN DWORD Position, IN const SIZE *pTraySize, IN OUT RECT *pRect)
HRESULT Tray_OnStartMenuDismissed(ITrayWindow *Tray)
GLenum const GLfloat * params
#define TWM_SETTINGSCHANGED
CSimpleArray< HWND > * pMinimizedAll
LRESULT OnNcLButtonUp(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL &bHandled)
TRACKMOUSEEVENT m_MouseTrackingInfo
static struct _test_info info[]
#define MDITILE_HORIZONTAL
UINT_PTR SetTimer(UINT_PTR nIDEvent, UINT nElapse, void(CALLBACK *lpfnTimer)(HWND, UINT, UINT_PTR, DWORD)=NULL)
#define TRAYCMD_DATE_AND_TIME
BOOL WINAPI EndDeferWindowPos(_In_ HDWP)
#define CWP_SKIPINVISIBLE
void ProcessMouseTracking()
BOOL STDMETHODCALLTYPE Lock(IN BOOL bLock)
#define MOUSETRACK_INTERVAL
BOOL GetClientRect(LPRECT lpRect) const
static BOOL CALLBACK MinimizeWindowsProc(HWND hwnd, LPARAM lParam)
HRESULT STDMETHODCALLTYPE Open()
HRESULT WINAPI SetWindowTheme(_In_ HWND hwnd, _In_ LPCWSTR pszSubAppName, _In_ LPCWSTR pszSubIdList)
CSimpleArray< HWND > g_MinimizedAll
BOOL KillTimer(UINT_PTR nIDEvent)
BOOL WINAPI SHFindFiles(PCIDLIST_ABSOLUTE pidlFolder, PCIDLIST_ABSOLUTE pidlSaveFile)
BOOL GetWindowRect(LPRECT lpRect) const
VOID TrayProcessMessages(ITrayWindow *Tray)
BOOL WINAPI SetMenuItemInfoW(_In_ HMENU, _In_ UINT, _In_ BOOL, _In_ LPCMENUITEMINFOW)
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)
CComPtr< IDeskBand > m_TaskBand
VOID OpenCommonStartMenuDirectory(IN HWND hWndOwner, IN LPCTSTR lpOperation)
#define TRAYCMD_SEARCH_FILES
HWND WINAPI GetDesktopWindow(void)
TaskbarSettings g_TaskbarSettings