25#ifdef MULTIMONITOR_SUPPORT
37 public CWindowImpl<CDesktopBrowser, CWindow, CFrameWinTraits>,
38 public CComObjectRootEx<CComMultiThreadModelNoCS>,
40 public IShellBrowserService,
149#ifdef MULTIMONITOR_SUPPORT
157 CAtlList<RECT> *
list = (CAtlList<RECT>*)
dwData;
159 MonitorInfo.
cbSize =
sizeof(MonitorInfo);
173#ifdef MULTIMONITOR_SUPPORT
199 prcWorkAreas[
i++] =
list.GetAt(it);
217 CComPtr<IShellFolder> psfDesktop;
233 m_Tray->RegisterDesktopWindow(m_hWnd);
239 RECT rcShellView = {0,0,0,0};
377 hRet =
m_Tray->GetTrayWindow(&hWndTray);
456 TRACE(
"Proxy Desktop message 1035 received.\n");
494 for (
INT iDrive = 0; iDrive <=
'Z' -
'A'; ++iDrive)
497 DWORD dwBit = (1 << iDrive);
498 if (!(
m_dwDrives & dwBit) && (dwDrives & dwBit))
503 else if ((
m_dwDrives & dwBit) && !(dwDrives & dwBit))
521#if (NTDDI_VERSION >= NTDDI_VISTA)
543 return ShellObjectCreatorInit<CDesktopBrowser, IShellDesktopTray*>(Tray,
riid,
ppv);
558 CComPtr<IShellBrowser> Browser;
563 return static_cast<HANDLE>(Browser.Detach());
572 if (hDesktop ==
NULL)
581 CComPtr<IShellBrowser> browser;
582 CComPtr<IShellView> shellView;
585 HRESULT hr = browser->QueryActiveShellView(&shellView);
593 if (shellView->TranslateAcceleratorW(&
Msg) !=
S_OK)
618 DevMode.
dmSize =
sizeof(DevMode);
HRESULT CChangeNotifyServer_CreateInstance(REFIID riid, void **ppv)
#define WM_DESKTOP_GET_CNOTIFY_SERVER
BOOL WINAPI SHDesktopMessageLoop(HANDLE hDesktop)
VOID WINAPI ShowFolderOptionsDialog(UINT Page, BOOL Async)
EXTERN_C BOOL WINAPI SHIsTempDisplayMode(VOID)
HRESULT CDesktopBrowser_CreateInstance(IShellDesktopTray *Tray, REFIID riid, void **ppv)
static const WCHAR szProgmanClassName[]
static const WCHAR szProgmanWindowName[]
HANDLE WINAPI SHCreateDesktop(IShellDesktopTray *Tray)
HRESULT WINAPI SHGetDesktopFolder(IShellFolder **psf)
#define shell32_hInstance
#define WINE_DEFAULT_DEBUG_CHANNEL(t)
#define STDMETHODCALLTYPE
#define WM_EXPLORER_OPEN_NEW_WINDOW
#define SH_EXPLORER_CMDLINE_FLAG_E
EXTERN_C void WINAPI SHChangeNotify(LONG wEventId, UINT uFlags, LPCVOID dwItem1, LPCVOID dwItem2)
STDMETHOD() QueryService(REFGUID guidService, REFIID riid, void **ppvObject) override
STDMETHOD() RemoveMenusSB(HMENU hmenuShared) override
CComPtr< IShellView > m_ShellView
CComPtr< IOleWindow > m_ChangeNotifyServer
STDMETHOD() EnableModelessSB(BOOL fEnable) override
STDMETHOD() GetWindow(HWND *lphwnd) override
STDMETHOD() SetToolbarItems(LPTBBUTTON lpButtons, UINT nButtons, UINT uFlags) override
STDMETHOD() TranslateAcceleratorSB(MSG *pmsg, WORD wID) override
void SetTopBrowser() const
LRESULT OnSaveState(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL &bHandled)
LRESULT OnEraseBkgnd(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL &bHandled)
STDMETHOD() GetViewStateStream(DWORD grfMode, IStream **ppStrm) override
HRESULT Initialize(IShellDesktopTray *ShellDeskx)
LRESULT OnCommand(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL &bHandled)
LRESULT OnGetChangeNotifyServer(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL &bHandled)
LRESULT OnSize(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL &bHandled)
CComPtr< IShellDesktopTray > m_Tray
LRESULT OnOpenNewWindow(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL &bHandled)
STDMETHOD() InsertMenusSB(HMENU hmenuShared, LPOLEMENUGROUPWIDTHS lpMenuWidths) override
STDMETHOD() SendControlMsg(UINT id, UINT uMsg, WPARAM wParam, LPARAM lParam, LRESULT *pret) override
STDMETHOD() SetStatusTextSB(LPCOLESTR pszStatusText) override
STDMETHOD() GetPropertyBag(long flags, REFIID riid, void **ppv) override
LRESULT OnShowOptionsDlg(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL &bHandled)
STDMETHOD() ContextSensitiveHelp(BOOL fEnterMode) override
STDMETHOD() SetMenuSB(HMENU hmenuShared, HOLEMENU holemenuRes, HWND hwndActiveObject) override
STDMETHOD() BrowseObject(LPCITEMIDLIST pidl, UINT wFlags) override
LRESULT OnSetFocus(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL &bHandled)
STDMETHOD() OnViewWindowActive(struct IShellView *ppshv) override
LRESULT OnDeviceChange(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL &bHandled)
LRESULT OnSettingChange(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL &bHandled)
LRESULT OnClose(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL &bHandled)
STDMETHOD() QueryActiveShellView(struct IShellView **ppshv) override
LRESULT _NotifyTray(UINT uMsg, WPARAM wParam, LPARAM lParam)
STDMETHOD() GetControlWindow(UINT id, HWND *lphwnd) override
HWND m_hwndChangeNotifyServer
#define DBT_DEVICEARRIVAL
#define DBT_DEVICEREMOVECOMPLETE
HRESULT WINAPI SHOpenNewFrame(LPITEMIDLIST pidl, IUnknown *paramC, long param10, DWORD dwFlags)
BOOL WINAPI SHOnCWMCommandLine(HANDLE hSharedInfo)
#define FCIDM_DESKBROWSER_REFRESH
#define ERROR_INVALID_PARAMETER
#define FAILED_UNEXPECTEDLY(hr)
int WINAPI lstrcmpiW(LPCWSTR str1, LPCWSTR str2)
HRESULT WINAPI SHGetViewStatePropertyBag(LPCITEMIDLIST pidl, LPWSTR bag_name, DWORD flags, REFIID riid, void **ppv)
LPWSTR WINAPI PathBuildRootW(LPWSTR lpszPath, int drive)
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
HRESULT QueryInterface([in] REFIID riid, [out, iid_is(riid)] void **ppvObject)
#define COM_INTERFACE_ENTRY_IID(iid, x)
#define MESSAGE_HANDLER(msg, func)
#define BEGIN_MSG_MAP(theClass)
#define DECLARE_WND_CLASS_EX(WndClassName, style, bkgnd)
static HANDLE ULONG_PTR dwData
static const CLSID *static CLSID *static const GUID VARIANT VARIANT *static IServiceProvider DWORD *static HMENU
unsigned __int3264 UINT_PTR
_In_ PVOID _Out_opt_ BOOLEAN _Out_opt_ PPFN_NUMBER Page
const GUID IID_IOleWindow
LPITEMIDLIST WINAPI ILClone(LPCITEMIDLIST pidl)
BOOL CALLBACK MonitorEnumProc(HMONITOR hMonitor, HDC hdcMonitor, RECT *rcMonitor, LPARAM Param)
EXTERN_C BOOL WINAPI RegenerateUserEnvironment(LPVOID *lpEnvironment, BOOL bUpdateSelf)
BOOL WINAPI SHFindFiles(PCIDLIST_ABSOLUTE pidlFolder, PCIDLIST_ABSOLUTE pidlSaveFile)
#define SHELL_GetSetting(pss, ssf, field)
#define SHCNE_DRIVEREMOVED
_In_ int _In_ BOOL bCreate
DWORD WINAPI SHRestricted(RESTRICTIONS rest)
#define FCIDM_DESKBROWSER_FOCUS
#define FCIDM_DESKBROWSER_SEARCH
#define FCIDM_DESKBROWSER_CLOSE
const ITEMIDLIST UNALIGNED * LPCITEMIDLIST
TW_UINT32 TW_UINT16 TW_UINT16 MSG
#define TRAYCMD_TASKBAR_PROPERTIES
#define TWM_DOEXITWINDOWS
#define WM_PROGMAN_SAVESTATE
#define WM_PROGMAN_OPENSHELLSETTINGS
BOOL WINAPI EnumDisplaySettingsW(LPCWSTR lpszDeviceName, DWORD iModeNum, LPDEVMODEW lpDevMode)
DWORD WINAPI GetLogicalDrives(void)
_In_ DWORD _Out_ _In_ WORD wFlags
_In_ PCCERT_CONTEXT _In_ DWORD dwFlags
_In_ void _In_ PCCERT_CONTEXT _In_opt_ LPFILETIME _In_ DWORD _In_ DWORD _Outptr_opt_ void ** ppvObject
int WINAPI GetDeviceCaps(_In_opt_ HDC, _In_ int)
int WINAPI ReleaseDC(_In_opt_ HWND, _In_ HDC)
BOOL WINAPI IsWindow(_In_opt_ HWND)
#define SM_CYVIRTUALSCREEN
BOOL WINAPI TranslateMessage(_In_ const MSG *)
BOOL WINAPI ShowWindow(_In_ HWND, _In_ int)
BOOL WINAPI GetMessageW(_Out_ LPMSG, _In_opt_ HWND, _In_ UINT, _In_ UINT)
BOOL WINAPI PostMessageW(_In_opt_ HWND, _In_ UINT, _In_ WPARAM, _In_ LPARAM)
BOOL WINAPI PaintDesktop(_In_ HDC)
#define ENUM_REGISTRY_SETTINGS
BOOL WINAPI EnumDisplayMonitors(_In_opt_ HDC, _In_opt_ LPCRECT, _In_ MONITORENUMPROC, _In_ LPARAM)
#define WM_SYSCOLORCHANGE
#define SM_CXVIRTUALSCREEN
HWND WINAPI FindWindowExW(_In_opt_ HWND, _In_opt_ HWND, _In_opt_ LPCWSTR, _In_opt_ LPCWSTR)
HWND WINAPI SetFocus(_In_opt_ HWND)
BOOL WINAPI UpdateWindow(_In_ HWND)
HDC WINAPI GetDC(_In_opt_ HWND)
BOOL WINAPI SystemParametersInfoW(_In_ UINT uiAction, _In_ UINT uiParam, _Inout_opt_ PVOID pvParam, _In_ UINT fWinIni)
HACCEL WINAPI LoadAcceleratorsW(_In_opt_ HINSTANCE, _In_ LPCWSTR)
LRESULT WINAPI DispatchMessageW(_In_ const MSG *)
int WINAPI TranslateAcceleratorW(_In_ HWND, _In_ HACCEL, _In_ LPMSG)
BOOL WINAPI GetMonitorInfoW(_In_ HMONITOR, _Inout_ LPMONITORINFO)
#define SM_XVIRTUALSCREEN
BOOL WINAPI InvalidateRect(_In_opt_ HWND, _In_opt_ LPCRECT, _In_ BOOL)
#define MAKEINTRESOURCEW(i)
BOOL WINAPI DestroyWindow(_In_ HWND)
int WINAPI GetSystemMetrics(_In_ int)
BOOL WINAPI MoveWindow(_In_ HWND, _In_ int, _In_ int, _In_ int, _In_ int, _In_ BOOL)
LRESULT WINAPI SendMessageW(_In_ HWND, _In_ UINT, _In_ WPARAM, _In_ LPARAM)
#define SM_YVIRTUALSCREEN
SHORT WINAPI GetKeyState(_In_ int)
BOOL WINAPI SetRect(_Out_ LPRECT, _In_ int, _In_ int, _In_ int, _In_ int)
#define IID_PPV_ARG(Itype, ppType)