Source code of Windows XP (NT5)
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

40 lines
936 B

//
// DropTarget.h
//
#pragma once
class CDropTarget : public IDropTarget
{
public:
CDropTarget(IShellFolder *);
~CDropTarget();
//IUnknown methods
STDMETHOD(QueryInterface)(REFIID, LPVOID*);
STDMETHOD_(ULONG, AddRef)(void);
STDMETHOD_(ULONG, Release)(void);
//IDropTarget methods
STDMETHOD(DragEnter)(LPDATAOBJECT, DWORD, POINTL, LPDWORD);
STDMETHOD(DragOver)(DWORD, POINTL, LPDWORD);
STDMETHOD(DragLeave)(VOID);
STDMETHOD(Drop)(LPDATAOBJECT, DWORD, POINTL, LPDWORD);
private:
IShellFolder *m_psfParent;
ULONG m_uiRefCount;
private:
BOOL m_bAcceptFmt;
CLIPFORMAT m_cfPrivatePidlData;
CLIPFORMAT m_cfPrivateFileData;
private:
BOOL queryDrop(DWORD, LPDWORD);
DWORD getDropEffectFromKeyState(DWORD);
BOOL CanDropFile(HGLOBAL);
BOOL CanDropPidl(HGLOBAL, CONFOLDENTRY& cfe);
BOOL CanDropPidl(HGLOBAL);
BOOL CDropTarget::doPIDLDrop(HGLOBAL hMem, BOOL bCut);
};