# Text Services Framework

The Text Services Framework (TSF) is a COM framework and API in the Microsoft Windows operating system that supports advanced text input and text processing. It was introduced in Windows XP. The Language Bar is the core user interface for Text Services Framework.

## Overview

The Text Services Framework is designed to offer advanced language and word processing features to applications. It supports features such as multilingual support, keyboard drivers, handwriting recognition, speech recognition, as well as spell checking and other text and natural language processing functions. It is also downloadable for older Windows operating systems.
The Language Bar enables text services to add UI elements to the toolbar and enables these elements when an application has focus. From the Language Bar, users can select the input language, and control keyboard input, handwriting recognition and speech recognition.
The language bar also provides a direct means to switch between installed languages, even when a non-TSF-enabled application has focus.
Starting with Windows XP Tablet PC Edition 2005 and Windows Vista, the RichEdit control supports the Text Services Framework. Windows Speech Recognition in Windows Vista is also implemented using the Text Services Framework.

## Features

* TSF is extensible. Independent software vendors can write their own text processing feature for TSF.
* TSF-enabled applications can receive text input from any text service that supports TSF without having to be aware of any details of the text source. Services built using TSF are globally available to any application.
* TSF enables a text service to store metadata with a document, a piece of text, or an object within the document. For example, a speech input text service can store sound information associated with a block of text.
* TSF enables text services to provide accurate and complete text conversion, with continuous access to the document buffer. Text services using TSF can avoid separating their functionality into modes for input and modes for editing. This input architecture enables the buffered and accumulating text stream to change dynamically, thereby enabling more efficient keyboard input and text editing.
* TSF is device-independent and enables text services for multiple input devices including keyboard, electronic pen or stylus, and microphone.

## ctfmon and CTF

ctfmon (ctfmon.exe) is a process used to activate the Alternative User Input Text Input Processor (TIP) and also the Microsoft Language Bar. Ctfmon is also a component of Windows XP, Windows Vista and Windows 7 which enables advanced user input services in applications (pen and ink, speech etc.). ctfmon.exe in Windows XP has superseded internat.exe (means international) in Windows 95, Windows NT 4.0, Windows 98 and Windows 2000.
CTF means Common Text Framework (codename Cicero) according to the leaked Windows XP source code) and US 7490296 patent text.
In August 2019, Google Project Zero discovered and publicly exposed a critical security vulnerability in CTF that dated back to its first release in Windows XP. The vulnerability, known as CVE-2019-1162, allows privilege escalation and security boundary traversal. Microsoft patched this vulnerability in August 2019.