9 #include "svr_window.h"
14 * PROTOTYPES _________________________________________________________________
18 BOOL CALLBACK Filesets_Dump_DlgProc (HWND hDlg, UINT msg, WPARAM wp, LPARAM lp);
19 void Filesets_Dump_OnInitDialog (HWND hDlg, LPSET_DUMP_PARAMS psdp);
20 void Filesets_Dump_OnSelect (HWND hDlg);
21 void Filesets_Dump_EnableOK (HWND hDlg);
22 void Filesets_Dump_OnOK (HWND hDlg, LPSET_DUMP_PARAMS psdp);
23 void Filesets_Dump_OnBrowse (HWND hDlg, LPSET_DUMP_PARAMS psdp);
27 * ROUTINES ___________________________________________________________________
31 void Filesets_Dump (LPIDENT lpi)
33 LPSET_DUMP_PARAMS psdp = New (SET_DUMP_PARAMS);
34 memset (psdp, 0x00, sizeof(SET_DUMP_PARAMS));
37 int rc = ModalDialogParam (IDD_SET_DUMP, NULL, (DLGPROC)Filesets_Dump_DlgProc, (LPARAM)psdp);
45 StartTask (taskSET_DUMP, NULL, psdp);
50 BOOL CALLBACK Filesets_Dump_DlgProc (HWND hDlg, UINT msg, WPARAM wp, LPARAM lp)
52 if (AfsAppLib_HandleHelp (IDD_SET_DUMP, hDlg, msg, wp, lp))
55 static LPSET_DUMP_PARAMS psdp = NULL;
56 if (msg == WM_INITDIALOG)
57 psdp = (LPSET_DUMP_PARAMS)lp;
64 Filesets_Dump_OnInitDialog (hDlg, psdp);
71 Filesets_Dump_OnOK (hDlg, psdp);
72 EndDialog (hDlg, LOWORD(wp));
76 EndDialog (hDlg, LOWORD(wp));
80 case IDC_DUMP_LIMIT_TIME:
81 Filesets_Dump_OnSelect (hDlg);
84 case IDC_DUMP_FILENAME:
85 Filesets_Dump_EnableOK (hDlg);
89 Filesets_Dump_OnBrowse (hDlg, psdp);
104 void Filesets_Dump_OnInitDialog (HWND hDlg, LPSET_DUMP_PARAMS psdp)
106 TCHAR szServer[ cchNAME ];
107 TCHAR szAggregate[ cchNAME ];
108 TCHAR szFileset[ cchNAME ];
109 psdp->lpi->GetServerName (szServer);
110 psdp->lpi->GetAggregateName (szAggregate);
111 psdp->lpi->GetFilesetName (szFileset);
113 TCHAR szText[ cchRESOURCE ];
114 GetDlgItemText (hDlg, IDC_DUMP_FULL, szText, cchRESOURCE);
116 LPTSTR pszText = FormatString (szText, TEXT("%s%s%s"), szServer, szAggregate, szFileset);
117 SetDlgItemText (hDlg, IDC_DUMP_FULL, pszText);
118 FreeString (pszText);
120 pszText = FormatString (IDS_SET_DUMP_NAME, TEXT("%s"), szFileset);
121 SetDlgItemText (hDlg, IDC_DUMP_FILENAME, pszText);
122 FreeString (pszText);
124 // Get the local system time
128 SystemTimeToFileTime (&st, &ft);
130 FileTimeToLocalFileTime (&ft, &lft);
131 FileTimeToSystemTime (&lft, &st);
133 DA_SetDate (GetDlgItem (hDlg, IDC_DUMP_DATE), &st);
134 TI_SetTime (GetDlgItem (hDlg, IDC_DUMP_TIME), &st);
136 CheckDlgButton (hDlg, IDC_DUMP_FULL, TRUE);
137 Filesets_Dump_OnSelect (hDlg);
138 Filesets_Dump_EnableOK (hDlg);
142 void Filesets_Dump_OnSelect (HWND hDlg)
146 fEnable = IsDlgButtonChecked (hDlg, IDC_DUMP_LIMIT_TIME);
147 EnableWindow (GetDlgItem (hDlg, IDC_DUMP_DATE), fEnable);
148 EnableWindow (GetDlgItem (hDlg, IDC_DUMP_TIME), fEnable);
152 void Filesets_Dump_EnableOK (HWND hDlg)
154 TCHAR szText[ MAX_PATH ];
155 GetDlgItemText (hDlg, IDC_DUMP_FILENAME, szText, MAX_PATH);
157 EnableWindow (GetDlgItem (hDlg, IDOK), (szText[0] == TEXT('\0')) ? FALSE : TRUE);
161 void Filesets_Dump_OnOK (HWND hDlg, LPSET_DUMP_PARAMS psdp)
163 GetDlgItemText (hDlg, IDC_DUMP_FILENAME, psdp->szFilename, MAX_PATH);
165 psdp->fDumpByDate = IsDlgButtonChecked (hDlg, IDC_DUMP_LIMIT_TIME);
166 memset (&psdp->stDump, 0x00, sizeof(SYSTEMTIME));
167 DA_GetDate (GetDlgItem (hDlg, IDC_DUMP_DATE), &psdp->stDump);
168 TI_GetTime (GetDlgItem (hDlg, IDC_DUMP_TIME), &psdp->stDump);
172 void Filesets_Dump_OnBrowse (HWND hDlg, LPSET_DUMP_PARAMS psdp)
174 TCHAR szFilter[ cchRESOURCE ];
175 GetString (szFilter, IDS_RESTORE_FILTER);
176 TCHAR chFilter = szFilter[ lstrlen(szFilter)-1 ];
177 for (LPTSTR pszFilter = szFilter;
178 (*pszFilter) && ((pszFilter = (LPTSTR)lstrchr (pszFilter, chFilter)) != NULL);
181 *pszFilter = TEXT('\0');
184 TCHAR szFilename[ MAX_PATH ];
185 GetDlgItemText (hDlg, IDC_DUMP_FILENAME, szFilename, MAX_PATH);
188 memset (&sfn, 0x00, sizeof(sfn));
189 sfn.lStructSize = sizeof(sfn);
190 sfn.hwndOwner = hDlg;
191 sfn.hInstance = THIS_HINST;
192 sfn.lpstrFilter = szFilter;
193 sfn.nFilterIndex = 1;
194 sfn.lpstrFile = szFilename;
195 sfn.nMaxFile = MAX_PATH;
196 sfn.Flags = OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT | OFN_PATHMUSTEXIST;
197 sfn.lpstrDefExt = TEXT("dmp");
199 if (GetSaveFileName (&sfn))
201 SetDlgItemText (hDlg, IDC_DUMP_FILENAME, szFilename);
202 Filesets_Dump_EnableOK (hDlg);