The Text Object Model (TOM) is a Microsoft Windows API that provides developers with object-based rich text manipulation interfaces. It is implemented through COM, and can be accessed through Microsoft Word or additionally through the RichEdit controls that normally ship with Windows.
When TOM was developed, it was influenced heavily by WordBasic, a macro language used within Word before VBA (Word 95 and previous releases). TOM has developed alongside the RichEdit technology, and has been present since version 1.0 of the RichEdit components. The API has been available as an option for Windows CE since the 2.5 release of RichEdit (Western Languages Only), which was at least used by Pocket Word at that time.
Version 8.0 of RichEdit, which shipped with Windows 8, added support for OpenType math.
To retrieve an implemented instance of ITextDocument
interface (the top-level document interface), the EM_GETOLEINTERFACE
message may be sent via the SendMessage API to obtain a pointer to an IRichEditOle
object, which also implements the ITextDocument
interface. TOM may operate differently depending on the version of the RichEdit control the interface is retrieved for (RICHEDIT50W windows provide more functionality than the standard RICHEDIT20W or RICHEDIT20A controls, like proper table support).