From 8c875b905dfdfe5bacdbe8c8bc277e2757ed3207 Mon Sep 17 00:00:00 2001 From: Ged Murphy Date: Thu, 1 May 2008 08:21:15 +0000 Subject: [PATCH] More COM interfaces needed for the new explorer svn path=/trunk/; revision=33205 --- reactos/base/shell/explorer-new/todo.h | 80 -------------------------- reactos/include/psdk/shobjidl.idl | 73 +++++++++++++++++++++++ 2 files changed, 73 insertions(+), 80 deletions(-) diff --git a/reactos/base/shell/explorer-new/todo.h b/reactos/base/shell/explorer-new/todo.h index bbfe49f54a5..76a5957b9de 100644 --- a/reactos/base/shell/explorer-new/todo.h +++ b/reactos/base/shell/explorer-new/todo.h @@ -46,35 +46,6 @@ static const GUID SID_HACK_SMenuPopup = {0xD1E7AFEB,0x6A2E,0x11D0,{0x8C,0x78,0x0 #define IDeskBarClient_GetSize(T,a,b) (T)->lpVtbl->GetSize(T,a,b) #endif - -#define INTERFACE IDeskBar -DECLARE_INTERFACE_(IDeskBar,IUnknown) -{ - /*** IUnknown methods ***/ - STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE; - STDMETHOD_(ULONG,AddRef)(THIS) PURE; - STDMETHOD_(ULONG,Release)(THIS) PURE; - /*** IOleWindow methods ***/ - STDMETHOD_(HRESULT,GetWindow)(THIS_ HWND*) PURE; - STDMETHOD_(HRESULT,ContextSensitiveHelp)(THIS_ BOOL) PURE; - /*** IDeskBar methods ***/ - STDMETHOD_(HRESULT,SetClient)(THIS_ IUnknown*) PURE; - STDMETHOD_(HRESULT,GetClient)(THIS_ IUnknown**) PURE; - STDMETHOD_(HRESULT,OnPosRectChangeDB)(THIS_ RECT*) PURE; -}; -#undef INTERFACE - -#ifdef COBJMACROS -#define IDeskBar_QueryInterface(T,a,b) (T)->lpVtbl->QueryInterface(T,a,b) -#define IDeskBar_AddRef(T) (T)->lpVtbl->AddRef(T) -#define IDeskBar_Release(T) (T)->lpVtbl->Release(T) -#define IDeskBar_GetWindow(T,a) (T)->lpVtbl->GetWindow(T,a) -#define IDeskBar_ContextSensitiveHelp(T,a) (T)->lpVtbl->ContextSensitiveHelp(T,a) -#define IDeskBar_SetClient(T,a) (T)->lpVtbl->SetClient(T,a) -#define IDeskBar_GetClient(T,a) (T)->lpVtbl->GetClient(T,a) -#define IDeskBar_OnPosRectChangeDB(T,a) (T)->lpVtbl->OnPosRectChangeDB(T,a) -#endif - #include typedef struct { @@ -315,59 +286,8 @@ DECLARE_INTERFACE_(IBanneredBar,IUnknown) #define IBanneredBar_GetBitmap(T,a) (T)->lpVtbl->GetBitmap(T,a) #endif -enum tagMENUPOPUPPOPUPFLAGS -{ - MPPF_SETFOCUS = 0x1, - MPPF_INITIALSELECT = 0x2, - MPPF_NOANIMATE = 0x4, - MPPF_KEYBOARD = 0x10, - MPPF_REPOSITION = 0x20, - MPPF_FORCEZORDER = 0x40, - MPPF_FINALSELECT = 0x80, - MPPF_TOP = 0x20000000, - MPPF_LEFT = 0x40000000, - MPPF_RIGHT = 0x60000000, - MPPF_BOTTOM = 0x80000000, - MPPF_POS_MASK = 0xE0000000, - MPPF_ALIGN_LEFT = 0x2000000, - MPPF_ALIGN_RIGHT = 0x4000000, -}; -typedef int MP_POPUPFLAGS; -#define INTERFACE IMenuPopup -DECLARE_INTERFACE_(IMenuPopup,IUnknown) -{ - /*** IUnknown methods ***/ - STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE; - STDMETHOD_(ULONG,AddRef)(THIS) PURE; - STDMETHOD_(ULONG,Release)(THIS) PURE; - /*** IOleWindow methods ***/ - STDMETHOD_(HRESULT,GetWindow)(THIS_ HWND*) PURE; - STDMETHOD_(HRESULT,ContextSensitiveHelp)(THIS_ BOOL) PURE; - /*** IDeskBar methods ***/ - STDMETHOD_(HRESULT,SetClient)(THIS_ IUnknown*) PURE; - STDMETHOD_(HRESULT,GetClient)(THIS_ IUnknown**) PURE; - STDMETHOD_(HRESULT,OnPosRectChangeDB)(THIS_ RECT*) PURE; - /*** IMenuPopup methods ***/ - STDMETHOD_(HRESULT,Popup)(THIS_ POINTL*,RECTL*,MP_POPUPFLAGS) PURE; - STDMETHOD_(HRESULT,OnSelect)(THIS_ DWORD) PURE; - STDMETHOD_(HRESULT,SetSubMenu)(THIS_ IMenuPopup*,BOOL) PURE; -}; -#undef INTERFACE -#ifdef COBJMACROS -#define IMenuPopup_QueryInterface(T,a,b) (T)->lpVtbl->QueryInterface(T,a,b) -#define IMenuPopup_AddRef(T) (T)->lpVtbl->AddRef(T) -#define IMenuPopup_Release(T) (T)->lpVtbl->Release(T) -#define IMenuPopup_GetWindow(T,a) (T)->lpVtbl->GetWindow(T,a) -#define IMenuPopup_ContextSensitiveHelp(T,a) (T)->lpVtbl->ContextSensitiveHelp(T,a) -#define IMenuPopup_SetClient(T,a) (T)->lpVtbl->SetClient(T,a) -#define IMenuPopup_GetClient(T,a) (T)->lpVtbl->GetClient(T,a) -#define IMenuPopup_OnPosRectChangeDB(T,a) (T)->lpVtbl->OnPosRectChangeDB(T,a) -#define IMenuPopup_Popup(T,a,b,c) (T)->lpVtbl->Popup(T,a,b,c) -#define IMenuPopup_OnSelect(T,a) (T)->lpVtbl->OnSelect(T,a) -#define IMenuPopup_SetSubMenu(T,a,b) (T)->lpVtbl->SetSubMenu(T,a,b) -#endif #define INTERFACE IMenuBand DECLARE_INTERFACE_(IMenuBand,IUnknown) diff --git a/reactos/include/psdk/shobjidl.idl b/reactos/include/psdk/shobjidl.idl index bba958b8124..b61975a9b39 100644 --- a/reactos/include/psdk/shobjidl.idl +++ b/reactos/include/psdk/shobjidl.idl @@ -1510,3 +1510,76 @@ interface IDeskBand2 : IDeskBand cpp_quote("#endif // NTDDI_LONGHORN") + + +cpp_quote("#if (_WIN32_IE >= _WIN32_IE_IE60)") + +[ + uuid(EB0FE173-1A3A-11D0-89B3-00A0C90A90AC), + object, + pointer_default(unique), + local +] +interface IDeskBar : IOleWindow +{ + HRESULT SetClient([in] IUnknown* punkClient); + + HRESULT GetClient([out] IUnknown** ppunkClient); + + HRESULT OnPosRectChangeDB([in] RECT *prc); +} + + +/***************************************************************************** + * IMenuPopup interface + */ +[ + uuid(D1E7AFEB-6A2E-11d0-8C78-00C04FD918B4), + object, + pointer_default(unique), + local +] +interface IMenuPopup : IDeskBar +{ + enum tagMENUPOPUPSELECT + { + MPOS_EXECUTE = 0, + MPOS_FULLCANCEL, + MPOS_CANCELLEVEL, + MPOS_SELECTLEFT, + MPOS_SELECTRIGHT, + MPOS_CHILDTRACKING + }; + + enum tagMENUPOPUPPOPUPFLAGS + { + MPPF_SETFOCUS = 0x00000001, + MPPF_INITIALSELECT = 0x00000002, + MPPF_NOANIMATE = 0x00000004, + MPPF_KEYBOARD = 0x00000010, + MPPF_REPOSITION = 0x00000020, + MPPF_FORCEZORDER = 0x00000040, + MPPF_FINALSELECT = 0x00000080, + MPPF_TOP = 0x20000000, + MPPF_LEFT = 0x40000000, + MPPF_RIGHT = 0x60000000, + MPPF_BOTTOM = 0x80000000, + MPPF_POS_MASK = 0xE0000000, + MPPF_ALIGN_LEFT = 0x02000000, + MPPF_ALIGN_RIGHT = 0x04000000 + }; + typedef int MP_POPUPFLAGS; + + HRESULT Popup( + [in] POINTL *ppt, + [in] RECTL *prcExclude, + [in] MP_POPUPFLAGS dwFlags); + + HRESULT OnSelect([in] DWORD dwSelectType); + + HRESULT SetSubMenu( + [in] IMenuPopup* pmp, + [in] BOOL fSet); +} + +cpp_quote("#endif /* _WIN32_IE_IE60 */")