23class CShellExtClassFactory :
public IClassFactory
30 CShellExtClassFactory();
31 ‾CShellExtClassFactory();
34 STDMETHODIMP QueryInterface(REFIID, LPVOID FAR *);
39 STDMETHODIMP CreateInstance(LPUNKNOWN, REFIID, LPVOID FAR *);
40 STDMETHODIMP LockServer(BOOL);
44typedef CShellExtClassFactory *LPCSHELLEXTCLASSFACTORY;
47class CShellExtension :
public IPersistFile,
52 enum { IDM_CONTEXT_VIEW, IDM_CONTEXT_EXT, IDM_CONTEXT_COMP, IDM_DRAG_AND_DROP_EXT, IDM_DRAG_AND_DROP_COMP };
54 static const TCHAR LHAZCOMPMENU[];
55 static const TCHAR LHAZVIEWMENU[];
56 static const TCHAR LHAZEXTMENU[];
57 static const char LZHHEADER[];
58 static const char SFXHEADER[];
59 static const char SFXZIPHEADER[];
60 static const char SFXCABHEADER[];
61 static const TCHAR LHAZCMD[];
62 static const TCHAR LHAZEXTSW[];
63 static const TCHAR LHAZVIEWSW[];
64 static const TCHAR LHAZCOMPSW[];
65 void GetFileNames(LPDATAOBJECT);
67 vector<SEFILE> FileNames;
68 TCHAR DestDir[MAX_PATH];
73 LPDATAOBJECT m_pDataObj;
75 char m_szFile[MAX_PATH+1];
82 STDMETHODIMP QueryInterface(REFIID, LPVOID FAR *);
87 STDMETHODIMP GetClassID(LPCLSID lpClassID);
88 STDMETHODIMP IsDirty();
89 STDMETHODIMP Load(LPCOLESTR lpszFileName, DWORD grfMode);
90 STDMETHODIMP Save(LPCOLESTR lpszFileName, BOOL fRemember);
91 STDMETHODIMP SaveCompleted(LPCOLESTR lpszFileName);
92 STDMETHODIMP GetCurFile(LPOLESTR FAR* lplpszFileName);
95 STDMETHODIMP Initialize(LPCITEMIDLIST pIDFolder, LPDATAOBJECT pDataObj, HKEY hKeyID);
98 STDMETHODIMP QueryContextMenu(HMENU hMenu, UINT indexMenu, UINT idCmdFirst,
99 UINT idCmdLast, UINT uFlags);
100 STDMETHODIMP InvokeCommand(LPCMINVOKECOMMANDINFO lpcmi);
101 STDMETHODIMP GetCommandString(UINT_PTR idCmd, UINT uFlags, UINT FAR *reserved,
102 LPSTR pszName, UINT cchMax);
STDMETHODIMP_(ULONG) CShellExtension
Definition CShellExt.cpp:83