Cannot change Windows 10 touch keyboard to Chinese phonetic layout

Bruce You 1 Reputation point
2020-03-18T14:50:45.943+00:00

I'm author of a Traditional Chinese Input Method.

My IME works very well before Windows 10 Version 1703, but the screen keyboard always shows English layout instead of Chinese Phonetic (Bopomofo) layout after Windows 10 Version 1709.

The steps to reproduce this problem:

  • Download SampleIME project from link: SampleIME, open it in Visual Studio Community 2015.
  • Open Define.h, modify this:

#define TEXTSERVICE_LANGID MAKELANGID(LANG_CHINESE, SUBLANG_CHINESE_SIMPLIFIED)

to

#define TEXTSERVICE_LANGID MAKELANGID(LANG_CHINESE, SUBLANG_CHINESE_TRADITIONAL)

  • Open SampleIME.cpp, modify this:

*pwPreferredLayoutId = TKBL_OPT_SIMPLIFIED_CHINESE_PINYIN;

to

*pwPreferredLayoutId = TKBL_OPT_TRADITIONAL_CHINESE_PHONETIC;

  • Build this project.
  • Register COM by: regsvr32.exe Debug/SampleIME.dll
  • Run Notepad.exe, switch keyboard to "Sample IME", and click to show up the touch/screen keyboard.

Then it is only able to show English keyboard, but not Chinese Phonetic keyboard.

After doing some traces and debugs, it seems that system didn't use ITfFunctionProvider::GetFunction to query IID_ITfFnGetPreferredTouchKeyboardLayout and then have a chance to call its GetLayout method to change the touch-screen keyboard layout.

Thanks for your help in advance.

Not Monitored
Not Monitored
Tag not monitored by Microsoft.
35,954 questions
0 comments No comments
{count} votes

1 answer

Sort by: Most helpful
  1. Fay Wang - MSFT 5,191 Reputation points
    2020-03-19T02:16:10.48+00:00

    Hello,​

    Welcome to our Microsoft Q&A platform!

    The Q&A platform is currently in preview, and your question is not currently supported. Your question is more about C++, so you can go to C++ forum to ask it.

    Thanks.

    0 comments No comments