From 79f35161be956bdd7baa896d55effd8de05a268d Mon Sep 17 00:00:00 2001 From: Steven Kirk Date: Sun, 28 Jan 2018 19:13:33 +0100 Subject: [PATCH] Use correct CharSet for WNDCLASSEX And prepend `Avalonia-` to window class. Looking in Spy++ I noticed that our window class name was garbage because the `CharSet` on `WNDCLASSEX` was wrong. Fix that and include "Avalonia" in our window classes. --- src/Windows/Avalonia.Win32/Embedding/EmbeddedWindowImpl.cs | 1 - src/Windows/Avalonia.Win32/Interop/UnmanagedMethods.cs | 2 +- src/Windows/Avalonia.Win32/WindowImpl.cs | 2 +- 3 files changed, 2 insertions(+), 3 deletions(-) diff --git a/src/Windows/Avalonia.Win32/Embedding/EmbeddedWindowImpl.cs b/src/Windows/Avalonia.Win32/Embedding/EmbeddedWindowImpl.cs index 3871936605..cb9c753f4d 100644 --- a/src/Windows/Avalonia.Win32/Embedding/EmbeddedWindowImpl.cs +++ b/src/Windows/Avalonia.Win32/Embedding/EmbeddedWindowImpl.cs @@ -4,7 +4,6 @@ using System; using System.ComponentModel; using System.Runtime.InteropServices; -using System.Windows.Forms; using Avalonia.Platform; using Avalonia.Win32.Interop; diff --git a/src/Windows/Avalonia.Win32/Interop/UnmanagedMethods.cs b/src/Windows/Avalonia.Win32/Interop/UnmanagedMethods.cs index a0518cf92e..f13dd3272c 100644 --- a/src/Windows/Avalonia.Win32/Interop/UnmanagedMethods.cs +++ b/src/Windows/Avalonia.Win32/Interop/UnmanagedMethods.cs @@ -1098,7 +1098,7 @@ namespace Avalonia.Win32.Interop } } - [StructLayout(LayoutKind.Sequential)] + [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode)] public struct WNDCLASSEX { public int cbSize; diff --git a/src/Windows/Avalonia.Win32/WindowImpl.cs b/src/Windows/Avalonia.Win32/WindowImpl.cs index d9b5e25c63..3ba926b42a 100644 --- a/src/Windows/Avalonia.Win32/WindowImpl.cs +++ b/src/Windows/Avalonia.Win32/WindowImpl.cs @@ -641,7 +641,7 @@ namespace Avalonia.Win32 // Ensure that the delegate doesn't get garbage collected by storing it as a field. _wndProcDelegate = new UnmanagedMethods.WndProc(WndProc); - _className = Guid.NewGuid().ToString(); + _className = "Avalonia-" + Guid.NewGuid(); UnmanagedMethods.WNDCLASSEX wndClassEx = new UnmanagedMethods.WNDCLASSEX {