1#ifndef _EXPLORER_PRECOMP__H_
2#define _EXPLORER_PRECOMP__H_
4#define WIN7_COMPAT_MODE 0
5#define WIN7_DEBUG_MODE 0
7#if WIN7_DEBUG_MODE && !WIN7_COMPAT_MODE
9#define WIN7_COMPAT_MODE 1
15#define WIN32_NO_STATUS
17#define COM_NO_WINDOWS_H
61 Win32DbgPrint(__FILE__, __LINE__, "ASSERTION %s FAILED!\n", #cond); \
132#define TWM_GETTASKSWITCH (WM_USER + 236)
133#define TWM_OPENSTARTMENU (WM_USER + 260)
134#define TWM_SETTINGSCHANGED (WM_USER + 300)
135#define TWM_SETZORDER (WM_USER + 338)
139#define INTERFACE ITrayWindow
160#if defined(COBJMACROS)
162#define ITrayWindow_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
163#define ITrayWindow_AddRef(p) (p)->lpVtbl->AddRef(p)
164#define ITrayWindow_Release(p) (p)->lpVtbl->Release(p)
166#define ITrayWindow_Open(p) (p)->lpVtbl->Open(p)
167#define ITrayWindow_Close(p) (p)->lpVtbl->Close(p)
168#define ITrayWindow_GetHWND(p) (p)->lpVtbl->GetHWND(p)
169#define ITrayWindow_IsSpecialHWND(p,a) (p)->lpVtbl->IsSpecialHWND(p,a)
170#define ITrayWindow_IsHorizontal(p) (p)->lpVtbl->IsHorizontal(p)
171#define ITrayWindow_DisplayProperties(p) (p)->lpVtbl->DisplayProperties(p)
172#define ITrayWindow_ExecContextMenuCmd(p,a) (p)->lpVtbl->ExecContextMenuCmd(p,a)
173#define ITrayWindow_Lock(p,a) (p)->lpVtbl->Lock(p,a)
174#define ITrayWindow_IsTaskWnd(p,a) (p)->lpVtbl->IsTaskWnd(p,a)
175#define ITrayWindow_NotifyFullScreenToAppBars(p,a,b) (p)->lpVtbl->NotifyFullScreenToAppBars(p,a,b)
299#define INTERFACE ITrayBandSite
317#if defined(COBJMACROS)
319#define ITrayBandSite_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
320#define ITrayBandSite_AddRef(p) (p)->lpVtbl->AddRef(p)
321#define ITrayBandSite_Release(p) (p)->lpVtbl->Release(p)
323#define ITrayBandSite_OnLoad(p,a,b,c) (p)->lpVtbl->OnLoad(p,a,b,c)
324#define ITrayBandSite_OnSave(p,a,b) (p)->lpVtbl->OnSave(p,a,b)
326#define ITrayBandSite_IsTaskBand(p,a) (p)->lpVtbl->IsTaskBand(p,a)
327#define ITrayBandSite_ProcessMessage(p,a,b,c,d,e) (p)->lpVtbl->ProcessMessage(p,a,b,c,d,e)
328#define ITrayBandSite_AddContextMenus(p,a,b,c,d,e,f) (p)->lpVtbl->AddContextMenus(p,a,b,c,d,e,f)
329#define ITrayBandSite_Lock(p,a) (p)->lpVtbl->Lock(p,a)
380#define TNWM_GETMINIMUMSIZE (WM_USER + 0x100)
381#define TNWM_CHANGETRAYPOS (WM_USER + 0x104)
382#define TNWM_GETSHOWDESKTOPBUTTON (WM_USER + 0x7601)
384#define NTNWM_REALIGN (0x1)
397#define TSWM_UPDATETASKBARPOS (WM_USER + 2)
#define WINE_DEFAULT_DEBUG_CHANNEL(t)
VOID DisplayTrayProperties(IN HWND hwndOwner, IN HWND hwndTaskbar)
const GUID IID_IShellDesktopTray
HMENU FindSubMenu(IN HMENU hMenu, IN UINT uItem, IN BOOL fByPosition)
VOID DesktopDestroyShellWindow(IN HANDLE hDesktop)
HRESULT CTrayClockWnd_CreateInstance(HWND hwndParent, REFIID riid, void **ppv)
BOOL FormatMenuString(IN HMENU hMenu, IN UINT uPosition, IN UINT uFlags,...)
BOOL SetAdvancedDword(IN LPCWSTR pszValueName, IN DWORD dwValue)
HRESULT CSysPagerWnd_CreateInstance(HWND hwndParent, REFIID riid, void **ppv)
struct _TW_STUCKRECTS2 TW_STRUCKRECTS2
HRESULT UpdateStartMenu(IN OUT IMenuPopup *pMenuPopup, IN HBITMAP hbmBanner OPTIONAL, IN BOOL bSmallIcons, IN BOOL bRefresh)
VOID TrayMessageLoop(IN OUT ITrayWindow *Tray)
BOOL GetAdvancedBool(IN LPCWSTR pszValueName, IN BOOL bDefaultValue)
HRESULT WINAPI _CBandSite_CreateInstance(LPUNKNOWN pUnkOuter, REFIID riid, void **ppv)
HRESULT CStartMenuBtnCtxMenu_CreateInstance(ITrayWindow *TrayWnd, IN HWND hWndOwner, IContextMenu **ppCtxMenu)
static LONG SetWindowExStyle(IN HWND hWnd, IN LONG dwStyleMask, IN LONG dwStyle)
HRESULT CTaskSwitchWnd_CreateInstance(IN HWND hWndParent, IN OUT ITrayWindow *Tray, REFIID riid, void **ppv)
HMENU LoadPopupMenu(IN HINSTANCE hInstance, IN LPCWSTR lpMenuName)
VOID TrayProcessMessages(IN OUT ITrayWindow *Tray)
BOOL WINAPI _SHDesktopMessageLoop(HANDLE hDesktop)
IMenuPopup * CreateStartMenu(IN ITrayWindow *Tray, OUT IMenuBand **ppMenuBand, IN HBITMAP hbmBanner OPTIONAL, IN BOOL bSmallIcons)
HRESULT CStartMenuSite_CreateInstance(IN OUT ITrayWindow *Tray, const IID &riid, PVOID *ppv)
HRESULT WINAPI _CBandSiteMenu_CreateInstance(REFIID riid, void **ppv)
static VOID DoFinishStartupItems()
VOID ReleaseStartupMutex()
HRESULT Tray_OnStartMenuDismissed(ITrayWindow *Tray)
void WINAPI _ShellDDEInit(BOOL bInit)
HRESULT CreateTrayWindow(ITrayWindow **ppTray)
TaskbarSettings g_TaskbarSettings
VOID ShowCustomizeClassic(HINSTANCE, HWND)
HANDLE DesktopCreateWindow(IN OUT ITrayWindow *Tray)
BOOL GetCurrentLoggedOnUserName(OUT LPWSTR szBuffer, IN DWORD dwBufferSize)
VOID ProcessRunOnceItems()
HRESULT CTrayNotifyWnd_CreateInstance(HWND hwndParent, REFIID riid, void **ppv)
struct _TW_STUCKRECTS2 * PTW_STUCKRECTS2
HRESULT CTrayBandSite_CreateInstance(IN ITrayWindow *tray, IN IDeskBand *pTaskBand, OUT ITrayBandSite **pBandSite)
HRESULT IsSameObject(IN IUnknown *punk1, IN IUnknown *punk2)
BOOL SetRegDword(IN LPCWSTR pszSubKey, IN LPCWSTR pszValueName, IN DWORD dwValue)
BOOL GetRegValue(IN LPCWSTR pszSubKey, IN LPCWSTR pszValueName, IN BOOL bDefaultValue)
static LONG SetWindowStyle(IN HWND hWnd, IN LONG dwStyleMask, IN LONG dwStyle)
static INT ProcessStartupItems()
HANDLE WINAPI _SHCreateDesktop(IShellDesktopTray *ShellDesk)
const GUID CLSID_ITaskBand
VOID ShowCustomizeNotifyIcons(HINSTANCE, HWND)
HINSTANCE hExplorerInstance
HRESULT InitShellServices(HDPA *phdpa)
BOOL DoStartStartupItems(ITrayWindow *Tray)
HRESULT CTaskBand_CreateInstance(IN ITrayWindow *Tray, HWND hWndStartButton, REFIID riid, void **ppv)
HRESULT ShutdownShellServices(HDPA hdpa)
BOOL WINAPI _WinList_Init(void)
static BOOL GetHideClock()
HRESULT WINAPI _CStartMenu_CreateInstance(REFIID riid, void **ppv)
#define DECLARE_INTERFACE_(i, b)
LONG WINAPI SHSetWindowBits(HWND hwnd, INT offset, UINT mask, UINT flags)
static void *static void *static LPDIRECTPLAY IUnknown * pUnk
static HRESULT QueryInterface(REFIID, void **)
static ULONG WINAPI AddRef(IStream *iface)
static const CLSID *static CLSID *static const GUID VARIANT VARIANT *static IServiceProvider DWORD *static HMENU
_In_opt_ LPCSTR pszSubKey
DWORD WINAPI SHRestricted(RESTRICTIONS rest)
PULONG MinorVersion OPTIONAL
TrayIconsMode eCompactTrayIcons
BOOL UseCompactTrayIcons()
_Must_inspect_result_ _In_opt_ PWDF_OBJECT_ATTRIBUTES _Out_ WDFWAITLOCK * Lock