www.pudn.com > ShellExtGuide1_demo.zip > SimpleShlExt.h


// SimpleShlExt.h : Declaration of the CSimpleShlExt 
 
#ifndef __SIMPLESHLEXT_H_ 
#define __SIMPLESHLEXT_H_ 
 
#include "resource.h"       // main symbols 
#include  
#include  
 
///////////////////////////////////////////////////////////////////////////// 
// CSimpleShlExt 
class ATL_NO_VTABLE CSimpleShlExt :  
	public CComObjectRootEx, 
	public CComCoClass, 
	public IDispatchImpl, 
    public IShellExtInit, 
    public IContextMenu 
{ 
public: 
	CSimpleShlExt() 
	{ 
	} 
 
DECLARE_REGISTRY_RESOURCEID(IDR_SIMPLESHLEXT) 
 
DECLARE_PROTECT_FINAL_CONSTRUCT() 
 
BEGIN_COM_MAP(CSimpleShlExt) 
	COM_INTERFACE_ENTRY(ISimpleShlExt) 
	COM_INTERFACE_ENTRY(IDispatch) 
	COM_INTERFACE_ENTRY(IShellExtInit) 
	COM_INTERFACE_ENTRY(IContextMenu) 
END_COM_MAP() 
 
// ISimpleShlExt 
public: 
 
protected: 
    TCHAR m_szFile [MAX_PATH]; 
 
public: 
    // IShellExtInit 
    STDMETHOD(Initialize)(LPCITEMIDLIST, LPDATAOBJECT, HKEY); 
 
    // IContextMenu 
    STDMETHOD(GetCommandString)(UINT, UINT, UINT*, LPSTR, UINT); 
    STDMETHOD(InvokeCommand)(LPCMINVOKECOMMANDINFO); 
    STDMETHOD(QueryContextMenu)(HMENU, UINT, UINT, UINT, UINT); 
}; 
 
#endif //__SIMPLESHLEXT_H_