1 // WinMergeShell.h : Declaration of the CWinMergeShell
3 #ifndef __WINMERGESHELL_H_
4 #define __WINMERGESHELL_H_
8 #include <atlconv.h> // for ATL string conversion macros
9 #include "resource.h" // main symbols
11 /////////////////////////////////////////////////////////////////////////////
13 class ATL_NO_VTABLE CWinMergeShell :
14 public CComObjectRootEx<CComSingleThreadModel>,
15 public CComCoClass<CWinMergeShell, &CLSID_WinMergeShell>,
16 public IDispatchImpl<IWinMergeShell, &IID_IWinMergeShell, &LIBID_SHELLEXTENSIONLib>,
23 DECLARE_REGISTRY_RESOURCEID(IDR_WINMERGESHELL)
25 DECLARE_PROTECT_FINAL_CONSTRUCT()
27 BEGIN_COM_MAP(CWinMergeShell)
28 COM_INTERFACE_ENTRY(IWinMergeShell)
29 COM_INTERFACE_ENTRY(IDispatch)
30 COM_INTERFACE_ENTRY(IShellExtInit)
31 COM_INTERFACE_ENTRY(IContextMenu)
36 CString m_strPaths[2];
38 UINT m_nSelectedItems;
40 BOOL GetWinMergeDir(CString &strDir);
44 STDMETHOD(Initialize)(LPCITEMIDLIST, LPDATAOBJECT, HKEY);
47 STDMETHOD(GetCommandString)(UINT, UINT, UINT*, LPSTR, UINT);
48 STDMETHOD(InvokeCommand)(LPCMINVOKECOMMANDINFO);
49 STDMETHOD(QueryContextMenu)(HMENU, UINT, UINT, UINT, UINT);
52 #endif //__WINMERGESHELL_H_