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 implement these interfaces. Your service will also need to implement ITfFnReconversion (so that applications can get these interfaces), and ITfFunctionProvider (so that applications can get the ITfFnReconversion interface).
Returned from ITfFnReconversion::GetReconversion
Returned from ITfCandidateList::GetCandidate
Returned from ITfCandidateList::EnumCandidates
There is a sample text service that implements candidates available on MSDN.