diff --git a/reactos/base/applications/mscutils/servman/control.c b/reactos/base/applications/mscutils/servman/control.c
index 665fb645456..c8c2d1cfd9b 100644
--- a/reactos/base/applications/mscutils/servman/control.c
+++ b/reactos/base/applications/mscutils/servman/control.c
@@ -9,7 +9,7 @@
#include "precomp.h"
-BOOL
+static BOOL
Control(PMAIN_WND_INFO Info,
HWND hProgDlg,
DWORD Control)
@@ -131,3 +131,67 @@ Control(PMAIN_WND_INFO Info,
return FALSE;
}
+
+BOOL DoStop(PMAIN_WND_INFO Info)
+{
+ BOOL ret = FALSE;
+ HWND hProgDlg;
+
+ hProgDlg = CreateProgressDialog(Info->hMainWnd,
+ Info->CurrentService->lpServiceName,
+ IDS_PROGRESS_INFO_STOP);
+
+ if (hProgDlg)
+ {
+ ret = Control(Info,
+ hProgDlg,
+ SERVICE_CONTROL_STOP);
+
+ SendMessage(hProgDlg, WM_DESTROY, 0, 0);
+ }
+
+ return ret;
+}
+
+BOOL DoPause(PMAIN_WND_INFO Info)
+{
+ BOOL ret = FALSE;
+ HWND hProgDlg;
+
+ hProgDlg = CreateProgressDialog(Info->hMainWnd,
+ Info->CurrentService->lpServiceName,
+ IDS_PROGRESS_INFO_PAUSE);
+
+ if (hProgDlg)
+ {
+ ret = Control(Info,
+ hProgDlg,
+ SERVICE_CONTROL_STOP);
+
+ SendMessage(hProgDlg, WM_DESTROY, 0, 0);
+ }
+
+ return ret;
+}
+
+BOOL DoResume(PMAIN_WND_INFO Info)
+{
+ BOOL ret = FALSE;
+ HWND hProgDlg;
+
+ hProgDlg = CreateProgressDialog(Info->hMainWnd,
+ Info->CurrentService->lpServiceName,
+ IDS_PROGRESS_INFO_RESUME);
+
+ if (hProgDlg)
+ {
+ ret = Control(Info,
+ hProgDlg,
+ SERVICE_CONTROL_STOP);
+
+ SendMessage(hProgDlg, WM_DESTROY, 0, 0);
+ }
+
+ return ret;
+}
+
diff --git a/reactos/base/applications/mscutils/servman/lang/bg-BG.rc b/reactos/base/applications/mscutils/servman/lang/bg-BG.rc
index e8156470d27..ed02586b2a8 100644
--- a/reactos/base/applications/mscutils/servman/lang/bg-BG.rc
+++ b/reactos/base/applications/mscutils/servman/lang/bg-BG.rc
@@ -214,6 +214,8 @@ STRINGTABLE DISCARDABLE
BEGIN
IDS_PROGRESS_INFO_START "ÐåàêòÎÑ ñå îïèòâà äà ïóñíå ñëåäíàòà óñëóãà"
IDS_PROGRESS_INFO_STOP "ÐåàêòÎÑ ñå îïèòâà äà ñïðå ñëåäíàòà óñëóãà"
+ IDS_PROGRESS_INFO_PAUSE "ReactOS is attempting to pause the following service"
+ IDS_PROGRESS_INFO_RESUME "ReactOS is attempting to resume the following service"
IDS_CREATE_SUCCESS "Óñëóãàòà å óñïåøíî ñúçäàäåíà"
IDS_CREATE_REQ "Ïîëåòàòà, îòáåëÿçàíè ñúñ \nçâåçäè÷êà ñà íåàçàäúëæèòåëíè"
IDS_DELETE_STOP "Òðÿáâà ðú÷íî äà ñïðåòå óñëóãàòà, ïðåäè äà ÿ èçòðèåòå!"
diff --git a/reactos/base/applications/mscutils/servman/lang/de-DE.rc b/reactos/base/applications/mscutils/servman/lang/de-DE.rc
index 306afabc097..7047647c685 100644
--- a/reactos/base/applications/mscutils/servman/lang/de-DE.rc
+++ b/reactos/base/applications/mscutils/servman/lang/de-DE.rc
@@ -210,6 +210,8 @@ STRINGTABLE DISCARDABLE
BEGIN
IDS_PROGRESS_INFO_START "ReactOS versucht den folgenden Dienst zu starten"
IDS_PROGRESS_INFO_STOP "ReactOS versucht den folgenden Dienst zu beenden"
+ IDS_PROGRESS_INFO_PAUSE "ReactOS is attempting to pause the following service"
+ IDS_PROGRESS_INFO_RESUME "ReactOS is attempting to resume the following service"
IDS_CREATE_SUCCESS "Dienst wurde erfolgreich erstellt"
IDS_CREATE_REQ "Mit einem Sternchen gekennzeichnete Felder sind erforderlich"
IDS_DELETE_STOP "Sie müssen den Dienst manuell beenden, bevor er gelöscht werden kann!"
diff --git a/reactos/base/applications/mscutils/servman/lang/en-US.rc b/reactos/base/applications/mscutils/servman/lang/en-US.rc
index 0e1121a5c9d..428fdbf9f12 100644
--- a/reactos/base/applications/mscutils/servman/lang/en-US.rc
+++ b/reactos/base/applications/mscutils/servman/lang/en-US.rc
@@ -208,8 +208,10 @@ END
STRINGTABLE DISCARDABLE
BEGIN
- IDS_PROGRESS_INFO_START "ReactOS is attempting to start the following service"
- IDS_PROGRESS_INFO_STOP "ReactOS is attempting to stop the following service"
+ IDS_PROGRESS_INFO_START "ReactOS is attempting to start the following service"
+ IDS_PROGRESS_INFO_STOP "ReactOS is attempting to stop the following service"
+ IDS_PROGRESS_INFO_PAUSE "ReactOS is attempting to pause the following service"
+ IDS_PROGRESS_INFO_RESUME "ReactOS is attempting to resume the following service"
IDS_CREATE_SUCCESS "Service Created Succesfully"
IDS_CREATE_REQ "Fields marked with an\nasterix are mandatory"
IDS_DELETE_STOP "You must manually stop the service before deleting!"
diff --git a/reactos/base/applications/mscutils/servman/lang/fr-FR.rc b/reactos/base/applications/mscutils/servman/lang/fr-FR.rc
index e1f7b29f6fe..979b06eadf0 100644
--- a/reactos/base/applications/mscutils/servman/lang/fr-FR.rc
+++ b/reactos/base/applications/mscutils/servman/lang/fr-FR.rc
@@ -214,6 +214,8 @@ STRINGTABLE DISCARDABLE
BEGIN
IDS_PROGRESS_INFO_START "ReactOS essaye de démarrer le service suivant"
IDS_PROGRESS_INFO_STOP "ReactOS essaye d'arrêter le service suivant"
+ IDS_PROGRESS_INFO_PAUSE "ReactOS is attempting to pause the following service"
+ IDS_PROGRESS_INFO_RESUME "ReactOS is attempting to resume the following service"
IDS_CREATE_SUCCESS "Service créé"
IDS_CREATE_REQ "Les champs marqués d'une astérisque\nasont obligatoires"
IDS_DELETE_STOP "Vous devez arrêter le service avant de le supprimer!"
diff --git a/reactos/base/applications/mscutils/servman/lang/id-ID.rc b/reactos/base/applications/mscutils/servman/lang/id-ID.rc
index 5e0a83b1597..db2b8d42a22 100644
--- a/reactos/base/applications/mscutils/servman/lang/id-ID.rc
+++ b/reactos/base/applications/mscutils/servman/lang/id-ID.rc
@@ -210,6 +210,8 @@ STRINGTABLE DISCARDABLE
BEGIN
IDS_PROGRESS_INFO_START "ReactOS sedang mencoba untuk memulai layanan berikut"
IDS_PROGRESS_INFO_STOP "ReactOS sedang mencoba untuk menghentikan layanan berikut"
+ IDS_PROGRESS_INFO_PAUSE "ReactOS is attempting to pause the following service"
+ IDS_PROGRESS_INFO_RESUME "ReactOS is attempting to resume the following service"
IDS_CREATE_SUCCESS "Layanan Dibuat Dengan Sukses"
IDS_CREATE_REQ "Field yang ditandai dengan\nbintang adalah mandatori"
IDS_DELETE_STOP "Anda harus menghentikan layanan sebelum menghapus!"
diff --git a/reactos/base/applications/mscutils/servman/lang/it-IT.rc b/reactos/base/applications/mscutils/servman/lang/it-IT.rc
index ca325353cfe..b96b497750a 100644
--- a/reactos/base/applications/mscutils/servman/lang/it-IT.rc
+++ b/reactos/base/applications/mscutils/servman/lang/it-IT.rc
@@ -210,6 +210,8 @@ STRINGTABLE DISCARDABLE
BEGIN
IDS_PROGRESS_INFO_START "ReactOS sta avviando il seguente servizio"
IDS_PROGRESS_INFO_STOP "ReactOS sta fermando il seguente servizio"
+ IDS_PROGRESS_INFO_PAUSE "ReactOS is attempting to pause the following service"
+ IDS_PROGRESS_INFO_RESUME "ReactOS is attempting to resume the following service"
IDS_CREATE_SUCCESS "Servizio creato regolarmente"
IDS_CREATE_REQ "I campi marcati con un asterisco\nsono obbligatori"
IDS_DELETE_STOP "Devi fermare il servizio prima di cancellare!"
diff --git a/reactos/base/applications/mscutils/servman/lang/pl-PL.rc b/reactos/base/applications/mscutils/servman/lang/pl-PL.rc
index f1962c563f2..7e392e98ba9 100644
--- a/reactos/base/applications/mscutils/servman/lang/pl-PL.rc
+++ b/reactos/base/applications/mscutils/servman/lang/pl-PL.rc
@@ -217,6 +217,8 @@ STRINGTABLE DISCARDABLE
BEGIN
IDS_PROGRESS_INFO_START "ReactOS usi³uje uruchomiæ nastêpuj¹c¹ us³ugê"
IDS_PROGRESS_INFO_STOP "ReactOS usi³uje zatrzymaæ nastêpuj¹c¹ us³ugê"
+ IDS_PROGRESS_INFO_PAUSE "ReactOS is attempting to pause the following service"
+ IDS_PROGRESS_INFO_RESUME "ReactOS is attempting to resume the following service"
IDS_CREATE_SUCCESS "Us³uga utworzona pomyœlnie"
IDS_CREATE_REQ "Pole zaznaczone wraz z \ nasterix jest obowi¹zkowy"
IDS_DELETE_STOP "Musisz rêcznie zatrzymaæ us³ugê przed usuwaniem!"
diff --git a/reactos/base/applications/mscutils/servman/lang/ru-RU.rc b/reactos/base/applications/mscutils/servman/lang/ru-RU.rc
index 68f9068767b..ee2a409e2c7 100644
--- a/reactos/base/applications/mscutils/servman/lang/ru-RU.rc
+++ b/reactos/base/applications/mscutils/servman/lang/ru-RU.rc
@@ -209,6 +209,8 @@ STRINGTABLE DISCARDABLE
BEGIN
IDS_PROGRESS_INFO_START "ReactOS ïûòàåòñÿ çàïóñòèòü ñëóæáó"
IDS_PROGRESS_INFO_STOP "ReactOS ïûòàåòñÿ îñòàíîâèòü ñëóæáó"
+ IDS_PROGRESS_INFO_PAUSE "ReactOS is attempting to pause the following service"
+ IDS_PROGRESS_INFO_RESUME "ReactOS is attempting to resume the following service"
IDS_CREATE_SUCCESS "Ñîçäàíèå ñëóæáû óñïåøíî çàâåðøåíî"
IDS_CREATE_REQ "* = îáÿçàòåëüíûå ïîëÿ"
IDS_DELETE_STOP "Âû äîëæíû âðó÷íóþ îñòàíîâèòü ñëóæáó ïåðåä óäàëåíèåì!"
diff --git a/reactos/base/applications/mscutils/servman/lang/th-TH.rc b/reactos/base/applications/mscutils/servman/lang/th-TH.rc
index 1e3ae267e93..a48e278b2b1 100644
--- a/reactos/base/applications/mscutils/servman/lang/th-TH.rc
+++ b/reactos/base/applications/mscutils/servman/lang/th-TH.rc
@@ -219,6 +219,8 @@ STRINGTABLE DISCARDABLE
BEGIN
IDS_PROGRESS_INFO_START "ReactOS is attempting to start the following service"
IDS_PROGRESS_INFO_STOP "ReactOS is attempting to stop the following service"
+ IDS_PROGRESS_INFO_PAUSE "ReactOS is attempting to pause the following service"
+ IDS_PROGRESS_INFO_RESUME "ReactOS is attempting to resume the following service"
IDS_CREATE_SUCCESS "Service Created Succesfully"
IDS_CREATE_REQ "Fields marked with an\nasterix are mandatory"
IDS_DELETE_STOP "You must manually stop the service before deleting!"
diff --git a/reactos/base/applications/mscutils/servman/mainwnd.c b/reactos/base/applications/mscutils/servman/mainwnd.c
index f5974ed99fa..069b40ba1be 100644
--- a/reactos/base/applications/mscutils/servman/mainwnd.c
+++ b/reactos/base/applications/mscutils/servman/mainwnd.c
@@ -644,24 +644,16 @@ MainWndCommand(PMAIN_WND_INFO Info,
break;
case ID_STOP:
- {
if (DoStop(Info))
SetMenuAndButtonStates(Info);
- }
break;
case ID_PAUSE:
- {
- //Control(Info,
- // SERVICE_CONTROL_PAUSE);
- }
+ DoPause(Info);
break;
case ID_RESUME:
- {
- //Control(Info,
- // SERVICE_CONTROL_CONTINUE );
- }
+ DoResume(Info);
break;
case ID_RESTART:
diff --git a/reactos/base/applications/mscutils/servman/precomp.h b/reactos/base/applications/mscutils/servman/precomp.h
index 3775be8be1d..afb11d70eb2 100644
--- a/reactos/base/applications/mscutils/servman/precomp.h
+++ b/reactos/base/applications/mscutils/servman/precomp.h
@@ -60,23 +60,26 @@ HWND CreateMainWindow(LPCTSTR lpCaption, int nCmdShow);
BOOL DoStart(PMAIN_WND_INFO Info);
/* stop */
-BOOL DoStop(PMAIN_WND_INFO Info);
+
/* control */
-BOOL Control(PMAIN_WND_INFO Info, HWND hProgDlg, DWORD Control);
+BOOL DoStop(PMAIN_WND_INFO Info);
+BOOL DoPause(PMAIN_WND_INFO Info);
+BOOL DoResume(PMAIN_WND_INFO Info);
/* progress.c */
-HWND CreateProgressDialog(HWND hParent, LPTSTR lpServiceName);
+HWND CreateProgressDialog(HWND hParent, LPTSTR lpServiceName, UINT Event);
VOID IncrementProgressBar(HWND hProgDlg);
VOID CompleteProgressBar(HWND hProgDlg);
/* query.c */
ENUM_SERVICE_STATUS_PROCESS* GetSelectedService(PMAIN_WND_INFO Info);
-BOOL SetDescription(LPTSTR, LPTSTR);
-LPTSTR GetDescription(LPTSTR);
LPTSTR GetExecutablePath(PMAIN_WND_INFO Info);
BOOL RefreshServiceList(PMAIN_WND_INFO Info);
-//DWORD GetServiceList(PMAIN_WND_INFO Info);
+
+/* reg */
+BOOL SetDescription(LPTSTR, LPTSTR);
+LPTSTR GetDescription(LPTSTR);
/* propsheet.c */
LONG APIENTRY OpenPropSheet(PMAIN_WND_INFO Info);
diff --git a/reactos/base/applications/mscutils/servman/progress.c b/reactos/base/applications/mscutils/servman/progress.c
index 2e37a4bab0a..2a9d0024c85 100644
--- a/reactos/base/applications/mscutils/servman/progress.c
+++ b/reactos/base/applications/mscutils/servman/progress.c
@@ -96,7 +96,8 @@ ProgressDialogProc(HWND hDlg,
HWND
CreateProgressDialog(HWND hParent,
- LPTSTR lpServiceName)
+ LPTSTR lpServiceName,
+ UINT Event)
{
HWND hProgDlg;
TCHAR ProgDlgBuf[100];
@@ -113,7 +114,7 @@ CreateProgressDialog(HWND hParent,
/* write the info to the progress dialog */
LoadString(hInstance,
- IDS_PROGRESS_INFO_STOP,
+ Event,
ProgDlgBuf,
sizeof(ProgDlgBuf) / sizeof(TCHAR));
diff --git a/reactos/base/applications/mscutils/servman/res/exit.bmp b/reactos/base/applications/mscutils/servman/res/exit.bmp
deleted file mode 100644
index 97381f1f6f7..00000000000
Binary files a/reactos/base/applications/mscutils/servman/res/exit.bmp and /dev/null differ
diff --git a/reactos/base/applications/mscutils/servman/res/help.bmp b/reactos/base/applications/mscutils/servman/res/help.bmp
deleted file mode 100644
index 4c958c2e9a0..00000000000
Binary files a/reactos/base/applications/mscutils/servman/res/help.bmp and /dev/null differ
diff --git a/reactos/base/applications/mscutils/servman/resource.h b/reactos/base/applications/mscutils/servman/resource.h
index 631b5d9dc8d..a1de2b20dbe 100644
--- a/reactos/base/applications/mscutils/servman/resource.h
+++ b/reactos/base/applications/mscutils/servman/resource.h
@@ -164,11 +164,13 @@
/* progress bar */
-#define IDD_DLG_PROGRESS 7000
-#define IDC_SERVCON_PROGRESS 7001
-#define IDC_SERVCON_INFO 7002
-#define IDC_SERVCON_NAME 7003
-#define IDS_PROGRESS_INFO_START 7004
-#define IDS_PROGRESS_INFO_STOP 7005
+#define IDD_DLG_PROGRESS 7000
+#define IDC_SERVCON_PROGRESS 7001
+#define IDC_SERVCON_INFO 7002
+#define IDC_SERVCON_NAME 7003
+#define IDS_PROGRESS_INFO_START 7004
+#define IDS_PROGRESS_INFO_STOP 7005
+#define IDS_PROGRESS_INFO_PAUSE 7006
+#define IDS_PROGRESS_INFO_RESUME 7007
diff --git a/reactos/base/applications/mscutils/servman/rsrc.rc b/reactos/base/applications/mscutils/servman/rsrc.rc
index 5da110b338b..e7032a62b61 100644
--- a/reactos/base/applications/mscutils/servman/rsrc.rc
+++ b/reactos/base/applications/mscutils/servman/rsrc.rc
@@ -17,8 +17,6 @@ IDB_START BITMAP DISCARDABLE "res/start.bmp"
IDB_STOP BITMAP DISCARDABLE "res/stop.bmp"
IDB_PAUSE BITMAP DISCARDABLE "res/pause.bmp"
IDB_RESTART BITMAP DISCARDABLE "res/restart.bmp"
-IDB_HELP BITMAP DISCARDABLE "res/help.bmp"
-IDB_EXIT BITMAP DISCARDABLE "res/exit.bmp"
#include "lang/bg-BG.rc"
#include "lang/de-DE.rc"
@@ -29,5 +27,3 @@ IDB_EXIT BITMAP DISCARDABLE "res/exit.bmp"
#include "lang/pl-PL.rc"
#include "lang/ru-RU.rc"
#include "lang/th-TH.rc"
-
-
diff --git a/reactos/base/applications/mscutils/servman/servman.rbuild b/reactos/base/applications/mscutils/servman/servman.rbuild
index 6d9d8990286..363e93113e3 100644
--- a/reactos/base/applications/mscutils/servman/servman.rbuild
+++ b/reactos/base/applications/mscutils/servman/servman.rbuild
@@ -27,8 +27,7 @@
query.c
reg.c
servman.c
- start.c
- stop.c
+ start.c
servman.rc
precomp.h
diff --git a/reactos/base/applications/mscutils/servman/start.c b/reactos/base/applications/mscutils/servman/start.c
index bf0a8a99c23..120cecab1e5 100644
--- a/reactos/base/applications/mscutils/servman/start.c
+++ b/reactos/base/applications/mscutils/servman/start.c
@@ -130,7 +130,8 @@ DoStart(PMAIN_WND_INFO Info)
BOOL bRet = FALSE;
hProgDlg = CreateProgressDialog(Info->hMainWnd,
- Info->CurrentService->lpServiceName);
+ Info->CurrentService->lpServiceName,
+ IDS_PROGRESS_INFO_START);
if (hProgDlg)
{
diff --git a/reactos/base/applications/mscutils/servman/stop.c b/reactos/base/applications/mscutils/servman/stop.c
deleted file mode 100644
index 91126b007ae..00000000000
--- a/reactos/base/applications/mscutils/servman/stop.c
+++ /dev/null
@@ -1,30 +0,0 @@
-/*
- * PROJECT: ReactOS Services
- * LICENSE: GPL - See COPYING in the top level directory
- * FILE: base/applications/mscutils/servman/stop.c
- * PURPOSE: Stops a service
- * COPYRIGHT: Copyright 2005-2007 Ged Murphy
- *
- */
-
-#include "precomp.h"
-
-BOOL DoStop(PMAIN_WND_INFO Info)
-{
- BOOL ret = FALSE;
- HWND hProgDlg;
-
- hProgDlg = CreateProgressDialog(Info->hMainWnd,
- Info->CurrentService->lpServiceName);
-
- if (hProgDlg)
- {
- ret = Control(Info,
- hProgDlg,
- SERVICE_CONTROL_STOP);
-
- SendMessage(hProgDlg, WM_DESTROY, 0, 0);
- }
-
- return ret;
-}