From 149f06f2f45ef539ad3ab8dba951565d247db3f0 Mon Sep 17 00:00:00 2001 From: "Steven R. Loomis" Date: Wed, 21 Jun 2023 09:51:28 -0500 Subject: [PATCH 1/2] fix(windows): testhost improve error message if dwError is 0, don't try to format it avoid "Error starting Keyman: The operation completed successfully. [0]" --- windows/src/engine/testhost/testhost.cpp | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/windows/src/engine/testhost/testhost.cpp b/windows/src/engine/testhost/testhost.cpp index 8942a14f71..75627ec01a 100644 --- a/windows/src/engine/testhost/testhost.cpp +++ b/windows/src/engine/testhost/testhost.cpp @@ -26,6 +26,7 @@ INT_PTR CALLBACK About(HWND, UINT, WPARAM, LPARAM); void SizeEditWindow(); void StartKeyman(); void StopKeyman(); +void Fail(PCWSTR message); int APIENTRY wWinMain(_In_ HINSTANCE hInstance, _In_opt_ HINSTANCE hPrevInstance, @@ -298,7 +299,9 @@ Fail(PCWSTR message) { std::vector err(bufferLength); std::wstring buf; DWORD dwError = GetLastError(); - if (FormatMessage(FORMAT_MESSAGE_FROM_SYSTEM, nullptr, dwError, 0, err.data(), bufferLength, nullptr) != 0) { + if (dwError == ERROR_SUCCESS) { + buf = std::wstring(message); // Don't append "The operation completed successfully." + } else if (FormatMessage(FORMAT_MESSAGE_FROM_SYSTEM, nullptr, dwError, 0, err.data(), bufferLength, nullptr) != 0) { std::wstring errb(err.data()); buf = std::wstring(message) + L":" + err.data() + L"[" + std::to_wstring(dwError) + L"]"; } else { From 28befb82ad00c95c8a0be8810b08125a31c0c622 Mon Sep 17 00:00:00 2001 From: "Steven R. Loomis" Date: Wed, 21 Jun 2023 19:19:17 -0500 Subject: [PATCH 2/2] Update windows/src/engine/testhost/testhost.cpp Co-authored-by: Marc Durdin --- windows/src/engine/testhost/testhost.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/windows/src/engine/testhost/testhost.cpp b/windows/src/engine/testhost/testhost.cpp index 75627ec01a..4369db42b0 100644 --- a/windows/src/engine/testhost/testhost.cpp +++ b/windows/src/engine/testhost/testhost.cpp @@ -300,7 +300,7 @@ Fail(PCWSTR message) { std::wstring buf; DWORD dwError = GetLastError(); if (dwError == ERROR_SUCCESS) { - buf = std::wstring(message); // Don't append "The operation completed successfully." + buf = std::wstring(message) + L": no error code was returned"; // Don't append "The operation completed successfully." } else if (FormatMessage(FORMAT_MESSAGE_FROM_SYSTEM, nullptr, dwError, 0, err.data(), bufferLength, nullptr) != 0) { std::wstring errb(err.data()); buf = std::wstring(message) + L":" + err.data() + L"[" + std::to_wstring(dwError) + L"]";