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>
16 #include "svc_startstop.h"
20 * PROTOTYPES _________________________________________________________________
29 } SERVICE_STARTSTOP_PARAMS, *LPSERVICE_STARTSTOP_PARAMS;
31 BOOL CALLBACK Services_StartStop_DlgProc (HWND hDlg, UINT msg, WPARAM wp, LPARAM lp);
32 void Services_StartStop_OnInitDialog (HWND hDlg, LPSERVICE_STARTSTOP_PARAMS lpp);
33 void Services_StartStop_OnOK (HWND hDlg, LPSERVICE_STARTSTOP_PARAMS lpp);
37 * ROUTINES ___________________________________________________________________
41 BOOL Services_fRunning (LPSERVICE lpService)
45 if (!lpService->GetStatus (&ss, FALSE, &status))
48 return (ss.state == SERVICESTATE_RUNNING) ? TRUE : FALSE;
53 void Services_Restart (LPIDENT lpiService)
55 StartTask (taskSVC_RESTART, NULL, lpiService);
59 void Services_Start (LPIDENT lpiService)
61 SERVICE_STARTSTOP_PARAMS dp;
62 memset (&dp, 0x00, sizeof(dp));
66 if (ModalDialogParam (IDD_SVC_STARTSTOP, NULL, (DLGPROC)Services_StartStop_DlgProc, (LPARAM)&dp) == IDOK)
68 LPSVC_START_PARAMS lpp = New (SVC_START_PARAMS);
69 memset (lpp, 0x00, sizeof(SVC_START_PARAMS));
70 lpp->lpiStart = lpiService;
71 lpp->fTemporary = dp.fTemporary;
72 StartTask (taskSVC_START, NULL, lpp);
77 void Services_Stop (LPIDENT lpiService)
79 SERVICE_STARTSTOP_PARAMS dp;
80 memset (&dp, 0x00, sizeof(dp));
84 if (ModalDialogParam (IDD_SVC_STARTSTOP, NULL, (DLGPROC)Services_StartStop_DlgProc, (LPARAM)&dp) == IDOK)
86 LPSVC_STOP_PARAMS lpp = New (SVC_STOP_PARAMS);
87 memset (lpp, 0x00, sizeof(SVC_STOP_PARAMS));
88 lpp->lpiStop = lpiService;
89 lpp->fTemporary = dp.fTemporary;
90 StartTask (taskSVC_STOP, NULL, lpp);
95 BOOL CALLBACK Services_StartStop_DlgProc (HWND hDlg, UINT msg, WPARAM wp, LPARAM lp)
97 static LPSERVICE_STARTSTOP_PARAMS lpp = NULL;
101 if (AfsAppLib_HandleHelp ((lpp->fStart) ? IDD_SVC_START : IDD_SVC_STOP, hDlg, msg, wp, lp))
108 lpp = (LPSERVICE_STARTSTOP_PARAMS)lp;
109 Services_StartStop_OnInitDialog (hDlg, lpp);
116 Services_StartStop_OnOK (hDlg, lpp);
117 EndDialog (hDlg, IDOK);
121 EndDialog (hDlg, IDCANCEL);
131 void Services_StartStop_OnInitDialog (HWND hDlg, LPSERVICE_STARTSTOP_PARAMS lpp)
133 LPTSTR pszString = FormatString ((lpp->fStart) ? IDS_STARTSERVICE_TITLE : IDS_STOPSERVICE_TITLE);
134 SetWindowText (hDlg, pszString);
135 FreeString (pszString);
137 TCHAR szServer[ cchNAME ];
138 lpp->lpi->GetServerName (szServer);
140 TCHAR szService[ cchNAME ];
141 lpp->lpi->GetServiceName (szService);
143 pszString = FormatString ((lpp->fStart) ? IDS_STARTSERVICE_TEXT : IDS_STOPSERVICE_TEXT, TEXT("%s%s"), szServer, szService);
144 SetDlgItemText (hDlg, IDC_STARTSTOP_TEXT, pszString);
145 FreeString (pszString);
147 pszString = FormatString ((lpp->fStart) ? IDS_STARTSERVICE_STARTUP : IDS_STOPSERVICE_STARTUP, TEXT("%s%s"), szServer, szService);
148 SetDlgItemText (hDlg, IDC_STARTSTOP_STARTUP, pszString);
149 FreeString (pszString);
151 pszString = FormatString ((lpp->fStart) ? IDS_STARTSERVICE_PERMANENT : IDS_STOPSERVICE_PERMANENT, TEXT("%s%s"), szServer, szService);
152 SetDlgItemText (hDlg, IDC_STARTSTOP_PERMANENT, pszString);
153 FreeString (pszString);
155 pszString = FormatString ((lpp->fStart) ? IDS_STARTSERVICE_TEMPORARY : IDS_STOPSERVICE_TEMPORARY, TEXT("%s%s"), szServer, szService);
156 SetDlgItemText (hDlg, IDC_STARTSTOP_TEMPORARY, pszString);
157 FreeString (pszString);
159 CheckDlgButton (hDlg, IDC_STARTSTOP_PERMANENT, !lpp->fTemporary);
160 CheckDlgButton (hDlg, IDC_STARTSTOP_TEMPORARY, lpp->fTemporary);
164 void Services_StartStop_OnOK (HWND hDlg, LPSERVICE_STARTSTOP_PARAMS lpp)
166 lpp->fTemporary = IsDlgButtonChecked (hDlg, IDC_STARTSTOP_TEMPORARY);