public bool UpdateWindowPenetration(bool allowsPenetrate) { SetWindowLongFlags oldGWLEx = (SetWindowLongFlags)GetWindowLong(this.handle, WindowLongIndexFlags.GWL_EXSTYLE); SetWindowLongFlags rGWLEx; if (allowsPenetrate) { rGWLEx = (SetWindowLongFlags)SetWindowLong(this.handle, WindowLongIndexFlags.GWL_EXSTYLE, oldGWLEx | bitsGWLEx); } else { rGWLEx = (SetWindowLongFlags)SetWindowLong(this.handle, WindowLongIndexFlags.GWL_EXSTYLE, (oldGWLEx & ~bitsGWLEx) | this.preservedGWLEx); } if (rGWLEx == 0) { return(false); } else { this.preservedGWLEx = ~(oldGWLEx ^ bitsGWLEx); return(true); } }
public static extern int SetWindowLong(IntPtr hWnd, WindowLongIndexFlags nIndex, SetWindowLongFlags dwNewLong);
public int SetWindowLong(IntPtr hWnd, WindowLongIndexFlags nIndex, SetWindowLongFlags dwNewLong) => SetWindowLong(hWnd, nIndex, dwNewLong);
public virtual void Initialize() { SetWindowLongFlags oldGWLEx = (SetWindowLongFlags)GetWindowLong(this.handle, WindowLongIndexFlags.GWL_EXSTYLE); this.preservedGWLEx = ~(oldGWLEx ^ bitsGWLEx); }