2 * Copyright 2000, International Business Machines Corporation and others.
5 * This software has been released under the terms of the IBM Public
6 * License. For details, see the LICENSE file in the top-level source
7 * directory or online at http://www.openafs.org/dl/license10.html
11 #include <afs/param.h>
15 #include "TaAfsUsrMgr.h"
16 #include "mch_delete.h"
20 * DEFINITIONS ________________________________________________________________
26 * PROTOTYPES _________________________________________________________________
30 BOOL CALLBACK Machine_Delete_DlgProc (HWND hDlg, UINT msg, WPARAM wp, LPARAM lp);
31 void Machine_Delete_OnInitDialog (HWND hDlg);
32 void Machine_Delete_OnDestroy (HWND hDlg);
33 void Machine_Delete_OnOK (HWND hDlg);
37 * ROUTINES ___________________________________________________________________
41 void Machine_ShowDelete (LPASIDLIST pMachineList)
43 ModalDialogParam (IDD_MACHINE_DELETE, g.hMain, (DLGPROC)Machine_Delete_DlgProc, (LPARAM)pMachineList);
47 BOOL CALLBACK Machine_Delete_DlgProc (HWND hDlg, UINT msg, WPARAM wp, LPARAM lp)
49 if (AfsAppLib_HandleHelp (IDD_MACHINE_DELETE, hDlg, msg, wp, lp))
55 SetWindowLongPtr (hDlg, DWLP_USER, lp);
56 Machine_Delete_OnInitDialog (hDlg);
60 Machine_Delete_OnDestroy (hDlg);
67 Machine_Delete_OnOK (hDlg);
68 EndDialog (hDlg, IDOK);
72 EndDialog (hDlg, IDCANCEL);
82 void Machine_Delete_OnInitDialog (HWND hDlg)
84 LPASIDLIST pMachineList = (LPASIDLIST)GetWindowLongPtr (hDlg, DWLP_USER);
86 // Fix the title of the dialog
88 if (pMachineList->cEntries == 1)
91 TCHAR szName[ cchNAME ];
92 asc_ObjectNameGet_Fast (g.idClient, g.idCell, pMachineList->aEntries[0].idObject, szName, &status);
94 TCHAR szText[ cchRESOURCE ];
95 GetDlgItemText (hDlg, IDC_DELETE_TITLE, szText, cchRESOURCE);
97 LPTSTR pszText = FormatString (szText, TEXT("%s"), szName);
98 SetDlgItemText (hDlg, IDC_DELETE_TITLE, pszText);
103 LPTSTR pszNames = CreateNameList (pMachineList);
105 LPTSTR pszText = FormatString (IDS_MACHINE_DELETE_MULTIPLE, TEXT("%s"), pszNames);
106 SetDlgItemText (hDlg, IDC_DELETE_TITLE, pszText);
107 FreeString (pszText);
109 FreeString (pszNames);
114 void Machine_Delete_OnDestroy (HWND hDlg)
116 LPASIDLIST pMachineList = (LPASIDLIST)GetWindowLongPtr (hDlg, DWLP_USER);
117 asc_AsidListFree (&pMachineList);
121 void Machine_Delete_OnOK (HWND hDlg)
123 LPASIDLIST pMachineList = (LPASIDLIST)GetWindowLongPtr (hDlg, DWLP_USER);
125 // Start a background task to do all the work.
127 LPUSER_DELETE_PARAMS pTask = New (USER_DELETE_PARAMS);
128 memset (pTask, 0x00, sizeof(USER_DELETE_PARAMS));
129 pTask->fDeleteKAS = FALSE;
130 pTask->fDeletePTS = TRUE;
131 asc_AsidListCopy (&pTask->pUserList, &pMachineList);
132 StartTask (taskUSER_DELETE, NULL, pTask);