For RichEdit 4.0 (Windows XP SP1), I developed a UTF-8 version of the Rich Text Format (RTF). The reason was to have a faster, more reliable way of handling copy/paste for RichEdit than regular RTF. RichEdit 5.0 added the binary format for this purpose (and for OneNote) and RichEdit 6.0 added a still faster internal…


RichEdit Hot Keys

This post summarizes the hot keys built into RichEdit. Previous posts have described various math hot keys like Alt+=. But AFAIK no one has published a summary of all the RichEdit hot keys. Note that RichEdit clients, e.g., OneNote, often handle all hot key combinations with RichEdit never seeing the corresponding keyboard messages. Since the…


RichEdit 8 Feature Additions

The time has come to summarize the features added in RichEdit 8, which shipped with Windows 8 and Office 2013. Since so much was added, I wrote a number of blog posts over the last twelve months about the larger RichEdit 8 features. The present post lists those features and then describes some smaller features…



Early in this century with texting becoming an increasingly popular way to communicate on cell phones, the Japanese created an imaginative new way of conveying an idea or emotion: use cool, maybe colorful, maybe animated, symbols called emoji. Some emoji resembled symbols that were already encoded in Unicode, but most were new. Examples include “red…


Flyweight RichEdit Controls

Back when RichEdit 2.0 was being designed, Christian Fortini had a dream that every text string in a Forms^3 form or dialog would be a light-weight RichEdit control. That way there would be no display glitches in switching from static display to edit mode and text could be copied, edited, and made accessible. To keep…


Arabic and Mathematical Enclosures

This post describes the Arabic subtending marks and discusses how their editing and display could be significantly improved by using a mathematical layout engine instead of using a complex-script shaping engine. Unicode has a set of six Arabic subtending or enclosure characters located at U+0600..U+0604 (؀, ؁, ؂, ؃, ؄, respectively) and the End-of-Ayah mark U+06DD (۝)….


MathML on the Windows Clipboard

 Sometimes people enquire how the Windows clipboard works and whether it supports MathML, jpeg, RTF and other formats in addition to built-in formats like CF_BITMAP and CF_UNICODETEXT that are defined in winuser.h. The answer to the second question is that Windows supports any format that you want to define, including private formats. This post gives…


Pasting Bitmaps into Text

In the (almost) old days, when you paste a bitmap into a rich-text editor, the editor would give it to OLE (Object Linking and Embedding) to figure out what to do with it. But these days, OLE isn’t always available, so it’s more general to paste them using the Windows Imaging Component (WIC) mentioned in…


The Alpha Channel

One of our testers inserted a Microsoft logo image into RichEdit and saw an inky black rectangle. Ignoring any connotation that this might be a bad omen (!), I proceeded to study image formats in Wikipedia and in MSDN. (Not that I hadn’t already scoured such documentation). Pretty soon I started to suspect that the image, which…


RichEdit 8 Performance Improvements

This post describes a couple of performance improvements introduced in RichEdit 8: 1) a more efficient display tree, and 2) a faster rich-text formatting mechanism. Performance is always of interest, partly to make the user experience more enjoyable (animations should be smooth, not jerky, and who wants to wait for things to happen?) and partly…