1 /**
2  * Windows API header module
3  *
4  * Translated from MinGW Windows headers
5  *
6  * License: $(LINK2 http://www.boost.org/LICENSE_1_0.txt, Boost License 1.0)
7  * Source: $(DRUNTIMESRC src/core/sys/windows/_lmat.d)
8  */
9 module core.sys.windows.lmat;
10 version (Windows):
11 pragma(lib, "netapi32");
12 
13 private import core.sys.windows.lmcons, core.sys.windows.windef;
14 
15 enum JOB_RUN_PERIODICALLY = 1;
16 enum JOB_EXEC_ERROR       = 2;
17 enum JOB_RUNS_TODAY       = 4;
18 enum JOB_ADD_CURRENT_DATE = 8;
19 enum JOB_NONINTERACTIVE   = 16;
20 enum JOB_INPUT_FLAGS      = JOB_RUN_PERIODICALLY | JOB_ADD_CURRENT_DATE
21                              | JOB_NONINTERACTIVE;
22 enum JOB_OUTPUT_FLAGS     = JOB_RUN_PERIODICALLY | JOB_EXEC_ERROR
23                              | JOB_RUNS_TODAY | JOB_NONINTERACTIVE;
24 
25 struct AT_ENUM {
26     DWORD JobId;
27     DWORD_PTR JobTime;
28     DWORD DaysOfMonth;
29     UCHAR DaysOfWeek;
30     UCHAR Flags;
31     LPWSTR Command;
32 }
33 alias AT_ENUM* PAT_ENUM, LPAT_ENUM;
34 
35 struct AT_INFO {
36     DWORD_PTR JobTime;
37     DWORD DaysOfMonth;
38     UCHAR DaysOfWeek;
39     UCHAR Flags;
40     LPWSTR Command;
41 }
42 alias AT_INFO* PAT_INFO, LPAT_INFO;
43 
44 extern (Windows) {
45     NET_API_STATUS NetScheduleJobAdd(LPWSTR, PBYTE, LPDWORD);
46     NET_API_STATUS NetScheduleJobDel(LPWSTR, DWORD, DWORD);
47     NET_API_STATUS NetScheduleJobEnum(LPWSTR, PBYTE*, DWORD, PDWORD, PDWORD,
48       PDWORD);
49     NET_API_STATUS NetScheduleJobGetInfo(LPWSTR, DWORD, PBYTE*);
50 }
51