Abort with error in SetWindowSubclass

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



ChangeLog:
 * dlls/comctl32/commctrl.c
   Abort with error if the app uses our api to subclass and then theirs
then ours again.

nog.

Index: dlls/comctl32/commctrl.c
===================================================================
RCS file: /home/wine/wine/dlls/comctl32/commctrl.c,v
retrieving revision 1.56
diff -u -r1.56 commctrl.c
--- dlls/comctl32/commctrl.c	2 Oct 2002 20:01:02 -0000	1.56
+++ dlls/comctl32/commctrl.c	3 Oct 2002 18:56:20 -0000
@@ -1049,6 +1049,17 @@
       else
          stack->origproc = (WNDPROC)SetWindowLongA (hWnd, GWL_WNDPROC,
                                                    (LONG)DefSubclassProc);
+   } else {
+      WNDPROC current;
+      if (IsWindowUnicode (hWnd))
+         current = (WNDPROC)GetWindowLongW (hWnd, GWL_WNDPROC);
+      else
+         current = (WNDPROC)GetWindowLongA (hWnd, GWL_WNDPROC);
+
+      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;
+      }
    }
 
    /* Check to see if we have called this function with the same uIDSubClass


[Index of Archives]     [Gimp for Windows]     [Red Hat]     [Samba]     [Yosemite Camping]     [Graphics Cards]     [Wine Home]

  Powered by Linux