www.pudn.com > ShellExtGuide2_demo.zip > DLLRegShlExt.h


// DLLRegShlExt.h : Declaration of the CDLLRegShlExt 
 
#ifndef __DLLREGSHLEXT_H_ 
#define __DLLREGSHLEXT_H_ 
 
#include "resource.h"       // main symbols 
#include  
#include  
#include  
 
///////////////////////////////////////////////////////////////////////////// 
// CDLLRegShlExt 
class ATL_NO_VTABLE CDLLRegShlExt :  
	public CComObjectRootEx, 
	public CComCoClass, 
	public IDispatchImpl, 
    public IShellExtInit, 
    public IContextMenu 
{ 
public: 
	CDLLRegShlExt(); 
 
    // IShellExtInit 
    STDMETHOD(Initialize)(LPCITEMIDLIST, LPDATAOBJECT, HKEY); 
 
    // IContextMenu 
    STDMETHOD(GetCommandString)(UINT, UINT, UINT*, LPSTR, UINT); 
    STDMETHOD(InvokeCommand)(LPCMINVOKECOMMANDINFO); 
    STDMETHOD(QueryContextMenu)(HMENU, UINT, UINT, UINT, UINT); 
 
DECLARE_REGISTRY_RESOURCEID(IDR_DLLREGSHLEXT) 
DECLARE_NOT_AGGREGATABLE(CDLLRegShlExt) 
 
DECLARE_PROTECT_FINAL_CONSTRUCT() 
 
BEGIN_COM_MAP(CDLLRegShlExt) 
	COM_INTERFACE_ENTRY(IDLLRegShlExt) 
	COM_INTERFACE_ENTRY(IDispatch) 
	COM_INTERFACE_ENTRY(IShellExtInit) 
	COM_INTERFACE_ENTRY(IContextMenu) 
END_COM_MAP() 
 
// IDLLRegShlExt 
public: 
protected: 
    HBITMAP     m_hRegBmp; 
    HBITMAP     m_hUnregBmp; 
    string_list m_lsFiles; 
}; 
 
#endif //__DLLREGSHLEXT_H_