1 /***********************************************************************\
2 *                               lmalert.d                               *
3 *                                                                       *
4 *                       Windows API header module                       *
5 *                                                                       *
6 *                 Translated from MinGW Windows headers                 *
7 *                                                                       *
8 *                       Placed into public domain                       *
9 \***********************************************************************/
10 module win32.lmalert;
11 pragma(lib, "netapi32.lib");
12 
13 private import win32.lmcons, win32.windef;
14 
15 const TCHAR[]
16 	ALERTER_MAILSLOT     = `\\.\MAILSLOT\Alerter`,
17 	ALERT_PRINT_EVENT    = "PRINTING",
18 	ALERT_MESSAGE_EVENT  = "MESSAGE",
19 	ALERT_ERRORLOG_EVENT = "ERRORLOG",
20 	ALERT_ADMIN_EVENT    = "ADMIN",
21 	ALERT_USER_EVENT     = "USER";
22 //MACRO #define ALERT_OTHER_INFO(x) ((PBYTE)(x)+sizeof(STD_ALERT))
23 
24 //MACRO #define ALERT_VAR_DATA(p) ((PBYTE)(p)+sizeof(*p))
25 
26 const PRJOB_QSTATUS     = 3;
27 const PRJOB_DEVSTATUS   = 508;
28 const PRJOB_COMPLETE    = 4;
29 const PRJOB_INTERV      = 8;
30 const PRJOB_            = 16;
31 const PRJOB_DESTOFFLINE = 32;
32 const PRJOB_DESTPAUSED  = 64;
33 const PRJOB_NOTIFY      = 128;
34 const PRJOB_DESTNOPAPER = 256;
35 const PRJOB_DELETED     = 32768;
36 const PRJOB_QS_QUEUED   = 0;
37 const PRJOB_QS_PAUSED   = 1;
38 const PRJOB_QS_SPOOLING = 2;
39 const PRJOB_QS_PRINTING = 3;
40 
41 struct ADMIN_OTHER_INFO{
42 	DWORD alrtad_errcode;
43 	DWORD alrtad_numstrings;
44 }
45 alias ADMIN_OTHER_INFO* PADMIN_OTHER_INFO, LPADMIN_OTHER_INFO;
46 
47 struct STD_ALERT{
48 	DWORD alrt_timestamp;
49 	TCHAR alrt_eventname[EVLEN+1];
50 	TCHAR alrt_servicename[SNLEN+1];
51 }
52 alias STD_ALERT* PSTD_ALERT, LPSTD_ALERT;
53 
54 struct ERRLOG_OTHER_INFO{
55 	DWORD alrter_errcode;
56 	DWORD alrter_offset;
57 }
58 alias ERRLOG_OTHER_INFO* PERRLOG_OTHER_INFO, LPERRLOG_OTHER_INFO;
59 
60 struct PRINT_OTHER_INFO{
61 	DWORD alrtpr_jobid;
62 	DWORD alrtpr_status;
63 	DWORD alrtpr_submitted;
64 	DWORD alrtpr_size;
65 }
66 alias PRINT_OTHER_INFO* PPRINT_OTHER_INFO, LPPRINT_OTHER_INFO;
67 
68 struct USER_OTHER_INFO{
69 	DWORD alrtus_errcode;
70 	DWORD alrtus_numstrings;
71 }
72 alias USER_OTHER_INFO* PUSER_OTHER_INFO, LPUSER_OTHER_INFO;
73 
74 extern (Windows) {
75 NET_API_STATUS NetAlertRaise(LPCWSTR,PVOID,DWORD);
76 NET_API_STATUS NetAlertRaiseEx(LPCWSTR,PVOID,DWORD,LPCWSTR);
77 }