Index: src/chext/MenuExt.h =================================================================== diff -u -rd5c3edd0d167db9b5d47d04248820fda49499a5e -r8f31c461b6a91ce6818c646814bd19e740b109ef --- src/chext/MenuExt.h (.../MenuExt.h) (revision d5c3edd0d167db9b5d47d04248820fda49499a5e) +++ src/chext/MenuExt.h (.../MenuExt.h) (revision 8f31c461b6a91ce6818c646814bd19e740b109ef) @@ -38,14 +38,42 @@ public CComCoClass, public IObjectWithSiteImpl, public IDispatchImpl, - public IShellExtInitImpl, - public IContextMenuImpl + public IShellExtInit, + public IContextMenu3 { public: CMenuExt(); ~CMenuExt(); +DECLARE_REGISTRY_RESOURCEID(IDR_MENUEXT) +DECLARE_NOT_AGGREGATABLE(CMenuExt) + +DECLARE_PROTECT_FINAL_CONSTRUCT() + +BEGIN_COM_MAP(CMenuExt) + COM_INTERFACE_ENTRY(IMenuExt) + COM_INTERFACE_ENTRY(IDispatch) + COM_INTERFACE_ENTRY(IShellExtInit) + COM_INTERFACE_ENTRY(IContextMenu) + COM_INTERFACE_ENTRY(IContextMenu2) + COM_INTERFACE_ENTRY(IContextMenu3) + COM_INTERFACE_ENTRY(IObjectWithSite) +END_COM_MAP() + +// IMenuExt public: + STDMETHOD(Initialize)(LPCITEMIDLIST pidlFolder, LPDATAOBJECT lpdobj, HKEY /*hkeyProgID*/); + STDMETHOD(InvokeCommand)(LPCMINVOKECOMMANDINFO lpici); + STDMETHOD(GetCommandString)(UINT_PTR idCmd, UINT uFlags, UINT* /*pwReserved*/, LPSTR pszName, UINT cchMax); + STDMETHOD(QueryContextMenu)(HMENU hmenu, UINT indexMenu, UINT idCmdFirst, UINT /*idCmdLast*/, UINT /*uFlags*/); + STDMETHOD(HandleMenuMsg)(UINT uMsg, WPARAM wParam, LPARAM lParam); + STDMETHOD(HandleMenuMsg2)(UINT uMsg, WPARAM wParam, LPARAM lParam, LRESULT* plResult); + +protected: + void DrawMenuItem(LPDRAWITEMSTRUCT lpdis); + void CreateShortcutsMenu(UINT uiIDBase, bool bOwnerDrawn); + +protected: // class for making sure memory is freed class CBuffer { @@ -80,34 +108,6 @@ bool m_bShown; // have the menu been already shown ? IShellExtControl* m_piShellExtControl; - -DECLARE_REGISTRY_RESOURCEID(IDR_MENUEXT) -DECLARE_NOT_AGGREGATABLE(CMenuExt) - -DECLARE_PROTECT_FINAL_CONSTRUCT() - -BEGIN_COM_MAP(CMenuExt) - COM_INTERFACE_ENTRY(IMenuExt) - COM_INTERFACE_ENTRY(IDispatch) - COM_INTERFACE_ENTRY(IShellExtInit) - COM_INTERFACE_ENTRY(IContextMenu) - COM_INTERFACE_ENTRY(IContextMenu2) - COM_INTERFACE_ENTRY(IContextMenu3) - COM_INTERFACE_ENTRY(IObjectWithSite) -END_COM_MAP() - -// IMenuExt -public: - STDMETHOD(Initialize)(LPCITEMIDLIST pidlFolder, LPDATAOBJECT lpdobj, HKEY /*hkeyProgID*/); - STDMETHOD(InvokeCommand)(LPCMINVOKECOMMANDINFO lpici); - STDMETHOD(GetCommandString)(UINT_PTR idCmd, UINT uFlags, UINT* /*pwReserved*/, LPSTR pszName, UINT cchMax); - STDMETHOD(QueryContextMenu)(HMENU hmenu, UINT indexMenu, UINT idCmdFirst, UINT /*idCmdLast*/, UINT /*uFlags*/); - STDMETHOD(HandleMenuMsg)(UINT uMsg, WPARAM wParam, LPARAM lParam); - STDMETHOD(HandleMenuMsg2)(UINT uMsg, WPARAM wParam, LPARAM lParam, LRESULT* plResult); - -protected: - void DrawMenuItem(LPDRAWITEMSTRUCT lpdis); - void CreateShortcutsMenu(UINT uiIDBase, bool bOwnerDrawn); }; #endif //__MENUEXT_H_