A Tour through TSF: Enumerators

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 is returned from ITfDocumentMgr.  Therefore, it enumerates the contexts owned by that document manager, and not by any other document manager.  Similarly, IEnumTfFunctionProviders is returned from ITfThreadMgr.  Therefore, it enumerates the function providers registered with that thread, and not any others.

The only interesting thing about these interfaces is how you get them.

Interface

How to Obtain

IEnumITfCompositionView

ITfContextComposition::FindComposition

IEnumTfContexts

ITfDocumentMgr::EnumContexts

IEnumTfDocumentMgrs

ITfThreadMgr::EnumDocumentMgrs 

IEnumTfFunctionProviders

ITfThreadMgr::EnumFunctionProviders

IEnumTfLangBarItems

ITfLangBarItemMgr::EnumItems

IEnumTfLanguageProfiles

ITfInputProcessorProfiles::EnumLanguageProfiles

IEnumTfProperties

ITfContext::EnumProperties

IEnumTfPropertyValue

ITfContext::TrackProperties

IEnumTfRanges

ITfReadOnlyProperty::EnumRanges

(and therefore, ITfProperty::EnumRanges)

ITfEditRecord::GetTextAndPropertyChanges

IEnumTfUIElements

ITfUIElementMgr::EnumUIElements