update for HEAD-2003091401
[reactos.git] / subsys / system / explorer / Seashell / SeaShellExt / Include / IEShellDragDrop.h
1 //*******************************************************************************
2 // COPYRIGHT NOTES
3 // ---------------
4 // You may use this source code, compile or redistribute it as part of your application 
5 // for free. You cannot redistribute it as a part of a software development 
6 // library without the agreement of the author. If the sources are 
7 // distributed along with the application, you should leave the original 
8 // copyright notes in the source code without any changes.
9 // This code can be used WITHOUT ANY WARRANTIES at your own risk.
10 // 
11 // For the latest updates to this code, check this site:
12 // http://www.masmex.com 
13 // after Sept 2000
14 // 
15 // Copyright(C) 2000 Philip Oldaker <email: philip@masmex.com>
16 //*******************************************************************************
17
18 #ifndef __IESHELLDRAGDROP_H__
19 #define __IESHELLDRAGDROP_H__
20
21 #include "UIDragDropCtrl.h"
22 #include "ShellPidl.h"
23 ////////////////////////////////////////////////
24 // CIEShellDragDrop
25 ////////////////////////////////////////////////
26 class CIEShellDragDrop
27 {
28 public:
29         CIEShellDragDrop();
30         virtual ~CIEShellDragDrop();
31
32 public:
33         virtual bool DragDrop(CDD_OleDropTargetInfo *pInfo,LPSHELLFOLDER psfFolder,LPITEMIDLIST pidl);
34         virtual bool DragOver(CDD_OleDropTargetInfo *pInfo,LPSHELLFOLDER psfFolder,LPITEMIDLIST pidl);
35         virtual bool DragEnter(CDD_OleDropTargetInfo *pInfo,LPSHELLFOLDER psfFolder,LPITEMIDLIST pidl);
36         virtual bool DragLeave(CDD_OleDropTargetInfo *pInfo);
37 protected:
38 private:
39         CShellPidl m_ShellPidl;
40         LPSHELLFOLDER m_psfDesktop;
41 };
42
43 inline CIEShellDragDrop::CIEShellDragDrop()
44 {
45         m_psfDesktop = NULL;
46         SHGetDesktopFolder(&m_psfDesktop);
47 }
48
49 inline CIEShellDragDrop::~CIEShellDragDrop()
50 {
51         if (m_psfDesktop)
52                 m_psfDesktop->Release();
53 }
54
55 #endif //__IESHELLDRAGDROP_H__