7 #include "svr_install.h"
11 * PROTOTYPES _________________________________________________________________
15 BOOL WINAPI Server_Install_DlgProc (HWND hDlg, UINT msg, WPARAM wp, LPARAM lp);
17 void Server_Install_OnInitDialog (HWND hDlg, LPSVR_INSTALL_PARAMS lpp);
18 void Server_Install_OnEndTask_InitDialog (HWND hDlg, LPTASKPACKET ptp, LPSVR_INSTALL_PARAMS lpp);
19 void Server_Install_OnBrowse (HWND hDlg);
20 void Server_Install_EnableOK (HWND hDlg);
21 void Server_Install_OnOK (HWND hDlg);
25 * ROUTINES ___________________________________________________________________
29 void Server_Install (LPIDENT lpiServer)
33 if ((hCurrent = PropCache_Search (pcSVR_INSTALL, NULL)) != NULL)
39 LPSVR_INSTALL_PARAMS lpp = New (SVR_INSTALL_PARAMS);
40 lpp->lpiServer = lpiServer;
41 lpp->szSource[0] = TEXT('\0');
42 lpp->szTarget[0] = TEXT('\0');
44 HWND hDlg = ModelessDialogParam (IDD_SVR_INSTALL, NULL, (DLGPROC)Server_Install_DlgProc, (LPARAM)lpp);
45 ShowWindow (hDlg, SW_SHOW);
50 BOOL WINAPI Server_Install_DlgProc (HWND hDlg, UINT msg, WPARAM wp, LPARAM lp)
52 if (AfsAppLib_HandleHelp (IDD_SVR_INSTALL, hDlg, msg, wp, lp))
55 LPSVR_INSTALL_PARAMS lpp;
57 if (msg == WM_INITDIALOG)
58 SetWindowLong (hDlg, DWL_USER, lp);
60 if ((lpp = (LPSVR_INSTALL_PARAMS)GetWindowLong(hDlg,DWL_USER)) != NULL)
65 PropCache_Add (pcSVR_INSTALL, NULL, hDlg);
66 Server_Install_OnInitDialog (hDlg, lpp);
71 if ((ptp = (LPTASKPACKET)lp) != NULL)
73 if (ptp->idTask == taskSVR_ENUM_TO_COMBOBOX)
74 Server_Install_OnEndTask_InitDialog (hDlg, ptp, lpp);
83 Server_Install_OnOK (hDlg);
91 Server_Install_OnBrowse (hDlg);
97 Server_Install_EnableOK (hDlg);
103 SetWindowLong (hDlg, DWL_USER, 0);
104 PropCache_Delete (pcSVR_INSTALL, NULL);
114 void Server_Install_OnInitDialog (HWND hDlg, LPSVR_INSTALL_PARAMS lpp)
116 LPTSTR pszText = FormatString (IDS_INSTALL_DESC1);
117 SetDlgItemText (hDlg, IDC_INSTALL_DESC, pszText);
118 FreeString (pszText);
120 LPSVR_ENUM_TO_COMBOBOX_PACKET lppEnum = New (SVR_ENUM_TO_COMBOBOX_PACKET);
121 lppEnum->hCombo = GetDlgItem (hDlg, IDC_SERVER);
122 lppEnum->lpiSelect = lpp->lpiServer;
123 StartTask (taskSVR_ENUM_TO_COMBOBOX, hDlg, lppEnum);
125 EnableWindow (GetDlgItem (hDlg, IDC_SERVER), FALSE);
126 EnableWindow (GetDlgItem (hDlg, IDOK), FALSE);
130 void Server_Install_OnEndTask_InitDialog (HWND hDlg, LPTASKPACKET ptp, LPSVR_INSTALL_PARAMS lpp)
132 EnableWindow (GetDlgItem (hDlg, IDC_SERVER), TRUE);
133 Server_Install_EnableOK (hDlg);
137 void Server_Install_EnableOK (HWND hDlg)
139 LPIDENT lpiServer = NULL;
141 if (IsWindowEnabled (GetDlgItem (hDlg, IDC_SERVER)))
142 lpiServer = (LPIDENT)CB_GetSelectedData (GetDlgItem (hDlg, IDC_SERVER));
144 BOOL fEnable = (lpiServer != NULL) ? TRUE : FALSE;
148 TCHAR szName[ MAX_PATH ];
149 GetDlgItemText (hDlg, IDC_FILENAME, szName, MAX_PATH);
150 if (szName[0] == TEXT('\0'))
156 TCHAR szName[ MAX_PATH ];
157 GetDlgItemText (hDlg, IDC_DIRECTORY, szName, MAX_PATH);
158 if (szName[0] == TEXT('\0'))
162 EnableWindow (GetDlgItem (hDlg, IDOK), fEnable);
166 void Server_Install_OnOK (HWND hDlg)
168 LPSVR_INSTALL_PARAMS lpp = New (SVR_INSTALL_PARAMS);
169 lpp->lpiServer = (LPIDENT)CB_GetSelectedData (GetDlgItem (hDlg, IDC_SERVER));
170 GetDlgItemText (hDlg, IDC_FILENAME, lpp->szSource, MAX_PATH);
171 GetDlgItemText (hDlg, IDC_DIRECTORY, lpp->szTarget, MAX_PATH);
173 StartTask (taskSVR_INSTALL, NULL, lpp);
177 void Server_Install_OnBrowse (HWND hDlg)
179 TCHAR szFilter[ cchRESOURCE ];
180 GetString (szFilter, IDS_FILTER_ALLFILES);
181 TCHAR chFilter = szFilter[ lstrlen(szFilter)-1 ];
182 for (LPTSTR pszFilter = szFilter;
183 (*pszFilter) && ((pszFilter = (LPTSTR)lstrchr (pszFilter, chFilter)) != NULL);
186 *pszFilter = TEXT('\0');
189 TCHAR szFilename[ MAX_PATH ];
190 GetDlgItemText (hDlg, IDC_FILENAME, szFilename, MAX_PATH);
193 memset (&ofn, 0x00, sizeof(ofn));
194 ofn.lStructSize = sizeof(ofn);
195 ofn.hwndOwner = hDlg;
196 ofn.hInstance = THIS_HINST;
197 ofn.lpstrFilter = szFilter;
198 ofn.nFilterIndex = 1;
199 ofn.lpstrFile = szFilename;
200 ofn.nMaxFile = MAX_PATH;
201 ofn.Flags = OFN_HIDEREADONLY | OFN_PATHMUSTEXIST | OFN_FILEMUSTEXIST;
203 TCHAR szPath[ MAX_PATH ];
204 GetCurrentDirectory (MAX_PATH, szPath);
206 BOOL rc = GetOpenFileName (&ofn);
208 SetCurrentDirectory (szPath);
211 SetDlgItemText (hDlg, IDC_FILENAME, szFilename);