From: Jacob Czekalla <jczekalla(a)codeweavers.com> Some functions will need to check if the treeview is still valid after sending a notification to prevent further processing. --- dlls/comctl32/treeview.c | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/dlls/comctl32/treeview.c b/dlls/comctl32/treeview.c index 073f62c66a2..7a427836f2f 100644 --- a/dlls/comctl32/treeview.c +++ b/dlls/comctl32/treeview.c @@ -522,6 +522,18 @@ TREEVIEW_SendRealNotify(const TREEVIEW_INFO *infoPtr, UINT code, NMHDR *hdr) return SendMessageW(infoPtr->hwndNotify, WM_NOTIFY, hdr->idFrom, (LPARAM)hdr); } +static INT +TREEVIEW_SendSafeNotify(const TREEVIEW_INFO *infoPtr, UINT code) +{ + NMHDR hdr; + INT ret = TREEVIEW_SendRealNotify(infoPtr, code, &hdr); + if (ret != 0) + ret = 1; + if (!IsWindow(infoPtr->hwnd)) + ret = -1; + return ret; +} + static BOOL TREEVIEW_SendSimpleNotify(const TREEVIEW_INFO *infoPtr, UINT code) { -- GitLab https://gitlab.winehq.org/wine/wine/-/merge_requests/8258