mirror of
https://github.com/Mauler125/r5sdk.git
synced 2025-02-09 19:15:03 +01:00
52 lines
1.3 KiB
C++
52 lines
1.3 KiB
C++
#pragma once
|
|
|
|
#include <cstdint>
|
|
#include <oleidl.h>
|
|
#include "DragDropEffects.h"
|
|
|
|
namespace Forms
|
|
{
|
|
// Defined elsewhere
|
|
class Control;
|
|
|
|
// Handles drag and drop events for a target control.
|
|
class DropTarget : public IDropTarget
|
|
{
|
|
public:
|
|
DropTarget(Control* Target);
|
|
~DropTarget() = default;
|
|
|
|
virtual HRESULT STDMETHODCALLTYPE DragEnter(
|
|
/* [unique][in] */ __RPC__in_opt IDataObject *pDataObj,
|
|
/* [in] */ DWORD grfKeyState,
|
|
/* [in] */ POINTL pt,
|
|
/* [out][in] */ __RPC__inout DWORD *pdwEffect);
|
|
|
|
virtual HRESULT STDMETHODCALLTYPE DragOver(
|
|
/* [in] */ DWORD grfKeyState,
|
|
/* [in] */ POINTL pt,
|
|
/* [out][in] */ __RPC__inout DWORD *pdwEffect);
|
|
|
|
virtual HRESULT STDMETHODCALLTYPE DragLeave();
|
|
|
|
virtual HRESULT STDMETHODCALLTYPE Drop(
|
|
/* [unique][in] */ __RPC__in_opt IDataObject *pDataObj,
|
|
/* [in] */ DWORD grfKeyState,
|
|
/* [in] */ POINTL pt,
|
|
/* [out][in] */ __RPC__inout DWORD *pdwEffect);
|
|
|
|
virtual HRESULT STDMETHODCALLTYPE QueryInterface(
|
|
/* [in] */ REFIID riid,
|
|
/* [iid_is][out] */ _COM_Outptr_ void __RPC_FAR *__RPC_FAR *ppvObject);
|
|
|
|
virtual ULONG STDMETHODCALLTYPE AddRef(void);
|
|
|
|
virtual ULONG STDMETHODCALLTYPE Release(void);
|
|
|
|
private:
|
|
// Internal cached control
|
|
Control* _Target;
|
|
DragDropEffects _LastEffect;
|
|
IDataObject* _LastObject;
|
|
};
|
|
} |