From 9ffa46652d2843ac25f0ae7eb55a85492e6155a6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=8E=E9=80=9A=E6=B4=B2?= Date: Thu, 26 Mar 2026 23:08:28 +0800 Subject: [PATCH] Common (Windows): remove default language attempt when querying file version --- src/common/windows/version.c | 21 +++------------------ 1 file changed, 3 insertions(+), 18 deletions(-) diff --git a/src/common/windows/version.c b/src/common/windows/version.c index df7b47c34..df00e29a2 100644 --- a/src/common/windows/version.c +++ b/src/common/windows/version.c @@ -5,8 +5,6 @@ #include -#define FF_VERSION_LANG_EN_US L"040904b0" - bool ffGetFileVersion(const wchar_t* filePath, const wchar_t* stringName, FFstrbuf* version) { FF_DEBUG("ffGetFileVersion: enter filePath=%ls stringName=%ls", filePath, stringName); @@ -62,32 +60,19 @@ bool ffGetFileVersion(const wchar_t* filePath, const wchar_t* stringName, FFstrb return false; } - wchar_t* value; - UINT valueLen; // Number of characters, including null terminator - - wchar_t subBlock[128]; - snwprintf(subBlock, ARRAY_SIZE(subBlock), L"\\StringFileInfo\\" FF_VERSION_LANG_EN_US L"\\%ls", stringName); - FF_DEBUG("query version string with default lang (en_US): %ls", subBlock); - - if (VerQueryValueW(versionData, subBlock, (void**) &value, &valueLen) && valueLen > 0) - { - ffStrbufSetNWS(version, valueLen - 1, value); - FF_DEBUG("version string resolved (default lang): %s", version->chars); - return true; - } - - FF_DEBUG("default lang query failed, trying translation fallback"); - struct { WORD language; WORD codePage; }* translations; UINT translationsLen; if (VerQueryValueW(versionData, L"\\VarFileInfo\\Translation", (void**) &translations, &translationsLen) && translationsLen >= sizeof(*translations)) { + wchar_t subBlock[128]; snwprintf(subBlock, ARRAY_SIZE(subBlock), L"\\StringFileInfo\\%04x%04x\\%ls", translations[0].language, translations[0].codePage, stringName); FF_DEBUG("query version string with translation: %ls", subBlock); + wchar_t* value; + UINT valueLen; // Number of characters, including null terminator if (VerQueryValueW(versionData, subBlock, (void**) &value, &valueLen) && valueLen > 0) { ffStrbufSetNWS(version, valueLen - 1, value);