public unsafe void SetIcon(IWindowIconImpl?icon) { if (icon is null) { _native.SetIcon(null, IntPtr.Zero); } else { using (var ms = new MemoryStream()) { icon.Save(ms); var imageData = ms.ToArray(); fixed(void *ptr = imageData) { _native.SetIcon(ptr, new IntPtr(imageData.Length)); } } } }