Nikolay Sivov <nsivov(a)codeweavers.com> wrote:
+ case WM_WINDOWPOSCHANGING: + { + HWND parent = GetParent(hwnd); + if (parent) infoPtr->hwndNotify = parent; + return DefWindowProcW(hwnd, uMsg, wParam, lParam); + } What if an application subclasses tab and doesn't pass WM_WINDOWPOSCHANGING to the original proc? Then it will fail just like it does currently, and will work for the rest of the applications. Is it really supposed to fail? That's a different problem.
No, it's the same problem of not tested behaviour.
Why not just call GetParent() every time when a notification is being sent? Because it won't work if you create a control without WS_CHILD. How is that different from the WM_WINDOWPOSCHANGING handler? How what is different? There's a check for null parent as you can see.
Why the same can't be done at the time a notification needs to be sent? There are many places (starting from user32/WM_PARENTNOTIFY) which send notifications that way, what's so special about tab control? -- Dmitry.