Zalgo/include/DropTarget.hpp

39 lines
1.3 KiB
C++
Raw Permalink Normal View History

2013-03-30 13:05:37 -04:00
#pragma once
#ifndef idC4123BF1_C7A2_4DF3_AEA77895CE6309D9
#define idC4123BF1_C7A2_4DF3_AEA77895CE6309D9
#include <windows.h>
#include <ole2.h>
#include <oleidl.h>
class DropTarget : public IDropTarget {
public:
IFACEMETHODIMP QueryInterface(REFIID iid, void **ppv);
IFACEMETHODIMP_(ULONG) STDMETHODCALLTYPE AddRef(void);
IFACEMETHODIMP_(ULONG) STDMETHODCALLTYPE Release(void);
IFACEMETHODIMP DragOver(DWORD dwState, POINTL pt,
DWORD *pdwEffect);
IFACEMETHODIMP DragEnter(IDataObject *pDataObject, DWORD dwState, POINTL pt,
DWORD *pdwEffect);
IFACEMETHODIMP DragLeave(void);
IFACEMETHODIMP Drop(IDataObject *pDataObject, DWORD dwState, POINTL pt,
DWORD *pdwEffect);
STDMETHODIMP_(BOOL) DragDropRegister(HWND hwnd, DWORD dwState=MK_LBUTTON);
virtual DWORD OnDragEnter(POINTL point, DWORD effect, DWORD state,
IDataObject *data);
virtual DWORD OnDragOver(POINTL point, DWORD effect, DWORD state);
virtual void OnDragLeave(void) {}
virtual DWORD OnDrop(POINTL point, DWORD effect, DWORD state,
IDataObject *data) = 0;
protected:
HWND m_hwnd;
DWORD m_state;
private:
volatile ULONG m_ref;
};
#endif