summaryrefslogtreecommitdiff
path: root/embedserv/source/embed
diff options
context:
space:
mode:
authorJan-Marek Glogowski <glogow@fbihome.de>2021-01-28 08:43:12 +0100
committerJan-Marek Glogowski <glogow@fbihome.de>2021-01-28 17:08:47 +0100
commitd249bd5a3dfe13052ce9aa91bad94ec7d60604d4 (patch)
treebac7543b6d1f7c85ae449c10d2d6f7ab78ea9180 /embedserv/source/embed
parent33656a6c7500d0f799b0e4ed97bda0a9e58a7010 (diff)
WIN handle GetMessageW return values
GetMessageW returns a BOOL with three defined return values; a bit unexpected (-1 = error, 0 = WM_QUIT, * = dispatch message). So this tries to handle the non-dispatch results in some way. It's not clear for me, if there is some sensible way to "recover" from an error, but from all I've read it doesn't look like it. "Recover" means in this case, that the last call failed but next call may still succeed without changing the parameters. Change-Id: Ib1f366c7ce8b48158d1935938b49d8da991b30e1 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/110043 Tested-by: Jenkins Reviewed-by: Jan-Marek Glogowski <glogow@fbihome.de>
Diffstat (limited to 'embedserv/source/embed')
-rw-r--r--embedserv/source/embed/tracker.cxx12
1 files changed, 11 insertions, 1 deletions
diff --git a/embedserv/source/embed/tracker.cxx b/embedserv/source/embed/tracker.cxx
index 00260481c0a8..dbe114660f61 100644
--- a/embedserv/source/embed/tracker.cxx
+++ b/embedserv/source/embed/tracker.cxx
@@ -22,11 +22,18 @@
#include <algorithm>
#include <sal/types.h>
+#include <sal/log.hxx>
#include <stdafx.h>
#include <stddef.h>
#include <syswinwrapper.hxx>
+// windowserrorstring.hxx includes postwin.h, which #undef OPAQUE, so "#redef" it
+#include <comphelper/windowserrorstring.hxx>
+#ifdef OPAQUE
+#error OPAQUE should not be defined!?
+#endif
+#define OPAQUE 2
static HCURSOR afxCursors[10] = { nullptr, };
static HBRUSH afxHalftoneBrush = nullptr;
@@ -398,7 +405,10 @@ BOOL Tracker::TrackHandle(int nHandle,HWND hWnd,POINT point,HWND hWndClipTo)
for (;;)
{
MSG msg;
- GetMessageW(&msg, nullptr, 0, 0);
+ BOOL bRet = GetMessageW(&msg, nullptr, 0, 0);
+ SAL_WARN_IF(-1 == bRet, "embedserv", "GetMessageW failed: " << WindowsErrorString(GetLastError()));
+ if (-1 == bRet || 0 == bRet)
+ break;
if (GetCapture() != hWnd)
break;