private static void RegisterClassOnce()
        {
            if (!_classRegistered)
            {
                ExtendedWindowClass wc = new ExtendedWindowClass();
                wc.Size      = ExtendedWindowClass.SizeInBytes;
                wc.Style     = DefaultClassStyle;
                wc.Instance  = Instance;
                wc.WndProc   = WindowProcedure;
                wc.ClassName = ClassName;
                wc.Icon      = IntPtr.Zero;
                wc.IconSm    = IntPtr.Zero;
                wc.Cursor    = LoadCursor(IntPtr.Zero, (IntPtr)CursorName.Arrow);
                ushort atom = RegisterClassEx(ref wc);

                if (atom == 0)
                {
                    throw new Exception($"Failed to register window class. Error: {Marshal.GetLastWin32Error()}");
                }

                _classRegistered = true;
            }
        }
 internal static extern ushort RegisterClassEx(ref ExtendedWindowClass windowClass);