void WindowList_Add (HWND hWnd, WINDOWLISTTYPE wlt, ASID idObject) { // See if this window is already in the list // size_t ii; for (ii = 0; ii < cWindowList; ++ii) { if (aWindowList[ ii ].hWnd == hWnd) return; } // Add this window to the list // for (ii = 0; ii < cWindowList; ++ii) { if (!aWindowList[ ii ].hWnd) break; } if (REALLOC (aWindowList, cWindowList, 1+ii, cREALLOC_WINDOWLIST)) { aWindowList[ ii ].hWnd = hWnd; aWindowList[ ii ].wlt = wlt; aWindowList[ ii ].idObject = idObject; AfsAppLib_RegisterModelessDialog (hWnd); } }
void PropCache_Add (PropCache pcType, PVOID pv, HWND hDialog) { if (!PropCache_Search (pcType, pv)) { size_t iEntry; for (iEntry = 0; iEntry < PropCache_nEntries; ++iEntry) { if (!PropCache_apce[ iEntry ].fInUse) break; } if (iEntry == PropCache_nEntries) { if (!REALLOC (PropCache_apce, PropCache_nEntries, 1+iEntry, 16)) return; } PropCache_apce[ iEntry ].fInUse = TRUE; PropCache_apce[ iEntry ].pcType = pcType; PropCache_apce[ iEntry ].pv = pv; PropCache_apce[ iEntry ].hDialog = hDialog; if (pcType != pcSERVER) AfsAppLib_RegisterModelessDialog (hDialog); } }
void Server_Salvage_OnOK (HWND hDlg) { // Prepare a taskSVR_SALVAGE packet // LPSVR_SALVAGE_PARAMS lpp = New (SVR_SALVAGE_PARAMS); memset (lpp, 0x00, sizeof(SVR_SALVAGE_PARAMS)); GetDlgItemText (hDlg, IDC_SALVAGE_TEMPDIR, lpp->szTempDir, MAX_PATH); GetDlgItemText (hDlg, IDC_SALVAGE_LOG_FILE, lpp->szLogFile, MAX_PATH); lpp->fForce = IsDlgButtonChecked (hDlg, IDC_SALVAGE_FORCE); lpp->fReadonly = IsDlgButtonChecked (hDlg, IDC_SALVAGE_READONLY); lpp->fLogInodes = IsDlgButtonChecked (hDlg, IDC_SALVAGE_LOG_INODES); lpp->fLogRootInodes = IsDlgButtonChecked (hDlg, IDC_SALVAGE_LOG_ROOT); lpp->fRebuildDirs = IsDlgButtonChecked (hDlg, IDC_SALVAGE_FIXDIRS); lpp->fReadBlocks = IsDlgButtonChecked (hDlg, IDC_SALVAGE_BLOCK); if (IsDlgButtonChecked (hDlg, IDC_SALVAGE_SIMUL)) lpp->nProcesses = (int)SP_GetPos (GetDlgItem (hDlg, IDC_SALVAGE_NUM)); lpp->lpiSalvage = NULL; if (!IsDlgButtonChecked (hDlg, IDC_FILESET_ALL)) lpp->lpiSalvage = (LPIDENT)CB_GetSelectedData (GetDlgItem (hDlg, IDC_FILESET)); if (!lpp->lpiSalvage && !IsDlgButtonChecked (hDlg, IDC_AGGREGATE_ALL)) lpp->lpiSalvage = (LPIDENT)CB_GetSelectedData (GetDlgItem (hDlg, IDC_AGGREGATE)); if (!lpp->lpiSalvage) // salvage the whole server lpp->lpiSalvage = (LPIDENT)CB_GetSelectedData (GetDlgItem (hDlg, IDC_SERVER)); if (!lpp->lpiSalvage) Delete (lpp); else { // Create (but don't show) a results dialog for this operation. // HWND hResults = ModelessDialogParam (IDD_SVR_SALVAGE_RESULTS, NULL, (DLGPROC)Server_Salvage_Results_DlgProc, (LPARAM)(lpp->lpiSalvage)); AfsAppLib_RegisterModelessDialog (hDlg); // Fire up the background task; when it finishes, have the task scheduler // send the result packet to that results dialog. // StartTask (taskSVR_SALVAGE, hResults, lpp); } }