Implemented the OLE Drag and Drop target registration mechanism and
the DoDragDrop loop to perform the DnD operation.

diff --git a/include/ole2.h b/include/ole2.h
index d80ff9c..3acb26e 100644
--- a/include/ole2.h
+++ b/include/ole2.h
@@ -5,13 +5,9 @@
 #ifndef __WINE_OLE2_H
 #define __WINE_OLE2_H
 
+#include "oleidl.h"
 #include "wintypes.h"
 
-/* to be implemented */
-/* FIXME: this should be defined somewhere in oleidl.h instead, should it be repeated here ? */
-typedef LPVOID LPDROPTARGET;
-
-
 /* OLE version */
 #define rmm             23
 #define rup            639
@@ -27,11 +23,23 @@
 
 typedef HGLOBAL32 HOLEMENU32;
 
-HRESULT     WINAPI RegisterDragDrop16(HWND16,LPVOID);
-HRESULT     WINAPI RegisterDragDrop32(HWND32,LPVOID);
+/*
+ * API declarations
+ */
+HRESULT     WINAPI RegisterDragDrop16(HWND16,LPDROPTARGET);
+HRESULT     WINAPI RegisterDragDrop32(HWND32,LPDROPTARGET);
 #define     RegisterDragDrop WINELIB_NAME(RegisterDragDrop)
 HRESULT     WINAPI RevokeDragDrop16(HWND16);
 HRESULT     WINAPI RevokeDragDrop32(HWND32);
 #define     RevokeDragDrop WINELIB_NAME(RevokeDragDrop)
+HRESULT     WINAPI DoDragDrop16(LPDATAOBJECT, 
+                                LPDROPSOURCE,
+				DWORD,
+				DWORD*);
+HRESULT     WINAPI DoDragDrop32(LPDATAOBJECT,
+				LPDROPSOURCE,
+				DWORD,
+				DWORD*);
+#define     DoDragDrop WINELIB_NAME(DoDragDrop)
 
 #endif  /* __WINE_OLE2_H */