TSF Aware

Dictation, Windows Speech Recognition, and Text Services Framework.

May, 2007

Blog - About

About TSF Aware

Eric Brown has been working with the Text Services Framework for the past 6 years - just about as long as he has been working on Windows Speech Recognition.

  • TSF Aware

    LOLCode

    • 0 Comments
    I suppose while I'm sending out the random link propagation, I should also mention LOLCODE - the programming language for really leet coders. I think it's related to the (deservedly) esoteric language valgol , from the 80's. Update: on second thought...
  • TSF Aware

    Desktop Tower Defense

    • 3 Comments
    Enough about TSF for a while. :) I found this amazingly addictive game the other day called Desktop Tower Defense . It's sort of the reverse of Lemmings - instead of saving all the lemmings, you need to squash them all. There's an insane number of...
  • TSF Aware

    What's a Keyboard?

    • 1 Comments
    The Text Services Framework makes a number of assumptions when you register your text service as a keyboard text service (i.e., your text service calls RegisterCategory(<clsid of your text service>, GUID_TFCAT_TIP_KEYBOARD, <clsid of your text...
  • TSF Aware

    Generating Candidates from a Text Service

    • 0 Comments
    So how do you create the candidates from within the text service? Well, the first thing you need is the original input, and you need to know what text was created from the original input. Almost all text services (there might be a few that don't do this...
  • TSF Aware

    Generating Candidates from an Application

    • 0 Comments
    Kirby left a comment to my post on candidates asking when a text service should create an ITfCandidateList. The answer is that when the text service wants to show candidates (via a preserved key or other mechanism), it should show its modal UI, and...
  • TSF Aware

    Transitory Extensions, or, how to get full text store support in TSF-unaware controls

    • 0 Comments
    As I mentioned earlier , TSF provides very basic services in applications that are not TSF-aware. In particular, TSF provides only transitory documents and contexts that represent short-lived text compositions. In Windows Vista, TSF adds full text store...
  • TSF Aware

    Text Service Variations

    • 0 Comments
    Probably the most annoying thing about writing a text service is dealing with all the variations in text stores. They all have quirks that need to be worked around, and any significant change has to be tested against all the text stores to make sure that...
  • TSF Aware

    Rules of Text Services

    • 2 Comments
    One of the harder parts of writing a text service is learning how to 'think' text services. Here are a couple of rules that I've developed (the hard way) after writing a text service: The first rule of writing a text service is: Keep the edit sessions...
  • TSF Aware

    Text services: Vista Extensions (UI Elements)

    • 0 Comments
    The TSF tour ends here, with a brief discussion of UI Elements in Vista If your text service wishes to be available in full-screen applications like games, it must implement ITfUIElement , and call the ITfUIElementMgr whenever the text service wants...
  • TSF Aware

    Text Services: Vista Extensions

    • 0 Comments
    In Windows Vista, TSF added the ability to run in locations where it had previously been disabled. For example, TSF is now available on secure desktops, in full screen (DirectX) applications, and in MTA threads. However, text services have to be aware...
  • TSF Aware

    Text Services: Candidates

    • 6 Comments
    If your text service supports multiple interpretations of the same input, and you wish to allow users to correct the initial interpretation (for dictation, we call this 'correction'; IMEs tend to call it 'reconversion'), your text service will need to...
  • TSF Aware

    Text Services: Function Providers

    • 0 Comments
    TSF allows text services to offer optional extension points through the ITfFunctionProvider interface. Indirection through the function provider allows text services to minimize memory usage and startup time by instantiating services when requested, rather...
  • TSF Aware

    Text Services: Language Bar

    • 0 Comments
    If your text service wishes to display some UI on the language bar, then your service will need to create objects that implement one (or more) of the following interfaces: Interface How Obtained ITfLangBarItem Pass...
  • TSF Aware

    Text Service: Display Attributes

    • 0 Comments
    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: Interface How Obtained ITfDisplayAttributeProvider...
  • TSF Aware

    Text Service Properties

    • 0 Comments
    The next thing that I'd like to talk about are properties. While the TSF manager implements basic property handling (via ITfProperty), a text service has the ability to customize the way TSF handles properties. If your text service wishes to attach...
  • TSF Aware

    Text Service Basics

    • 0 Comments
    We have finally finished looking at the interfaces that TSF implements for you. Now we start looking at the interfaces that text services must implement. The first step are the essential interfaces. Every text service must implement these two interfaces...
  • TSF Aware

    A Tour through TSF: Miscellaneous Functions

    • 0 Comments
    The last set of interfaces implemented by the TSF manager are the 'odd-ball' interfaces that don't really fall into any other logical groups. Helpers The interfaces in this category provide auxiliary services for applications or text services. ...
  • TSF Aware

    Trek can has Cheezburger, too

    • 0 Comments
    And now for something completely unrelated to TSF, or dictation: I'm going to pile onto the incredibly funny Star Trek/ lolcat spoof at granades.com. If you haven't seen it yet, it's pretty darn funny.
  • TSF Aware

    A Tour through TSF: Language Bar

    • 0 Comments
    These interfaces manage the language bar and the items that display on the language bar. These interfaces are used exclusively by text services, and will be discussed further in a future post. Interface How to Obtain ITfLangBarMgr...
  • TSF Aware

    A Tour through TSF: Enumerators

    • 0 Comments
    The next set of TSF manager interfaces are the enumerators. These are rather boring interfaces; they just enumerate things. Generally speaking, the enumerators enumerate things owned by the item that provides the enumerator. For example, IEnumTfContexts...
  • TSF Aware

    A Tour through TSF: Event sinks

    • 0 Comments
    The interfaces in this category allow you to be called back when certain events happen on another interface. These callbacks are generally referred to as 'event sinks'. Interface How to Obtain ITfSource QI on...
  • TSF Aware

    A Tour through TSF: Contexts and Ranges

    • 0 Comments
    Our next stop on our tour through TSF brings us to the two most heavily used interfaces in text services: Contexts and Ranges. But first, a quick diversion to discuss the relationship between threads, documents, and contexts. The ITfThreadMgr object...
Page 1 of 1 (22 items)