Akihiro Sagawa : winetest: Add SystemPreferredUILanguages to the log.
Alexandre Julliard
julliard at wine.codeweavers.com
Thu Jun 25 08:19:40 CDT 2015
Module: wine
Branch: master
Commit: c908c9c7c9e0da51a2b35915965e5a1d519497dd
URL: http://source.winehq.org/git/wine.git/?a=commit;h=c908c9c7c9e0da51a2b35915965e5a1d519497dd
Author: Akihiro Sagawa <sagawa.aki at gmail.com>
Date: Thu Jun 25 00:42:07 2015 +0900
winetest: Add SystemPreferredUILanguages to the log.
A few GDI functions are affected by System account's display
language (by GetSystemPreferredUILanguages).
---
programs/winetest/main.c | 25 ++++++++++++++++++++-----
1 file changed, 20 insertions(+), 5 deletions(-)
diff --git a/programs/winetest/main.c b/programs/winetest/main.c
index 0149377..1eb49b6 100644
--- a/programs/winetest/main.c
+++ b/programs/winetest/main.c
@@ -445,20 +445,35 @@ static void print_version (void)
static void print_language(void)
{
HMODULE hkernel32;
+ BOOL (WINAPI *pGetSystemPreferredUILanguages)(DWORD, PULONG, PZZWSTR, PULONG);
LANGID (WINAPI *pGetUserDefaultUILanguage)(void);
LANGID (WINAPI *pGetThreadUILanguage)(void);
- xprintf (" SystemDefaultLCID=%x\n", GetSystemDefaultLCID());
- xprintf (" UserDefaultLCID=%x\n", GetUserDefaultLCID());
- xprintf (" ThreadLocale=%x\n", GetThreadLocale());
+ xprintf (" SystemDefaultLCID=%04x\n", GetSystemDefaultLCID());
+ xprintf (" UserDefaultLCID=%04x\n", GetUserDefaultLCID());
+ xprintf (" ThreadLocale=%04x\n", GetThreadLocale());
hkernel32 = GetModuleHandleA("kernel32.dll");
+ pGetSystemPreferredUILanguages = (void*)GetProcAddress(hkernel32, "GetSystemPreferredUILanguages");
pGetUserDefaultUILanguage = (void*)GetProcAddress(hkernel32, "GetUserDefaultUILanguage");
pGetThreadUILanguage = (void*)GetProcAddress(hkernel32, "GetThreadUILanguage");
+
+ if (pGetSystemPreferredUILanguages && !running_under_wine())
+ {
+ WCHAR langW[32];
+ ULONG num, size = sizeof(langW)/sizeof(langW[0]);
+ if (pGetSystemPreferredUILanguages(MUI_LANGUAGE_ID, &num, langW, &size))
+ {
+ char lang[32], *p = lang;
+ WideCharToMultiByte(CP_ACP, 0, langW, size, lang, sizeof(lang), NULL, NULL);
+ for (p += strlen(p) + 1; *p != '\0'; p += strlen(p) + 1) *(p - 1) = ',';
+ xprintf (" SystemPreferredUILanguages=%s\n", lang);
+ }
+ }
if (pGetUserDefaultUILanguage)
- xprintf (" UserDefaultUILanguage=%x\n", pGetUserDefaultUILanguage());
+ xprintf (" UserDefaultUILanguage=%04x\n", pGetUserDefaultUILanguage());
if (pGetThreadUILanguage)
- xprintf (" ThreadUILanguage=%x\n", pGetThreadUILanguage());
+ xprintf (" ThreadUILanguage=%04x\n", pGetThreadUILanguage());
}
static inline BOOL is_dot_dir(const char* x)
More information about the wine-cvs
mailing list