From fb965c28871bfc92aa4f4f39d87f2a6003dbb658 Mon Sep 17 00:00:00 2001 From: Robin Krom Date: Fri, 18 Feb 2022 23:18:26 +0100 Subject: [PATCH] Fixing an overflow exception. --- src/Greenshot.Base/Core/WindowDetails.cs | 4 +++- .../UnmanagedHelpers/Enums/WindowStyleFlags.cs | 2 +- src/Greenshot.Base/UnmanagedHelpers/User32.cs | 12 +++++------- 3 files changed, 9 insertions(+), 9 deletions(-) diff --git a/src/Greenshot.Base/Core/WindowDetails.cs b/src/Greenshot.Base/Core/WindowDetails.cs index 0063e3edb..905ab1099 100644 --- a/src/Greenshot.Base/Core/WindowDetails.cs +++ b/src/Greenshot.Base/Core/WindowDetails.cs @@ -782,7 +782,9 @@ namespace Greenshot.Base.Core /// public WindowStyleFlags WindowStyle { - get => (WindowStyleFlags) User32.GetWindowLongWrapper(Handle, (int) WindowLongIndex.GWL_STYLE); + get => unchecked( + (WindowStyleFlags)User32.GetWindowLongWrapper(Handle, (int)WindowLongIndex.GWL_STYLE).ToInt64() + ); set => User32.SetWindowLongWrapper(Handle, (int) WindowLongIndex.GWL_STYLE, new IntPtr((long) value)); } diff --git a/src/Greenshot.Base/UnmanagedHelpers/Enums/WindowStyleFlags.cs b/src/Greenshot.Base/UnmanagedHelpers/Enums/WindowStyleFlags.cs index 603e58196..3efca68e0 100644 --- a/src/Greenshot.Base/UnmanagedHelpers/Enums/WindowStyleFlags.cs +++ b/src/Greenshot.Base/UnmanagedHelpers/Enums/WindowStyleFlags.cs @@ -32,7 +32,7 @@ namespace Greenshot.Base.UnmanagedHelpers.Enums public enum WindowStyleFlags : int { //WS_OVERLAPPED = 0x00000000, - WS_POPUP = -2147483648, + WS_POPUP = -2147483648, // 0x80000000 WS_CHILD = 0x40000000, WS_MINIMIZE = 0x20000000, WS_VISIBLE = 0x10000000, diff --git a/src/Greenshot.Base/UnmanagedHelpers/User32.cs b/src/Greenshot.Base/UnmanagedHelpers/User32.cs index 9764c3a89..58e89a115 100644 --- a/src/Greenshot.Base/UnmanagedHelpers/User32.cs +++ b/src/Greenshot.Base/UnmanagedHelpers/User32.cs @@ -127,7 +127,7 @@ namespace Greenshot.Base.UnmanagedHelpers public static extern IntPtr SendMessage(IntPtr hWnd, uint wMsg, IntPtr wParam, IntPtr lParam); [DllImport("user32", SetLastError = true, EntryPoint = "GetWindowLong")] - public static extern int GetWindowLong(IntPtr hWnd, int index); + public static extern IntPtr GetWindowLong(IntPtr hWnd, int index); [DllImport("user32", SetLastError = true, EntryPoint = "GetWindowLongPtr")] public static extern IntPtr GetWindowLongPtr(IntPtr hWnd, int nIndex); @@ -276,16 +276,14 @@ namespace Greenshot.Base.UnmanagedHelpers /// /// /// - public static long GetWindowLongWrapper(IntPtr hWnd, int nIndex) + public static IntPtr GetWindowLongWrapper(IntPtr hWnd, int nIndex) { if (IntPtr.Size == 8) { - return GetWindowLongPtr(hWnd, nIndex).ToInt64(); - } - else - { - return GetWindowLong(hWnd, nIndex); + return GetWindowLongPtr(hWnd, nIndex); } + + return GetWindowLong(hWnd, nIndex); } ///