using System; using System.Runtime.InteropServices; namespace InABox.WPF { public sealed class SafeNativeMethods { [Flags] public enum SetWindowPosFlags : uint { SWP_NOACTIVATE = 0x0010, SWP_NOMOVE = 0x0002, SWP_NOSIZE = 0x0001 } public const int WS_EX_NOACTIVATE = 0x08000000; public const int ULW_ALPHA = 0x00000002; public const int AC_SRC_OVER = 0x00000000; public const int AC_SRC_ALPHA = 0x00000001; public static readonly IntPtr HWND_TOP = new(0); [DllImport("user32.dll", ExactSpelling = true, SetLastError = true)] public static extern bool UpdateLayeredWindow(IntPtr hwnd, IntPtr hdcDst, IntPtr pptDst, IntPtr psize, IntPtr hdcSrc, IntPtr pptSrc, uint crKey, [In] ref BLENDFUNCTION pblend, uint dwFlags); [DllImport("user32.dll", ExactSpelling = true, SetLastError = true)] [return: MarshalAs(UnmanagedType.Bool)] public static extern bool SetWindowPos(IntPtr hWnd, IntPtr hWndInsertAfter, int X, int Y, int cx, int cy, SetWindowPosFlags uFlags); public struct BLENDFUNCTION { public byte BlendOp; public byte BlendFlags; public byte SourceConstantAlpha; public byte AlphaFormat; } } }