SetThreadUilanguage in Windows XP vs Vista +?

The docs forSetThreadUILanguage indicate that:

Windows XP: An application can only set this parameter to 0. This setting forces the function to choose the language that the console display best supports. See the Remarks Section for more information.

This is later (rather hidden in the middle of the paragraph):

(...) Windows XP does not support the concept of the user interface of the language stream separately from the locale thread. Therefore, this feature changes the locale of the stream in Windows XP. (...)

And it actually looks like what is happening, that is, a call SetThreadUILanguagein Windows XP seems to mean a call SetThreadLocale, while in Vista + it seems to lead to the same thing as a call SetThreadPreferredUILanguages(which generally not available for XP).

The documents are clear to me, so my main question is probably the following: I had to call SetThreadUILanguagein Windows XP to change the (preferred) langauge user interface, and this is correctly documented somewhere, and in Windows 7, I should generally call this feature, or should I call SetThreadPreferredUILanguages?

+5
source share
1 answer

, , , ? , Microsoft. :

1 SetThreadLocale . , . MSDN :

SetThreadLocale LANGUAGE . , CreateDialog, DialogBox, LoadMenu, LoadString FindResource. , CP_THREAD_ACP, FindResourceEx.

OK. . "":

Windows Vista : SetThreadLocale .

Microsoft:) , ?

2 SetThreadUILanguage Vista . XP , , , XP, API . (, Vista .)

3 SetThreadPreferredUILanguages Vista , XP. , , , : US-, , . , , , Microsoft- US-English. , API , . ( , , , , Microsoft.)

, , , XP. FindResourceEx ( CreateDialogIndirect), / GetOpenFileName CPropertySheet?

, , ?

+4

All Articles