diff --git a/dlls/richedit/riched32.h b/dlls/richedit/riched32.h
index 236bdaa..9753fc0 100644
--- a/dlls/richedit/riched32.h
+++ b/dlls/richedit/riched32.h
@@ -22,6 +22,8 @@
 #ifndef __WINE_RICHED32_H
 #define __WINE_RICHED32_H
 
+#include "windef.h"
+#include "winuser.h"
 #include "richedit.h"
 
 extern VOID RICHED32_Register (VOID);
diff --git a/include/Makefile.in b/include/Makefile.in
index 22b2246..4f18004 100644
--- a/include/Makefile.in
+++ b/include/Makefile.in
@@ -105,6 +105,7 @@
 	ras.h \
 	regstr.h \
 	richedit.h \
+	richole.h \
 	rpc.h \
 	rpcdce.h \
 	rpcdcep.h \
diff --git a/include/richedit.h b/include/richedit.h
index 5f305de..c1de5d8 100644
--- a/include/richedit.h
+++ b/include/richedit.h
@@ -1,5 +1,6 @@
 /*
  * Copyright (C) 2000 Jean-Claude Batista
+ * 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
@@ -19,7 +20,6 @@
 #ifndef __WINE_RICHEDIT_H
 #define __WINE_RICHEDIT_H
 
-#include "windef.h"
 #include "pshpack4.h"
 
 #ifdef __cplusplus
@@ -156,14 +156,24 @@
 
 typedef DWORD (CALLBACK * EDITSTREAMCALLBACK)( DWORD, LPBYTE, LONG, LONG * );
 
+/* tab stops number limit */
+#define MAX_TAB_STOPS         0x00000020
+
 /* Rich edit control styles */
-#define ES_SAVESEL            0x00008000
-#define ES_SUNKEN             0x00004000
 #define ES_DISABLENOSCROLL    0x00002000
-#define ES_SELECTIONBAR       0x01000000
-#define ES_VERTICAL           0x00400000
-#define ES_NOIME              0x00080000
+#define ES_SUNKEN             0x00004000
+#define ES_SAVESEL            0x00008000
 #define ES_SELFIME            0x00040000
+#define ES_NOIME              0x00080000
+#define ES_VERTICAL           0x00400000
+#define ES_EX_NOCALLOLEINIT   0x01000000
+
+/* the character formatting options */
+#define SCF_DEFAULT           0x00000000
+#define SCF_SELECTION         0x00000001
+#define SCF_WORD              0x00000002
+#define SCF_ALL               0x00000004
+#define SCF_USEUIRULES        0x00000008
 
 /* CHARFORMAT structure */
 typedef struct _charformat
@@ -194,17 +204,84 @@
 
 DECL_WINELIB_TYPE_AW(CHARFORMAT)
 
+typedef struct _charformat2a {
+    UINT       cbSize;
+    DWORD      dwMask;
+    DWORD      dwEffects;
+    LONG       yHeight;
+    LONG       yOffset;
+    COLORREF   crTextColor;
+    BYTE       bCharSet;
+    BYTE       bPitchAndFamily;
+    char       szFaceName[LF_FACESIZE];
+    WORD       wWeight;
+    SHORT      sSpacing;
+    COLORREF   crBackColor;
+    LCID       lcid;
+    DWORD      dwReserved;
+    SHORT      sStyle;
+    WORD       wKerning;
+    BYTE       bUnderlineType;
+    BYTE       bAnimation;
+    BYTE       bRevAuthor;
+} CHARFORMAT2A;
+
+typedef struct _charformat2w {
+    UINT       cbSize;
+    DWORD      dwMask;
+    DWORD      dwEffects;
+    LONG       yHeight;
+    LONG       yOffset;
+    COLORREF   crTextColor;
+    BYTE       bCharSet;
+    BYTE       bPitchAndFamily;
+    WCHAR      szFaceName[LF_FACESIZE];
+    WORD       wWeight;
+    SHORT      sSpacing;
+    COLORREF   crBackColor;
+    LCID       lcid;
+    DWORD      dwReserved;
+    SHORT      sStyle;
+    WORD       wKerning;
+    BYTE       bUnderlineType;
+    BYTE       bAnimation;
+    BYTE       bRevAuthor;
+} CHARFORMAT2W;
+
+DECL_WINELIB_TYPE_AW(CHARFORMAT2)
+
 /* CHARFORMAT masks */
 #define CFM_BOLD              0x00000001
 #define CFM_ITALIC            0x00000002
 #define CFM_UNDERLINE         0x00000004
 #define CFM_STRIKEOUT         0x00000008
 #define CFM_PROTECTED         0x00000010
-#define CFM_SIZE              0x80000000
-#define CFM_COLOR             0x40000000
-#define CFM_FACE              0x20000000
-#define CFM_OFFSET            0x10000000
+#define CFM_LINK              0x00000020
+#define CFM_SMALLCAPS         0x00000040
+#define CFM_ALLCAPS           0x00000080
+#define CFM_HIDDEN            0x00000100
+#define CFM_OUTLINE           0x00000200
+#define CFM_SHADOW            0x00000400
+#define CFM_EMBOSS            0x00000800
+#define CFM_IMPRINT           0x00001000
+#define CFM_DISABLED          0x00002000
+#define CFM_REVISED           0x00004000
+#define CFM_REVAUTHOR         0x00008000
+#define CFM_SUBSCRIPT         0x00030000
+#define CFM_SUPERSCRIPT       0x00030000
+#define CFM_ANIMATION         0x00040000
+#define CFM_STYLE             0x00080000
+#define CFM_KERNING           0x00100000
+#define CFM_SPACING           0x00200000
+#define CFM_WEIGHT            0x00400000
+#define CFM_LCID              0x02000000
+#define CFM_BACKCOLOR         0x04000000
 #define CFM_CHARSET           0x08000000
+#define CFM_OFFSET            0x10000000
+#define CFM_FACE              0x20000000
+#define CFM_COLOR             0x40000000
+#define CFM_SIZE              0x80000000
+#define CFM_EFFECTS	      (CFM_BOLD | CFM_ITALIC | CFM_UNDERLINE | CFM_COLOR | CFM_STRIKEOUT | CFE_PROTECTED | CFM_LINK)
 
 /* CHARFORMAT effects */
 #define CFE_BOLD              0x00000001
@@ -212,6 +289,8 @@
 #define CFE_UNDERLINE         0x00000004
 #define CFE_STRIKEOUT         0x00000008
 #define CFE_PROTECTED         0x00000010
+#define CFE_SUBSCRIPT         0x00010000
+#define CFE_SUPERSCRIPT	      0x00020000
 #define CFE_AUTOCOLOR         0x40000000
 
 /* ECO operations */
@@ -244,6 +323,7 @@
 #define ENM_PROTECTED         0x00200000
 #define ENM_CORRECTTEXT       0x00400000
 #define ENM_IMECHANGE         0x00800000
+#define ENM_LINK              0x04000000
 
 typedef struct _charrange
 {
@@ -265,19 +345,249 @@
 
 DECL_WINELIB_TYPE_AW(TEXTRANGE)
 
-typedef struct
+typedef struct _editstream
 {
     DWORD		dwCookie;
     DWORD		dwError;
     EDITSTREAMCALLBACK	pfnCallback;
 } EDITSTREAM;
 
-#define SF_TEXT		0x0001
-#define SF_RTF		0x0002
-#define SF_RTFNOOBJS	0x0003
-#define SF_TEXTIZED	0x0004
+typedef struct _compcolor {
+    COLORREF   crText;
+    COLORREF   crBackground;
+    DWORD      dwEffects;
+} COMPCOLOR;
+
+typedef struct _encorrecttext {
+    NMHDR      nmhdr;
+    CHARRANGE  chrg;
+    WORD       seltyp;
+} ENCORRECTTEXT;
+
+typedef struct _endropfiles {
+    NMHDR      nmhdr;
+    HANDLE     hDrop;
+    LONG       cp;
+    BOOL       fProtected;
+} ENDROPFILES;
+
+typedef struct _enlink {
+    NMHDR      nmhdr;
+    UINT       msg;
+    WPARAM     wParam;
+    LPARAM     lParam;
+    CHARRANGE  chrg;
+} ENLINK;
+
+typedef struct {
+    NMHDR      nmhdr;
+    LONG       iob;
+    LONG       lOper;
+    HRESULT    hr;
+} ENOLEOPFAILED;
+
+typedef struct _enprotected {
+    NMHDR      nmhdr;
+    UINT       msg;
+    WPARAM     wParam;
+    LPARAM     lParam;
+    CHARRANGE  chrg;
+} ENPROTECTED, *LPENPROTECTED;
+
+typedef struct _ensaveclipboard {
+    NMHDR      nmhdr;
+    LONG       cObjectCount;
+    LONG       cch;
+} ENSAVECLIPBOARD;
+
+typedef struct _findtextA {
+    CHARRANGE  chrg;
+    LPSTR      lpstrText;
+} FINDTEXTA;
+
+typedef struct _findtextW {
+    CHARRANGE  chrg;
+    LPWSTR     lpstrText;
+} FINDTEXTW;
+
+DECL_WINELIB_TYPE_AW(FINDTEXT);
+
+typedef struct _findtextexA {
+    CHARRANGE  chrg;
+    LPSTR      lpstrText;
+    CHARRANGE  chrgText;
+} FINDTEXTEXA;
+
+typedef struct _findtextexW {
+    CHARRANGE  chrg;
+    LPWSTR     lpstrText;
+    CHARRANGE  chrgText;
+} FINDTEXTEXW;
+
+DECL_WINELIB_TYPE_AW(FINDTEXTEX);
+
+typedef struct _formatrange {
+    HDC        hdc;
+    HDC        hdcTarget;
+    RECT       rc;
+    RECT       rcPage;
+    CHARRANGE  chrg;
+} FORMATRANGE;
+
+typedef struct _msgfilter {
+    NMHDR      nmhdr;
+    UINT       msg;
+    WPARAM     wParam;
+    LPARAM     lParam;
+} MSGFILTER;
+
+typedef struct _paraformat {
+    UINT       cbSize;
+    DWORD      dwMask;
+    WORD       wNumbering;
+    WORD       wReserved;
+    LONG       dxStartIndent;
+    LONG       dxRightIndent;
+    LONG       dxOffset;
+    WORD       wAlignment;
+    SHORT      cTabCount;
+    LONG       rgxTabs[MAX_TAB_STOPS];
+} PARAFORMAT;
+
+typedef struct _selchange {
+    NMHDR      nmhdr;
+    CHARRANGE  chrg;
+    WORD       seltyp;
+} SELCHANGE;
+
+typedef struct _reqresize {
+    NMHDR      nmhdr;
+    RECT       rc;
+} REQRESIZE;
+
+typedef struct _repastespecial {
+    DWORD      dwAspect;
+    DWORD      dwParam;
+} REPASTESPECIAL;
+
+typedef struct _punctuation {
+    UINT       iSize;
+    LPSTR      szPunctuation;
+} PUNCTUATION;
+
+typedef struct _gettextex {
+    DWORD      cb;
+    DWORD      flags;
+    UINT       codepage;
+    LPCSTR     lpDefaultChar;
+    LPBOOL     lpUsedDefaultChar;
+} GETTEXTEX;
+
+#define SF_TEXT		      0x00000001
+#define SF_RTF		      0x00000002
+#define SF_RTFNOOBJS	      0x00000003
+#define SF_TEXTIZED	      0x00000004
+#define SF_UNICODE            0x00000010
+#define SF_USECODEPAGE        0x00000020
+#define SF_NCRFORNONASCII     0x00000040
+#define SF_RTFVAL             0x00000700
+
+/* Clipboard formats */
+#define CF_RTF          TEXT("Rich Text Format")
+#define CF_RTFNOOBJS    TEXT("Rich Text Format Without Objects")
+#define CF_RETEXTOBJ    TEXT("RichEdit Text and Objects")
 
 
+/* Parameters of the EM_SETIMEOPTIONS message */
+#define IMF_FORCENONE         0x00000001
+#define IMF_FORCEENABLE       0x00000002
+#define IMF_FORCEDISABLE      0x00000004
+#define IMF_CLOSESTATUSWINDOW 0x00000008
+#define IMF_VERTICAL          0x00000020
+#define IMF_FORCEACTIVE       0x00000040
+#define IMF_FORCEINACTIVE     0x00000080
+#define IMF_FORCEREMEMBER     0x00000100
+
+/* return values of the EM_SELECTION_TYPE message */
+#define SEL_EMPTY             0x00000000
+#define SEL_TEXT              0x00000001
+#define SEL_OBJECT            0x00000002
+#define SEL_MULTICHAR         0x00000004
+#define SEL_MULTIOBJECT       0x00000008
+
+/* mask values in the PARAFORMAT2 structure */
+#define PFM_STARTINDENT       0x00000001
+#define PFM_RIGHTINDENT       0x00000002
+#define PFM_OFFSET            0x00000004
+#define PFM_ALIGNMENT         0x00000008
+#define PFM_TABSTOPS          0x00000010
+#define PFM_NUMBERING         0x00000020
+#define PFM_OFFSETINDENT      0x80000000
+
+/* numbering option */
+#define PFN_BULLET            0x00000001
+
+/* paragraph alignment */
+#define PFA_LEFT              0x00000001
+#define PFA_RIGHT             0x00000002
+#define PFA_CENTER            0x00000003
+
+/* streaming flags */
+#define SFF_PWD               0x00000800
+#define SFF_KEEPDOCINFO       0x00001000
+#define SFF_PERSISTVIEWSCALE  0x00002000
+#define SFF_PLAINRTF          0x00004000
+#define SFF_SELECTION         0x00008000
+
+typedef LONG (*EDITWORDBREAKPROCEX)(char*,LONG,BYTE,INT);
+
+/* options of the EM_FINDWORDBREAK message */
+#define WB_CLASSIFY           0x00000003
+#define WB_MOVEWORDLEFT       0x00000004
+#define WB_MOVEWORDPREV       0x00000004
+#define WB_MOVEWORDRIGHT      0x00000005
+#define WB_MOVEWORDNEXT       0x00000005
+#define WB_LEFTBREAK          0x00000006
+#define WB_PREVBREAK          0x00000006
+#define WB_RIGHTBREAK         0x00000007
+#define WB_NEXTBREAK          0x00000007
+
+/* options of the EM_SETWORDWRAPMODE message */
+#define WBF_WORDWRAP          0x00000010
+#define WBF_WORDBREAK         0x00000020
+#define WBF_OVERFLOW          0x00000040
+#define WBF_LEVEL1            0x00000080
+#define WBF_LEVEL2            0x00000100
+#define WBF_CUSTOM            0x00000200
+
+/* options of the EM_SETTEXTMODE message */
+#define TM_PLAINTEXT          0x00000001
+#define TM_RICHTEXT           0x00000002
+#define TM_SINGLELEVELUNDO    0x00000004
+#define TM_MULTILEVELUNDO     0x00000008
+#define TM_SINGLECODEPAGE     0x00000010
+#define TM_MULTICODEPAGE      0x00000020
+
+/* GETTEXT structure flags */
+#define GT_DEFAULT            0x00000000
+#define GT_USECRLF            0x00000001
+
+/* Options of the EM_SETTYPOGRAPHYOPTIONS message */
+#define TO_ADVANCEDTYPOGRAPHY 0x00000001
+#define TO_SIMPLELINEBREAK    0x00000002
+
+typedef struct _gettextlengthex {
+    DWORD      flags;
+    UINT       codepage;
+} GETTEXTLENGTHEX;
+
+/* Flags of the GETTEXTLENGTHEX structure */
+#define GTL_DEFAULT           0x00000000
+#define GTL_USECRLF           0x00000001
+#define GTL_PRECISE           0x00000002
+#define GTL_CLOSE             0x00000004
+#define GTL_NUMCHARS          0x00000008
+#define GTL_NUMBYTES          0x00000010
 
 #ifdef __cplusplus
 }
diff --git a/include/richole.h b/include/richole.h
new file mode 100644
index 0000000..a213ea0
--- /dev/null
+++ b/include/richole.h
@@ -0,0 +1,63 @@
+/*
+ * 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 */
