Added an IDL file for Richedit's OLE interface.
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);
+}