Fixed scrollbars return value to the SBM_SETRANGE and
SBM_SETRANGEREDRAW messages.

diff --git a/controls/scroll.c b/controls/scroll.c
index 40b6536..7286cfe 100644
--- a/controls/scroll.c
+++ b/controls/scroll.c
@@ -1256,8 +1256,12 @@
         return 0;
 
     case SBM_SETRANGE:
-        SetScrollRange( hwnd, SB_CTL, wParam, lParam, FALSE );
-        return 0;  /* FIXME: return previous position */
+        {
+            INT oldPos = GetScrollPos( hwnd, SB_CTL );
+            SetScrollRange( hwnd, SB_CTL, wParam, lParam, FALSE );
+            if (oldPos != GetScrollPos( hwnd, SB_CTL )) return oldPos;
+        }
+        return 0;
 
     case SBM_GETRANGE16:
         FIXME("don't know how to handle SBM_GETRANGE16 (wp=%04x,lp=%08lx)\n", wParam, lParam );
@@ -1272,9 +1276,13 @@
         return EnableScrollBar( hwnd, SB_CTL, wParam );
 
     case SBM_SETRANGEREDRAW:
-        SetScrollRange( hwnd, SB_CTL, wParam, lParam, TRUE );
-        return 0;  /* FIXME: return previous position */
-        
+        {
+            INT oldPos = GetScrollPos( hwnd, SB_CTL );
+            SetScrollRange( hwnd, SB_CTL, wParam, lParam, TRUE );
+            if (oldPos != GetScrollPos( hwnd, SB_CTL )) return oldPos;
+        }
+        return 0;
+
     case SBM_SETSCROLLINFO:
         return SetScrollInfo( hwnd, SB_CTL, (SCROLLINFO *)lParam, wParam );