From 06414ac85a3839470eda9eb90d5f091d4cf7fd9d Mon Sep 17 00:00:00 2001 From: Timo Kreuzer Date: Thu, 8 May 2025 16:40:56 +0300 Subject: [PATCH] [KERNEL32_VISTA] Implement IsValidLocaleName --- .../kernel32/kernel32_vista/CMakeLists.txt | 1 + .../kernel32_vista/IsValidLocaleName.c | 21 +++++++++++++++++++ .../kernel32_vista/kernel32_vista.spec | 1 + dll/win32/kernel32/winnls/string/locale.c | 2 ++ 4 files changed, 25 insertions(+) create mode 100644 dll/win32/kernel32/kernel32_vista/IsValidLocaleName.c diff --git a/dll/win32/kernel32/kernel32_vista/CMakeLists.txt b/dll/win32/kernel32/kernel32_vista/CMakeLists.txt index e1d274e32b9..977121a2455 100644 --- a/dll/win32/kernel32/kernel32_vista/CMakeLists.txt +++ b/dll/win32/kernel32/kernel32_vista/CMakeLists.txt @@ -14,6 +14,7 @@ list(APPEND SOURCE GetTickCount64.c GetUserDefaultLocaleName.c InitOnce.c + IsValidLocaleName.c LCIDToLocaleName.c LocaleNameToLCID.c sync.c diff --git a/dll/win32/kernel32/kernel32_vista/IsValidLocaleName.c b/dll/win32/kernel32/kernel32_vista/IsValidLocaleName.c new file mode 100644 index 00000000000..f514e4741a8 --- /dev/null +++ b/dll/win32/kernel32/kernel32_vista/IsValidLocaleName.c @@ -0,0 +1,21 @@ +/* + * PROJECT: ReactOS Win32 Base API + * LICENSE: MIT (https://spdx.org/licenses/MIT) + * PURPOSE: Implementation of IsValidLocaleName + * COPYRIGHT: Copyright 2025 Timo Kreuzer + */ + +#include "k32_vista.h" +#include + +#define NDEBUG +#include + +BOOL +WINAPI +IsValidLocaleName( + LPCWSTR lpLocaleName) +{ + LCID lcid = LocaleNameToLCID(lpLocaleName, LOCALE_ALLOW_NEUTRAL_NAMES); + return lcid != 0; +} diff --git a/dll/win32/kernel32/kernel32_vista/kernel32_vista.spec b/dll/win32/kernel32/kernel32_vista/kernel32_vista.spec index 7a51780ea88..16744a8f521 100644 --- a/dll/win32/kernel32/kernel32_vista/kernel32_vista.spec +++ b/dll/win32/kernel32/kernel32_vista/kernel32_vista.spec @@ -46,6 +46,7 @@ @ stdcall GetUILanguageInfo(long wstr wstr ptr ptr) @ stdcall GetUserDefaultLocaleName(wstr long) @ stdcall GetUserPreferredUILanguages(long ptr wstr ptr) +@ stdcall IsValidLocaleName(wstr) @ stdcall LCIDToLocaleName(long wstr long long) @ stdcall LocaleNameToLCID(wstr long) @ stdcall OpenFileById(ptr ptr long long ptr long) diff --git a/dll/win32/kernel32/winnls/string/locale.c b/dll/win32/kernel32/winnls/string/locale.c index 71ab36b9b24..416a27df1db 100644 --- a/dll/win32/kernel32/winnls/string/locale.c +++ b/dll/win32/kernel32/winnls/string/locale.c @@ -1851,6 +1851,7 @@ INT WINAPI GetLocaleInfoEx(LPCWSTR locale, LCTYPE info, LPWSTR buffer, INT len) } #endif +#if 0 // See kernel32_vista BOOL WINAPI IsValidLocaleName( @@ -1861,6 +1862,7 @@ IsValidLocaleName( return TRUE; } #endif +#endif /****************************************************************************** * SetLocaleInfoA [KERNEL32.@]