From d8dda66eaf0f9f6d120105a6b14de2cbc087c105 Mon Sep 17 00:00:00 2001 From: rc-swag <58423624+rc-swag@users.noreply.github.com> Date: Tue, 30 Sep 2025 15:33:16 +1000 Subject: [PATCH 1/2] refactor(windows): rename keymanx64 proj keymanhp Fixes:#11905 --- .gitignore | 4 ++-- windows/src/.gitignore | 2 +- windows/src/engine/build.sh | 2 +- windows/src/engine/engine.sln | 2 +- .../src/engine/{keymanx64 => keymanhp}/build.sh | 6 +++--- .../keymanx64.cpp => keymanhp/keymanhp.cpp} | 8 ++++---- .../keymanx64.h => keymanhp/keymanhp.h} | 2 +- .../keymanx64.rc => keymanhp/keymanhp.rc} | 0 .../keymanx64.sln => keymanhp/keymanhp.sln} | 2 +- .../keymanhp.vcxproj} | 15 +++++++++++---- .../keymanhp.vcxproj.filters} | 6 +++--- .../engine/{keymanx64 => keymanhp}/manifest.in | 2 +- .../engine/{keymanx64 => keymanhp}/manifest.rc | 0 .../src/engine/{keymanx64 => keymanhp}/resource.h | 0 .../src/engine/{keymanx64 => keymanhp}/version.rc | 0 15 files changed, 29 insertions(+), 22 deletions(-) rename windows/src/engine/{keymanx64 => keymanhp}/build.sh (92%) mode change 100755 => 100644 rename windows/src/engine/{keymanx64/keymanx64.cpp => keymanhp/keymanhp.cpp} (98%) rename windows/src/engine/{keymanx64/keymanx64.h => keymanhp/keymanhp.h} (97%) rename windows/src/engine/{keymanx64/keymanx64.rc => keymanhp/keymanhp.rc} (100%) rename windows/src/engine/{keymanx64/keymanx64.sln => keymanhp/keymanhp.sln} (84%) rename windows/src/engine/{keymanx64/keymanx64.vcxproj => keymanhp/keymanhp.vcxproj} (94%) rename windows/src/engine/{keymanx64/keymanx64.vcxproj.filters => keymanhp/keymanhp.vcxproj.filters} (92%) rename windows/src/engine/{keymanx64 => keymanhp}/manifest.in (94%) rename windows/src/engine/{keymanx64 => keymanhp}/manifest.rc (100%) rename windows/src/engine/{keymanx64 => keymanhp}/resource.h (100%) rename windows/src/engine/{keymanx64 => keymanhp}/version.rc (100%) diff --git a/.gitignore b/.gitignore index 97c28ac83b..7b87219588 100644 --- a/.gitignore +++ b/.gitignore @@ -103,8 +103,8 @@ /windows/src/engine/keyman32/*.cod /windows/src/engine/keyman32/*.pdb -# /engine/keymanx64/ -/windows/src/engine/keymanx64/x64 +# /engine/keymanhp/ +/windows/src/engine/keymanhp/x64 # /engine/kmcomapi/ /windows/src/engine/kmcomapi/kmcomapi.tlb diff --git a/windows/src/.gitignore b/windows/src/.gitignore index 065f4a07f3..b48915630c 100644 --- a/windows/src/.gitignore +++ b/windows/src/.gitignore @@ -17,7 +17,7 @@ # These files are generated during build engine/keyman32/KEYMAN32.res engine/keyman32/Keyman64.res -engine/keymanx64/keymanx64.res +engine/keymanhp/keymanx64.res engine/mcompile/Release/ tds_file.txt global/delphi/cust/MessageIdentifierConsts.pas diff --git a/windows/src/engine/build.sh b/windows/src/engine/build.sh index 524ad91437..1a8125b543 100755 --- a/windows/src/engine/build.sh +++ b/windows/src/engine/build.sh @@ -19,7 +19,7 @@ builder_describe \ ":keyman Main host process (32 bit)" \ ":keyman32 Keystroke processing engine (all archs)" \ ":keymanmc Message library" \ - ":keymanx64 Host process (64 bit)" \ + ":keymanhp Host process (64 bit)" \ ":kmcomapi COM API library" \ ":kmrefresh Helper app to refresh Windows language settings" \ ":kmtip Text Services Framework Text Input Processor" \ diff --git a/windows/src/engine/engine.sln b/windows/src/engine/engine.sln index f45c0bcacc..37038b17f1 100644 --- a/windows/src/engine/engine.sln +++ b/windows/src/engine/engine.sln @@ -5,7 +5,7 @@ VisualStudioVersion = 16.0.31313.79 MinimumVisualStudioVersion = 10.0.40219.1 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "keyman32", "keyman32\Keyman32.vcxproj", "{BD5564FB-35A5-4A3C-B96A-4A6578E2B593}" EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "keymanx64", "keymanx64\keymanx64.vcxproj", "{A34650EA-D6E8-4229-8091-6BF1443565B5}" +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "keymanhp", "keymanhp\keymanhp.vcxproj", "{A34650EA-D6E8-4229-8091-6BF1443565B5}" EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "kmtip", "kmtip\kmtip.vcxproj", "{93391ECB-E2F1-4D23-B85E-6FDEB7ACF9B4}" EndProject diff --git a/windows/src/engine/keymanx64/build.sh b/windows/src/engine/keymanhp/build.sh old mode 100755 new mode 100644 similarity index 92% rename from windows/src/engine/keymanx64/build.sh rename to windows/src/engine/keymanhp/build.sh index b893b07b26..60846fe4e6 --- a/windows/src/engine/keymanx64/build.sh +++ b/windows/src/engine/keymanhp/build.sh @@ -18,12 +18,12 @@ X64_TARGET="$X64_TARGET_PATH/keymanx64.exe" builder_describe_outputs \ configure:project /resources/build/win/delphi_environment_generated.inc.sh \ - build:project /windows/src/engine/keymanx64/$X64_TARGET + build:project /windows/src/engine/keymanhp/$X64_TARGET #------------------------------------------------------------------------------------------------------------------- function do_clean() { - vs_msbuild keymanx64.vcxproj //t:Clean + vs_msbuild keymanhp.vcxproj //t:Clean clean_windows_project_files } @@ -31,7 +31,7 @@ function do_build() { create-windows-output-folders build_version.res build_manifest.res - vs_msbuild keymanx64.vcxproj //t:Build "//p:Platform=x64" + vs_msbuild keymanhp.vcxproj //t:Build "//p:Platform=x64" cp "$X64_TARGET" "$WINDOWS_PROGRAM_ENGINE" builder_if_release_build_level cp "$X64_TARGET_PATH/keymanx64.pdb" "$WINDOWS_DEBUGPATH_ENGINE" } diff --git a/windows/src/engine/keymanx64/keymanx64.cpp b/windows/src/engine/keymanhp/keymanhp.cpp similarity index 98% rename from windows/src/engine/keymanx64/keymanx64.cpp rename to windows/src/engine/keymanhp/keymanhp.cpp index 2a551d3803..48217190e7 100644 --- a/windows/src/engine/keymanx64/keymanx64.cpp +++ b/windows/src/engine/keymanhp/keymanhp.cpp @@ -1,5 +1,5 @@ /* - Name: keymanx64 + Name: keymanhp Copyright: Copyright (C) SIL International. Documentation: Description: @@ -21,7 +21,7 @@ 17 Jan 2013 - mcdurdin - I3758 - V9.0 - keymanx64 can find incorrect window handle for keyman.exe 25 Oct 2016 - mcdurdin - I5136 - Remove additional product references from Keyman Engine */ -#include "keymanx64.h" // I5136 +#include "keymanhp.h" // I5136 #include "../../../../common/windows/cpp/include/keymansentry.h" // Forward declarations of functions included in this code module @@ -64,8 +64,8 @@ BOOL KeymanStarted = FALSE; // Global strings const PWSTR - szWindowClass = L"Keymanx64", // Do not localize - szWindowTitle = L"Keymanx64", // Do not localize + szWindowClass = L"Keymanhp", // Do not localize + szWindowTitle = L"Keymanhp", // Do not localize szTitle = L"Keyman Engine x64", szError_Keymanx86NotFound = L"Keyman Engine x86 is not running. Do not run keymanx64.exe -- it must be started by Keyman Engine x86", diff --git a/windows/src/engine/keymanx64/keymanx64.h b/windows/src/engine/keymanhp/keymanhp.h similarity index 97% rename from windows/src/engine/keymanx64/keymanx64.h rename to windows/src/engine/keymanhp/keymanhp.h index fcfb81faaf..28a1f391d5 100644 --- a/windows/src/engine/keymanx64/keymanx64.h +++ b/windows/src/engine/keymanhp/keymanhp.h @@ -1,5 +1,5 @@ /* - Name: keymanx64 + Name: keymanhp Copyright: Copyright (C) SIL International. Documentation: Description: diff --git a/windows/src/engine/keymanx64/keymanx64.rc b/windows/src/engine/keymanhp/keymanhp.rc similarity index 100% rename from windows/src/engine/keymanx64/keymanx64.rc rename to windows/src/engine/keymanhp/keymanhp.rc diff --git a/windows/src/engine/keymanx64/keymanx64.sln b/windows/src/engine/keymanhp/keymanhp.sln similarity index 84% rename from windows/src/engine/keymanx64/keymanx64.sln rename to windows/src/engine/keymanhp/keymanhp.sln index 053e713d7f..8cc3fdc129 100644 --- a/windows/src/engine/keymanx64/keymanx64.sln +++ b/windows/src/engine/keymanhp/keymanhp.sln @@ -1,7 +1,7 @@  Microsoft Visual Studio Solution File, Format Version 11.00 # Visual Studio 2010 -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "keymanx64", "keymanx64.vcxproj", "{A34650EA-D6E8-4229-8091-6BF1443565B5}" +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "keymanhp", "keymanhp.vcxproj", "{A34650EA-D6E8-4229-8091-6BF1443565B5}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution diff --git a/windows/src/engine/keymanx64/keymanx64.vcxproj b/windows/src/engine/keymanhp/keymanhp.vcxproj similarity index 94% rename from windows/src/engine/keymanx64/keymanx64.vcxproj rename to windows/src/engine/keymanhp/keymanhp.vcxproj index 82b3bcb59f..5cda7ead85 100644 --- a/windows/src/engine/keymanx64/keymanx64.vcxproj +++ b/windows/src/engine/keymanhp/keymanhp.vcxproj @@ -12,9 +12,10 @@ {A34650EA-D6E8-4229-8091-6BF1443565B5} - keymanx64 + keymanhp Win32Proj 10.0 + keymanhp @@ -57,6 +58,12 @@ *.cdf;*.cache;*.obj;*.ilk;*.resources;*.tlb;*.tli;*.tlh;*.tmp;*.rsp;*.pgc;*.pgd;*.meta;*.tlog;*.manifest;*.res;*.pch;*.exp;*.idb;*.rep;*.xdc;*.pdb;*_manifest.rc;*.bsc;*.sbr;*.metagen;*.bi *.cdf;*.cache;*.obj;*.ilk;*.resources;*.tlb;*.tli;*.tlh;*.tmp;*.rsp;*.pgc;*.pgd;*.meta;*.tlog;*.manifest;*.res;*.pch;*.exp;*.idb;*.rep;*.xdc;*.pdb;*_manifest.rc;*.bsc;*.sbr;*.metagen;*.bi + + keymanx64 + + + keymanx64 + X64 @@ -137,15 +144,15 @@ - + - + - + diff --git a/windows/src/engine/keymanx64/keymanx64.vcxproj.filters b/windows/src/engine/keymanhp/keymanhp.vcxproj.filters similarity index 92% rename from windows/src/engine/keymanx64/keymanx64.vcxproj.filters rename to windows/src/engine/keymanhp/keymanhp.vcxproj.filters index dfdca2da64..116cf084a4 100644 --- a/windows/src/engine/keymanx64/keymanx64.vcxproj.filters +++ b/windows/src/engine/keymanhp/keymanhp.vcxproj.filters @@ -15,7 +15,7 @@ - + Source Files @@ -23,7 +23,7 @@ - + Header Files @@ -34,7 +34,7 @@ - + Resource Files diff --git a/windows/src/engine/keymanx64/manifest.in b/windows/src/engine/keymanhp/manifest.in similarity index 94% rename from windows/src/engine/keymanx64/manifest.in rename to windows/src/engine/keymanhp/manifest.in index 6b3306a54c..6b58d64c7d 100644 --- a/windows/src/engine/keymanx64/manifest.in +++ b/windows/src/engine/keymanhp/manifest.in @@ -1,6 +1,6 @@ - + Keyman Engine x64 diff --git a/windows/src/engine/keymanx64/manifest.rc b/windows/src/engine/keymanhp/manifest.rc similarity index 100% rename from windows/src/engine/keymanx64/manifest.rc rename to windows/src/engine/keymanhp/manifest.rc diff --git a/windows/src/engine/keymanx64/resource.h b/windows/src/engine/keymanhp/resource.h similarity index 100% rename from windows/src/engine/keymanx64/resource.h rename to windows/src/engine/keymanhp/resource.h diff --git a/windows/src/engine/keymanx64/version.rc b/windows/src/engine/keymanhp/version.rc similarity index 100% rename from windows/src/engine/keymanx64/version.rc rename to windows/src/engine/keymanhp/version.rc From ecec5e49f4b4c55a8596de4946759fea01785c66 Mon Sep 17 00:00:00 2001 From: rc-swag <58423624+rc-swag@users.noreply.github.com> Date: Wed, 15 Oct 2025 10:58:42 +1000 Subject: [PATCH 2/2] refactor(windows): address review comments --- windows/src/engine/keymanhp/build.sh | 0 windows/src/engine/keymanhp/keymanhp.cpp | 21 ++++++++++++++------- 2 files changed, 14 insertions(+), 7 deletions(-) mode change 100644 => 100755 windows/src/engine/keymanhp/build.sh diff --git a/windows/src/engine/keymanhp/build.sh b/windows/src/engine/keymanhp/build.sh old mode 100644 new mode 100755 diff --git a/windows/src/engine/keymanhp/keymanhp.cpp b/windows/src/engine/keymanhp/keymanhp.cpp index 48217190e7..38fe36595a 100644 --- a/windows/src/engine/keymanhp/keymanhp.cpp +++ b/windows/src/engine/keymanhp/keymanhp.cpp @@ -62,25 +62,32 @@ HANDLE hWatcherThreadTerminateEvent = NULL; BOOL KeymanStarted = FALSE; // Global strings +#if defined(_M_X64) + #define WINDOW_TITLE L"Keymanhp-x64" +#elif defined(_M_ARM64) + #define WINDOW_TITLE L"Keymanhp-arm64" +#else + #error Unknown architecture +#endif const PWSTR - szWindowClass = L"Keymanhp", // Do not localize - szWindowTitle = L"Keymanhp", // Do not localize + szWindowClass = WINDOW_TITLE, // Do not localize + szWindowTitle = WINDOW_TITLE, // Do not localize szTitle = L"Keyman Engine x64", - szError_Keymanx86NotFound = L"Keyman Engine x86 is not running. Do not run keymanx64.exe -- it must be started by Keyman Engine x86", - szError_Keymanx86NotFound_Comms = L"Keyman Engine x86 has closed unexpectedly. Closing down Keyman Engine x64", + szError_Keymanx86NotFound = L"Keyman Engine x86 is not running. Do not run keymanhp.*.exe -- it must be started by Keyman Engine x86", + szError_Keymanx86NotFound_Comms = L"Keyman Engine x86 has closed unexpectedly. Closing down Keyman Engine hp64", szError_FailedToRegisterController = L"Failed to register controller window", - szError_FailedToInitialise = L"Failed to initialise Keyman Engine x64", + szError_FailedToInitialise = L"Failed to initialise Keyman Engine hp", szError_FailedToFindParentProcess = L"Unable to open parent process; it may have disappeared", szError_ChangeWindowMessageFilter = L"Failed to prepare message filters", - szError_CannotRunMultipleInstances = L"Only one instance of Keyman Engine x64 can run at a time", + szError_CannotRunMultipleInstances = L"Only one instance of Keyman Engine hp can run at a time", szError_FailedToRegister = L"Failed to register window class", szError_FailedToInitInstance = L"Failed to initialise application", - szError_InvalidCommandline = L"Incorrect command line for Keyman Engine x64; should be passed handle of Keyman Engine x86", + szError_InvalidCommandline = L"Incorrect command line for Keyman Engine hp; should be passed handle of Keyman Engine x86", szError_WatcherThreadFailed = L"Failed to create watcher thread", szFail_UnknownError = L"Unknown error %d",