159 lines
3.5 KiB
C
159 lines
3.5 KiB
C
|
/*++ BUILD Version: 0003 // Increment this if a change has global effects
|
||
|
|
||
|
Copyright (c) 1991-1999 Microsoft Corporation
|
||
|
|
||
|
Module Name:
|
||
|
|
||
|
alert.h
|
||
|
|
||
|
Abstract:
|
||
|
|
||
|
This file contains structures for communication with the Alerter
|
||
|
service.
|
||
|
|
||
|
Environment:
|
||
|
|
||
|
User Mode - Win32
|
||
|
|
||
|
Notes:
|
||
|
|
||
|
You must include LmCons.H before this file, since this file depends
|
||
|
on values defined in LmCons.H.
|
||
|
|
||
|
ALERT.H includes ALERTMSG.H which defines the alert message numbers
|
||
|
|
||
|
|
||
|
--*/
|
||
|
|
||
|
|
||
|
#ifndef _ALERT_
|
||
|
#define _ALERT_
|
||
|
|
||
|
#if _MSC_VER > 1000
|
||
|
#pragma once
|
||
|
#endif
|
||
|
|
||
|
#ifdef __cplusplus
|
||
|
extern "C" {
|
||
|
#endif
|
||
|
|
||
|
//
|
||
|
// Function Prototypes
|
||
|
//
|
||
|
|
||
|
NET_API_STATUS NET_API_FUNCTION
|
||
|
NetAlertRaise(
|
||
|
IN LPCWSTR AlertEventName,
|
||
|
IN LPVOID Buffer,
|
||
|
IN DWORD BufferSize
|
||
|
);
|
||
|
|
||
|
NET_API_STATUS NET_API_FUNCTION
|
||
|
NetAlertRaiseEx(
|
||
|
IN LPCWSTR AlertEventName,
|
||
|
IN LPVOID VariableInfo,
|
||
|
IN DWORD VariableInfoSize,
|
||
|
IN LPCWSTR ServiceName
|
||
|
);
|
||
|
|
||
|
|
||
|
//
|
||
|
// Data Structures
|
||
|
//
|
||
|
|
||
|
typedef struct _STD_ALERT {
|
||
|
DWORD alrt_timestamp;
|
||
|
WCHAR alrt_eventname[EVLEN + 1];
|
||
|
WCHAR alrt_servicename[SNLEN + 1];
|
||
|
}STD_ALERT, *PSTD_ALERT, *LPSTD_ALERT;
|
||
|
|
||
|
typedef struct _ADMIN_OTHER_INFO {
|
||
|
DWORD alrtad_errcode;
|
||
|
DWORD alrtad_numstrings;
|
||
|
}ADMIN_OTHER_INFO, *PADMIN_OTHER_INFO, *LPADMIN_OTHER_INFO;
|
||
|
|
||
|
typedef struct _ERRLOG_OTHER_INFO {
|
||
|
DWORD alrter_errcode;
|
||
|
DWORD alrter_offset;
|
||
|
}ERRLOG_OTHER_INFO, *PERRLOG_OTHER_INFO, *LPERRLOG_OTHER_INFO;
|
||
|
|
||
|
typedef struct _PRINT_OTHER_INFO {
|
||
|
DWORD alrtpr_jobid;
|
||
|
DWORD alrtpr_status;
|
||
|
DWORD alrtpr_submitted;
|
||
|
DWORD alrtpr_size;
|
||
|
}PRINT_OTHER_INFO, *PPRINT_OTHER_INFO, *LPPRINT_OTHER_INFO;
|
||
|
|
||
|
typedef struct _USER_OTHER_INFO {
|
||
|
DWORD alrtus_errcode;
|
||
|
DWORD alrtus_numstrings;
|
||
|
}USER_OTHER_INFO, *PUSER_OTHER_INFO, *LPUSER_OTHER_INFO;
|
||
|
|
||
|
//
|
||
|
// Special Values and Constants
|
||
|
//
|
||
|
|
||
|
//
|
||
|
// Name of mailslot to send alert notifications
|
||
|
//
|
||
|
#define ALERTER_MAILSLOT L"\\\\.\\MAILSLOT\\Alerter"
|
||
|
|
||
|
//
|
||
|
// The following macro gives a pointer to the other_info data.
|
||
|
// It takes an alert structure and returns a pointer to structure
|
||
|
// beyond the standard portion.
|
||
|
//
|
||
|
|
||
|
#define ALERT_OTHER_INFO(x) ((LPBYTE)(x) + sizeof(STD_ALERT))
|
||
|
|
||
|
//
|
||
|
// The following macro gives a pointer to the variable-length data.
|
||
|
// It takes a pointer to one of the other-info structs and returns a
|
||
|
// pointer to the variable data portion.
|
||
|
//
|
||
|
|
||
|
#define ALERT_VAR_DATA(p) ((LPBYTE)(p) + sizeof(*p))
|
||
|
|
||
|
//
|
||
|
// Names of standard Microsoft-defined alert events.
|
||
|
//
|
||
|
|
||
|
#define ALERT_PRINT_EVENT L"PRINTING"
|
||
|
#define ALERT_MESSAGE_EVENT L"MESSAGE"
|
||
|
#define ALERT_ERRORLOG_EVENT L"ERRORLOG"
|
||
|
#define ALERT_ADMIN_EVENT L"ADMIN"
|
||
|
#define ALERT_USER_EVENT L"USER"
|
||
|
|
||
|
//
|
||
|
// Bitmap masks for prjob_status field of PRINTJOB.
|
||
|
//
|
||
|
|
||
|
// 2-7 bits also used in device status
|
||
|
|
||
|
#define PRJOB_QSTATUS 0x3 // Bits 0,1
|
||
|
#define PRJOB_DEVSTATUS 0x1fc // 2-8 bits
|
||
|
#define PRJOB_COMPLETE 0x4 // Bit 2
|
||
|
#define PRJOB_INTERV 0x8 // Bit 3
|
||
|
#define PRJOB_ERROR 0x10 // Bit 4
|
||
|
#define PRJOB_DESTOFFLINE 0x20 // Bit 5
|
||
|
#define PRJOB_DESTPAUSED 0x40 // Bit 6
|
||
|
#define PRJOB_NOTIFY 0x80 // BIT 7
|
||
|
#define PRJOB_DESTNOPAPER 0x100 // BIT 8
|
||
|
#define PRJOB_DELETED 0x8000 // BIT 15
|
||
|
|
||
|
//
|
||
|
// Values of PRJOB_QSTATUS bits in prjob_status field of PRINTJOB.
|
||
|
//
|
||
|
|
||
|
#define PRJOB_QS_QUEUED 0
|
||
|
#define PRJOB_QS_PAUSED 1
|
||
|
#define PRJOB_QS_SPOOLING 2
|
||
|
#define PRJOB_QS_PRINTING 3
|
||
|
|
||
|
|
||
|
#ifdef __cplusplus
|
||
|
}
|
||
|
#endif
|
||
|
|
||
|
#endif // _ALERT_
|