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
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
150 RECT rcWindow, rcMonitor, rcIntersect;
151 rcMonitor =
info.rcMonitor;
191const GUID IID_IShellDesktopTray = { 0x213e2df9, 0x9a14, 0x4328, { 0x99, 0xb1, 0x69, 0x61, 0xf9, 0x14, 0x3c, 0xe9 } };
242 NONCLIENTMETRICS ncm = {
sizeof(ncm)};
249 ncm.lfCaptionFont.lfWeight =
FW_BOLD;
277 WCHAR szStartCaption[32];
283 wcscpy(szStartCaption,
L"Start");
326 public CWindowImpl<CTrayShowDesktopButton, CWindow, CControlWinTraits>
341#define SHOW_DESKTOP_MINIMUM_WIDTH 3
363 if (nTime1 - nTime0 >= 600)
371#define TSDB_CLICK (WM_USER + 100)
420 return ::PtInRect(&rc,
pt);
423#define SHOW_DESKTOP_TIMER_ID 999
424#define SHOW_DESKTOP_TIMER_INTERVAL 200
520 public CWindowImpl < CTrayWindow, CWindow, CControlWinTraits >,
522 public IShellDesktopTray,
640 WCHAR szCommand[256];
641 WCHAR *pszParameters;
651 pszParameters =
wcschr(szCommand,
L'>');
703 CStringW strDefaultDir, strHomePath;
706 strDefaultDir += strHomePath;
719 return This->RunFileDlgThread();
728 if (hRunDlg !=
NULL &&
772 return This->TrayPropertiesThread();
782 if (hTrayProp !=
NULL &&
915 TRACE(
"ITrayWindow::ExecContextMenuCmd(%u): Unhandled Command ID!\n", uiCmd);
1072 if (hwndExclude !=
NULL)
1112 tmp.
cbSize =
sizeof(tmp);
1119 fuFlags |= (TrackUp ? TPM_VERNEGANIMATION : TPM_VERPOSANIMATION);
1159 TRACE(
"Before Query\n");
1160 hr = contextMenu->QueryContextMenu(popup, 0, 0,
UINT_MAX, CMF_NORMAL);
1163 TRACE(
"Query failed\n");
1168 TRACE(
"Before Tracking\n");
1186 TRACE(
"Before InvokeCommand\n");
1188 cmi.
cbSize =
sizeof(cmi);
1191 hr = contextMenu->InvokeCommand(&cmi);
1195 TRACE(
"TrackPopupMenu failed. Code=%d, LastError=%d\n", uCommand,
GetLastError());
1219 NONCLIENTMETRICS ncm = {
sizeof(ncm)};
1222 ERR(
"SPI_GETNONCLIENTMETRICS failed\n");
1233 ERR(
"CreateFontIndirect failed\n");
1284 pt.x = pRect->left + ((pRect->right - pRect->left) / 2);
1285 pt.y = pRect->top + ((pRect->bottom - pRect->top) / 2);
1300 if (hMonitor !=
NULL)
1314 goto GetPrimaryRect;
1362 IN const SIZE *pTraySize,
1368 pRect->right = pRect->left + pTraySize->cx;
1372 pRect->bottom = pRect->top + pTraySize->cy;
1376 pRect->left = pRect->right - pTraySize->cx;
1381 pRect->top = pRect->bottom - pTraySize->cy;
1391 if (pTraySize ==
NULL)
1423 szWnd.
cx = pRect->right - pRect->left;
1424 szWnd.
cy = pRect->bottom - pRect->top;
1429 MONITOR_DEFAULTTONEAREST);
1435 if (szWnd.
cx > szMax.
cx)
1436 szWnd.
cx = szMax.
cx;
1437 if (szWnd.
cy > szMax.
cy)
1438 szWnd.
cy = szMax.
cy;
1452 GetMinimumWindowSize(
1476 SIZE DeltaPt, ScreenOffset;
1492 goto GetPrimaryScreenRect;
1507GetPrimaryScreenRect:
1508 ScreenOffset.
cx = 0;
1509 ScreenOffset.
cy = 0;
1515 if (
pt.x < rcScreen.
right / 2)
1547 if (hMon != hMonNew)
1580 pt.x = pRect->left + ((pRect->right - pRect->left) / 2);
1581 pt.y = pRect->top + ((pRect->bottom - pRect->top) / 2);
1595 rcTray.
left = pwp->x;
1596 rcTray.
top = pwp->y;
1630 rcTray.
left = pwp->x;
1631 rcTray.
top = pwp->y;
1676 pwp->x = rcTray.
left;
1677 pwp->y = rcTray.
top;
1685 RECT rcClip, rcWindow;
1723 RECT rcTray, rcWorkArea;
1797 SIZE WndSize, EdgeSize, DlgFrameSize;
1837 WndSize.
cx = 2 * (EdgeSize.
cx + DlgFrameSize.
cx);
1838 WndSize.
cy = StartBtnSize.
cy + (2 * (EdgeSize.
cy + DlgFrameSize.
cy));
1842 WndSize.
cx = StartBtnSize.
cx;
1843 WndSize.
cy = StartBtnSize.
cy - EdgeSize.
cy;
1874 SIZE TraySize, StartSize;
1875 POINT ptTrayNotify = { 0, 0 };
1880 if (prcClient !=
NULL)
1882 rcClient = *prcClient;
1906 if (StartSize.
cx > rcClient.
right)
1907 StartSize.
cx = rcClient.
right;
1910 if (hwndTaskToolbar)
1930 ERR(
"DeferWindowPos for start button failed. lastErr=%d\n",
GetLastError());
1984 ptTrayNotify.
x = rcClient.
right - TraySize.
cx;
1986 ptTrayNotify.
y = rcClient.
bottom - TraySize.
cy;
1998 ERR(
"DeferWindowPos for notification area failed. lastErr=%d\n",
GetLastError());
2006 POINT ptRebar = { 0, 0 };
2014 szRebar.
cx = ptTrayNotify.
x - ptRebar.
x;
2021 szRebar.
cy = ptTrayNotify.
y - ptRebar.
y;
2047 RECT rebarRect, taskbarRect, clientRect;
2064 pRect->
bottom = pRect->
top + rebarRect.bottom - rebarRect.top +
margins.cy;
2067 rebarRect.top = rebarRect.bottom - (pRect->
bottom - pRect->
top -
margins.cy);
2069 pRect->
top = pRect->
bottom - (rebarRect.bottom - rebarRect.top +
margins.cy);
2072 rebarRect.right = rebarRect.left + (pRect->
right - pRect->
left -
margins.cx);
2074 pRect->
right = pRect->
left + (rebarRect.right - rebarRect.left +
margins.cx);
2077 rebarRect.left = rebarRect.right - (pRect->
right - pRect->
left -
margins.cx);
2079 pRect->
left = pRect->
right - (rebarRect.right - rebarRect.left +
margins.cx);
2100 pt.y = rcExclude.
top;
2110 pt.y = rcExclude.
top;
2115 pt.y = rcExclude.
top;
2147 TRACE(
"AutoHide cancelling hide.\n");
2153 TRACE(
"AutoHide starting show.\n");
2162 TRACE(
"AutoHide cancelling show.\n");
2168 TRACE(
"AutoHide starting hide.\n");
2451 RECT rcGripper = {0};
2542 ((ITrayWindow*)
this)->
AddRef();
2621#define TIMER_ID_IGNOREPULSERESET 888
2622#define TIMER_IGNOREPULSERESET_TIMEOUT 200
2652 if (
wParam == SPI_SETNONCLIENTMETRICS)
2700 switch (pCopyData->
dwData)
2717 RECT rcButton, rcWnd;
2788 if (
pt.x < rcClient.
left)
2793 if (
pt.y < rcClient.
top)
2861 rcClient.
left = rcClient.
top = 0;
2905 static const UINT uidDisableItem [] = {
2919 if (hSysMenu !=
NULL)
3037 if (
pt.x != -1 ||
pt.y != -1)
3059 POINT ptClient = *ppt;
3065 if (hWndAtPt !=
NULL &&
3074 goto HandleTrayContextMenu;
3080 goto HandleTrayContextMenu;
3084HandleTrayContextMenu:
3254 return wcscmp(szClass,
L"#32770") == 0;
3263 if (!
info->bShowDesktop)
3278 info->pMinimizedAll->Add(mwp);
3295 info.bShowDesktop = bShowDesktop;
3402 rc = &prms->
rgrc[0];
3468 szWindow.
cx - szTarget.
cx,
3469 szWindow.
cy - szTarget.
cx,
3475 szWindow.
cx = szActual.
cx + borders.
cx;
3478 szWindow.
cy = szActual.
cy + borders.
cy;
3481 szWindow.
cx = szActual.
cx + borders.
cx;
3485 szWindow.
cy = szActual.
cy + borders.
cy;
3643 if (!Ret || Ret == -1)
3668 TRACE(
"IShellDesktopTray::GetState() unimplemented!\n");
3674 TRACE(
"IShellDesktopTray::GetTrayWindow(0x%p)\n", phWndTray);
3681 TRACE(
"IShellDesktopTray::RegisterDesktopWindow(0x%p)\n", hWndDesktop);
3689 TRACE(
"IShellDesktopTray::Unknown(%u,%u) unimplemented!\n", dwUnknown1, dwUnknown2);
3742 this->hWndOwner = hWndOwner;
3743 this->m_idCmdCmFirst = 0;
3785 m_idCmdCmFirst = idCmdNext - idCmdFirst;
3789 if (TrayWnd->m_TrayBandSite !=
NULL)
3792 if (
FAILED(TrayWnd->m_TrayBandSite->AddContextMenus(
3800 WARN(
"AddContextMenus failed.\n");
3814 if (uiCmdId >= m_idCmdCmFirst)
3821 cmici.
cbSize =
sizeof(cmici);
3822 cmici.
hwnd = hWndOwner;
3826 pcm->InvokeCommand(&cmici);
3831 TrayWnd->ExecContextMenuCmd(uiCmdId);
3878 *ppTray = (ITrayWindow *) Tray;
HINSTANCE hExplorerInstance
VOID DisplayTrayProperties(IN HWND hwndOwner, IN HWND hwndTaskbar)
#define TWM_OPENSTARTMENU
#define TSWM_UPDATETASKBARPOS
#define TNWM_GETMINIMUMSIZE
HRESULT CStartMenuBtnCtxMenu_CreateInstance(ITrayWindow *TrayWnd, IN HWND hWndOwner, IContextMenu **ppCtxMenu)
HMENU LoadPopupMenu(IN HINSTANCE hInstance, IN LPCWSTR lpMenuName)
#define TWM_GETTASKSWITCH
IMenuPopup * CreateStartMenu(IN ITrayWindow *Tray, OUT IMenuBand **ppMenuBand, IN HBITMAP hbmBanner OPTIONAL, IN BOOL bSmallIcons)
TaskbarSettings g_TaskbarSettings
HRESULT CTrayNotifyWnd_CreateInstance(HWND hwndParent, REFIID riid, void **ppv)
HRESULT CTrayBandSite_CreateInstance(IN ITrayWindow *tray, IN IDeskBand *pTaskBand, OUT ITrayBandSite **pBandSite)
#define TWM_SETTINGSCHANGED
HRESULT InitShellServices(HDPA *phdpa)
HRESULT CTaskBand_CreateInstance(IN ITrayWindow *Tray, HWND hWndStartButton, REFIID riid, void **ppv)
HRESULT ShutdownShellServices(HDPA hdpa)
#define ID_SHELL_CMD_OPEN_TASKMGR
#define ID_SHELL_CMD_CUST_NOTIF
#define ID_SHELL_CMD_UNDO_ACTION
#define ID_SHELL_CMD_PROPERTIES
#define ID_SHELL_CMD_TILE_WND_H
#define IDS_TRAYWND_UNDO_TILE
#define ID_SHELL_CMD_CASCADE_WND
#define ID_SHELL_CMD_RESTORE_ALL
#define ID_SHELL_CMD_TILE_WND_V
#define ID_SHELL_CMD_SHOW_DESKTOP
#define IDS_TRAYWND_UNDO_CASCADE
#define ID_SHELL_CMD_EXPLORE_ALL_USERS
#define ID_SHELL_CMD_ADJUST_DAT
#define ID_SHELL_CMD_OPEN_ALL_USERS
#define STDMETHODCALLTYPE
BOOL GetEnvironmentVariable(_In_z_ PCXSTR pszVar)
HWND GetLastActivePopup() const
LRESULT SendMessage(UINT message, WPARAM wParam=0, LPARAM lParam=0)
HDWP DeferWindowPos(HDWP hWinPosInfo, HWND hWndInsertAfter, int x, int y, int cx, int cy, UINT uFlags)
BOOL GetWindowRect(LPRECT lpRect) const
CWindow GetParent() const
BOOL IsWindowVisible() const
BOOL IsWindowEnabled() const
BOOL PostMessage(UINT message, WPARAM wParam=0, LPARAM lParam=0)
LRESULT OnHotkey(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL &bHandled)
CTrayShowDesktopButton m_ShowDesktopButton
LRESULT OnEnterSizeMove(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL &bHandled)
VOID OpenTaskManager(IN HWND hWndOwner)
LRESULT OnSettingChanged(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL &bHandled)
LRESULT OnExitSizeMove(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL &bHandled)
LRESULT OnThemeChanged(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL &bHandled)
LRESULT OnNcPaint(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL &bHandled)
LRESULT OnTaskbarSettingsChanged(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL &bHandled)
DWORD GetDraggingRectFromPt(IN POINT pt, OUT RECT *pRect, OUT HMONITOR *phMonitor)
LRESULT OnMouseMove(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL &bHandled)
CStartButton m_StartButton
LRESULT OnDoExitWindows(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL &bHandled)
HWND STDMETHODCALLTYPE GetHWND()
void FitToRebar(PRECT pRect)
LRESULT HandleCommand(UINT uCommand)
LRESULT OnCtlColorBtn(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL &bHandled)
CComPtr< ITrayBandSite > m_TrayBandSite
int DrawSizerWithTheme(IN HRGN hRgn)
HMONITOR GetScreenRectFromRect(IN OUT RECT *pRect, IN DWORD dwFlags)
BOOL STDMETHODCALLTYPE IsHorizontal()
TRACKMOUSEEVENT m_MouseTrackingInfo
CComPtr< IDeskBand > m_TaskBand
HMONITOR m_PreviousMonitor
LRESULT OnInitMenuPopup(INT code, WPARAM wParam, LPARAM lParam, BOOL &bHandled)
LRESULT OnEraseBackground(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL &bHandled)
DWORD WINAPI TrayPropertiesThread()
LRESULT OnNcCalcSize(INT code, WPARAM wParam, LPARAM lParam, BOOL &bHandled)
void RestoreMinimizedNonTaskWnds(BOOL bDestroyed, HWND hwndActive)
virtual HRESULT STDMETHODCALLTYPE RegisterDesktopWindow(IN HWND hWndDesktop)
HMONITOR GetScreenRect(IN HMONITOR hMonitor, IN OUT RECT *pRect)
LRESULT OnNotify(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL &bHandled)
LRESULT OnCopyData(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL &bHandled)
static DWORD WINAPI s_RunFileDlgThread(IN OUT PVOID pParam)
LRESULT OnNcRButtonUp(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL &bHandled)
VOID TrayProcessMessages()
HMONITOR m_DraggingMonitor
HRESULT STDMETHODCALLTYPE GetCommandString(UINT_PTR idCmd, UINT uType, UINT *pwReserved, LPSTR pszName, UINT cchMax)
virtual HRESULT STDMETHODCALLTYPE Unknown(IN DWORD dwUnknown1, IN DWORD dwUnknown2)
BOOL STDMETHODCALLTYPE IsTaskWnd(HWND hWnd)
LRESULT EraseBackgroundWithTheme(HDC hdc)
CComPtr< IMenuPopup > m_StartMenuPopup
HWND STDMETHODCALLTYPE DisplayProperties()
VOID AdjustSizerRect(RECT *rc, DWORD pos)
HMONITOR CalculateValidSize(IN DWORD Position, IN OUT RECT *pRect)
void ProcessMouseTracking()
LRESULT OnNcLButtonDblClick(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL &bHandled)
LRESULT OnNcLButtonDown(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL &bHandled)
LRESULT OnDestroy(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL &bHandled)
BOOL STDMETHODCALLTYPE Lock(IN BOOL bLock)
VOID ApplyClipping(IN BOOL Clip)
LRESULT OnContextMenu(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL &bHandled)
static BOOL CALLBACK MinimizeWindowsProc(HWND hwnd, LPARAM lParam)
HRESULT STDMETHODCALLTYPE Open()
LRESULT OnGetTaskSwitch(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL &bHandled)
HRESULT WINAPI ContextSensitiveHelp(BOOL fEnterMode)
BOOL CheckShowDesktopButtonClick(LPARAM lParam, BOOL &bHandled)
LRESULT OnSysChar(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL &bHandled)
LRESULT OnTimer(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL &bHandled)
HRESULT ExecResourceCmd(int id)
static DWORD WINAPI s_TrayPropertiesThread(IN OUT PVOID pParam)
VOID OpenCommonStartMenuDirectory(IN HWND hWndOwner, IN LPCTSTR lpOperation)
static BOOL IsDialog(HWND hwnd)
HRESULT STDMETHODCALLTYPE Close()
VOID CheckTrayWndPosition()
LRESULT OnNcLButtonUp(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL &bHandled)
LRESULT OnSysCommand(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL &bHandled)
CComPtr< IUnknown > m_TrayNotifyInstance
LRESULT OnMoving(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL &bHandled)
LRESULT HandleHotKey(DWORD id)
LRESULT OnSizing(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL &bHandled)
VOID AlignControls(IN PRECT prcClient OPTIONAL)
LRESULT OnOpenStartMenu(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL &bHandled)
HRESULT WINAPI GetWindow(HWND *phwnd)
HWND m_TrayPropertiesOwner
void DrawShowDesktopButton()
LRESULT OnSize(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL &bHandled)
LRESULT OnCommand(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL &bHandled)
LRESULT OnAppTrayDestroy(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL &bHandled)
VOID MakeTrayRectWithSize(IN DWORD Position, IN const SIZE *pTraySize, IN OUT RECT *pRect)
HRESULT STDMETHODCALLTYPE InvokeCommand(LPCMINVOKECOMMANDINFO lpici)
DWORD GetDraggingRectFromRect(IN OUT RECT *pRect, OUT HMONITOR *phMonitor)
BOOL STDMETHODCALLTYPE IsSpecialHWND(IN HWND hWnd)
LRESULT OnPulse(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL &bHandled)
LRESULT OnNcHitTest(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL &bHandled)
VOID MinimizeAll(BOOL bShowDesktop=FALSE)
VOID GetTrayRectFromScreenRect(IN DWORD Position, IN const RECT *pScreen, IN const SIZE *pTraySize OPTIONAL, OUT RECT *pRect)
virtual HRESULT RaiseStartButton()
HMONITOR GetMonitorFromRect(IN const RECT *pRect)
LRESULT OnNcActivate(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL &bHandled)
UINT TrackMenu(IN HMENU hMenu, IN POINT *ppt OPTIONAL, IN HWND hwndExclude OPTIONAL, IN BOOL TrackUp, IN BOOL IsContextMenu)
DWORD WINAPI RunFileDlgThread()
virtual HRESULT STDMETHODCALLTYPE GetTrayWindow(OUT HWND *phWndTray)
LRESULT OnCreate(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL &bHandled)
HRESULT TrackCtxMenu(IN IContextMenu *contextMenu, IN POINT *ppt OPTIONAL, IN HWND hwndExclude OPTIONAL, IN BOOL TrackUp, IN PVOID Context OPTIONAL)
virtual ULONG STDMETHODCALLTYPE GetState()
LRESULT OnDisplayChange(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL &bHandled)
LRESULT OnWindowPosChanging(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL &bHandled)
CComPtr< IMenuBand > m_StartMenuBand
VOID ChangingWinPos(IN OUT LPWINDOWPOS pwp)
CComPtr< IContextMenu > m_ContextMenu
HRESULT STDMETHODCALLTYPE QueryContextMenu(HMENU hPopup, UINT indexMenu, UINT idCmdFirst, UINT idCmdLast, UINT uFlags)
LRESULT OnRebarAutoSize(INT code, LPNMHDR nmhdr, BOOL &bHandled)
BOOL STDMETHODCALLTYPE ExecContextMenuCmd(IN UINT uiCmd)
BOOL WINAPI ImageList_Destroy(HIMAGELIST himl)
HIMAGELIST WINAPI ImageList_LoadImageW(HINSTANCE hi, LPCWSTR lpbmp, INT cx, INT cGrow, COLORREF clrMask, UINT uType, UINT uFlags)
#define FAILED_UNEXPECTEDLY(hr)
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)
EXTERN_C int WINAPI LogoffWindowsDialog(HWND hWndOwner)
void WINAPI ExitWindowsDialog(HWND hWndOwner)
void WINAPI RunFileDlg(HWND hWndOwner, HICON hIcon, LPCWSTR lpstrDirectory, LPCWSTR lpstrTitle, LPCWSTR lpstrDescription, UINT uFlags)
EXTERN_C BOOL WINAPI SHFindComputer(LPCITEMIDLIST pidlRoot, LPCITEMIDLIST pidlSavedSearch)
HRESULT WINAPI IUnknown_Exec(IUnknown *lpUnknown, REFGUID pguidCmdGroup, DWORD nCmdID, DWORD nCmdexecopt, VARIANT *pvaIn, VARIANT *pvaOut)
HRESULT WINAPI IUnknown_GetWindow(IUnknown *lpUnknown, HWND *lphWnd)
HRESULT WINAPI DrawThemeBackground(HTHEME hTheme, HDC hdc, int iPartId, int iStateId, const RECT *pRect, const RECT *pClipRect)
HRESULT WINAPI GetThemePartSize(HTHEME hTheme, HDC hdc, int iPartId, int iStateId, RECT *prc, THEMESIZE eSize, SIZE *psz)
HTHEME WINAPI OpenThemeData(HWND hwnd, LPCWSTR classlist)
HRESULT WINAPI CloseThemeData(HTHEME hTheme)
GLenum const GLfloat * params
GLubyte GLubyte GLubyte GLubyte w
GLfloat GLfloat GLfloat GLfloat h
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
#define COM_INTERFACE_ENTRY_IID(iid, x)
#define DECLARE_PROTECT_FINAL_CONSTRUCT()
#define DECLARE_NOT_AGGREGATABLE(x)
#define MESSAGE_HANDLER(msg, func)
#define NOTIFY_CODE_HANDLER(cd, func)
#define BEGIN_MSG_MAP(theClass)
#define DECLARE_WND_CLASS_EX(WndClassName, style, bkgnd)
int WINAPI lstrcmpiW(LPCWSTR lpString1, LPCWSTR lpString2)
static VOID SetFont(PMAP infoPtr, LPWSTR lpFontName)
#define SetWindowStyle(hwnd, val)
static DWORD *static HFONT(WINAPI *pCreateFontIndirectExA)(const ENUMLOGFONTEXDVA *)
static const CLSID *static CLSID *static const GUID VARIANT VARIANT *static IServiceProvider DWORD *static HMENU
static HTHEME(WINAPI *pOpenThemeDataEx)(HWND
unsigned __int3264 UINT_PTR
HMONITOR WINAPI MonitorFromPoint(POINT, DWORD)
HMONITOR WINAPI MonitorFromRect(LPCRECT, DWORD)
HMONITOR WINAPI MonitorFromWindow(HWND, DWORD)
VOID ShowCustomizeNotifyIcons(HINSTANCE hInst, HWND hExplorer)
const GUID IID_IOleWindow
#define BUTTON_IMAGELIST_ALIGN_LEFT
struct tagNMRBAUTOSIZE * LPNMRBAUTOSIZE
#define RFF_CALCDIRECTORY
_CRTIMP wchar_t *__cdecl wcscpy(_Out_writes_z_(_String_length_(_Source)+1) wchar_t *_Dest, _In_z_ const wchar_t *_Source)
_Check_return_ _CRTIMP int __cdecl wcscmp(_In_z_ const wchar_t *_Str1, _In_z_ const wchar_t *_Str2)
#define ABN_WINDOWARRANGE
BOOL WINAPI SHFindFiles(PCIDLIST_ABSOLUTE pidlFolder, PCIDLIST_ABSOLUTE pidlSaveFile)
HINSTANCE WINAPI ShellExecuteW(HWND hwnd, LPCWSTR lpVerb, LPCWSTR lpFile, LPCWSTR lpParameters, LPCWSTR lpDirectory, INT nShowCmd)
#define SHGetSpecialFolderPath
#define CSIDL_COMMON_STARTMENU
#define MM_SUBMENUSHAVEIDS
DWORD WINAPI SHRestricted(RESTRICTIONS rest)
PULONG MinorVersion OPTIONAL
CSimpleArray< MINWNDPOS > * pMinimizedAll
#define AUTOHIDE_DELAY_HIDE
const GUID IID_IShellDesktopTray
static BOOL CALLBACK BackupWindowsPosProc(HWND hwnd, LPARAM lParam)
CSimpleArray< WINDOWPOSBACKUPDATA > g_WindowPosBackup
#define AUTOHIDE_SPEED_HIDE
#define WM_APP_TRAYDESTROY
CSimpleArray< MINWNDPOS > g_MinimizedAll
LRESULT appbar_message(COPYDATASTRUCT *cds)
#define AUTOHIDE_SPEED_SHOW
void appbar_notify_all(HMONITOR hMon, UINT uMsg, HWND hwndExclude, LPARAM lParam)
#define SHOW_DESKTOP_TIMER_INTERVAL
#define SHOW_DESKTOP_MINIMUM_WIDTH
HRESULT Tray_OnStartMenuDismissed(ITrayWindow *Tray)
HRESULT CreateTrayWindow(ITrayWindow **ppTray)
static const WCHAR szTrayShowDesktopButton[]
#define SHOW_DESKTOP_TIMER_ID
BOOL CanBeMinimized(HWND hwnd)
#define TIMER_IGNOREPULSERESET_TIMEOUT
static BOOL IsThereAnyEffectiveWindow(BOOL bMustBeInMonitor)
#define IDHK_MINIMIZE_ALL
#define IDHK_SYS_PROPERTIES
#define TIMER_ID_AUTOHIDE
static BOOL CALLBACK FindEffectiveProc(HWND hwnd, LPARAM lParam)
#define AUTOHIDE_INTERVAL_ANIMATING
static const WCHAR szTrayWndClass[]
#define TIMER_ID_MOUSETRACK
#define IDHK_FIND_COMPUTER
#define TIMER_ID_IGNOREPULSERESET
#define AUTOHIDE_DELAY_SHOW
#define MOUSETRACK_INTERVAL
HRESULT TrayWindowCtxMenuCreator(ITrayWindow *TrayWnd, IN HWND hWndOwner, IContextMenu **ppCtxMenu)
TW_UINT32 TW_UINT16 TW_UINT16 MSG
#define TRAYCMD_CONTROL_PANEL
#define TRAYCMD_STARTMENU
#define TRAYCMD_LOCK_DESKTOP
#define TRAYCMD_DATE_AND_TIME
#define TRAYCMD_SEARCH_COMPUTERS
#define TRAYCMD_TASKBAR_PROPERTIES
#define TRAYCMD_SHOW_DESKTOP
#define TWM_DOEXITWINDOWS
#define TRAYCMD_LOCK_TASKBAR
#define TRAYCMD_SEARCH_FILES
#define TRAYCMD_CUSTOMIZE_TASKBAR
#define TRAYCMD_TOGGLE_DESKTOP
#define TRAYCMD_RUN_DIALOG
#define TABDMC_LOADINPROC
#define TRAYCMD_LOGOFF_DIALOG
#define TRAYCMD_SHOW_TASK_MGR
#define TRAYCMD_RESTORE_ALL
#define TRAYCMD_SHUTDOWN_DIALOG
#define TRAYCMD_PRINTERS_AND_FAXES
#define TRAYCMD_MINIMIZE_ALL
#define TRAYCMD_SWITCH_USER_DIALOG
#define TRAYCMD_HELP_AND_SUPPORT
HRESULT WINAPI SetWindowTheme(_In_ HWND hwnd, _In_ LPCWSTR pszSubAppName, _In_ LPCWSTR pszSubIdList)
_Must_inspect_result_ _In_ WDFDEVICE _In_ PWDF_DEVICE_PROPERTY_DATA _In_ DEVPROPTYPE _In_ ULONG Size
DWORD WINAPI GetLastError(void)
_In_ PCCERT_CONTEXT _In_ DWORD dwFlags
#define SubclassWindow(hwnd, lpfn)
#define HRESULT_FROM_WIN32(x)
HGDIOBJ WINAPI GetStockObject(_In_ int)
int WINAPI FillRect(HDC, LPCRECT, HBRUSH)
int WINAPI SetBkMode(_In_ HDC, _In_ int)
HRGN WINAPI CreateRectRgnIndirect(_In_ LPCRECT)
HBRUSH WINAPI CreateSolidBrush(_In_ COLORREF)
#define CreateFontIndirect
HWND WINAPI ChildWindowFromPoint(_In_ HWND, _In_ POINT)
int WINAPI ReleaseDC(_In_opt_ HWND, _In_ HDC)
HMENU WINAPI CreatePopupMenu(void)
#define GetWindowLongPtrW
#define LR_LOADTRANSPARENT
BOOL WINAPI TranslateMessage(_In_ const MSG *)
#define WM_WINDOWPOSCHANGING
BOOL WINAPI GetWindowPlacement(_In_ HWND, _Inout_ WINDOWPLACEMENT *)
BOOL WINAPI GetWindowRect(_In_ HWND, _Out_ LPRECT)
BOOL WINAPI GetWindowInfo(_In_ HWND, _Inout_ PWINDOWINFO)
int WINAPI LoadStringW(_In_opt_ HINSTANCE hInstance, _In_ UINT uID, _Out_writes_to_(cchBufferMax, return+1) LPWSTR lpBuffer, _In_ int cchBufferMax)
BOOL WINAPI DrawFrameControl(_In_ HDC, _Inout_ LPRECT, _In_ UINT, _In_ UINT)
BOOL WINAPI SetWindowPos(_In_ HWND, _In_opt_ HWND, _In_ int, _In_ int, _In_ int, _In_ int, _In_ UINT)
struct tagWINDOWINFO WINDOWINFO
__analysis_noreturn void WINAPI PostQuitMessage(_In_ int)
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)
int WINAPI SetWindowRgn(_In_ HWND, _In_opt_ HRGN, _In_ BOOL)
HBRUSH WINAPI GetSysColorBrush(_In_ int)
#define LR_CREATEDIBSECTION
BOOL WINAPI SetForegroundWindow(_In_ HWND)
BOOL WINAPI GetCursorPos(_Out_ LPPOINT)
BOOL WINAPI AdjustWindowRectEx(_Inout_ LPRECT, _In_ DWORD, _In_ BOOL, _In_ DWORD)
BOOL WINAPI SetMenuItemInfoW(_In_ HMENU, _In_ UINT, _In_ BOOL, _In_ LPCMENUITEMINFOW)
BOOL WINAPI DeleteMenu(_In_ HMENU, _In_ UINT, _In_ UINT)
HDC WINAPI GetDCEx(_In_opt_ HWND, _In_opt_ HRGN, _In_ DWORD)
HMENU WINAPI GetSystemMenu(_In_ HWND, _In_ BOOL)
BOOL WINAPI EndDeferWindowPos(_In_ HDWP)
BOOL WINAPI TrackPopupMenuEx(_In_ HMENU, _In_ UINT, _In_ int, _In_ int, _In_ HWND, _In_opt_ LPTPMPARAMS)
HWND WINAPI ChildWindowFromPointEx(_In_ HWND, _In_ POINT, _In_ UINT)
int WINAPI MapWindowPoints(_In_opt_ HWND hWndFrom, _In_opt_ HWND hWndTo, _Inout_updates_(cPoints) LPPOINT lpPoints, _In_ UINT cPoints)
#define WM_NCLBUTTONDBLCLK
BOOL WINAPI IsIconic(_In_ HWND)
UINT_PTR WINAPI SetTimer(_In_opt_ HWND, _In_ UINT_PTR, _In_ UINT, _In_opt_ TIMERPROC)
DWORD WINAPI CheckMenuItem(_In_ HMENU, _In_ UINT, _In_ UINT)
HWND WINAPI GetDesktopWindow(void)
BOOL WINAPI ShowWindowAsync(_In_ HWND, _In_ int)
BOOL WINAPI PtInRect(_In_ LPCRECT, _In_ POINT)
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)
BOOL WINAPI RegisterHotKey(_In_opt_ HWND, _In_ int, _In_ UINT, _In_ UINT)
BOOL WINAPI EnumWindows(_In_ WNDENUMPROC lpEnumFunc, _In_ LPARAM lParam)
BOOL WINAPI IsChild(_In_ HWND, _In_ HWND)
BOOL WINAPI EndPaint(_In_ HWND, _In_ const PAINTSTRUCT *)
BOOL WINAPI IntersectRect(_Out_ LPRECT, _In_ LPCRECT, _In_ LPCRECT)
LONG WINAPI GetMessageTime(void)
BOOL WINAPI SystemParametersInfoW(_In_ UINT uiAction, _In_ UINT uiParam, _Inout_opt_ PVOID pvParam, _In_ UINT fWinIni)
BOOL WINAPI IsWindowEnabled(_In_ HWND)
#define MAKEINTRESOURCEA(i)
#define CWP_SKIPINVISIBLE
BOOL WINAPI DestroyMenu(_In_ HMENU)
BOOL WINAPI GetMenuItemInfoW(_In_ HMENU, _In_ UINT, _In_ BOOL, _Inout_ LPMENUITEMINFOW)
int WINAPI GetClassNameW(_In_ HWND hWnd, _Out_writes_to_(nMaxCount, return) LPWSTR lpClassName, _In_ int nMaxCount)
#define MDITILE_SKIPDISABLED
#define SWP_NOOWNERZORDER
BOOL WINAPI OffsetRect(_Inout_ LPRECT, _In_ int, _In_ int)
HDWP WINAPI DeferWindowPos(_In_ HDWP, _In_ HWND, _In_opt_ HWND, _In_ int, _In_ int, _In_ int, _In_ int, _In_ UINT)
#define MDITILE_HORIZONTAL
BOOL WINAPI GetMonitorInfoW(_In_ HMONITOR, _Inout_ LPMONITORINFO)
HWND WINAPI FindWindowW(_In_opt_ LPCWSTR, _In_opt_ LPCWSTR)
BOOL WINAPI InvalidateRect(_In_opt_ HWND, _In_opt_ LPCRECT, _In_ BOOL)
#define MAKEINTRESOURCEW(i)
HBITMAP WINAPI LoadBitmapW(_In_opt_ HINSTANCE, _In_ LPCWSTR)
HDC WINAPI BeginPaint(_In_ HWND, _Out_ LPPAINTSTRUCT)
BOOL WINAPI KillTimer(_In_opt_ HWND, _In_ UINT_PTR)
BOOL WINAPI InflateRect(_Inout_ LPRECT, _In_ int, _In_ int)
BOOL WINAPI SetWindowPlacement(_In_ HWND hWnd, _In_ const WINDOWPLACEMENT *)
#define SWP_NOSENDCHANGING
BOOL WINAPI IsWindowVisible(_In_ HWND)
BOOL WINAPI EnableMenuItem(_In_ HMENU, _In_ UINT, _In_ UINT)
BOOL WINAPI EqualRect(_In_ LPCRECT, _In_ LPCRECT)
int WINAPI GetSystemMetrics(_In_ int)
#define SW_SHOWMINNOACTIVE
LRESULT WINAPI SendMessageW(_In_ HWND, _In_ UINT, _In_ WPARAM, _In_ LPARAM)
SHORT WINAPI GetKeyState(_In_ int)
HDWP WINAPI BeginDeferWindowPos(_In_ int)
_Must_inspect_result_ _In_ ULONG Flags
#define IID_PPV_ARG(Itype, ppType)