|
|
//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\ //
// itemmenu.h
//
// Conext menu interface for items.
//
// History:
//
// 3/26/97 edwardp Created.
//
////////////////////////////////////////////////////////////////////////////////
//
// Check for previous includes of this file.
//
#ifndef _ITEMMENU_H_
#define _ITEMMENU_H_
//
// Function prototypes.
//
//
// REVIEW: Prototype for DoFileDownloadEx
// This function is exported from shdocvw, but doesn't have a prototype
// defined in any .h file.
//
HRESULT WINAPI DoFileDownloadEx(LPCWSTR pwszURL, BOOL fSaveAs);
//
// Use a flag to conditionally compile code that uses the default context menu
// handler implemented in shell32.dll.
//
#define USE_DEFAULT_MENU_HANDLER 0
#if USE_DEFAULT_MENU_HANDLER
//
//
//
HRESULT CALLBACK MenuCallBack(IShellFolder* pIShellFolder, HWND hwndOwner, LPDATAOBJECT pdtobj, UINT uMsg, WPARAM wParam, LPARAM lParam);
#else // USE_DEFAULT_MENU_HANDLER
//
// Defines
//
#define MAX_PROP_PAGES 5
//
// Function prototypes
//
BOOL CALLBACK AddPages_Callback(HPROPSHEETPAGE hpage, LPARAM ppsh);
//
// Class definition for the item context menu class.
//
class CContextMenu : public IContextMenu2 { //
// Methods
//
public:
// Constructor
CContextMenu(PCDFITEMIDLIST* apcdfidl, LPITEMIDLIST pidlPath, UINT nCount);
// IUnknown
STDMETHODIMP QueryInterface(REFIID, void **); STDMETHODIMP_(ULONG) AddRef(void); STDMETHODIMP_(ULONG) Release(void);
// IContextMenu methods.
STDMETHODIMP QueryContextMenu(HMENU hmenu, UINT indexMenu, UINT idCmdFirst, UINT idCmdLast, UINT uFlags);
STDMETHODIMP InvokeCommand(LPCMINVOKECOMMANDINFO lpici);
STDMETHODIMP GetCommandString(UINT_PTR idCommand, UINT uFLags, UINT *pwReserved, LPSTR pszName, UINT cchMax);
// IContextMenu2 methods.
STDMETHODIMP HandleMenuMsg(UINT uMsg, WPARAM wParam, LPARAM lParam);
private:
// Destructor.
~CContextMenu(void);
// Helper functions.
HRESULT DoOpen(HWND hwnd, int nShow); HRESULT DoOpenFolder(HWND hwnd, int nShow); HRESULT DoOpenStory(HWND hwnd, int nShow); HRESULT DoProperties(HWND hwnd);
HRESULT QueryInternetShortcut(PCDFITEMIDLIST pcdfidl, REFIID riid, void** ppvOut);
//
// Member variables.
//
private:
ULONG m_cRef; UINT m_nCount; PCDFITEMIDLIST* m_apcdfidl; LPITEMIDLIST m_pidlPath; };
#endif // USE_DEFAULT_MENU_HANDLER
#endif // _ITEMMENU_H_
|