Browse Source

Replaced Set/GetWindowLong with Set/GetWindowLongPtr for 64 bit support

pull/1144/head
Jurjen Biewenga 9 years ago
parent
commit
1d4aabb739
  1. 4
      src/Windows/Avalonia.Win32/Interop/UnmanagedMethods.cs
  2. 8
      src/Windows/Avalonia.Win32/WindowImpl.cs

4
src/Windows/Avalonia.Win32/Interop/UnmanagedMethods.cs

@ -699,10 +699,10 @@ namespace Avalonia.Win32.Interop
public static extern int GetSystemMetrics(SystemMetric smIndex);
[DllImport("user32.dll", SetLastError = true)]
public static extern uint GetWindowLong(IntPtr hWnd, int nIndex);
public static extern uint GetWindowLongPtr(IntPtr hWnd, int nIndex);
[DllImport("user32.dll", SetLastError = true)]
public static extern uint SetWindowLong(IntPtr hWnd, int nIndex, uint value);
public static extern uint SetWindowLongPtr(IntPtr hWnd, int nIndex, uint value);
[DllImport("user32.dll", SetLastError = true)]
public static extern bool GetWindowPlacement(IntPtr hWnd, ref WINDOWPLACEMENT lpwndpl);

8
src/Windows/Avalonia.Win32/WindowImpl.cs

@ -66,8 +66,8 @@ namespace Avalonia.Win32
{
get
{
var style = UnmanagedMethods.GetWindowLong(_hwnd, -16);
var exStyle = UnmanagedMethods.GetWindowLong(_hwnd, -20);
var style = UnmanagedMethods.GetWindowLongPtr(_hwnd, -16);
var exStyle = UnmanagedMethods.GetWindowLongPtr(_hwnd, -20);
var padding = new UnmanagedMethods.RECT();
if (UnmanagedMethods.AdjustWindowRectEx(ref padding, style, false, exStyle))
@ -219,7 +219,7 @@ namespace Avalonia.Win32
return;
}
var style = (UnmanagedMethods.WindowStyles)UnmanagedMethods.GetWindowLong(_hwnd, -16);
var style = (UnmanagedMethods.WindowStyles)UnmanagedMethods.GetWindowLongPtr(_hwnd, -16);
style |= UnmanagedMethods.WindowStyles.WS_OVERLAPPEDWINDOW;
@ -235,7 +235,7 @@ namespace Avalonia.Win32
Rect newRect;
var oldThickness = BorderThickness;
UnmanagedMethods.SetWindowLong(_hwnd, -16, (uint)style);
UnmanagedMethods.SetWindowLongPtr(_hwnd, -16, (uint)style);
if (value)
{

Loading…
Cancel
Save