Time to commit some Work-In-Progress stuff before my diff gets too large..
[reactos.git] / reactos / win32ss / printing / base / spoolsv / init.c
1 /*
2 * PROJECT: ReactOS Print Spooler Service
3 * LICENSE: GNU GPLv2 or any later version as published by the Free Software Foundation
4 * PURPOSE: Various initialization functions
5 * COPYRIGHT: Copyright 2015 Colin Finck <colin@reactos.org>
6 */
7
8 #include "precomp.h"
9
10 DWORD
11 _RpcSpoolerInit()
12 {
13 DWORD dwErrorCode;
14
15 // Call SpoolerInit in the security context of the client.
16 // This delay-loads spoolss.dll in the user context and all further calls to functions in spoolss.dll will be done in the user context as well.
17 dwErrorCode = RpcImpersonateClient(NULL);
18 if (dwErrorCode != ERROR_SUCCESS)
19 {
20 ERR("RpcImpersonateClient failed with error %lu!\n", dwErrorCode);
21 return dwErrorCode;
22 }
23
24 dwErrorCode = SpoolerInit();
25 if (dwErrorCode != ERROR_SUCCESS)
26 {
27 ERR("SpoolerInit failed with error %lu!\n", dwErrorCode);
28 RpcRevertToSelf();
29 return dwErrorCode;
30 }
31
32 return RpcRevertToSelf();
33 }