From e022d8d7cb72bc611d6990062ad0f2962c0cab1d Mon Sep 17 00:00:00 2001 From: Mark Jansen Date: Fri, 18 Jan 2019 00:07:23 +0100 Subject: [PATCH] [WIN32SS] Require at least the amount of extra memory, not the exact amount This fixes Civ II trying to create scrollbars based on 'native' scrollbars. --- win32ss/user/ntuser/scrollbar.c | 2 +- win32ss/user/user32/controls/scrollbar.c | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/win32ss/user/ntuser/scrollbar.c b/win32ss/user/ntuser/scrollbar.c index 582a603c1fb..325be6fe491 100644 --- a/win32ss/user/ntuser/scrollbar.c +++ b/win32ss/user/ntuser/scrollbar.c @@ -90,7 +90,7 @@ IntGetSBData(PWND pwnd, INT Bar) case SB_VERT: return &pSBInfo->Vert; case SB_CTL: - if ( pwnd->cbwndExtra != (sizeof(SBWND)-sizeof(WND)) ) + if ( pwnd->cbwndExtra < (sizeof(SBWND)-sizeof(WND)) ) { ERR("IntGetSBData Wrong Extra bytes for CTL Scrollbar!\n"); return 0; diff --git a/win32ss/user/user32/controls/scrollbar.c b/win32ss/user/user32/controls/scrollbar.c index 0a4913353c8..3eb02429610 100644 --- a/win32ss/user/user32/controls/scrollbar.c +++ b/win32ss/user/user32/controls/scrollbar.c @@ -100,7 +100,7 @@ IntGetSBData(PWND pwnd, INT Bar) case SB_VERT: return &pSBInfo->Vert; case SB_CTL: - if ( pwnd->cbwndExtra != (sizeof(SBWND)-sizeof(WND)) ) + if ( pwnd->cbwndExtra < (sizeof(SBWND)-sizeof(WND)) ) { ERR("IntGetSBData Wrong Extra bytes for CTL Scrollbar!\n"); return 0; @@ -1186,7 +1186,7 @@ ScrollBarWndProc_common(WNDPROC DefWindowProc, HWND Wnd, UINT Msg, WPARAM wParam if (!pWnd->fnid) { TRACE("ScrollBar CTL size %d\n", (sizeof(SBWND)-sizeof(WND))); - if ( pWnd->cbwndExtra != (sizeof(SBWND)-sizeof(WND)) ) + if ( pWnd->cbwndExtra < (sizeof(SBWND)-sizeof(WND)) ) { ERR("Wrong Extra bytes for Scrollbar!\n"); return 0; -- 2.17.1