ReactOS Fundraising Campaign 2012
 
€ 4,410 / € 30,000

Information | Donate

Home | Info | Community | Development | myReactOS | Contact Us

  1. Home
  2. Community
  3. Development
  4. myReactOS
  5. Fundraiser 2012

  1. Main Page
  2. Alphabetical List
  3. Data Structures
  4. Directories
  5. File List
  6. Data Fields
  7. Globals
  8. Related Pages

ReactOS Development > Doxygen

bandsitemenu.h
Go to the documentation of this file.
00001 /*
00002  *  Band site menu
00003  *
00004  *  Copyright 2007  Hervé Poussineua
00005  *  Copyright 2009  Andrew Hill
00006  *
00007  * This library is free software; you can redistribute it and/or
00008  * modify it under the terms of the GNU Lesser General Public
00009  * License as published by the Free Software Foundation; either
00010  * version 2.1 of the License, or (at your option) any later version.
00011  *
00012  * This library is distributed in the hope that it will be useful,
00013  * but WITHOUT ANY WARRANTY; without even the implied warranty of
00014  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
00015  * Lesser General Public License for more details.
00016  *
00017  * You should have received a copy of the GNU Lesser General Public
00018  * License along with this library; if not, write to the Free Software
00019  * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
00020  */
00021 
00022 #pragma once
00023 
00024 // oddly, this class also responds to QueryInterface for CLSID_BandSiteMenu by returning the vtable at offset 0
00025 class CBandSiteMenu :
00026     public CComCoClass<CBandSiteMenu, &CLSID_BandSiteMenu>,
00027     public CComObjectRootEx<CComMultiThreadModelNoCS>,
00028     public IShellService,
00029     public IContextMenu2
00030 {
00031 public:
00032     CBandSiteMenu();
00033     ~CBandSiteMenu();
00034 
00035     // *** IShellService methods ***
00036     virtual HRESULT STDMETHODCALLTYPE SetOwner(IUnknown *);
00037 
00038     // *** IContextMenu methods ***
00039     virtual HRESULT STDMETHODCALLTYPE QueryContextMenu(HMENU hmenu, UINT indexMenu, UINT idCmdFirst, UINT idCmdLast, UINT uFlags);
00040     virtual HRESULT STDMETHODCALLTYPE InvokeCommand(LPCMINVOKECOMMANDINFO lpici);
00041     virtual HRESULT STDMETHODCALLTYPE GetCommandString(UINT_PTR idCmd, UINT uType, UINT *pwReserved, LPSTR pszName, UINT cchMax);
00042 
00043     // *** IContextMenu2 methods ***
00044     virtual HRESULT STDMETHODCALLTYPE HandleMenuMsg(UINT uMsg, WPARAM wParam, LPARAM lParam);
00045 
00046 DECLARE_REGISTRY_RESOURCEID(IDR_BANDSITEMENU)
00047 DECLARE_NOT_AGGREGATABLE(CBandSiteMenu)
00048 
00049 DECLARE_PROTECT_FINAL_CONSTRUCT()
00050 
00051 BEGIN_COM_MAP(CBandSiteMenu)
00052     COM_INTERFACE_ENTRY_IID(IID_IShellService, IShellService)
00053     COM_INTERFACE_ENTRY_IID(IID_IContextMenu2, IContextMenu2)
00054     COM_INTERFACE_ENTRY_IID(IID_IContextMenu, IContextMenu)
00055 END_COM_MAP()
00056 
00057 };

Generated on Sun May 27 2012 04:22:53 for ReactOS by doxygen 1.7.6.1

ReactOS is a registered trademark or a trademark of ReactOS Foundation in the United States and other countries.