Zebediah Figura (@zfigura) commented about dlls/user32/msgbox.c:
SetWindowContextHelpId(hwnd, mbp->dwContextHelpId); MSGBOX_OnInit(hwnd, mbp); SetPropA(hwnd, "WINE_MSGBOX_HELPCALLBACK", mbp->lpfnMsgBoxCallback);
msghook_handle = SetWindowsHookExA(WH_MSGFILTER, msg_hook_proc, NULL, GetCurrentThreadId());
A message hook does not at all look like the right way to handle this. Can we not get the right messages from the dialog procedure? And if not, even subclassing the dialog wndproc seems better.