[SENDMAIL][ZIPFLDR][MYDOCS] Fix creation of SendTo files (#2616)
[reactos.git] / dll / shellext / sendmail / CDeskLinkDropHandler.hpp
1 /*
2 * PROJECT: sendmail
3 * LICENSE: LGPL-2.1+ (https://spdx.org/licenses/LGPL-2.1+)
4 * PURPOSE: DeskLink implementation
5 * COPYRIGHT: Copyright 2019 Katayama Hirofumi MZ (katayama.hirofumi.mz@gmail.com)
6 */
7
8 #ifndef _CDESKLINKDROPHANDLER_HPP_
9 #define _CDESKLINKDROPHANDLER_HPP_
10
11 #include "resource.h"
12
13 class CDeskLinkDropHandler :
14 public CComCoClass<CDeskLinkDropHandler, &CLSID_DeskLinkDropHandler>,
15 public CComObjectRootEx<CComMultiThreadModelNoCS>,
16 public IDropTarget,
17 public IPersistFile
18 {
19 public:
20 CDeskLinkDropHandler();
21 ~CDeskLinkDropHandler();
22
23 // IDropTarget
24 STDMETHODIMP DragEnter(IDataObject *pDataObject, DWORD dwKeyState,
25 POINTL pt, DWORD *pdwEffect);
26 STDMETHODIMP DragOver(DWORD dwKeyState, POINTL pt, DWORD *pdwEffect);
27 STDMETHODIMP DragLeave();
28 STDMETHODIMP Drop(IDataObject *pDataObject, DWORD dwKeyState, POINTL pt,
29 DWORD *pdwEffect);
30
31 // IPersist
32 STDMETHODIMP GetClassID(CLSID *lpClassId);
33
34 // IPersistFile
35 STDMETHODIMP GetCurFile(LPOLESTR *ppszFileName);
36 STDMETHODIMP IsDirty();
37 STDMETHODIMP Load(LPCOLESTR pszFileName, DWORD dwMode);
38 STDMETHODIMP Save(LPCOLESTR pszFileName, BOOL fRemember);
39 STDMETHODIMP SaveCompleted(LPCOLESTR pszFileName);
40
41 DECLARE_REGISTRY_RESOURCEID(IDR_DESKLINK)
42 DECLARE_NOT_AGGREGATABLE(CDeskLinkDropHandler)
43
44 DECLARE_PROTECT_FINAL_CONSTRUCT()
45
46 BEGIN_COM_MAP(CDeskLinkDropHandler)
47 COM_INTERFACE_ENTRY_IID(IID_IPersist, IPersist)
48 COM_INTERFACE_ENTRY_IID(IID_IPersistFile, IPersistFile)
49 COM_INTERFACE_ENTRY_IID(IID_IDropTarget, IDropTarget)
50 END_COM_MAP()
51 };
52
53 #endif /* _CDESKLINKDROPHANDLER_HPP_ */