ime探検(2)タスクトレイ

タスクトレイの表示

windows2000
キーボード ステータスアイコン 選択表示
英語キーボード EN (アイコンあり)English(United States)
MS-IME MS-IMEのアイコン (アイコンあり)Microsoft IME 2000(Japanese)
MZ-IME MZ-IMEのアイコン (アイコンあり)MZ-IME日本語入力 0.0
ReactOS
キーボード ステータスアイコン 選択表示
英語キーボード EN (アイコンなし)米国
日本語キーボード JA (アイコンなし)日本語
MZ-IME ?? (アイコンなし)mz-ime

英語キーボードや日本語キーボードが違うのはわかるとして、MZ-IMEの表示が全然違うのが気になる。
タスクトレイの表示は、kbswitch.exeが担当。

kbswitch.cのCreateTrayIcon(LPTSTR szLCID)では、

lId = (LANGID)_tcstoul(szLCID, NULL, 16);
if (GetLocaleInfo(lId,
                       LOCALE_SISO639LANGNAME,
                       szBuf,
                       ARRAYSIZE(szBuf)) == 0)
     {
         StringCchCopy(szBuf, ARRAYSIZE(szBuf), _T("??"));
     }

となっていて、LCIDがISO639LANGUAGENAMEで取得できなければ、"??"としてアイコンを作ることになっている。
これを、imeからアイコンを取得できるように修正すればいいのかな。