ComponentFactory.Krypton.Toolkit.BlurWindowExtensions.SetAccentPolicy C# (CSharp) Method

SetAccentPolicy() private static method

private static SetAccentPolicy ( Form window, Interop accentState ) : void
window System.Windows.Forms.Form
accentState Interop
return void
        private static void SetAccentPolicy(Form window, Interop.AccentState accentState)
        {
            // var windowHelper = new WindowInteropHelper(window);

            var accent = new Interop.AccentPolicy();
            accent.AccentState = accentState;
            accent.AccentFlags = GetAccentFlagsForTaskbarPosition();

            var accentStructSize = Marshal.SizeOf(accent);

            var accentPtr = Marshal.AllocHGlobal(accentStructSize);
            Marshal.StructureToPtr(accent, accentPtr, false);

            var data = new Interop.WindowCompositionAttribData();
            data.Attribute = Interop.WindowCompositionAttribute.WCA_ACCENT_POLICY;
            data.SizeOfData = accentStructSize;
            data.Data = accentPtr;

            Interop.SetWindowCompositionAttribute(window.Handle, ref data);

            Marshal.FreeHGlobal(accentPtr);
        }