From 9ec75c65fbf5500992090bcd66cca36b9d03e796 Mon Sep 17 00:00:00 2001 From: Giannis Adamopoulos Date: Sun, 1 Sep 2013 16:52:36 +0000 Subject: [PATCH] [shell32] - Stub CMenuDeskBar class svn path=/trunk/; revision=59950 --- reactos/dll/win32/shell32/CMakeLists.txt | 1 + reactos/dll/win32/shell32/CMenuDeskBar.cpp | 141 ++++++++++++++++++ reactos/dll/win32/shell32/CMenuDeskBar.h | 75 ++++++++++ reactos/dll/win32/shell32/precomp.h | 1 + .../dll/win32/shell32/res/rgs/menudeskbar.rgs | 13 ++ reactos/dll/win32/shell32/rgs_res.rc | 1 + reactos/dll/win32/shell32/shell32_main.cpp | 1 + reactos/dll/win32/shell32/shresdef.h | 1 + 8 files changed, 234 insertions(+) create mode 100644 reactos/dll/win32/shell32/CMenuDeskBar.cpp create mode 100644 reactos/dll/win32/shell32/CMenuDeskBar.h create mode 100644 reactos/dll/win32/shell32/res/rgs/menudeskbar.rgs diff --git a/reactos/dll/win32/shell32/CMakeLists.txt b/reactos/dll/win32/shell32/CMakeLists.txt index b331cc63258..9703a805171 100644 --- a/reactos/dll/win32/shell32/CMakeLists.txt +++ b/reactos/dll/win32/shell32/CMakeLists.txt @@ -24,6 +24,7 @@ list(APPEND SOURCE clipboard.cpp control.cpp CMenuBand.cpp + CMenuDeskBar.cpp dataobject.cpp dde.cpp debughlp.cpp diff --git a/reactos/dll/win32/shell32/CMenuDeskBar.cpp b/reactos/dll/win32/shell32/CMenuDeskBar.cpp new file mode 100644 index 00000000000..4d58b4ba24a --- /dev/null +++ b/reactos/dll/win32/shell32/CMenuDeskBar.cpp @@ -0,0 +1,141 @@ + +#include "precomp.h" + +WINE_DEFAULT_DEBUG_CHANNEL(shell); + +HRESULT STDMETHODCALLTYPE CMenuDeskBar::Popup( + POINTL *ppt, + RECTL *prcExclude, + MP_POPUPFLAGS dwFlags) +{ + return S_OK; +} + +HRESULT STDMETHODCALLTYPE CMenuDeskBar::OnSelect( + DWORD dwSelectType) +{ + return S_OK; +} + +HRESULT STDMETHODCALLTYPE CMenuDeskBar::SetSubMenu( + IMenuPopup *pmp, + BOOL fSet) +{ + return S_OK; +} + +HRESULT STDMETHODCALLTYPE CMenuDeskBar::SetClient( + IUnknown *punkClient) +{ + return S_OK; +} + +HRESULT STDMETHODCALLTYPE CMenuDeskBar::GetClient( + IUnknown **ppunkClient) +{ + return S_OK; +} + +HRESULT STDMETHODCALLTYPE CMenuDeskBar::OnPosRectChangeDB( + RECT *prc) +{ + return S_OK; +} + +HRESULT STDMETHODCALLTYPE CMenuDeskBar::GetWindow( + HWND *phwnd) +{ + return S_OK; +} + +HRESULT STDMETHODCALLTYPE CMenuDeskBar::ContextSensitiveHelp( + BOOL fEnterMode) +{ + return S_OK; +} + +HRESULT STDMETHODCALLTYPE CMenuDeskBar::SetSite( + IUnknown *pUnkSite) +{ + return S_OK; +} + +HRESULT STDMETHODCALLTYPE CMenuDeskBar::GetSite( + REFIID riid, + PVOID *ppvSite) +{ + return S_OK; +} + +HRESULT STDMETHODCALLTYPE CMenuDeskBar::SetIconSize(THIS_ DWORD iIcon) +{ + return S_OK; +} + +HRESULT STDMETHODCALLTYPE CMenuDeskBar::GetIconSize(THIS_ DWORD* piIcon) +{ + return S_OK; +} + +HRESULT STDMETHODCALLTYPE CMenuDeskBar::SetBitmap(THIS_ HBITMAP hBitmap) +{ + return S_OK; +} + +HRESULT STDMETHODCALLTYPE CMenuDeskBar::GetBitmap(THIS_ HBITMAP* phBitmap) +{ + return S_OK; +} + +HRESULT STDMETHODCALLTYPE CMenuDeskBar::Initialize(THIS) +{ + return S_OK; +} + +HRESULT STDMETHODCALLTYPE CMenuDeskBar::QueryStatus( + const GUID *pguidCmdGroup, + ULONG cCmds, + OLECMD prgCmds[], + OLECMDTEXT *pCmdText) +{ + return S_OK; +} + +HRESULT STDMETHODCALLTYPE CMenuDeskBar::Exec( + const GUID *pguidCmdGroup, + DWORD nCmdID, + DWORD nCmdexecopt, + VARIANT *pvaIn, + VARIANT *pvaOut) +{ + return S_OK; +} + +HRESULT STDMETHODCALLTYPE CMenuDeskBar::QueryService( + REFGUID guidService, + REFIID riid, + void **ppvObject) +{ + return S_OK; +} + +HRESULT STDMETHODCALLTYPE CMenuDeskBar::OnFocusChangeIS(THIS_ LPUNKNOWN lpUnknown, BOOL bFocus) +{ + return S_OK; +} + +HRESULT STDMETHODCALLTYPE CMenuDeskBar::UIActivateIO(THIS_ BOOL bActivating, LPMSG lpMsg) +{ + return S_OK; +} + +HRESULT STDMETHODCALLTYPE CMenuDeskBar::HasFocusIO(THIS) +{ + return S_OK; +} + +HRESULT STDMETHODCALLTYPE CMenuDeskBar::TranslateAcceleratorIO(THIS_ LPMSG lpMsg) +{ + return S_OK; +} + diff --git a/reactos/dll/win32/shell32/CMenuDeskBar.h b/reactos/dll/win32/shell32/CMenuDeskBar.h new file mode 100644 index 00000000000..939cd1bafd6 --- /dev/null +++ b/reactos/dll/win32/shell32/CMenuDeskBar.h @@ -0,0 +1,75 @@ + +class CMenuDeskBar: + public CComCoClass, + public CComObjectRootEx, + public IOleCommandTarget, + public IServiceProvider, + public IInputObjectSite, + public IInputObject, + public IMenuPopup, + public IObjectWithSite, + public IBanneredBar, + public IInitializeObject +{ +public: + + // *** IMenuPopup methods *** + virtual HRESULT STDMETHODCALLTYPE Popup(POINTL *ppt, RECTL *prcExclude, MP_POPUPFLAGS dwFlags); + virtual HRESULT STDMETHODCALLTYPE OnSelect(DWORD dwSelectType); + virtual HRESULT STDMETHODCALLTYPE SetSubMenu(IMenuPopup *pmp,BOOL fSet); + + // *** IDeskBar methods *** + virtual HRESULT STDMETHODCALLTYPE SetClient(IUnknown *punkClient); + virtual HRESULT STDMETHODCALLTYPE GetClient(IUnknown **ppunkClient); + virtual HRESULT STDMETHODCALLTYPE OnPosRectChangeDB(RECT *prc); + + // *** IOleWindow methods *** + virtual HRESULT STDMETHODCALLTYPE GetWindow(HWND *phwnd); + virtual HRESULT STDMETHODCALLTYPE ContextSensitiveHelp(BOOL fEnterMode); + + // *** IObjectWithSite methods *** + virtual HRESULT STDMETHODCALLTYPE SetSite(IUnknown *pUnkSite); + virtual HRESULT STDMETHODCALLTYPE GetSite(REFIID riid,PVOID *ppvSite); + + // *** IBanneredBar methods *** + virtual HRESULT STDMETHODCALLTYPE SetIconSize(THIS_ DWORD iIcon); + virtual HRESULT STDMETHODCALLTYPE GetIconSize(THIS_ DWORD* piIcon); + virtual HRESULT STDMETHODCALLTYPE SetBitmap(THIS_ HBITMAP hBitmap); + virtual HRESULT STDMETHODCALLTYPE GetBitmap(THIS_ HBITMAP* phBitmap); + + // *** IInitializeObject methods *** + virtual HRESULT STDMETHODCALLTYPE Initialize(THIS); + + // *** IOleCommandTarget methods *** + virtual HRESULT STDMETHODCALLTYPE QueryStatus(const GUID *pguidCmdGroup, ULONG cCmds, OLECMD prgCmds[], OLECMDTEXT *pCmdText); + virtual HRESULT STDMETHODCALLTYPE Exec(const GUID *pguidCmdGroup, DWORD nCmdID, DWORD nCmdexecopt, VARIANT *pvaIn, VARIANT *pvaOut); + + // *** IServiceProvider methods *** + virtual HRESULT STDMETHODCALLTYPE QueryService(REFGUID guidService, REFIID riid, void **ppvObject); + + // *** IInputObjectSite methods *** + virtual HRESULT STDMETHODCALLTYPE OnFocusChangeIS(THIS_ LPUNKNOWN lpUnknown, BOOL bFocus); + + // *** IInputObject methods *** + virtual HRESULT STDMETHODCALLTYPE UIActivateIO(THIS_ BOOL bActivating, LPMSG lpMsg); + virtual HRESULT STDMETHODCALLTYPE HasFocusIO(THIS); + virtual HRESULT STDMETHODCALLTYPE TranslateAcceleratorIO(THIS_ LPMSG lpMsg); + +DECLARE_REGISTRY_RESOURCEID(IDR_MENUDESKBAR) +DECLARE_NOT_AGGREGATABLE(CMenuDeskBar) +DECLARE_PROTECT_FINAL_CONSTRUCT() + +BEGIN_COM_MAP(CMenuDeskBar) + COM_INTERFACE_ENTRY_IID(IID_IMenuPopup, IMenuPopup) + COM_INTERFACE_ENTRY_IID(IID_IOleCommandTarget, IOleCommandTarget) + COM_INTERFACE_ENTRY_IID(IID_IServiceProvider, IServiceProvider) + COM_INTERFACE_ENTRY_IID(IID_IInputObjectSite, IInputObjectSite) + COM_INTERFACE_ENTRY_IID(IID_IInputObject, IInputObject) + COM_INTERFACE_ENTRY_IID(IID_IDeskBar, IMenuPopup) + COM_INTERFACE_ENTRY_IID(IID_IOleWindow, IMenuPopup) + COM_INTERFACE_ENTRY_IID(IID_IObjectWithSite, IObjectWithSite) + COM_INTERFACE_ENTRY_IID(IID_IBanneredBar, IBanneredBar) + COM_INTERFACE_ENTRY_IID(IID_IInitializeObject, IInitializeObject) +END_COM_MAP() + +}; diff --git a/reactos/dll/win32/shell32/precomp.h b/reactos/dll/win32/shell32/precomp.h index 670a1aa27e2..30a1900c825 100644 --- a/reactos/dll/win32/shell32/precomp.h +++ b/reactos/dll/win32/shell32/precomp.h @@ -72,6 +72,7 @@ #include "filedefext.h" #include "drvdefext.h" #include "CMenuBand.h" +#include "CMenuDeskBar.h" #include diff --git a/reactos/dll/win32/shell32/res/rgs/menudeskbar.rgs b/reactos/dll/win32/shell32/res/rgs/menudeskbar.rgs new file mode 100644 index 00000000000..b991cb85c5e --- /dev/null +++ b/reactos/dll/win32/shell32/res/rgs/menudeskbar.rgs @@ -0,0 +1,13 @@ +HKCR +{ + NoRemove CLSID + { + ForceRemove {ECD4FC4F-521C-11D0-B792-00A0C90312E1} = s 'Menu Desk Bar' + { + InprocServer32 = s '%MODULE%' + { + val ThreadingModel = s 'Apartment' + } + } + } +} diff --git a/reactos/dll/win32/shell32/rgs_res.rc b/reactos/dll/win32/shell32/rgs_res.rc index 3a3b82f8ce7..fdc8ffe965d 100644 --- a/reactos/dll/win32/shell32/rgs_res.rc +++ b/reactos/dll/win32/shell32/rgs_res.rc @@ -11,6 +11,7 @@ IDR_FOLDERSHORTCUT REGISTRY "res/rgs/foldershortcut.rgs" IDR_FONTSFOLDERSHORTCUT REGISTRY "res/rgs/fontsfoldershortcut.rgs" IDR_MENUBAND REGISTRY "res/rgs/menuband.rgs" IDR_MENUBANDSITE REGISTRY "res/rgs/menubandsite.rgs" +IDR_MENUDESKBAR REGISTRY "res/rgs/menudeskbar.rgs" IDR_MYCOMPUTER REGISTRY "res/rgs/mycomputer.rgs" IDR_MYDOCUMENTS REGISTRY "res/rgs/mydocuments.rgs" IDR_NETWORKPLACES REGISTRY "res/rgs/networkplaces.rgs" diff --git a/reactos/dll/win32/shell32/shell32_main.cpp b/reactos/dll/win32/shell32/shell32_main.cpp index 32ab14e9b5f..7515a678429 100644 --- a/reactos/dll/win32/shell32/shell32_main.cpp +++ b/reactos/dll/win32/shell32/shell32_main.cpp @@ -1369,6 +1369,7 @@ BEGIN_OBJECT_MAP(ObjectMap) OBJECT_ENTRY(CLSID_StartMenu, CStartMenu) OBJECT_ENTRY(CLSID_MenuBandSite, CMenuBandSite) OBJECT_ENTRY(CLSID_MenuBand, CMenuBand) + OBJECT_ENTRY(CLSID_MenuDeskBar, CMenuDeskBar) END_OBJECT_MAP() CShell32Module gModule; diff --git a/reactos/dll/win32/shell32/shresdef.h b/reactos/dll/win32/shell32/shresdef.h index 3b02e195fad..91e6606de16 100644 --- a/reactos/dll/win32/shell32/shresdef.h +++ b/reactos/dll/win32/shell32/shresdef.h @@ -538,5 +538,6 @@ #define IDR_FILEDEFEXT 147 #define IDR_DRVDEFEXT 148 #define IDR_MENUBAND 149 +#define IDR_MENUDESKBAR 150 #endif