www.pudn.com > ShellExtGuide4_demo.zip > HardLinkShlExt.h


// HardLinkShlExt.h : Declaration of the CHardLinkShlExt 
 
#ifndef __HARDLINKSHLEXT_H_ 
#define __HARDLINKSHLEXT_H_ 
 
#include "resource.h"       // main symbols 
#include  
#include  
 
///////////////////////////////////////////////////////////////////////////// 
// CHardLinkShlExt 
 
class ATL_NO_VTABLE CHardLinkShlExt :  
    public CComObjectRootEx, 
    public CComCoClass, 
    public IDispatchImpl, 
    public IShellExtInit, 
    public IContextMenu 
{ 
public: 
    CHardLinkShlExt() 
        { 
        } 
 
DECLARE_REGISTRY_RESOURCEID(IDR_HARDLINKSHLEXT) 
 
DECLARE_PROTECT_FINAL_CONSTRUCT() 
 
BEGIN_COM_MAP(CHardLinkShlExt) 
    COM_INTERFACE_ENTRY(IHardLinkShlExt) 
    COM_INTERFACE_ENTRY(IDispatch) 
    COM_INTERFACE_ENTRY(IShellExtInit) 
    COM_INTERFACE_ENTRY(IContextMenu) 
END_COM_MAP() 
 
protected: 
    // IHardLinkShlExt 
    CBitmap     m_bitmap; 
    TCHAR       m_szFolderDroppedIn [MAX_PATH]; 
    CStringList m_lsDroppedFiles; 
 
public: 
    // IShellExtInit 
    STDMETHOD(Initialize)(LPCITEMIDLIST, LPDATAOBJECT, HKEY); 
 
    // IContextMenu 
    STDMETHOD(GetCommandString)(UINT, UINT, UINT*, LPSTR, UINT) { return E_NOTIMPL; } 
    STDMETHOD(InvokeCommand)(LPCMINVOKECOMMANDINFO); 
    STDMETHOD(QueryContextMenu)(HMENU, UINT, UINT, UINT, UINT); 
}; 
 
#endif //__HARDLINKSHLEXT_H_