/// <summary>
        ///     Apply position from the scrollInfo
        /// </summary>
        /// <param name="scrollInfo">SCROLLINFO ref</param>
        /// <returns>bool</returns>
        private bool ApplyPosition(ref ScrollInfo scrollInfo)
        {
            if (ShowChanges)
            {
                User32Api.SetScrollInfo(ScrollBarWindow.Handle, ScrollBarType, ref scrollInfo, true);
            }
            switch (ScrollBarType)
            {
            case ScrollBarTypes.Horizontal:
                User32Api.SendMessage(ScrollingWindow.Handle, WindowsMessages.WM_HSCROLL, 4 + 0x10000 * scrollInfo.Position, 0);
                break;

            case ScrollBarTypes.Vertical:
            case ScrollBarTypes.Control:
                User32Api.SendMessage(ScrollingWindow.Handle, WindowsMessages.WM_VSCROLL, (int)((uint)ScrollBarCommands.SB_THUMBPOSITION + (scrollInfo.Position << 16)), 0);
                break;
            }
            return(true);
        }