Re: wine/controls scroll.c
Alexandre Julliard wrote:
ChangeSet ID: 7402 CVSROOT: /opt/cvs-commit Module name: wine Changes by: julliard(a)wine.codeweavers.com 2003/03/07 14:38:20
Modified files: controls : scroll.c
Log message: Andrew Johnston <johnstonam(a)logica.com> - GetScrollRange zeros the return parameters for no infoPtr - GetScrollRange, GetScrollPos and GetScrollInfo send a message to the window for the SB_CTL case - Moved code for GetScroll* to into worker functions
@@ -1736,22 +1804,18 @@ * RETURNS STD */ BOOL WINAPI GetScrollRange( -HWND hwnd, /* [in] Handle of window */ -INT nBar, /* [in] One of SB_HORZ, SB_VERT, or SB_CTL */ -LPINT lpMin, /* [out] Where to store minimum value */ +HWND hwnd /* [in] Handle of window with scrollbar(s) */, +INT nBar /* [in] One of SB_HORZ, SB_VERT, or SB_CTL */, +LPINT lpMin /* [out] Where to store minimum value */, LPINT lpMax /* [out] Where to store maximum value */) { - SCROLLBAR_INFO *infoPtr; + TRACE("hwnd=%p nBar=%d lpMin=%p lpMax=%p\n", hwnd, nBar, lpMin, lpMax);
- if (!(infoPtr = SCROLL_GetScrollInfo( hwnd, nBar ))) - { - if (lpMin) lpMin = 0; - if (lpMax) lpMax = 0; - return FALSE; - } - if (lpMin) *lpMin = infoPtr->minVal; - if (lpMax) *lpMax = infoPtr->maxVal; - return TRUE; + /* Refer SB_CTL requests to the window */ + if (nBar == SB_CTL) + return SendMessageA(hwnd, SBM_GETRANGE, (WPARAM)lpMin, (LPARAM)lpMax); + else + return SCROLL_GetScrollRange(hwnd, nBar, lpMin, lpMax); }
This patch is wrong the hwnd is in fact a 16 bit window I've an old win16 app which got broken because of this (wParam got truncated to a 16 bit value, and of course caused a segfault) A+ -- Eric Pouech
participants (1)
-
Eric Pouech