//******************************************************************************************* // // Filename : Menu.h // // CCabItemMenu // // Copyright (c) 1994 - 1996 Microsoft Corporation. All rights reserved // //******************************************************************************************* #ifndef _MENU_H_ #define _MENU_H_ #include "folder.h" //***************************************************************************** // // CCabItemMenu // // Purpose: // // IContextMenu for the Shellfolder // //***************************************************************************** class CCabItemMenu : public IContextMenu { public: CCabItemMenu(HWND hwndOwner, CCabFolder*pcf, LPCABITEM *apit, UINT cpit); ~CCabItemMenu(); // *** IUnknown methods *** STDMETHODIMP QueryInterface(REFIID riid, LPVOID * ppvObj); STDMETHODIMP_(ULONG) AddRef(); STDMETHODIMP_(ULONG) Release(); // *** IContextMenu methods *** STDMETHODIMP QueryContextMenu( HMENU hmenu, UINT indexMenu, UINT idCmdFirst, UINT idCmdLast, UINT uFlags); STDMETHODIMP InvokeCommand( LPCMINVOKECOMMANDINFO lpici); STDMETHODIMP GetCommandString( UINT_PTR idCmd, UINT uType, UINT * pwReserved, LPSTR pszName, UINT cchMax); private: static HMENU LoadPopupMenu(UINT id, UINT uSubMenu); static HGLOBAL * CALLBACK CCabItemMenu::ShouldExtract(LPCTSTR pszFile, DWORD dwSize, UINT date, UINT time, UINT attribs, LPARAM lParam); private: CRefCount m_cRef; CRefDll m_cRefDll; HWND m_hwndOwner; CCabFolder *m_pcfHere; CCabItemList m_lSel; } ; #endif // _MENU_H_