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)
8 #ifndef _CDESKLINKDROPHANDLER_HPP_
9 #define _CDESKLINKDROPHANDLER_HPP_
13 class CDeskLinkDropHandler :
14 public CComCoClass<CDeskLinkDropHandler, &CLSID_DeskLinkDropHandler>,
15 public CComObjectRootEx<CComMultiThreadModelNoCS>,
20 CDeskLinkDropHandler();
21 ~CDeskLinkDropHandler();
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,
32 STDMETHODIMP GetClassID(CLSID *lpClassId);
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);
41 DECLARE_REGISTRY_RESOURCEID(IDR_DESKLINK)
42 DECLARE_NOT_AGGREGATABLE(CDeskLinkDropHandler)
44 DECLARE_PROTECT_FINAL_CONSTRUCT()
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)
53 #endif /* _CDESKLINKDROPHANDLER_HPP_ */