/*
- * Band site menu
+ * Band site menu
*
- * Copyright 2007 Hervé Poussineua
- * Copyright 2009 Andrew Hill
+ * Copyright 2007 Hervé Poussineua
+ * Copyright 2009 Andrew Hill
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
// oddly, this class also responds to QueryInterface for CLSID_BandSiteMenu by returning the vtable at offset 0
class CBandSiteMenu :
- public CComCoClass<CBandSiteMenu, &CLSID_BandSiteMenu>,
- public CComObjectRootEx<CComMultiThreadModelNoCS>,
- public IShellService,
- public IContextMenu2
+ public CComCoClass<CBandSiteMenu, &CLSID_BandSiteMenu>,
+ public CComObjectRootEx<CComMultiThreadModelNoCS>,
+ public IContextMenu3,
+ public IShellService
{
public:
- CBandSiteMenu();
- ~CBandSiteMenu();
+ CBandSiteMenu();
+ ~CBandSiteMenu();
- // *** IShellService methods ***
- virtual HRESULT STDMETHODCALLTYPE SetOwner(IUnknown *);
+ // *** IShellService methods ***
+ virtual HRESULT STDMETHODCALLTYPE SetOwner(IUnknown *);
- // *** IContextMenu methods ***
- virtual HRESULT STDMETHODCALLTYPE QueryContextMenu(HMENU hmenu, UINT indexMenu, UINT idCmdFirst, UINT idCmdLast, UINT uFlags);
- virtual HRESULT STDMETHODCALLTYPE InvokeCommand(LPCMINVOKECOMMANDINFO lpici);
- virtual HRESULT STDMETHODCALLTYPE GetCommandString(UINT_PTR idCmd, UINT uType, UINT *pwReserved, LPSTR pszName, UINT cchMax);
+ // *** IContextMenu methods ***
+ virtual HRESULT STDMETHODCALLTYPE QueryContextMenu(HMENU hmenu, UINT indexMenu, UINT idCmdFirst, UINT idCmdLast, UINT uFlags);
+ virtual HRESULT STDMETHODCALLTYPE InvokeCommand(LPCMINVOKECOMMANDINFO lpici);
+ virtual HRESULT STDMETHODCALLTYPE GetCommandString(UINT_PTR idCmd, UINT uType, UINT *pwReserved, LPSTR pszName, UINT cchMax);
- // *** IContextMenu2 methods ***
- virtual HRESULT STDMETHODCALLTYPE HandleMenuMsg(UINT uMsg, WPARAM wParam, LPARAM lParam);
+ // *** IContextMenu2 methods ***
+ virtual HRESULT STDMETHODCALLTYPE HandleMenuMsg(UINT uMsg, WPARAM wParam, LPARAM lParam);
-DECLARE_REGISTRY_RESOURCEID(IDR_BANDSITEMENU)
-DECLARE_NOT_AGGREGATABLE(CBandSiteMenu)
+ // *** IContextMenu3 methods ***
+ virtual HRESULT STDMETHODCALLTYPE HandleMenuMsg2(UINT uMsg, WPARAM wParam, LPARAM lParam, LRESULT *plResult);
-DECLARE_PROTECT_FINAL_CONSTRUCT()
+ DECLARE_REGISTRY_RESOURCEID(IDR_BANDSITEMENU)
+ DECLARE_NOT_AGGREGATABLE(CBandSiteMenu)
-BEGIN_COM_MAP(CBandSiteMenu)
- COM_INTERFACE_ENTRY_IID(IID_IShellService, IShellService)
- COM_INTERFACE_ENTRY_IID(IID_IContextMenu2, IContextMenu2)
- COM_INTERFACE_ENTRY_IID(IID_IContextMenu, IContextMenu)
-END_COM_MAP()
+ DECLARE_PROTECT_FINAL_CONSTRUCT()
+ BEGIN_COM_MAP(CBandSiteMenu)
+ COM_INTERFACE_ENTRY_IID(IID_IShellService, IShellService)
+ COM_INTERFACE_ENTRY_IID(IID_IContextMenu2, IContextMenu2)
+ COM_INTERFACE_ENTRY_IID(IID_IContextMenu, IContextMenu)
+ END_COM_MAP()
};