[User32] Properly handle WM_CTLCOLOR* messages.
authorJames Tabor <james.tabor@reactos.org>
Thu, 7 Nov 2019 03:43:00 +0000 (21:43 -0600)
committerJames Tabor <james.tabor@reactos.org>
Thu, 7 Nov 2019 03:43:00 +0000 (21:43 -0600)
Patch by Fabian Maurer : Properly handle WM_CTLCOLOR* messages.

See CORE-15560 and
https://source.winehq.org/git/wine.git/commit/fbec0ba9eeb12cc153e1e4e0ca98734fe5bc593a
.

Added support for module versions.

win32ss/user/user32/controls/combo.c

index da453ec..4cc5f40 100644 (file)
@@ -2052,6 +2052,21 @@ LRESULT WINAPI ComboWndProc_common( HWND hwnd, UINT message, WPARAM wParam, LPAR
                 if (GET_WHEEL_DELTA_WPARAM(wParam) < 0) return SendMessageW(hwnd, WM_KEYDOWN, VK_DOWN, 0);
                 return TRUE;
 
+        case WM_CTLCOLOR:
+        case WM_CTLCOLORMSGBOX:
+        case WM_CTLCOLOREDIT:
+        case WM_CTLCOLORLISTBOX:
+        case WM_CTLCOLORBTN:
+        case WM_CTLCOLORDLG:
+        case WM_CTLCOLORSCROLLBAR:
+        case WM_CTLCOLORSTATIC:
+#ifdef __REACTOS__
+            if ( pWnd && !(pWnd->state2 & WNDS2_WIN40COMPAT) ) break; // Must be Win 4.0 and above.
+#endif
+            if (lphc->owner)
+                return SendMessageW(lphc->owner, message, wParam, lParam);
+           break;
+
        /* Combo messages */
 
        case CB_ADDSTRING: