3 #ifndef __CONTEXT_MENU_H
\r
4 #define __CONTEXT_MENU_H
\r
6 #include "Common/MyString.h"
\r
8 #include "../FileManager/MyCom2.h"
\r
10 class CZipContextMenu:
\r
11 public IContextMenu,
\r
12 public IShellExtInit,
\r
13 public CMyUnknownImp
\r
17 enum ECommandInternalID
\r
33 MY_UNKNOWN_IMP2_MT(IContextMenu, IShellExtInit)
\r
36 STDMETHOD(Initialize)(LPCITEMIDLIST pidlFolder, LPDATAOBJECT dataObject, HKEY hkeyProgID);
\r
39 STDMETHOD(QueryContextMenu)(HMENU hmenu, UINT indexMenu, UINT idCmdFirst, UINT idCmdLast, UINT uFlags);
\r
40 STDMETHOD(InvokeCommand)(LPCMINVOKECOMMANDINFO lpici);
\r
41 STDMETHOD(GetCommandString)(UINT_PTR idCmd, UINT uType, UINT *pwReserved, LPSTR pszName, UINT cchMax);
\r
43 HRESULT InitContextMenu(const wchar_t *folder, const wchar_t **names, UINT32 numFiles);
\r
50 struct CCommandMapItem
\r
52 ECommandInternalID CommandInternalID;
\r
60 UStringVector _fileNames;
\r
63 CObjectVector<CCommandMapItem> _commandMap;
\r
65 HRESULT GetFileNames(LPDATAOBJECT dataObject, UStringVector &fileNames);
\r
66 int FindVerb(const UString &verb);
\r
67 void FillCommand(ECommandInternalID id, UString &mainString, CCommandMapItem &commandMapItem);
\r