If your text service wishes to display text in different colors (e.g., displaying the current composition in red), then your text service needs to implement these interfaces:
Obtained by QI from ITfTextInputProcessor
Returned from ITfDisplayAttributeProvider::EnumDisplayAttributeInfo
Returned from ITfDisplayAttributeProvider::GetDisplayAttributeInfo
If you implement ITfDisplayAttributeProvider, you must also understand how properties work (because display attributes are set via properties), and you must also register your text service as a display attribute property provider at install time, like this:
ITfCategoryMgr::RegisterCategory(<clsid of text service>, GUID_TFCAT_DISPLAYATTRIBUTEPROVIDER, <clsid of text service>);
MSDN also mentions GUID_TFCAT_DISPLAYATTRIBUTEPROPERTY, but it doesn’t seem to be used in the samples or in any text service I can find.
A working example of a text service that implements display attributes can be found in MSDN.