/* This file is a modification of clcfiledrop.h originally written by Richard Hughes*/ #pragma once static HWND hwndCurDrag = nullptr; class CDropTarget: public IDropTarget { private: unsigned long refCount; public: CDropTarget(): refCount(0) {} HRESULT STDMETHODCALLTYPE QueryInterface(REFIID riid,LPVOID *ppvObj); ULONG STDMETHODCALLTYPE AddRef(); ULONG STDMETHODCALLTYPE Release(); HRESULT STDMETHODCALLTYPE DragOver(DWORD fKeyState, POINTL pt, DWORD *pdwEffect); HRESULT STDMETHODCALLTYPE DragEnter(IDataObject *pData, DWORD fKeyState, POINTL pt, DWORD *pdwEffect); HRESULT STDMETHODCALLTYPE DragLeave(); HRESULT STDMETHODCALLTYPE Drop(IDataObject *pData,DWORD fKeyState,POINTL pt,DWORD *pdwEffect); }; void RegisterFileDropping( HWND hwnd, CDropTarget* pdropTarget ); void UnregisterFileDropping( HWND hwnd );