Модель текстовых объектов ( TOM ) - это API Microsoft Windows, который предоставляет разработчикам интерфейсы для управления форматированным текстом на основе объектов. Он реализуется через COM , и к нему можно получить доступ через Microsoft Word или дополнительно через элементы управления RichEdit, которые обычно поставляются с Windows. [1]
История
Когда TOM был разработан, он находился под влиянием большой степени WordBasic, [1] Макроязык используется в слово перед VBA ( Word 95 и предыдущих версиях). TOM разработан вместе с технологией RichEdit и присутствует с версии 1.0 компонентов RichEdit. [2] API был доступен в качестве опции для Windows CE, начиная с версии 2.5 RichEdit (только для западных языков), который, по крайней мере, использовался Pocket Word в то время. [2]
Версия 8.0 RichEdit, поставляемая с Windows 8 , добавила поддержку математики OpenType . [3]
Технические подробности
Чтобы получить реализованный экземпляр ITextDocument
интерфейса ( интерфейс документа верхнего уровня), EM_GETOLEINTERFACE
сообщение может быть отправлено через API SendMessage для получения указателя на IRichEditOle
объект, который также реализует ITextDocument
интерфейс. [1] TOM может работать по-разному в зависимости от версии элемента управления RichEdit, для которого извлекается интерфейс (окна RICHEDIT50W предоставляют больше функций, чем стандартные элементы управления RICHEDIT20W или RICHEDIT20A, например, надлежащая поддержка таблиц). [2]
COM интерфейсы
- ITextDocument
- Интерфейс верхнего уровня. Документы можно открывать и сохранять через этот интерфейс. Здесь также достигается некоторый контроль обновления экрана. Здесь реализована группировка Undo / Redo. Предусмотрены произвольные текстовые диапазоны ( ITextRange ) и текстовый диапазон для текущего выделенного текста ( ITextSelection ), которые используются для изменения или просмотра документа.
- ITextRange
- Предоставляет инструменты редактирования и привязки данных для выделения текста в документе, который может быть исследован, изменен или удален. Диапазоны существуют внутри абзацев, а абзац, в котором находится диапазон, доступен через свойство этого объекта.
- ITextSelection
- Предоставляет информацию о выборе в дополнение к функциям, предоставляемым ITextRange .
- ITextFont
- Двойной интерфейс с ITextPara
- Механизм проверки и изменения атрибутов шрифта расширенного редактирования, который значительно более обширен, чем стандартный интерфейс OLE, используемый для описания шрифта (IFontDisp, StdFont).
- ITextPara
- Двойной интерфейс с ITextFont
- Предоставляет обширную информацию о расположении, форматировании вне шрифтов (например, отступ первой строки), поведении (например, управление окнами) и назначении абзаца (это может быть обычный абзац, список, таблица и т. Д.).
Смотрите также
Рекомендации
- ^ a b c «Модель текстовых объектов» . Проверено 4 декабря 2011 .
- ^ а б в «Версии RichEdit» . Проверено 4 декабря 2011 .
- ^ http://blogs.msdn.com/b/murrays/archive/2012/03/03/richedit-8-0-preview.aspx