From: Jacob Czekalla jczekalla@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) {