void DestroyTree(TreePtr tree) { CleanTree(tree); if (NULL != tree) { free(tree); } }
void CRIFFChunkTreeDlg::OnDestroy() { CleanTree(&m_Tree, NULL); source->Disable(CACHE_THREADSAFE); // DeleteCriticalSection(&critical_section); DeleteCriticalSection(&cs); CResizeableDialog::OnDestroy(); // TODO: Fügen Sie hier Ihren Meldungsbehandlungscode ein. }
void CleanTree(CTreeCtrl* tree, HTREEITEM hParent) { HTREEITEM hChild; if (hParent) hChild = tree->GetChildItem(hParent); else hChild = tree->GetRootItem(); while (hChild) { CleanTree(tree, hChild); hChild = tree->GetNextSiblingItem(hChild); } if (hParent) { TVITEM item; item.mask = TVIF_PARAM | TVIF_HANDLE; item.hItem = hParent; tree->GetItem(&item); void* p = (void*)item.lParam; if (p) delete p; } }