Beispiel #1
0
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);
      }
}
Beispiel #2
0
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);
      }
}