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);
}
///