1 /*
2  * COPYRIGHT:       See COPYING in the top level directory
3  * PROJECT:         ReactOS net command
4  * FILE:            base/applications/network/net/cmdContinue.c
5  * PURPOSE:
6  *
7  * PROGRAMMERS:     Aleksandar Andrejevic <theflash AT sdf DOT lonestar DOT org>
8  */
9 
10 #include "net.h"
11 
12 INT cmdContinue(INT argc, WCHAR **argv)
13 {
14     SC_HANDLE hManager = NULL;
15     SC_HANDLE hService = NULL;
16     SERVICE_STATUS status;
17     INT nError = 0;
18     INT i;
19 
20     if (argc != 3)
21     {
22         ConResPuts(StdOut, IDS_GENERIC_SYNTAX);
23         ConResPuts(StdOut, IDS_CONTINUE_SYNTAX);
24         return 1;
25     }
26 
27     for (i = 2; i < argc; i++)
28     {
29         if (_wcsicmp(argv[i], L"/help") == 0)
30         {
31             ConResPuts(StdOut, IDS_GENERIC_SYNTAX);
32             ConResPuts(StdOut, IDS_CONTINUE_SYNTAX);
33             ConResPuts(StdOut, IDS_CONTINUE_HELP_1);
34             ConResPuts(StdOut, IDS_CONTINUE_HELP_2);
35             ConResPuts(StdOut, IDS_GENERIC_PAGE);
36             return 1;
37         }
38     }
39 
40     hManager = OpenSCManager(NULL, SERVICES_ACTIVE_DATABASE, SC_MANAGER_ENUMERATE_SERVICE);
41     if (hManager == NULL)
42     {
43         ConPrintf(StdErr, L"[OpenSCManager] Error: %ld\n", GetLastError());
44         nError = 1;
45         goto done;
46     }
47 
48     hService = OpenService(hManager, argv[2], SERVICE_PAUSE_CONTINUE);
49     if (hService == NULL)
50     {
51         ConPrintf(StdErr, L"[OpenService] Error: %ld\n", GetLastError());
52         nError = 1;
53         goto done;
54     }
55 
56     if (!ControlService(hService, SERVICE_CONTROL_CONTINUE, &status))
57     {
58         ConPrintf(StdErr, L"[ControlService] Error: %ld\n", GetLastError());
59         nError = 1;
60     }
61 
62 done:
63     if (hService != NULL)
64         CloseServiceHandle(hService);
65 
66     if (hManager != NULL)
67         CloseServiceHandle(hManager);
68 
69     return nError;
70 }
71 
72 /* EOF */
73 
74