static void SetGUILanguage(LANGID langId) { HKEY regkey; if (RegCreateKeyEx(HKEY_CURRENT_USER, GUI_REGKEY_HKCU, 0, NULL, 0, KEY_WRITE, NULL, ®key, NULL) != ERROR_SUCCESS ) ShowLocalizedMsg(IDS_ERR_CREATE_REG_HKCU_KEY, GUI_REGKEY_HKCU); SetRegistryValueNumeric(regkey, _T("ui_language"), langId); InitMUILanguage(langId); gui_language = langId; }
static LANGID GetGUILanguage(void) { if (gui_language != 0) return gui_language; HKEY regkey; DWORD value = 0; LONG status = RegOpenKeyEx(HKEY_CURRENT_USER, GUI_REGKEY_HKCU, 0, KEY_READ, ®key); if (status == ERROR_SUCCESS) GetRegistryValueNumeric(regkey, _T("ui_language"), &value); gui_language = ( value != 0 ? value : GetUserDefaultUILanguage() ); InitMUILanguage(gui_language); return gui_language; }
int APIENTRY wWinMain(_In_ HINSTANCE hInstance, _In_opt_ HINSTANCE hPrevInstance, _In_ LPWSTR lpCmdLine, _In_ int nCmdShow) { UNREFERENCED_PARAMETER(hPrevInstance); UNREFERENCED_PARAMETER(lpCmdLine); wcscpy_s(g_exePath, _wpgmptr); auto c = wcsrchr(g_exePath, L'\\'); if (c) c[1] = L'\0'; LoadSettings(); SetThreadLocale(MAKELCID(languages[g_browserSettings.language], SORT_DEFAULT)); SetThreadUILanguage(languages[g_browserSettings.language]); InitMUILanguage(languages[g_browserSettings.language]); WSADATA wsaData; if (WSAStartup(MAKEWORD(2, 2), &wsaData) != NOERROR) return FALSE; if (curl_global_init(CURL_GLOBAL_DEFAULT) != CURLE_OK) return FALSE; MyRegisterClass(hInstance); if (!InitInstance(hInstance, nCmdShow)) return FALSE; MSG msg; while (GetMessage(&msg, nullptr, 0, 0)) { TranslateMessage(&msg); DispatchMessage(&msg); } curl_global_cleanup(); WSACleanup(); return (int)msg.wParam; }