RichEdit versions

Recurring questions are what RichEdit's are available, where they are installed and what features they have. A relatively new question is which RichEdit's support the new Office math editing and display. So this post attempts to answer these questions. To answer the last question first, only RichEdit 6.0 has the Office math facility, although RichEdit 5.0 has a preliminary math capability that was good enough to get people intrigued with doing something well.

Before answering the other question, here's a quick summary of what RichEdit is in case you haven't heard of it: RichEdit 6.0 is a facility for getting plain/rich-text, single/multiline Unicode/ANSI edit controls and combo/list boxes in single world-wide binary that runs on all Windows operating systems. It has multilevel undo, message & com interfaces, considerable Word compatibility, richly formatted text, outline view, zoom, support for the latest IMEs, speech and handwriting input, rich complex script support (e.g., BiDi, Indic, and Thai), pagination, multilevel tables, autocorrect, hyphenation, kerning, ClearType support, autoURL detection, East Asian features such as vertical text, text wrap around embedded objects, font binding, and support for Unicode surrogate pairs and most Unicode 4.0 scripts. To some degree all RichEdit versions since 3.0 have had these features; although the support for them has improved greatly from version to version (Indic support was first available in 4.0). The rich-ink support was added in 5.0 (4.1 is used in the Ink Edit control that ships with the Tablet PC).

This post continues with a summary table, followed by a list of new features for each version. For the most part, each version has all the features of versions with lower version numbers. One exception is that the Japanese version of RichEdit 1.0 had vertical text display, which wasn't supported by later versions until RichEdit 4.0. Another is that RichEdit 1.0 was also pen-enabled and understood gestures for use with Pen Windows, while only the RichEdit 4.1 ink control and later versions have rich ink support.

Version Ships ('ed) with dll name
1.0 Windows 95/98/ME/NT riched32.dll
1.0 Exchange 4.0 for Windows 3.1/WFW richedit.dll
2.0 Office 97, Windows NT/98 riched20.dll
2.1 BiDi Office 97 riched20.dll
2.5 Windows CE, Pocket Word riched20.dll
3.0 Office 2000, Windows ME/2000/XP riched20.dll
1.0 emulator Office 2000, Windows 2000/XP/Vista riched32.dll
3.1 Windows Server 2003, Vista riched20.dll
3.5 Windows CE, eBooks ebriched.dll
4.0 Office XP riched20.dll
4.1 Windows XP SP1, Tablet, Vista msftedit.dll
5.0 Office 2003 riched20.dll
5.1 Windows CE, Pocket Word riched20.dll
6.0 Office 2007, Encarta Math Calculator riched20.dll

If you want to use the Office 2007 RichEdit 6.0, you'll find it in the private subdirectory \Program Files\Common Files\Microsoft Shared\OFFICE12. Similarly the Encarta Math Calculator is stored in a private Encarta subdirectory. The OS versions are located in \Windows\system32. Maybe someday Windows will have the good fortune to have a more recent RichEdit than 4.1J But then we'd have to document all the new features L (Wouldn't be that hard…)

RichEdit 1.0 Features

  • Basic nonUnicode editing, cut/copy/paste, file streaming
  • Basic set of character/paragraph formatting properties
  • Message-based interface plus OLE interfaces: IRichEditOle and IRichEditOleCallback
  • Vertical text and IME support (FE builds only).
  • WYSIWYG editing using printer metrics
  • Different builds for different scripts
  • Common-control notifications plus some new ones
  • Plain text and RTF files
  • Pen-enabled and understood gestures for use with Pen Windows

RichEdit 2.0 Additions

  • Unicode internally + able to read/write using codepages
  • International line breaking algorithm
  • Find Up/Down. Magellan mouse support.
  • Multilevel undo
  • BiDi (RE 2.1) and FE support including level 2/3 IME, dual font, keyboard linking, smart font apply
  • AutoURL recognition. Word UI
  • Plain/rich, single-line/multiline, scalable architecture
  • Password and accelerator control options
  • Windowless interfaces (ITextHost/ITextServices)
  • Better display (mixed fonts use off-screen bitmap), system selection colors, transparency support
  • TOM (Text Object Model) dual interfaces
  • Character formatting additions include background color, locale ID, underline type, superscript/subscript.
  • Paragraph formatting additions include space before/after, line spacing.
  • Roundtrip all Word Format Font/Para dialog properties
  • Extensive code stabilization, testing, performance increase

RichEdit 2.5 Additions

  • First Windows CE version. Used by Pocket Word
  • Outline view, normal and heading styles
  • RTF additions
  • Minor UI improvements
  • Western languages only

RichEdit 3.0 Additions

  • Used for emulating RichEdit 1.0's
  • Zoom
  • Italics caret/cursor. URL hand cursor
  • Paragraph numbering (alpha, numeric, Roman)
  • Simple tables (no wrap in cells)
  • More underline types, underline coloring, hidden text
  • More of Word's default hot keys, e.g., accent dead keys, outline view, numbering
  • Smart quotes (English only), soft hyphens
  • Use Office's LineServices component to break/display lines. Used for complex scripts and options like center, right, decimal tabs, fully justified text
  • Complex script support for BiDi, Indic, and Thai with help from LineServices and Uniscribe components
  • Font Binding based on charset, which acts as writing system ID
  • Codepage-specific stream in/out
  • UTF-8 RTF. Used preferentially for cut/copy/paste. Can be streamed in/out.
  • Office 9 IME support (MSIME98) including Reconversion, Document feed, Mouse Operation, and Caret position features
  • AIMM component IME support for nonFE systems.
  • Increased freeze and undo/redo control
  • Font increment/decrement function
  • System edit control, list box, and combo box controls
  • Alt+x input method
  • Used to emulate RichEdit 1.0's

RichEdit 3.5 Additions

  • Second Windows CE release. Used by eBooks
  • Screen-size pagination
  • Text wrap around objects flushed left/right
  • Custom ClearType support
  • Enhanced East Asian typography

RichEdit 4.0 Additions

  • Multilevel tables
  • Autocorrect
  • Improved autoURL detection
  • Friendly name hyperlinks
  • Font binding according to writing system (generalization of charset)
  • Indic support
  • Vertical text
  • Support for the latest IMEs
  • Speech and handwriting input (Windows Text Services Framework)
  • More standard hot keys
  • Many security fixes (3.0 has also)

RichEdit 5.0 Additions

  • Multiselection, smart drag&drop
  • Better nested tables, horizontally merged cells
  • Better font binding/international support
  • More underline styles, small cap & shadow emulation
  • Binary file format: "parsed XML"
  • Partial XHTML reader/writer
  • Subpixel ClearType support
  • Better RTF handling, e.g., multilevel lists
  • URL tooltips
  • Many bug/minor-request fixes
  • Improved ink support, especially for OneNote
  • Advanced East Asian typography
  • Initial PTS integration, including object tight wrap
  • Infrastructure for math, ruby, warichu, tatenakayoko
  • Text trackers and blobs

RichEdit 5.1

  • Third Windows CE release. Used by Pocket Word
  • Various UI and RTF enhancements

RichEdit 6.0 Additions

  • High-quality editing & display of math
  • Formula autobuildup
  • Create and support math linear format
  • More list numbering options
  • Simple "visi" mode
  • URL improvements
  • Multistory: high-perf cut/copy/paste, rich scratchpads, WP infrastructure 
  • Text Object Model 2
  • Display enhancements, e.g., word underline, horizontal scaling
  • Table UI adds, e.g., column resizing
  • OfficeArt/PowerPoint enhancements
  • Overlapping lines, drop caps & other ePeriodicals improvements
  • Device independent layout
  • Virtualized OS: "hDC" is totally opaque
  • Multiple columns
  • Myriad security fixes