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