diff --git a/dlls/shell32/brsfolder.c b/dlls/shell32/brsfolder.c
index 9b2dfb1ea1d0f2ace7a10dbfeed6d88f5365fad5..8c81ed4e2edcf4d50e158e50f8859bfbccdc28c5 100644
--- a/dlls/shell32/brsfolder.c
+++ b/dlls/shell32/brsfolder.c
@@ -16,7 +16,7 @@
 #include "commctrl.h"
 #include "spy.h"
 
-#include "interfaces.h"
+#include "wine/obj_base.h"
 #include "shell.h"
 #include "pidl.h"
 #include "shlobj.h"
diff --git a/graphics/d3dcommon.c b/graphics/d3dcommon.c
index e6e86ba841d9f94f0d15a8e31169b80e7a30c6fb..4a46eb315db19b449b4338eb034f57d2bcc090a0 100644
--- a/graphics/d3dcommon.c
+++ b/graphics/d3dcommon.c
@@ -7,7 +7,7 @@
 #include "config.h"
 #include "windows.h"
 #include "wintypes.h"
-#include "interfaces.h"
+#include "wine/obj_base.h"
 #include "ddraw.h"
 #include "d3d.h"
 #include "debug.h"
diff --git a/graphics/d3ddevices.c b/graphics/d3ddevices.c
index 5d15b2c12a1bd29d33fe0452e1d7a41e6242b23d..e78474dbd283ea1b301c313b331e9bb33f3af013 100644
--- a/graphics/d3ddevices.c
+++ b/graphics/d3ddevices.c
@@ -8,7 +8,7 @@
 #include "windows.h"
 #include "wintypes.h"
 #include "winerror.h"
-#include "interfaces.h"
+#include "wine/obj_base.h"
 #include "heap.h"
 #include "ddraw.h"
 #include "d3d.h"
diff --git a/graphics/d3dexecutebuffer.c b/graphics/d3dexecutebuffer.c
index 32c5fffbc57a5710fd2b6f0fc9f8bc5242b7506e..7334522fac42e59186226b72b53ea723476f5767 100644
--- a/graphics/d3dexecutebuffer.c
+++ b/graphics/d3dexecutebuffer.c
@@ -8,7 +8,7 @@
 #include "windows.h"
 #include "wintypes.h"
 #include "winerror.h"
-#include "interfaces.h"
+#include "wine/obj_base.h"
 #include "heap.h"
 #include "ddraw.h"
 #include "d3d.h"
diff --git a/graphics/d3dlight.c b/graphics/d3dlight.c
index 7b191246185a6fc1b6b32b3d6dea9b36b7e85443..b2c37023c3ed0b913fc369b12e3876ea0444890a 100644
--- a/graphics/d3dlight.c
+++ b/graphics/d3dlight.c
@@ -8,7 +8,7 @@
 #include "windows.h"
 #include "wintypes.h"
 #include "winerror.h"
-#include "interfaces.h"
+#include "wine/obj_base.h"
 #include "heap.h"
 #include "ddraw.h"
 #include "d3d.h"
diff --git a/graphics/d3dmaterial.c b/graphics/d3dmaterial.c
index 35c01600df3c20d5464ccb7c1bb972e4ee355e97..649181e732d88c18f37115d5914c6d58f0289628 100644
--- a/graphics/d3dmaterial.c
+++ b/graphics/d3dmaterial.c
@@ -7,7 +7,7 @@
 #include "windows.h"
 #include "wintypes.h"
 #include "winerror.h"
-#include "interfaces.h"
+#include "wine/obj_base.h"
 #include "heap.h"
 #include "ddraw.h"
 #include "d3d.h"
diff --git a/graphics/d3dtexture.c b/graphics/d3dtexture.c
index beba37e82e32d8f90ebcd1a789f9d2b166b19746..038eb9ee4a3201e2031351ee52739d9586fe98a2 100644
--- a/graphics/d3dtexture.c
+++ b/graphics/d3dtexture.c
@@ -8,7 +8,7 @@
 #include "windows.h"
 #include "wintypes.h"
 #include "winerror.h"
-#include "interfaces.h"
+#include "wine/obj_base.h"
 #include "heap.h"
 #include "ddraw.h"
 #include "d3d.h"
diff --git a/graphics/d3dviewport.c b/graphics/d3dviewport.c
index 77f4810e2d73f826c63e7426c278e38a8a0d8324..f1a95dc614ce9aacad44fc5a26c012c1b2182690 100644
--- a/graphics/d3dviewport.c
+++ b/graphics/d3dviewport.c
@@ -7,7 +7,7 @@
 #include "windows.h"
 #include "wintypes.h"
 #include "winerror.h"
-#include "interfaces.h"
+#include "wine/obj_base.h"
 #include "heap.h"
 #include "ddraw.h"
 #include "d3d.h"
diff --git a/include/interfaces.h b/include/interfaces.h
index c0768d1db8744e048e01b9ad3b471ce7d3a2fa67..6ea8f8f3a87060898584f581558510b535ebe54d 100644
--- a/include/interfaces.h
+++ b/include/interfaces.h
@@ -1,17 +1,13 @@
 #ifndef _WINE_INTERFACES_H
 #define _WINE_INTERFACES_H
 
+/* FIXME: This is not a standard Windows header. Move the contents of this file to the right place and then delete it. */
+
 #include "ole.h"
 #include "ole2.h"
 #include "compobj.h"
 
-#define STDMETHOD(xfn) HRESULT (CALLBACK *fn##xfn)
-#define STDMETHOD_(ret,xfn) ret (CALLBACK *fn##xfn)
-#define PURE
-#define FAR
-#define	THIS_ THIS,
-
-/* fixme move to wine/obj_*.h */
+/* FIXME: move to the right place. Some belong to aoidl.h some to oleauto.h */
 DEFINE_OLEGUID(IID_IDispatch,       0x00020400,0,0);
 DEFINE_OLEGUID(IID_ITypeInfo,       0x00020401,0,0);
 DEFINE_OLEGUID(IID_ITypeLib,        0x00020402,0,0);
@@ -33,61 +29,5 @@ DEFINE_GUID(IID_ISupportErrorInfo,  0xDF0B3D60,0x547D,0x101B,0x8E,0x65,
 
 #include "objbase.h"
 
-#define THIS LPCLASSFACTORY this
-typedef struct {
-	STDMETHOD(QueryInterface) (THIS_ REFIID riid,LPVOID FAR* ppvObj) PURE;
-	STDMETHOD_(ULONG,AddRef) (THIS) PURE;
-	STDMETHOD_(ULONG,Release) (THIS) PURE;
-	STDMETHOD(CreateInstance) (THIS_ LPUNKNOWN pUnkOuter, REFIID riid, LPVOID FAR* ppvObject) PURE;
-	STDMETHOD(LockServer) (THIS_ BOOL32) PURE;
-} *LPCLASSFACTORY_VTABLE,IClassFactory_VTable;
-
-#undef THIS
-
-#define THIS LPMALLOC32 this
-typedef struct {
-	STDMETHOD(QueryInterface) (THIS_ REFIID riid,LPVOID FAR* ppvObj) PURE;
-	STDMETHOD_(ULONG,AddRef) (THIS) PURE;
-	STDMETHOD_(ULONG,Release) (THIS) PURE;
-
-	STDMETHOD_(LPVOID,Alloc) ( THIS_ DWORD cb);
-	STDMETHOD_(LPVOID,Realloc) ( THIS_ LPVOID pv,DWORD cb);
-	STDMETHOD_(VOID,Free) ( THIS_ LPVOID pv);
-	STDMETHOD_(DWORD,GetSize) ( THIS_ LPVOID pv);
-	STDMETHOD_(INT32,DidAlloc) ( THIS_ LPVOID pv);
-	STDMETHOD_(LPVOID,HeapMinimize) ( THIS );
-} *LPMALLOC32_VTABLE,IMalloc32_VTable;
-
-#undef THIS
-
-#define THIS LPMALLOC16 this
-typedef struct {
-	STDMETHOD(QueryInterface) (THIS_ REFIID riid,LPVOID FAR* ppvObj) PURE;
-	STDMETHOD_(ULONG,AddRef) (THIS) PURE;
-	STDMETHOD_(ULONG,Release) (THIS) PURE;
-
-	STDMETHOD_(LPVOID,Alloc) ( THIS_ DWORD cb);
-	STDMETHOD_(LPVOID,Realloc) ( THIS_ LPVOID pv,DWORD cb);
-	STDMETHOD_(VOID,Free) ( THIS_ LPVOID pv);
-	STDMETHOD_(DWORD,GetSize) ( THIS_ LPVOID pv);
-	STDMETHOD_(INT16,DidAlloc) ( THIS_ LPVOID pv);
-	STDMETHOD_(LPVOID,HeapMinimize) ( THIS );
-} *LPMALLOC16_VTABLE,IMalloc16_VTable;
-
-#undef THIS
-
-/* private prototypes for the constructors */
-#ifdef __WINE__
-LPUNKNOWN	IUnknown_Constructor(void);
-LPMALLOC16	IMalloc16_Constructor(void);
-LPMALLOC32	IMalloc32_Constructor(void);
-#endif
-
-HRESULT WINAPI CoGetMalloc32(DWORD, LPMALLOC32*);
 
-#undef STDMETHOD
-#undef STDMETHOD_
-#undef PURE
-#undef FAR
-#undef THIS_
 #endif /*_WINE_INTERFACES_H*/
diff --git a/ole/safearray.c b/ole/safearray.c
index e4cccc3d2a5b85dee34b7bad135310d422052b38..fe383e77b8c84b12279d08dcec941acf84d354be 100644
--- a/ole/safearray.c
+++ b/ole/safearray.c
@@ -15,7 +15,7 @@
 #include <strings.h>
 #include <stdio.h>
 #include <debug.h>
-#include <interfaces.h>
+#include "wine/obj_base.h"
 
 /* Localy used methods */
 static INT32  
diff --git a/ole/stg_bigblockfile.c b/ole/stg_bigblockfile.c
index 39368bd89700663fd86b9f8e925a15a576a35298..587c0f513986b36bdf807fb91d99865c252646bc 100644
--- a/ole/stg_bigblockfile.c
+++ b/ole/stg_bigblockfile.c
@@ -27,8 +27,8 @@
 #include "winerror.h"
 #include "ole.h"
 #include "ole2.h"
-#include "compobj.h"
-#include "interfaces.h"
+#include "wine/obj_base.h"
+#include "wine/obj_storage.h"
 
 #include "storage32.h"
 
diff --git a/ole/stg_stream.c b/ole/stg_stream.c
index b5fe9d8458b2c9daa66d2ff312326fb18eeb3aeb..606c9c2708a949a78bd471c595b4402ab17c7bf8 100644
--- a/ole/stg_stream.c
+++ b/ole/stg_stream.c
@@ -17,8 +17,8 @@
 #include "winerror.h"
 #include "ole.h"
 #include "ole2.h"
-#include "compobj.h"
-#include "interfaces.h"
+#include "wine/obj_base.h"
+#include "wine/obj_storage.h"
 
 #include "storage32.h"
 
diff --git a/ole/storage32.c b/ole/storage32.c
index 98c860441119e8ab9ae97ba351ef584641c9305b..f42eed31ee8a5a5fdec00c37eaf4a8675bf1d98b 100644
--- a/ole/storage32.c
+++ b/ole/storage32.c
@@ -20,9 +20,8 @@
 #include "file.h"
 #include "ole.h"
 #include "ole2.h"
-#include "compobj.h"
-#include "interfaces.h"
-#include "storage.h"
+#include "wine/obj_base.h"
+#include "wine/obj_storage.h"
 #include "crtdll.h"
 #include "tchar.h"
 #include "heap.h"