Text Services: Function Providers

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 than when loaded.


How Obtained


Obtained by QI from ITfTextInputProcessor


Returned from ITfFunctionProvider::GetFunction

Text services that implement ITfFunctionProvider must register the interface with the TSF manager by QueryInterface'ing the ITfThreadMgr object for ITfSourceSingle, and then calling ITfSourceSingle::AdviseSingleSink().

Standard Functions

These interfaces are implemented by a text service, and are all optional.  These interfaces are returned from a call to ITfFunctionProvider::GetFunction, and all derive from ITfFunction.  Note that your text service can implement other functions via ITfFunctionProvider; these are just the predefined interfaces.


When should a text service implement this?


Implement this if your service has a help dialog.


Implement this if your service supports candidates (ITfCandidateList, et. al.)


Implement this if you want to serialize your custom properties.


Implement this if your text service has a configuration dialog.


Think about implementing this if your text service implements ITfLangBarItemBalloon.