Private Declare Function SendMessageLong Lib "user32" Alias "SendMessageA" _ (ByVal hwnd As Long, ByVal Msg As Long, ByVal wParam As Long, _ ByVal lParam As Long) As LongPrivate Const WM_SETREDRAW As Long = &HBPrivate Const TV_FIRST As Long = &H1100Private Const TVM_GETNEXTITEM As Long = (TV_FIRST + 10)Private Const TVM_DELETEITEM As Long = (TV_FIRST + 1)Private Const TVGN_ROOT As Long = &H0' Quicky clear the treeview identified by the hWnd parameterSub ClearTreeViewNodes(ByVal hwnd As Long) Dim hItem As Long ' lock the window update to avoid flickering SendMessageLong hwnd, WM_SETREDRAW, False, &O0 ' clear the treeview Do hItem = SendMessageLong(hwnd, TVM_GETNEXTITEM, TVGN_ROOT, 0) If hItem <= 0 Then Exit Do SendMessageLong hwnd, TVM_DELETEITEM, &O0, hItem Loop ' unlock the window SendMessageLong hwnd, WM_SETREDRAW, True, &O0End Sub