riched20: rich edit control in Wine

[Retrieved on 24 Jan 2009 from www.thomaskho.com/silenceisdefeat/seas/wine. Also previously online at www.seas.ucla.edu/~kho/wine.]

Maintained by: Thomas Kho <tkho@ucla.edu>
Last Updated: 20 June 2006

This page contains notes on the rich edit control in riched20.dll and lists features that would be nice to have implemented.

Table of Contents

Introduction

The following links may help in getting started:

Course Links:

Unimplemented messages

The following is a list of unimplemented messages/features that are sent/used by actual programs. See rich edit controls on MSDN for specifications of most messages [try a search for those not listed on this page]. Also, see dlls/riched20/editor.c for the implementation status of all messages.

MessageWineHQ HitsComments
EM_AUTOURLDETECT 4 provides automatic url detection [also EM_GETAUTOURLDETECT]
EM_DISPLAYBAND 1 formatting for output device, depends on EM_FORMATRANGE
EM_EXLIMITTEXT15specify max characters for a rich edit control [also EM_GETLIMITTEXT, EM_LIMITTEXT]
EM_FINDTEXT?
EM_FORMATRANGE3formatting for output device
EM_GETLANGOPTIONS1[also EM_SETLANGOPTIONS]
EM_GETLINE2
EM_HIDESELECTION1
EM_SCROLL1 (google earth)scroll rich edit control
EM_SCROLLCARET1scroll so that the caret is visible - I am implementing this as an example for CS 130 students
EM_SETOLECALLBACK1Implemented 20060131
EM_SETOPTIONS1
EM_SETTARGETDEVICE1
EM_SETTEXTMODE2
EM_SETUNDOLIMIT2
WM_SETFONTlots
WM_STYLECHANGINGlots
WM_STYLECHANGEDlots
bold text means that the control is being/has been implemented by a student in CS 130

Patches

A list of patches is below. You may have to run `autoconf` to update the configure script.

Patches I'm trying to get committed

Other current patches

Committed patches

Old patches

riched20 internals

This is very much a work in progress, and must be taken with a grain of salt. As I implement EM_SCROLLCARET, my goal is to document the internal workings of riched20 so that anyone else adding features can hit the ground running.

The ME_TextEditor structure in editstr.h defines the edit box. Members are aptly named, including: