From b4ff26c3b6c59671f3a74868bfa5267f7bda94d8 Mon Sep 17 00:00:00 2001 From: Filip Navara Date: Fri, 16 Apr 2004 23:44:19 +0000 Subject: [PATCH] Temporary revert this patch, because it causes a lot of crashes. I sent a message to wine-devel describing the problem. Robert Shearman - Fix subclassing to support nested messages. svn path=/trunk/; revision=9168 --- reactos/lib/comctl32/commctrl.c | 34 +++------------------------------ 1 file changed, 3 insertions(+), 31 deletions(-) diff --git a/reactos/lib/comctl32/commctrl.c b/reactos/lib/comctl32/commctrl.c index ad242dfdd91..e46729fe387 100644 --- a/reactos/lib/comctl32/commctrl.c +++ b/reactos/lib/comctl32/commctrl.c @@ -114,7 +114,6 @@ extern void TREEVIEW_Unregister(void); extern void UPDOWN_Register(void); extern void UPDOWN_Unregister(void); -static LRESULT WINAPI SubclassWndProc (HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam); LPSTR COMCTL32_aSubclass = NULL; HMODULE COMCTL32_hModule = 0; @@ -1109,10 +1108,10 @@ BOOL WINAPI SetWindowSubclass (HWND hWnd, SUBCLASSPROC pfnSubclass, /* set window procedure to our own and save the current one */ if (IsWindowUnicode (hWnd)) stack->origproc = (WNDPROC)SetWindowLongW (hWnd, GWL_WNDPROC, - (LONG)SubclassWndProc); + (LONG)DefSubclassProc); else stack->origproc = (WNDPROC)SetWindowLongA (hWnd, GWL_WNDPROC, - (LONG)SubclassWndProc); + (LONG)DefSubclassProc); } else { WNDPROC current; if (IsWindowUnicode (hWnd)) @@ -1120,7 +1119,7 @@ BOOL WINAPI SetWindowSubclass (HWND hWnd, SUBCLASSPROC pfnSubclass, else current = (WNDPROC)GetWindowLongA (hWnd, GWL_WNDPROC); - if (current != SubclassWndProc) { + if (current != DefSubclassProc) { ERR ("Application has subclassed with our procedure, then manually, then with us again. The current implementation can't handle this.\n"); return FALSE; } @@ -1263,33 +1262,6 @@ BOOL WINAPI RemoveWindowSubclass(HWND hWnd, SUBCLASSPROC pfnSubclass, UINT_PTR u } -/*********************************************************************** - * SubclassWndProc (internal) - * - * Window procedure for all subclassed windows. - * Saves the current subclassing stack position to support nested messages - */ - -static LRESULT WINAPI SubclassWndProc (HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam) -{ - LPSUBCLASS_INFO stack; - int stackpos; - LRESULT ret; - - /* retrieve our little stack from the Properties */ - stack = (LPSUBCLASS_INFO)GetPropA (hWnd, COMCTL32_aSubclass); - if (!stack) { - ERR ("Our sub classing stack got erased for %p!! Nothing we can do\n", hWnd); - return 0; - } - stackpos = stack->stackpos; - stack->stackpos = stack->stacknum; - ret = DefSubclassProc(hWnd,uMsg,wParam,lParam); - stack->stackpos = stackpos; - return ret; -} - - /*********************************************************************** * DefSubclassProc [COMCTL32.413] *