If you are trying to make an IME and your OS has not IME support then here is the way I worked out how to do it easily. I needed to be able to have Pinyin, Zhuyin and Romanji IME. See how to use the full tables I have inside the code and build your text from them. I also allow reverse lookup. This app removes all the mystery from this subject.
-
Updated
Jul 25, 2021 - C#