Alexandre Julliard wrote:
ChangeSet ID: 7402 CVSROOT: /opt/cvs-commit Module name: wine Changes by: julliard@wine.codeweavers.com 2003/03/07 14:38:20
Modified files: controls : scroll.c
Log message: Andrew Johnston johnstonam@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+