question

BruceYou-3511 avatar image
BruceYou-3511 asked ·

Cannot change Windows 10 touch keyboard to Chinese phonetic layout

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-supported
10 |1000 characters needed characters left characters exceeded

Up to 10 attachments (including images) can be used with a maximum of 3.0 MiB each and 30.0 MiB total.

1 Answer

FayWang-MSFT avatar image
FayWang-MSFT answered ·

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.


Share
10 |1000 characters needed characters left characters exceeded

Up to 10 attachments (including images) can be used with a maximum of 3.0 MiB each and 30.0 MiB total.