diff --git a/include/.cvsignore b/include/.cvsignore
index cf258c7..886929f 100644
--- a/include/.cvsignore
+++ b/include/.cvsignore
@@ -19,6 +19,7 @@
 oleidl.h
 propidl.h
 pstore.h
+richole.h
 servprov.h
 shldisp.h
 shobjidl.h
diff --git a/include/Makefile.in b/include/Makefile.in
index 83a3e73..8fd4227 100644
--- a/include/Makefile.in
+++ b/include/Makefile.in
@@ -24,6 +24,7 @@
 	oleidl.idl \
 	propidl.idl \
 	pstore.idl \
+	richole.idl \
 	servprov.idl \
 	shldisp.idl \
 	shobjidl.idl \
@@ -184,7 +185,6 @@
 	reason.h \
 	regstr.h \
 	richedit.h \
-	richole.h \
 	rpc.h \
 	rpcdce.h \
 	rpcdcep.h \
diff --git a/include/richedit.h b/include/richedit.h
index 9cab33e..185027b 100644
--- a/include/richedit.h
+++ b/include/richedit.h
@@ -354,12 +354,17 @@
 #define ENM_IMECHANGE         0x00800000
 #define ENM_LINK              0x04000000
 
+#ifndef __RICHEDIT_CHARRANGE_DEFINED
+#define __RICHEDIT_CHARRANGE_DEFINED
+
 typedef struct _charrange
 {
     LONG    cpMin;
     LONG    cpMax;
 } CHARRANGE;
 
+#endif /* __RICHEDIT_CHARRANGE_DEFINED */
+
 typedef struct _textrange
 {
     CHARRANGE chrg;
diff --git a/include/richole.h b/include/richole.h
deleted file mode 100644
index a213ea0..0000000
--- a/include/richole.h
+++ /dev/null
@@ -1,63 +0,0 @@
-/*
- * Copyright (C) 2002 Andriy Palamarchuk
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
- */
-
-#ifndef __WINE_RICHOLE_H
-#define __WINE_RICHOLE_H
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/* REOBJECT structure flags */
-#define REO_GETOBJ_NO_INTERFACES        0x00000000
-#define REO_GETOBJ_POLEOBJ              0x00000001
-#define REO_GETOBJ_PSTG                 0x00000002
-#define REO_GETOBJ_POLESITE             0x00000004
-#define REO_GETOBJ_ALL_INTERFACES       0x00000007
-#define REO_CP_SELECTION                0xFFFFFFFF
-#define REO_IOB_SELECTION               0xFFFFFFFF
-#define REO_IOB_USE_CP                  0xFFFFFFFE
-#define REO_NULL                        0x00000000
-#define REO_READWRITEMASK               0x0000003F
-#define REO_DONTNEEDPALETTE             0x00000020
-#define REO_BLANK                       0x00000010
-#define REO_DYNAMICSIZE                 0x00000008
-#define REO_INVERTEDSELECT              0x00000004
-#define REO_BELOWBASELINE               0x00000002
-#define REO_RESIZABLE                   0x00000001
-#define REO_LINK                        0x80000000
-#define REO_STATIC                      0x40000000
-#define REO_SELECTED                    0x08000000
-#define REO_OPEN                        0x04000000
-#define REO_INPLACEACTIVE               0x02000000
-#define REO_HILITED                     0x01000000
-#define REO_LINKAVAILABLE               0x00800000
-#define REO_GETMETAFILE                 0x00400000
-
-/* clipboard operation flags */
-#define RECO_PASTE            0x00000000
-#define RECO_DROP             0x00000001
-#define RECO_COPY             0x00000002
-#define RECO_CUT              0x00000003
-#define RECO_DRAG             0x00000004
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* __WINE_RICHOLE_H */
diff --git a/include/richole.idl b/include/richole.idl
new file mode 100644
index 0000000..4d8d1a1
--- /dev/null
+++ b/include/richole.idl
@@ -0,0 +1,107 @@
+/*
+ * Copyright (C) 2002 Andriy Palamarchuk
+ * Copyright (C) 2004 Mike McCormack
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ */
+
+cpp_quote("#if 0");  /* not included on Windows */
+import "oleidl.idl";
+cpp_quote("#endif");
+
+/* REOBJECT structure flags */
+cpp_quote("#define REO_GETOBJ_NO_INTERFACES        0x00000000");
+cpp_quote("#define REO_GETOBJ_POLEOBJ              0x00000001");
+cpp_quote("#define REO_GETOBJ_PSTG                 0x00000002");
+cpp_quote("#define REO_GETOBJ_POLESITE             0x00000004");
+cpp_quote("#define REO_GETOBJ_ALL_INTERFACES       0x00000007");
+cpp_quote("#define REO_CP_SELECTION                0xFFFFFFFF");
+cpp_quote("#define REO_IOB_SELECTION               0xFFFFFFFF");
+cpp_quote("#define REO_IOB_USE_CP                  0xFFFFFFFE");
+cpp_quote("#define REO_NULL                        0x00000000");
+cpp_quote("#define REO_READWRITEMASK               0x0000003F");
+cpp_quote("#define REO_DONTNEEDPALETTE             0x00000020");
+cpp_quote("#define REO_BLANK                       0x00000010");
+cpp_quote("#define REO_DYNAMICSIZE                 0x00000008");
+cpp_quote("#define REO_INVERTEDSELECT              0x00000004");
+cpp_quote("#define REO_BELOWBASELINE               0x00000002");
+cpp_quote("#define REO_RESIZABLE                   0x00000001");
+cpp_quote("#define REO_LINK                        0x80000000");
+cpp_quote("#define REO_STATIC                      0x40000000");
+cpp_quote("#define REO_SELECTED                    0x08000000");
+cpp_quote("#define REO_OPEN                        0x04000000");
+cpp_quote("#define REO_INPLACEACTIVE               0x02000000");
+cpp_quote("#define REO_HILITED                     0x01000000");
+cpp_quote("#define REO_LINKAVAILABLE               0x00800000");
+cpp_quote("#define REO_GETMETAFILE                 0x00400000");
+
+/* clipboard operation flags */
+cpp_quote("#define RECO_PASTE            0x00000000");
+cpp_quote("#define RECO_DROP             0x00000001");
+cpp_quote("#define RECO_COPY             0x00000002");
+cpp_quote("#define RECO_CUT              0x00000003");
+cpp_quote("#define RECO_DRAG             0x00000004");
+
+typedef struct _reobject {
+    DWORD cbStruct;
+    LONG cp;
+    CLSID clsid;
+    LPOLEOBJECT poleobj;
+    LPSTORAGE pstg;
+    LPOLECLIENTSITE polesite;
+    SIZEL sizel;
+    DWORD dvaspect;
+    DWORD dwFlags;
+    DWORD dwUser;
+} REOBJECT;
+
+cpp_quote("#ifndef __RICHEDIT_CHARRANGE_DEFINED");
+cpp_quote("#define __RICHEDIT_CHARRANGE_DEFINED");
+
+typedef struct _charrange
+{
+    LONG cpMin;
+    LONG cpMax;
+} CHARRANGE;
+
+cpp_quote("#endif /* __RICHEDIT_CHARRANGE_DEFINED */");
+
+/*****************************************************************************
+ * IRichEditOle
+ */
+[
+  object,
+  uuid(00020d00-0000-0000-c000-000000000046),
+  pointer_default(unique)
+]
+interface IRichEditOle : IUnknown
+{
+    HRESULT GetClientSite(LPOLECLIENTSITE *lplpolesite);
+    HRESULT GetObjectCount();
+    HRESULT GetLinkCount();
+    HRESULT GetObject(LONG iob, REOBJECT *lpreobject, DWORD dwFlags);
+    HRESULT InsertObject(REOBJECT *lpreobject);
+    HRESULT ConvertObject(LONG iob, REFCLSID rclsidNew, LPCSTR lpstrUserTypeNew);
+    HRESULT ActivateAs(REFCLSID rclsid, REFCLSID rclsidAs);
+    HRESULT SetHostNames(LPCSTR lpstrContainerApp, LPCSTR lpstrContainerObj);
+    HRESULT SetLinkAvailable(LONG iob, BOOL fAvailable);
+    HRESULT SetDvaspect(LONG iob, DWORD dvaspect);
+    HRESULT HandsOffStorage(LONG iob);
+    HRESULT SaveCompleted(LONG iob, LPSTORAGE lpstg);
+    HRESULT InPlaceDeactivate();
+    HRESULT ContextSensitiveHelp(BOOL fEnterMode);
+    HRESULT GetClipboardData(CHARRANGE* lpchrg, DWORD reco, LPDATAOBJECT *lplpdataobj);
+    HRESULT ImportDataObject(LPDATAOBJECT lpdataobj, CLIPFORMAT cf, HGLOBAL hMetaPict);
+}
