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); public static extern int GetSystemMetrics(SystemMetric smIndex);
[DllImport("user32.dll", SetLastError = true)] [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)] [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)] [DllImport("user32.dll", SetLastError = true)]
public static extern bool GetWindowPlacement(IntPtr hWnd, ref WINDOWPLACEMENT lpwndpl); 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 get
{ {
var style = UnmanagedMethods.GetWindowLong(_hwnd, -16); var style = UnmanagedMethods.GetWindowLongPtr(_hwnd, -16);
var exStyle = UnmanagedMethods.GetWindowLong(_hwnd, -20); var exStyle = UnmanagedMethods.GetWindowLongPtr(_hwnd, -20);
var padding = new UnmanagedMethods.RECT(); var padding = new UnmanagedMethods.RECT();
if (UnmanagedMethods.AdjustWindowRectEx(ref padding, style, false, exStyle)) if (UnmanagedMethods.AdjustWindowRectEx(ref padding, style, false, exStyle))
@ -219,7 +219,7 @@ namespace Avalonia.Win32
return; return;
} }
var style = (UnmanagedMethods.WindowStyles)UnmanagedMethods.GetWindowLong(_hwnd, -16); var style = (UnmanagedMethods.WindowStyles)UnmanagedMethods.GetWindowLongPtr(_hwnd, -16);
style |= UnmanagedMethods.WindowStyles.WS_OVERLAPPEDWINDOW; style |= UnmanagedMethods.WindowStyles.WS_OVERLAPPEDWINDOW;
@ -235,7 +235,7 @@ namespace Avalonia.Win32
Rect newRect; Rect newRect;
var oldThickness = BorderThickness; var oldThickness = BorderThickness;
UnmanagedMethods.SetWindowLong(_hwnd, -16, (uint)style); UnmanagedMethods.SetWindowLongPtr(_hwnd, -16, (uint)style);
if (value) if (value)
{ {

Loading…
Cancel
Save