1 /*
2 * PROJECT: ReactOS system libraries
3 * LICENSE: GPL - See COPYING in the top level directory
4 * FILE: dll/win32/wlnotify/schedsvc.c
5 * PURPOSE: Scheduler service logon notifications
6 * PROGRAMMER: Eric Kohl <eric.kohl@reactos.org>
7 */
8
9 #include "precomp.h"
10 #include <winsvc.h>
11
12 WINE_DEFAULT_DEBUG_CHANNEL(wlnotify);
13
14
15 VOID
16 WINAPI
SchedEventLogoff(PWLX_NOTIFICATION_INFO pInfo)17 SchedEventLogoff(
18 PWLX_NOTIFICATION_INFO pInfo)
19 {
20 #if 0
21 SC_HANDLE hManager = NULL;
22 SC_HANDLE hService = NULL;
23 SERVICE_STATUS ServiceStatus;
24 #endif
25
26 TRACE("SchedEventLogoff\n");
27 TRACE("Size: %lu\n", pInfo->Size);
28 TRACE("Flags: %lx\n", pInfo->Flags);
29 TRACE("UserName: %S\n", pInfo->UserName);
30 TRACE("Domain: %S\n", pInfo->Domain);
31 TRACE("WindowStation: %S\n", pInfo->WindowStation);
32 TRACE("hToken: %p\n", pInfo->hToken);
33 TRACE("hDesktop: %p\n", pInfo->hDesktop);
34 TRACE("pStatusCallback: %p\n", pInfo->pStatusCallback);
35
36 #if 0
37 hManager = OpenSCManagerW(NULL, NULL, SC_MANAGER_CONNECT);
38 if (hManager == NULL)
39 {
40 WARN("OpenSCManagerW() failed (Error %lu)\n", GetLastError());
41 goto done;
42 }
43
44 hService = OpenServiceW(hManager, L"Schedule", SERVICE_USER_DEFINED_CONTROL);
45 if (hManager == NULL)
46 {
47 WARN("OpenServiceW() failed (Error %lu)\n", GetLastError());
48 goto done;
49 }
50
51 if (!ControlService(hService, 129, &ServiceStatus))
52 {
53 WARN("ControlService() failed (Error %lu)\n", GetLastError());
54 }
55
56 done:
57 if (hService != NULL)
58 CloseServiceHandle(hService);
59
60 if (hManager != NULL)
61 CloseServiceHandle(hManager);
62 #endif
63 }
64
65
66 VOID
67 WINAPI
SchedStartShell(PWLX_NOTIFICATION_INFO pInfo)68 SchedStartShell(
69 PWLX_NOTIFICATION_INFO pInfo)
70 {
71 SC_HANDLE hManager = NULL;
72 SC_HANDLE hService = NULL;
73 SERVICE_STATUS ServiceStatus;
74
75 TRACE("SchedStartShell\n");
76 TRACE("Size: %lu\n", pInfo->Size);
77 TRACE("Flags: %lx\n", pInfo->Flags);
78 TRACE("UserName: %S\n", pInfo->UserName);
79 TRACE("Domain: %S\n", pInfo->Domain);
80 TRACE("WindowStation: %S\n", pInfo->WindowStation);
81 TRACE("hToken: %p\n", pInfo->hToken);
82 TRACE("hDesktop: %p\n", pInfo->hDesktop);
83 TRACE("pStatusCallback: %p\n", pInfo->pStatusCallback);
84
85 hManager = OpenSCManagerW(NULL, NULL, SC_MANAGER_CONNECT);
86 if (hManager == NULL)
87 {
88 WARN("OpenSCManagerW() failed (Error %lu)\n", GetLastError());
89 goto done;
90 }
91
92 hService = OpenServiceW(hManager, L"Schedule", SERVICE_USER_DEFINED_CONTROL);
93 if (hManager == NULL)
94 {
95 WARN("OpenServiceW() failed (Error %lu)\n", GetLastError());
96 goto done;
97 }
98
99 if (!ControlService(hService, 128, &ServiceStatus))
100 {
101 WARN("ControlService() failed (Error %lu)\n", GetLastError());
102 }
103
104 done:
105 if (hService != NULL)
106 CloseServiceHandle(hService);
107
108 if (hManager != NULL)
109 CloseServiceHandle(hManager);
110 }
111
112 /* EOF */
113