// Licensed under the Apache License, Version 2.0 // or the MIT license // , at your option. // All files in the project carrying such notice may not be copied, modified, or distributed // except according to those terms. //! This file contains structures for communication with the Alerter service use shared::lmcons::{EVLEN, NET_API_STATUS, SNLEN}; use shared::minwindef::{DWORD, LPVOID}; use um::winnt::{LPCWSTR, WCHAR}; extern "system" { pub fn NetAlertRaise( AlertType: LPCWSTR, Buffer: LPVOID, BufferSize: DWORD, ) -> NET_API_STATUS; pub fn NetAlertRaiseEx( AlertType: LPCWSTR, VariableInfo: LPVOID, VariableInfoSize: DWORD, ServiceName: LPCWSTR, ) -> NET_API_STATUS; } STRUCT!{struct STD_ALERT { alrt_timestamp: DWORD, alrt_eventname: [WCHAR; EVLEN + 1], alrt_servicename: [WCHAR; SNLEN + 1], }} pub type PSTD_ALERT = *mut STD_ALERT; pub type LPSTD_ALERT = *mut STD_ALERT; STRUCT!{struct ADMIN_OTHER_INFO { alrtad_errcode: DWORD, alrtad_numstrings: DWORD, }} pub type PADMIN_OTHER_INFO = *mut ADMIN_OTHER_INFO; pub type LPADMIN_OTHER_INFO = *mut ADMIN_OTHER_INFO; STRUCT!{struct ERRLOG_OTHER_INFO { alrter_errcode: DWORD, alrter_offset: DWORD, }} pub type PERRLOG_OTHER_INFO = *mut ERRLOG_OTHER_INFO; pub type LPERRLOG_OTHER_INFO = *mut ERRLOG_OTHER_INFO; STRUCT!{struct PRINT_OTHER_INFO { alrtpr_jobid: DWORD, alrtpr_status: DWORD, alrtpr_submitted: DWORD, alrtpr_size: DWORD, }} pub type PPRINT_OTHER_INFO = *mut PRINT_OTHER_INFO; pub type LPPRINT_OTHER_INFO = *mut PRINT_OTHER_INFO; STRUCT!{struct USER_OTHER_INFO { alrtus_errcode: DWORD, alrtus_numstrings: DWORD, }} pub type PUSER_OTHER_INFO = *mut USER_OTHER_INFO; pub type LPUSER_OTHER_INFO = *mut USER_OTHER_INFO; pub const ALERTER_MAILSLOT: &'static str = "\\\\.\\MAILSLOT\\Alerter"; pub const ALERT_PRINT_EVENT: &'static str = "PRINTING"; pub const ALERT_MESSAGE_EVENT: &'static str = "MESSAGE"; pub const ALERT_ERRORLOG_EVENT: &'static str = "ERRORLOG"; pub const ALERT_ADMIN_EVENT: &'static str = "ADMIN"; pub const ALERT_USER_EVENT: &'static str = "USER"; pub const PRJOB_QSTATUS: DWORD = 0x3; pub const PRJOB_DEVSTATUS: DWORD = 0x1fc; pub const PRJOB_COMPLETE: DWORD = 0x4; pub const PRJOB_INTERV: DWORD = 0x8; pub const PRJOB_ERROR: DWORD = 0x10; pub const PRJOB_DESTOFFLINE: DWORD = 0x20; pub const PRJOB_DESTPAUSED: DWORD = 0x40; pub const PRJOB_NOTIFY: DWORD = 0x80; pub const PRJOB_DESTNOPAPER: DWORD = 0x100; pub const PRJOB_DELETED: DWORD = 0x8000; pub const PRJOB_QS_QUEUED: DWORD = 0; pub const PRJOB_QS_PAUSED: DWORD = 1; pub const PRJOB_QS_SPOOLING: DWORD = 2; pub const PRJOB_QS_PRINTING: DWORD = 3;