GetSystemDefaultUILanguage は、OS が最初にインストールされた言語を返すようです。少なくとも 2K8 R2 (およびおそらくその他のポスト Vista OS) では、ユーザーは起動メッセージに使用される言語を変更できますが、残念ながらこれは GetSystemDefaultUILanguage には反映されません。
ただし、レジストリを介して検索することはできます。次の値には、言語のテキストによる説明 (en-US など) が格納されます。
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\MUI\Settings\PreferredUILanguages
この値は、複数の言語がインストールされているマシンでのみ設定されるようです (おそらく、ユーザーがウェルカム スクリーンの言語を変更した場合のみ)。
したがって、現在のウェルカム スクリーンの言語を取得するには、フローは次のようになります。
- PreferredUILanguages を読み取ろうとする
- 見つかった場合は、言語 ID に解析します
- それ以外の場合は、GetSystemDefaultUILanguage を呼び出します
- 返された言語 ID を指定して、適切な言語リソースを読み込みます
起動時に別の言語で表示しようとしていないのであれば、これはそれほど苦痛ではありません! 通常は、GetUserDefaultUILanguage を使用できます。