/* Determine the user's language preferences.
- Copyright (C) 2004-2007, 2018-2023 Free Software Foundation, Inc.
+ Copyright (C) 2004-2007, 2018-2024 Free Software Foundation, Inc.
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as published by
static const char *
_nl_language_preferences_win32_mui (HMODULE kernel32)
{
- /* DWORD GetUserPreferredUILanguages (ULONG dwFlags,
- PULONG pulNumLanguages,
- PWSTR pwszLanguagesBuffer,
- PULONG pcchLanguagesBuffer); */
- typedef DWORD (WINAPI *GetUserPreferredUILanguages_func) (ULONG, PULONG, PWSTR, PULONG);
+ /* BOOL GetUserPreferredUILanguages (DWORD dwFlags,
+ PULONG pulNumLanguages,
+ PWSTR pwszLanguagesBuffer,
+ PULONG pcchLanguagesBuffer); */
+ typedef BOOL (WINAPI *GetUserPreferredUILanguages_func) (DWORD, PULONG, PWSTR, PULONG);
GetUserPreferredUILanguages_func p_GetUserPreferredUILanguages;
p_GetUserPreferredUILanguages =
{
ULONG num_languages;
ULONG bufsize;
- DWORD ret;
+ BOOL ret;
bufsize = 0;
ret = p_GetUserPreferredUILanguages (MUI_LANGUAGE_NAME,
&num_languages,
NULL, &bufsize);
- if (ret == 0
- && GetLastError () == STATUS_BUFFER_OVERFLOW
+ if ((ret || GetLastError () == STATUS_BUFFER_OVERFLOW)
&& bufsize > 0)
{
WCHAR *buffer = (WCHAR *) malloc (bufsize * sizeof (WCHAR));