Moved all Win16 definitions out of the standard Windows headers.

diff --git a/include/ole.h b/include/ole.h
index 4a695bc..2539496 100644
--- a/include/ole.h
+++ b/include/ole.h
@@ -9,6 +9,17 @@
 extern "C" {
 #endif
 
+#include "windef.h"
+#include "wine/windef16.h"
+#include "wine/obj_base.h"
+#include "wine/obj_misc.h"
+#include "wine/obj_storage.h"
+#include "wine/obj_moniker.h"
+#include "wine/obj_dataobject.h"
+#include "wine/obj_dragdrop.h"
+
+struct tagLOGPALETTE;
+
 /* object types */
 #define OT_LINK		1
 #define OT_EMBEDDED	2
@@ -148,15 +159,7 @@
 	BYTE	otdData[1];
 	/* ... */
 } OLETARGETDEVICE;
-typedef struct _OLESTREAM* LPOLESTREAM;
-typedef struct _OLESTREAMVTBL {
-	DWORD	CALLBACK (*Get)(LPOLESTREAM,LPSTR,DWORD);
-	DWORD	CALLBACK (*Put)(LPOLESTREAM,LPSTR,DWORD);
-} OLESTREAMVTBL;
-typedef OLESTREAMVTBL*	LPOLESTREAMVTBL;
-typedef struct _OLESTREAM {
-	LPOLESTREAMVTBL	lpstbl;
-} OLESTREAM;
+
 typedef struct _OLESERVERDOC*	LPOLESERVERDOC;
 typedef struct _OLEOBJECT*	LPOLEOBJECT;
 typedef struct _OLECLIENT*	LPOLECLIENT;
@@ -172,7 +175,7 @@
 	OLESTATUS	CALLBACK (*GetObject)(LPOLESERVERDOC,LPCOLESTR16,LPOLEOBJECT*,LPOLECLIENT);
 #endif
 	OLESTATUS	CALLBACK (*Release)(LPOLESERVERDOC);
-	OLESTATUS	CALLBACK (*SetColorScheme)(LPOLESERVERDOC,LPLOGPALETTE);
+	OLESTATUS	CALLBACK (*SetColorScheme)(LPOLESERVERDOC,struct tagLOGPALETTE*);
 	OLESTATUS	CALLBACK (*Execute)(LPOLESERVERDOC,HGLOBAL16);
 } OLESERVERDOCVTBL;
 typedef OLESERVERDOCVTBL*	LPOLESERVERDOCVTBL;
@@ -206,6 +209,8 @@
 	/* client data... */
 } OLECLIENT;
 
+struct _OLESTREAM;
+
 typedef struct _OLEOBJECTVTBL {
         void   		CALLBACK *(*QueryProtocol)(LPOLEOBJECT,LPCOLESTR16);
 	OLESTATUS	CALLBACK (*Release)(LPOLEOBJECT);
@@ -216,10 +221,10 @@
 	OLESTATUS	CALLBACK (*SetTargetDevice)(LPOLEOBJECT,HGLOBAL16);
 	OLESTATUS	CALLBACK (*SetBounds)(LPOLEOBJECT,LPRECT16);
 	OLESTATUS	CALLBACK (*EnumFormats)(LPOLEOBJECT,OLECLIPFORMAT);
-	OLESTATUS	CALLBACK (*SetColorScheme)(LPOLEOBJECT,LPLOGPALETTE);
+	OLESTATUS	CALLBACK (*SetColorScheme)(LPOLEOBJECT,struct tagLOGPALETTE*);
 	OLESTATUS	CALLBACK (*Delete)(LPOLEOBJECT);
 	OLESTATUS	CALLBACK (*SetHostNames)(LPOLEOBJECT,LPCOLESTR16,LPCOLESTR16);
-	OLESTATUS	CALLBACK (*SaveToStream)(LPOLEOBJECT,LPOLESTREAM);
+	OLESTATUS	CALLBACK (*SaveToStream)(LPOLEOBJECT,struct _OLESTREAM*);
 	OLESTATUS	CALLBACK (*Clone)(LPOLEOBJECT,LPOLECLIENT,LHCLIENTDOC,LPCOLESTR16,LPOLEOBJECT *);
 	OLESTATUS	CALLBACK (*CopyFromLink)(LPOLEOBJECT,LPOLECLIENT,LHCLIENTDOC,LPCOLESTR16,LPOLEOBJECT *);
 	OLESTATUS	CALLBACK (*Equal)(LPOLEOBJECT,LPOLEOBJECT);
@@ -253,6 +258,42 @@
 } OLEOBJECT;
 
 
+typedef struct IMalloc16 IMalloc16,*LPMALLOC16;
+
+#define ICOM_INTERFACE IMalloc16
+#define IMalloc16_METHODS \
+    ICOM_METHOD1 (LPVOID,Alloc,       DWORD,cb) \
+    ICOM_METHOD2 (LPVOID,Realloc,     LPVOID,pv, DWORD,cb) \
+    ICOM_VMETHOD1(       Free,        LPVOID,pv) \
+    ICOM_METHOD1(DWORD, GetSize,     LPVOID,pv) \
+    ICOM_METHOD1(INT16, DidAlloc,    LPVOID,pv) \
+    ICOM_METHOD  (LPVOID,HeapMinimize)
+#define IMalloc16_IMETHODS \
+    IUnknown_IMETHODS \
+    IMalloc16_METHODS
+ICOM_DEFINE(IMalloc16,IUnknown)
+#undef ICOM_INTERFACE
+
+/*** IUnknown methods ***/
+#define IMalloc16_QueryInterface(p,a,b) ICOM_CALL2(QueryInterface,p,a,b)
+#define IMalloc16_AddRef(p)             ICOM_CALL (AddRef,p)
+#define IMalloc16_Release(p)            ICOM_CALL (Release,p)
+/*** IMalloc16 methods ***/
+#define IMalloc16_Alloc(p,a)      ICOM_CALL1(Alloc,p,a)
+#define IMalloc16_Realloc(p,a,b)  ICOM_CALL2(Realloc,p,a,b)
+#define IMalloc16_Free(p,a)       ICOM_CALL1(Free,p,a)
+#define IMalloc16_GetSize(p,a)    ICOM_CALL1(GetSize,p,a)
+#define IMalloc16_DidAlloc(p,a)   ICOM_CALL1(DidAlloc,p,a)
+#define IMalloc16_HeapMinimize(p) ICOM_CALL (HeapMinimize,p)
+
+
+HRESULT   WINAPI CoCreateStandardMalloc16(DWORD dwMemContext, LPMALLOC16* lpMalloc);
+HRESULT   WINAPI CoGetMalloc16(DWORD dwMemContext,LPMALLOC16* lpMalloc);
+HRESULT   WINAPI CoInitialize16(LPVOID lpReserved);
+HRESULT   WINAPI CoLockObjectExternal16(LPUNKNOWN,BOOL16,BOOL16);
+HRESULT   WINAPI CoRegisterClassObject16(REFCLSID,LPUNKNOWN,DWORD,DWORD,LPDWORD);
+void      WINAPI CoUninitialize16(void);
+HRESULT   WINAPI DoDragDrop16(LPDATAOBJECT,LPDROPSOURCE,DWORD,DWORD*);
 OLESTATUS WINAPI OleRegisterServer16(LPCSTR,LPOLESERVER,LHSERVER *,HINSTANCE16,OLE_SERVER_USE);
 OLESTATUS WINAPI OleUnblockServer16(LHSERVER,BOOL16 *);
 OLESTATUS WINAPI OleRegisterServerDoc16(LHSERVER,LPCSTR,LPOLESERVERDOC,LHSERVERDOC *);
@@ -269,9 +310,16 @@
 OLESTATUS WINAPI OleQueryLinkFromClip16(LPCSTR name, UINT16 render, UINT16 clipformat);
 OLESTATUS WINAPI OleQueryCreateFromClip16(LPCSTR name, UINT16 render, UINT16 clipformat);
 OLESTATUS WINAPI OleQueryType16(LPOLEOBJECT oleob,  SEGPTR xlong);
-OLESTATUS WINAPI OleCreateFromClip16(
-	LPCSTR name, LPOLECLIENT olecli, LHCLIENTDOC hclientdoc, LPCSTR xname,
-	LPOLEOBJECT *lpoleob, UINT16 render, UINT16 clipformat);
+OLESTATUS WINAPI OleCreateFromClip16(LPCSTR,LPOLECLIENT,LHCLIENTDOC,LPCSTR,LPOLEOBJECT*,UINT16,UINT16);
+HRESULT   WINAPI RegisterDragDrop16(HWND16,LPDROPTARGET);
+HRESULT   WINAPI RevokeDragDrop16(HWND16);
+
+BSTR16 WINAPI SysAllocString16(LPCOLESTR16);
+INT16  WINAPI SysReAllocString16(LPBSTR16,LPCOLESTR16);
+VOID   WINAPI SysFreeString16(BSTR16);
+BSTR16 WINAPI SysAllocStringLen16(const char*, int);
+int    WINAPI SysReAllocStringLen16(BSTR16*, const char*,  int);
+int    WINAPI SysStringLen16(BSTR16);
 
 #ifdef __cplusplus
 } /*extern*/