OSDN Git Service

refactor
[winmerge-jp/winmerge-jp.git] / Src / DropHandler.h
1 #pragma once\r
2 \r
3 #include <windows.h>\r
4 #include <functional>\r
5 #include <vector>\r
6 #include "UnicodeString.h"\r
7 \r
8 class DropHandler : public IDropTarget\r
9 {\r
10 public:\r
11         HRESULT STDMETHODCALLTYPE QueryInterface(REFIID riid, void **ppvObject);\r
12         ULONG STDMETHODCALLTYPE AddRef();\r
13         ULONG STDMETHODCALLTYPE Release();\r
14         \r
15         HRESULT STDMETHODCALLTYPE DragEnter(IDataObject *pDataObj, DWORD grfKeyState, POINTL pt, DWORD *pdwEffect);\r
16         HRESULT STDMETHODCALLTYPE DragOver(DWORD grfKeyState, POINTL pt, DWORD *pdwEffect);\r
17         HRESULT STDMETHODCALLTYPE DragLeave(void);\r
18         HRESULT STDMETHODCALLTYPE Drop(IDataObject *pDataObj, DWORD grfKeyState, POINTL pt, DWORD *pdwEffect);\r
19 \r
20         explicit DropHandler(std::function<void(const std::vector<String>&)> callback);\r
21         ~DropHandler();\r
22 \r
23         std::function<void(const std::vector<String>&)> GetCallback() const { return m_callback; };\r
24 \r
25 private:\r
26         LONG m_cRef;\r
27         std::function<void(const std::vector<String>&)> m_callback;\r
28 };\r