1 /***********************************************************************\
2 *                                lmat.d                                 *
3 *                                                                       *
4 *                       Windows API header module                       *
5 *                                                                       *
6 *                 Translated from MinGW Windows headers                 *
7 *                                                                       *
8 *                       Placed into public domain                       *
9 \***********************************************************************/
10 module win32.lmat;
11 pragma(lib, "netapi32.lib");
12 
13 private import win32.lmcons, win32.windef;
14 
15 const JOB_RUN_PERIODICALLY = 1;
16 const JOB_EXEC_ERROR       = 2;
17 const JOB_RUNS_TODAY       = 4;
18 const JOB_ADD_CURRENT_DATE = 8;
19 const JOB_NONINTERACTIVE   = 16;
20 const JOB_INPUT_FLAGS      = JOB_RUN_PERIODICALLY | JOB_ADD_CURRENT_DATE
21                              | JOB_NONINTERACTIVE;
22 const 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 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 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 }