"Julius Schwartzenberg" <julius.schwartzenberg(a)gmail.com> wrote:
diff --git a/dlls/user32/edit.c b/dlls/user32/edit.c index 8ad945b..53eb052 100644 --- a/dlls/user32/edit.c +++ b/dlls/user32/edit.c @@ -5416,7 +5416,7 @@ const struct builtin_class_descr EDIT_builtin_class = CS_DBLCLKS | CS_PARENTDC, /* style */ EditWndProcA, /* procA */ EditWndProcW, /* procW */ - sizeof(EDITSTATE *), /* extra */ + 6, /* extra */ IDC_IBEAM, /* cursor */ 0 /* brush */ };
This obviously won't work for 64-bit. I'd suggest to make extra 2 * sizeof(void *). and add a comment about compatibility.
diff --git a/dlls/user32/tests/edit.c b/dlls/user32/tests/edit.c index 5ca012e..ec00b90 100644 --- a/dlls/user32/tests/edit.c +++ b/dlls/user32/tests/edit.c @@ -2260,6 +2260,15 @@ static void test_dialogmode(void) destroy_child_editcontrol(hwEdit); }
+static void test_extra_value() +{ + WNDCLASSEX cls; + int r; + GetClassInfoEx(NULL,"Edit",&cls); + r = cls.cbWndExtra; + ok(6 == r, "expected 6, got %d\n", r); +}
ok(cls.cbWndExtra > sizeof(void *), "blah ...\n") doesn't require any intermediate variables. -- Dmitry.