// Them tat ca cac o dia hien co vao nut ROOT cua TreeView BOOL TV_ThemODia() { TCHAR szChuoiODia[101]; // Luu cac o dia hien co trong My Computer DWErr = GetLogicalDriveStrings(101, szChuoiODia); // Lay cac o dia co trong My Computer // Loi chua xac dinh if (DWErr == 0) ErrorExit(_T("ThemODia() \"GetLogicalDriveStrings\"")); TCHAR szThongTin[PATHFILE_MAX_LEN]; TCHAR *temp = szChuoiODia; TCHAR *szLParam; // szLParam[5] cho biet o dia da duoc expand lan nao chua TCHAR t[6]; HTREEITEM hParent = TreeView_GetRoot(hwndTreeView); HTREEITEM hPrev = NULL; for (int i = 0; temp[i]; i += 4) { szLParam = new TCHAR[5]; wsprintf(szLParam, _T("%s"), temp + i); szLParam[4] = 0; // Lay thong tin ve o dia (Ten o dia) LayThongTinODia(temp + i, szThongTin); wsprintf(t, _T("%s*"), temp + i); hPrev = addItemToTree(szThongTin, szLParam, hParent, hPrev, CoChuaThuMucCon(t)); } return TRUE; }
// --------------------------------------------------------------------- // initTreeViewItems Function // Ham khoi tao va Add cac item vao TreeView // Cac item duoc lay tu My Computer // --------------------------------------------------------------------- BOOL initTreeViewItems() { HTREEITEM hParent = TVI_ROOT; HTREEITEM hPrev = NULL; // Them My Computer vao TreeView addItemToTree(_T("My Computer"), NULL, hParent, hPrev, TRUE); // Them cac o dia vao TreeView TV_ThemODia(); return TRUE; }
bool AntiSpamFrame::addToList(AntiSpamObjectState state, QString nick) { if (nick == "") return false; if (!AntiSpam::getInstance()) return false; if (AntiSpam::getInstance()->isInAny(nick)) {//nick already in lists AntiSpamObjectState e; if (AntiSpam::getInstance()->isInBlack(nick)) e = eIN_BLACK; else if (AntiSpam::getInstance()->isInGray(nick)) e = eIN_GRAY; else e = eIN_WHITE; if (e == state)//in some list return false; AntiSpam::getInstance()->move(nick, state); QTreeWidget *tree = NULL; switch (e) { case eIN_BLACK: tree = treeWidget_BLACK; break; case eIN_GRAY: tree = treeWidget_GRAY; break; case eIN_WHITE: tree = treeWidget_WHITE; break; } remItemFromTree(tree, nick); tree = NULL; switch (state) { case eIN_BLACK: tree = treeWidget_BLACK; break; case eIN_GRAY: tree = treeWidget_GRAY; break; case eIN_WHITE: tree = treeWidget_WHITE; break; } addItemToTree(tree, nick); return true; } QTreeWidget *tree = NULL; (*AntiSpam::getInstance()) << state << nick; switch (state) { case eIN_BLACK: tree = treeWidget_BLACK; break; case eIN_GRAY: tree = treeWidget_GRAY; break; case eIN_WHITE: tree = treeWidget_WHITE; } addItemToTree(tree, nick); return true; }
// Them tat ca cac thu muc con vao TreeView tai nut dang duoc chon BOOL TV_ThemThuMucCon(TCHAR* szDuongDan, const HTREEITEM& T) { WIN32_FIND_DATA FindFileData; HANDLE hFind; HTREEITEM hParent = T; HTREEITEM hPrev = NULL; TCHAR temp[265]; wsprintf(temp, _T("%s*"), szDuongDan); hFind = FindFirstFile(temp, &FindFileData); if (hFind == INVALID_HANDLE_VALUE) { int t = GetLastError(); if (t == 21 // O CD, Floppy disk chua co dia || t == 2) // Khong tim thay file nao, tuc o dia rong return FALSE; // Loi chua xac dinh ErrorExit(_T("\"ThemThuMucCon() FindFirstFile\"")); } // La thu muc if (wcscmp(FindFileData.cFileName, _T(".")) == 0) { // Bo qua thu muc .. FindNextFile(hFind, &FindFileData); FindNextFile(hFind, &FindFileData); } else; // La o dia bool flag = false; size_t len = wcslen(szDuongDan); wcscpy_s(temp, szDuongDan); // Tim tat ca cac thu muc con size_t len1; do { // Thu muc if (FindFileData.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) { // Them vao cuoi chuoi duong dan cu ten thu muc vua tim duoc // va chuoi "\*" de kiem tra thu muc nay co chua thu muc con hay khong temp[len] = 0; wcscat_s(temp, FindFileData.cFileName); len1 = wcslen(temp); temp[len1] = '\\'; temp[len1 + 1] = '\0'; // temp[len1 + 2] = '\0'; // Tham so szLParam trong ham addItemToTree TCHAR *szLParam = new TCHAR[len1 + 3]; wcscpy_s(szLParam, len1 + 3, temp); szLParam[len1 + 2] = 0; // Thong bao thu muc nay chua duoc expand lan nao temp[len1 + 1] = '*'; temp[len1 + 2] = '\0'; // Them thu muc con vao nut cha flag = true; hPrev = addItemToTree(FindFileData.cFileName, szLParam, hParent, hPrev, CoChuaThuMucCon(temp)); } } while (FindNextFile(hFind, &FindFileData)); FindClose(hFind); return flag; }