2345 lines
90 KiB
C
2345 lines
90 KiB
C
/*
|
|
* winspool.h Win32 spooler functions
|
|
*
|
|
* =========================================================================
|
|
*
|
|
* Open Watcom Project
|
|
*
|
|
* Copyright (c) 2004-2010 The Open Watcom Contributors. All Rights Reserved.
|
|
*
|
|
* This file is automatically generated. Do not edit directly.
|
|
*
|
|
* =========================================================================
|
|
*/
|
|
|
|
#ifndef _WINSPOOL_
|
|
#define _WINSPOOL_
|
|
|
|
#ifndef _ENABLE_AUTODEPEND
|
|
#pragma read_only_file;
|
|
#endif
|
|
|
|
#include <prsht.h>
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
/* Printer actions */
|
|
#define DSPRINT_PUBLISH 0x00000001L
|
|
#define DSPRINT_UPDATE 0x00000002L
|
|
#define DSPRINT_UNPUBLISH 0x00000004L
|
|
#define DSPRINT_REPUBLISH 0x00000008L
|
|
#define DSPRINT_PENDING 0x80000000L
|
|
|
|
/* SetPrinter() commands */
|
|
#define PRINTER_CONTROL_PAUSE 1L
|
|
#define PRINTER_CONTROL_RESUME 2L
|
|
#define PRINTER_CONTROL_PURGE 3L
|
|
#define PRINTER_CONTROL_SET_STATUS 4L
|
|
|
|
/* Printer status flags */
|
|
#define PRINTER_STATUS_PAUSED 0x00000001L
|
|
#define PRINTER_STATUS_ERROR 0x00000002L
|
|
#define PRINTER_STATUS_PENDING_DELETION 0x00000004L
|
|
#define PRINTER_STATUS_PAPER_JAM 0x00000008L
|
|
#define PRINTER_STATUS_PAPER_OUT 0x00000010L
|
|
#define PRINTER_STATUS_MANUAL_FEED 0x00000020L
|
|
#define PRINTER_STATUS_PAPER_PROBLEM 0x00000040L
|
|
#define PRINTER_STATUS_OFFLINE 0x00000080L
|
|
#define PRINTER_STATUS_IO_ACTIVE 0x00000100L
|
|
#define PRINTER_STATUS_BUSY 0x00000200L
|
|
#define PRINTER_STATUS_PRINTING 0x00000400L
|
|
#define PRINTER_STATUS_OUTPUT_BIN_FULL 0x00000800L
|
|
#define PRINTER_STATUS_NOT_AVAILABLE 0x00001000L
|
|
#define PRINTER_STATUS_WAITING 0x00002000L
|
|
#define PRINTER_STATUS_PROCESSING 0x00004000L
|
|
#define PRINTER_STATUS_INITIALIZING 0x00008000L
|
|
#define PRINTER_STATUS_WARMING_UP 0x00010000L
|
|
#define PRINTER_STATUS_TONER_LOW 0x00020000L
|
|
#define PRINTER_STATUS_NO_TONER 0x00040000L
|
|
#define PRINTER_STATUS_PAGE_PUNT 0x00080000L
|
|
#define PRINTER_STATUS_USER_INTERVENTION 0x00100000L
|
|
#define PRINTER_STATUS_OUT_OF_MEMORY 0x00200000L
|
|
#define PRINTER_STATUS_DOOR_OPEN 0x00400000L
|
|
#define PRINTER_STATUS_SERVER_UNKNOWN 0x00800000L
|
|
#define PRINTER_STATUS_POWER_SAVE 0x01000000L
|
|
#define PRINTER_STATUS_SERVER_OFFLINE 0x02000000L
|
|
#define PRINTER_STATUS_DRIVER_UPDATE_NEEDED 0x04000000L
|
|
|
|
/* Printer attributes */
|
|
#define PRINTER_ATTRIBUTE_QUEUED 0x00000001L
|
|
#define PRINTER_ATTRIBUTE_DIRECT 0x00000002L
|
|
#define PRINTER_ATTRIBUTE_DEFAULT 0x00000004L
|
|
#define PRINTER_ATTRIBUTE_SHARED 0x00000008L
|
|
#define PRINTER_ATTRIBUTE_NETWORK 0x00000010L
|
|
#define PRINTER_ATTRIBUTE_HIDDEN 0x00000020L
|
|
#define PRINTER_ATTRIBUTE_LOCAL 0x00000040L
|
|
#define PRINTER_ATTRIBUTE_ENABLE_DEVQ 0x00000080L
|
|
#define PRINTER_ATTRIBUTE_KEEPPRINTEDJOBS 0x00000100L
|
|
#define PRINTER_ATTRIBUTE_DO_COMPLETE_FIRST 0x00000200L
|
|
#define PRINTER_ATTRIBUTE_WORK_OFFLINE 0x00000400L
|
|
#define PRINTER_ATTRIBUTE_ENABLE_BIDI 0x00000800L
|
|
#define PRINTER_ATTRIBUTE_RAW_ONLY 0x00001000L
|
|
#define PRINTER_ATTRIBUTE_PUBLISHED 0x00002000L
|
|
#if (NTDDI_VERSION >= 0x05010000)
|
|
#define PRINTER_ATTRIBUTE_FAX 0x00004000L
|
|
#endif
|
|
#if (NTDDI_VERSION >= 0x05020000) || (((NTDDI_VERSION & 0xFFFF0000L) == 0x05000000L) && \
|
|
((NTDDI_VERSION & 0x0000FF00L) >= 0x00000400L))
|
|
#define PRINTER_ATTRIBUTE_TS 0x00008000L
|
|
#endif
|
|
#if (NTDDI_VERSION >= 0x06000000)
|
|
#define PRINTER_ATTRIBUTE_PUSHED_USER 0x00020000L
|
|
#define PRINTER_ATTRIBUTE_PUSHED_MACHINE 0x00040000L
|
|
#define PRINTER_ATTRIBUTE_MACHINE 0x00080000L
|
|
#define PRINTER_ATTRIBUTE_FRIENDLY_NAME 0x00100000L
|
|
#define PRINTER_ATTRIBUTE_TS_GENERIC_DRIVER 0x00200000L
|
|
#endif
|
|
|
|
/* Job priority special values */
|
|
#define NO_PRIORITY 0L
|
|
#define MAX_PRIORITY 99L
|
|
#define MIN_PRIORITY 1L
|
|
#define DEF_PRIORITY 1L
|
|
|
|
/* SetJob() commands */
|
|
#define JOB_CONTROL_PAUSE 1L
|
|
#define JOB_CONTROL_RESUME 2L
|
|
#define JOB_CONTROL_CANCEL 3L
|
|
#define JOB_CONTROL_RESTART 4L
|
|
#define JOB_CONTROL_DELETE 5L
|
|
#define JOB_CONTROL_SENT_TO_PRINTER 6L
|
|
#define JOB_CONTROL_LAST_PAGE_EJECTED 7L
|
|
#if (NTDDI_VERSION >= 0x06000000)
|
|
#define JOB_CONTROL_RETAIN 8L
|
|
#define JOB_CONTROL_RELEASE 9L
|
|
#endif
|
|
|
|
/* Job status flags */
|
|
#define JOB_STATUS_PAUSED 0x00000001L
|
|
#define JOB_STATUS_ERROR 0x00000002L
|
|
#define JOB_STATUS_DELETING 0x00000004L
|
|
#define JOB_STATUS_SPOOLING 0x00000008L
|
|
#define JOB_STATUS_PRINTING 0x00000010L
|
|
#define JOB_STATUS_OFFLINE 0x00000020L
|
|
#define JOB_STATUS_PAPEROUT 0x00000040L
|
|
#define JOB_STATUS_PRINTED 0x00000080L
|
|
#define JOB_STATUS_DELETED 0x00000100L
|
|
#define JOB_STATUS_BLOCKED_DEVQ 0x00000200L
|
|
#define JOB_STATUS_USER_INTERVENTION 0x00000400L
|
|
#define JOB_STATUS_RESTART 0x00000800L
|
|
#if (NTDDI_VERSION >= 0x05010000)
|
|
#define JOB_STATUS_COMPLETE 0x00001000L
|
|
#endif
|
|
#if (NTDDI_VERSION >= 0x06000000)
|
|
#define JOB_STATUS_RETAINED 0x00002000L
|
|
#define JOB_STATUS_RENDERING_LOCALLY 0x00004000L
|
|
#endif
|
|
|
|
/* Job position special value */
|
|
#define JOB_POSITION_UNSPECIFIED 0L
|
|
|
|
/* Printer driver attributes */
|
|
#define PRINTER_DRIVER_PACKAGE_AWARE 0x00000001L
|
|
#define PRINTER_DRIVER_SANDBOX_ENABLED 0x00000004L
|
|
|
|
/* Driver attribute flags */
|
|
#define DRIVER_KERNELMODE 0x00000001L
|
|
#define DRIVER_USERMODE 0x00000002L
|
|
|
|
/* DeletePrinterDriverEx() flags */
|
|
#define DPD_DELETE_UNUSED_FILES 0x00000001L
|
|
#define DPD_DELETE_SPECIFIC_VERSION 0x00000002L
|
|
#define DPD_DELETE_ALL_FILES 0x00000004L
|
|
|
|
/* AddPrinterDriverEx() flags */
|
|
#define APD_STRICT_UPGRADE 0x00000001L
|
|
#define APD_STRICT_DOWNGRADE 0x00000002L
|
|
#define APD_COPY_ALL_FILES 0x00000004L
|
|
#define APD_COPY_NEW_FILES 0x00000008L
|
|
#if (NTDDI_VERSION >= 0x05010000)
|
|
#define APD_COPY_FROM_DIRECTORY 0x00000010L
|
|
#endif
|
|
|
|
/* String types */
|
|
#if (NTDDI_VERSION >= 0x06000000)
|
|
#define STRING_NONE 0x00000001L
|
|
#define STRING_MUIDLL 0x00000002L
|
|
#define STRING_LANGPAIR 0x00000004L
|
|
#endif
|
|
|
|
/* Maximum form keyword length */
|
|
#if (NTDDI_VERSION >= 0x06000000)
|
|
#define MAX_FORM_KEYWORD_LENGTH 64
|
|
#endif
|
|
|
|
/* Document information modes */
|
|
#define DI_CHANNEL 1L
|
|
|
|
/* Document information flags */
|
|
#define DI_MEMORYMAP_WRITE 0x00000001L
|
|
|
|
/* Form information flags */
|
|
#define FORM_USER 0x00000000L
|
|
#define FORM_BUILTIN 0x00000001L
|
|
#define FORM_PRINTER 0x00000002L
|
|
|
|
/* Page order flags */
|
|
#if (NTDDI_VERSION >= 0x05010000)
|
|
#define NORMAL_PRINT 0x00000000L
|
|
#define REVERSE_PRINT 0x00000001L
|
|
#endif
|
|
|
|
/* Direction capabilities */
|
|
#if (NTDDI_VERSION >= 0x06000000)
|
|
#define PPCAPS_RIGHT_THEN_DOWN 0x00000001L
|
|
#define PPCAPS_DOWN_THEN_RIGHT 0x00000002L
|
|
#define PPCAPS_LEFT_THEN_DOWN 0x00000004L
|
|
#define PPCAPS_DOWN_THEN_LEFT 0x00000008L
|
|
#endif
|
|
|
|
/* Border capabilities */
|
|
#if (NTDDI_VERSION >= 0x06000000)
|
|
#define PPCAPS_BORDER_PRINT 0x00000001L
|
|
#endif
|
|
|
|
/* Booklet handling capabilities */
|
|
#if (NTDDI_VERSION >= 0x06000000)
|
|
#define PPCAPS_BOOKLET_EDGE 0x00000001L
|
|
#endif
|
|
|
|
/* Duplex handling capabilities */
|
|
#if (NTDDI_VERSION >= 0x06000000)
|
|
#define PPCAPS_REVERSE_PAGES_FOR_REVERSE_DUPLEX 0x00000001L
|
|
#define PPCAPS_DONT_SEND_EXTRA_PAGES_FOR_DUPLEX 0x00000002L
|
|
#endif
|
|
|
|
/* Scaling capabilities */
|
|
#if (NTDDI_VERSION >= 0x06000000)
|
|
#define PPCAPS_SQUARE_SCALING 0x00000001L
|
|
#endif
|
|
|
|
/* Port types */
|
|
#define PORT_TYPE_WRITE 0x00000001L
|
|
#define PORT_TYPE_READ 0x00000002L
|
|
#define PORT_TYPE_REDIRECTED 0x00000004L
|
|
#define PORT_TYPE_NET_ATTACHED 0x00000008L
|
|
|
|
/* Port status types */
|
|
#define PORT_STATUS_TYPE_ERROR 1L
|
|
#define PORT_STATUS_TYPE_WARNING 2L
|
|
#define PORT_STATUS_TYPE_INFO 3L
|
|
|
|
/* Port status */
|
|
#define PORT_STATUS_OFFLINE 1L
|
|
#define PORT_STATUS_PAPER_JAM 2L
|
|
#define PORT_STATUS_PAPER_OUT 3L
|
|
#define PORT_STATUS_OUTPUT_BIN_FULL 4L
|
|
#define PORT_STATUS_PAPER_PROBLEM 5L
|
|
#define PORT_STATUS_NO_TONER 6L
|
|
#define PORT_STATUS_DOOR_OPEN 7L
|
|
#define PORT_STATUS_USER_INTERVENTION 8L
|
|
#define PORT_STATUS_OUT_OF_MEMORY 9L
|
|
#define PORT_STATUS_TONER_LOW 10L
|
|
#define PORT_STATUS_WARMING_UP 11L
|
|
#define PORT_STATUS_POWER_SAVE 12L
|
|
|
|
/* EnumPrinters() flags */
|
|
#define PRINTER_ENUM_DEFAULT 0x00000001L
|
|
#define PRINTER_ENUM_LOCAL 0x00000002L
|
|
#define PRINTER_ENUM_CONNECTIONS 0x00000004L
|
|
#define PRINTER_ENUM_FAVORITE 0x00000004L
|
|
#define PRINTER_ENUM_NAME 0x00000008L
|
|
#define PRINTER_ENUM_REMOTE 0x00000010L
|
|
#define PRINTER_ENUM_SHARED 0x00000020L
|
|
#define PRINTER_ENUM_NETWORK 0x00000040L
|
|
#define PRINTER_ENUM_EXPAND 0x00004000L
|
|
#define PRINTER_ENUM_CONTAINER 0x00008000L
|
|
#define PRINTER_ENUM_ICONMASK 0x00FF0000L
|
|
#define PRINTER_ENUM_ICON1 0x00010000L
|
|
#define PRINTER_ENUM_ICON2 0x00020000L
|
|
#define PRINTER_ENUM_ICON3 0x00040000L
|
|
#define PRINTER_ENUM_ICON4 0x00080000L
|
|
#define PRINTER_ENUM_ICON5 0x00100000L
|
|
#define PRINTER_ENUM_ICON6 0x00200000L
|
|
#define PRINTER_ENUM_ICON7 0x00400000L
|
|
#define PRINTER_ENUM_ICON8 0x00800000L
|
|
#define PRINTER_ENUM_HIDE 0x01000000L
|
|
|
|
/* Spool file flags */
|
|
#define SPOOL_FILE_PERSISTENT 0x00000001L
|
|
#define SPOOL_FILE_TEMPORARY 0x00000002L
|
|
|
|
/* Spooler notification types */
|
|
#define PRINTER_NOTIFY_TYPE 0x0000
|
|
#define JOB_NOTIFY_TYPE 0x0001
|
|
#define SERVER_NOTIFY_TYPE 0x0002
|
|
|
|
/* Printer notification fields */
|
|
#define PRINTER_NOTIFY_FIELD_SERVER_NAME 0x0000
|
|
#define PRINTER_NOTIFY_FIELD_PRINTER_NAME 0x0001
|
|
#define PRINTER_NOTIFY_FIELD_SHARE_NAME 0x0002
|
|
#define PRINTER_NOTIFY_FIELD_PORT_NAME 0x0003
|
|
#define PRINTER_NOTIFY_FIELD_DRIVER_NAME 0x0004
|
|
#define PRINTER_NOTIFY_FIELD_COMMENT 0x0005
|
|
#define PRINTER_NOTIFY_FIELD_LOCATION 0x0006
|
|
#define PRINTER_NOTIFY_FIELD_DEVMODE 0x0007
|
|
#define PRINTER_NOTIFY_FIELD_SEPFILE 0x0008
|
|
#define PRINTER_NOTIFY_FIELD_PRINT_PROCESSOR 0x0009
|
|
#define PRINTER_NOTIFY_FIELD_PARAMETERS 0x000A
|
|
#define PRINTER_NOTIFY_FIELD_DATATYPE 0x000B
|
|
#define PRINTER_NOTIFY_FIELD_SECURITY_DESCRIPTOR 0x000C
|
|
#define PRINTER_NOTIFY_FIELD_ATTRIBUTES 0x000D
|
|
#define PRINTER_NOTIFY_FIELD_PRIORITY 0x000E
|
|
#define PRINTER_NOTIFY_FIELD_DEFAULT_PRIORITY 0x000F
|
|
#define PRINTER_NOTIFY_FIELD_START_TIME 0x0010
|
|
#define PRINTER_NOTIFY_FIELD_UNTIL_TIME 0x0011
|
|
#define PRINTER_NOTIFY_FIELD_STATUS 0x0012
|
|
#define PRINTER_NOTIFY_FIELD_STATUS_STARTING 0x0013
|
|
#define PRINTER_NOTIFY_FIELD_CJOBS 0x0014
|
|
#define PRINTER_NOTIFY_FIELD_AVERAGE_PPM 0x0015
|
|
#define PRINTER_NOTIFY_FIELD_TOTAL_PAGES 0x0016
|
|
#define PRINTER_NOTIFY_FIELD_PAGES_PRINTED 0x0017
|
|
#define PRINTER_NOTIFY_FIELD_TOTAL_BYTES 0x0018
|
|
#define PRINTER_NOTIFY_FIELD_BYTES_PRINTED 0x0019
|
|
#define PRINTER_NOTIFY_FIELD_OBJECT_GUID 0x001A
|
|
#if (NTDDI_VERSION >= 0x06000000)
|
|
#define PRINTER_NOTIFY_FIELD_FRIENDLY_NAME 0x001B
|
|
#endif
|
|
|
|
/* Job notification fields */
|
|
#define JOB_NOTIFY_FIELD_PRINTER_NAME 0x0000
|
|
#define JOB_NOTIFY_FIELD_MACHINE_NAME 0x0001
|
|
#define JOB_NOTIFY_FIELD_PORT_NAME 0x0002
|
|
#define JOB_NOTIFY_FIELD_USER_NAME 0x0003
|
|
#define JOB_NOTIFY_FIELD_NOTIFY_NAME 0x0004
|
|
#define JOB_NOTIFY_FIELD_DATATYPE 0x0005
|
|
#define JOB_NOTIFY_FIELD_PRINT_PROCESSOR 0x0006
|
|
#define JOB_NOTIFY_FIELD_PARAMETERS 0x0007
|
|
#define JOB_NOTIFY_FIELD_DRIVER_NAME 0x0008
|
|
#define JOB_NOTIFY_FIELD_DEVMODE 0x0009
|
|
#define JOB_NOTIFY_FIELD_STATUS 0x000A
|
|
#define JOB_NOTIFY_FIELD_STATUS_STRING 0x000B
|
|
#define JOB_NOTIFY_FIELD_SECURITY_DESCRIPTOR 0x000C
|
|
#define JOB_NOTIFY_FIELD_DOCUMENT 0x000D
|
|
#define JOB_NOTIFY_FIELD_PRIORITY 0x000E
|
|
#define JOB_NOTIFY_FIELD_POSITION 0x000F
|
|
#define JOB_NOTIFY_FIELD_SUBMITTED 0x0010
|
|
#define JOB_NOTIFY_FIELD_START_TIME 0x0011
|
|
#define JOB_NOTIFY_FIELD_UNTIL_TIME 0x0012
|
|
#define JOB_NOTIFY_FIELD_TIME 0x0013
|
|
#define JOB_NOTIFY_FIELD_TOTAL_PAGES 0x0014
|
|
#define JOB_NOTIFY_FIELD_PAGES_PRINTED 0x0015
|
|
#define JOB_NOTIFY_FIELD_TOTAL_BYTES 0x0016
|
|
#define JOB_NOTIFY_FIELD_BYTES_PRINTED 0x0017
|
|
#define JOB_NOTIFY_FIELD_REMOTE_JOB_ID 0x0018
|
|
|
|
/* Server notification fields */
|
|
#if (NTDDI_VERSION >= 0x06010000)
|
|
#define SERVER_NOTIFY_FIELD_PRINT_DRIVER_ISOLATION_GROUP 0x0000
|
|
#endif
|
|
|
|
/* Printer notification option flags */
|
|
#define PRINTER_NOTIFY_OPTIONS_REFRESH 0x00000001L
|
|
|
|
/* Printer notification information flags */
|
|
#define PRINTER_NOTIFY_INFO_DISCARDED 0x00000001L
|
|
|
|
/* Bidirectional actions */
|
|
#if (NTDDI_VERSION >= 0x05010000)
|
|
#define BIDI_ACTION_ENUM_SCHEMA L"EnumSchema"
|
|
#define BIDI_ACTION_GET L"Get"
|
|
#define BIDI_ACTION_SET L"Set"
|
|
#define BIDI_ACTION_GET_ALL L"GetAll"
|
|
#endif
|
|
|
|
/* Bidirectional access types */
|
|
#if (NTDDI_VERSION >= 0x05010000)
|
|
#define BIDI_ACCESS_ADMINISTRATOR 0x00000001L
|
|
#define BIDI_ACCESS_USER 0x00000002L
|
|
#endif
|
|
|
|
/* Bidirectional error codes */
|
|
#if (NTDDI_VERSION >= 0x05010000)
|
|
#define ERROR_BIDI_STATUS_OK 0L
|
|
#define ERROR_BIDI_NOT_SUPPORTED ERROR_NOT_SUPPORTED
|
|
#define ERROR_BIDI_ERROR_BASE 13000L
|
|
#define ERROR_BIDI_STATUS_WARNING (ERROR_BIDI_ERROR_BASE + 1)
|
|
#define ERROR_BIDI_SCHEMA_READ_ONLY (ERROR_BIDI_ERROR_BASE + 2)
|
|
#define ERROR_BIDI_SERVER_OFFLINE (ERROR_BIDI_ERROR_BASE + 3)
|
|
#define ERROR_BIDI_DEVICE_OFFLINE (ERROR_BIDI_ERROR_BASE + 4)
|
|
#define ERROR_BIDI_SCHEMA_NOT_SUPPORTED (ERROR_BIDI_ERROR_BASE + 5)
|
|
#endif
|
|
|
|
/* Printer change notification flags */
|
|
#define PRINTER_CHANGE_ADD_PRINTER 0x00000001L
|
|
#define PRINTER_CHANGE_SET_PRINTER 0x00000002L
|
|
#define PRINTER_CHANGE_DELETE_PRINTER 0x00000004L
|
|
#define PRINTER_CHANGE_FAILED_CONNECTION_PRINTER 0x00000008L
|
|
#define PRINTER_CHANGE_PRINTER 0x000000FFL
|
|
#define PRINTER_CHANGE_ADD_JOB 0x00000100L
|
|
#define PRINTER_CHANGE_SET_JOB 0x00000200L
|
|
#define PRINTER_CHANGE_DELETE_JOB 0x00000400L
|
|
#define PRINTER_CHANGE_WRITE_JOB 0x00000800L
|
|
#define PRINTER_CHANGE_JOB 0x0000FF00L
|
|
#define PRINTER_CHANGE_ADD_FORM 0x00010000L
|
|
#define PRINTER_CHANGE_SET_FORM 0x00020000L
|
|
#define PRINTER_CHANGE_DELETE_FORM 0x00040000L
|
|
#define PRINTER_CHANGE_FORM 0x00070000L
|
|
#define PRINTER_CHANGE_ADD_PORT 0x00100000L
|
|
#define PRINTER_CHANGE_CONFIGURE_PORT 0x00200000L
|
|
#define PRINTER_CHANGE_DELETE_PORT 0x00400000L
|
|
#define PRINTER_CHANGE_PORT 0x00700000L
|
|
#if (NTDDI_VERSION >= 0x06010000)
|
|
#define PRINTER_CHANGE_SERVER 0x00800000L
|
|
#endif
|
|
#define PRINTER_CHANGE_ADD_PRINT_PROCESSOR 0x01000000L
|
|
#define PRINTER_CHANGE_DELETE_PRINT_PROCESSOR 0x04000000L
|
|
#define PRINTER_CHANGE_PRINT_PROCESSOR 0x07000000L
|
|
#define PRINTER_CHANGE_ADD_PRINTER_DRIVER 0x10000000L
|
|
#define PRINTER_CHANGE_SET_PRINTER_DRIVER 0x20000000L
|
|
#define PRINTER_CHANGE_DELETE_PRINTER_DRIVER 0x40000000L
|
|
#define PRINTER_CHANGE_PRINTER_DRIVER 0x70000000L
|
|
#define PRINTER_CHANGE_TIMEOUT 0x80000000L
|
|
#define PRINTER_CHANGE_ALL 0x7777FFFFL
|
|
|
|
/* PrinterMessageBox() flags */
|
|
#define PRINTER_ERROR_INFORMATION 0x80000000L
|
|
#define PRINTER_ERROR_WARNING 0x40000000L
|
|
#define PRINTER_ERROR_SEVERE 0x20000000L
|
|
#define PRINTER_ERROR_OUTOFPAPER 0x00000001L
|
|
#define PRINTER_ERROR_JAM 0x00000002L
|
|
#define PRINTER_ERROR_OUTOFTONER 0x00000004L
|
|
|
|
/* Spooler registry values */
|
|
#define SPLREG_DEFAULT_SPOOL_DIRECTORY TEXT( "DefaultSpoolDirectory" )
|
|
#define SPLREG_PORT_THREAD_PRIORITY_DEFAULT TEXT( "PortThreadPriorityDefault" )
|
|
#define SPLREG_PORT_THREAD_PRIORITY TEXT( "PortThreadPriority" )
|
|
#define SPLREG_SCHEDULER_THREAD_PRIORITY_DEFAULT \
|
|
TEXT( "SchedulerThreadPriorityDefault" )
|
|
#define SPLREG_SCHEDULER_THREAD_PRIORITY TEXT( "SchedulerThreadPriority" )
|
|
#define SPLREG_BEEP_ENABLED TEXT( "BeepEnabled" )
|
|
#define SPLREG_NET_POPUP TEXT( "NetPopup" )
|
|
#define SPLREG_RETRY_POPUP TEXT( "RetryPopup" )
|
|
#define SPLREG_NET_POPUP_TO_COMPUTER TEXT( "NetPopupToComputer" )
|
|
#define SPLREG_EVENT_LOG TEXT( "EventLog" )
|
|
#define SPLREG_MAJOR_VERSION TEXT( "MajorVersion" )
|
|
#define SPLREG_MINOR_VERSION TEXT( "MinorVersion" )
|
|
#define SPLREG_ARCHITECTURE TEXT( "Architecture" )
|
|
#if (NTDDI_VERSION >= 0x05010000)
|
|
#define SPLREG_OS_VERSION TEXT( "OSVersion" )
|
|
#endif
|
|
#define SPLREG_OS_VERSIONEX TEXT( "OSVersionEx" )
|
|
#define SPLREG_DS_PRESENT TEXT( "DsPresent" )
|
|
#define SPLREG_DS_PRESENT_FOR_USER TEXT( "DsPresentForUser" )
|
|
#define SPLREG_REMOTE_FAX TEXT( "RemoteFax" )
|
|
#define SPLREG_RESTART_JOB_ON_POOL_ERROR TEXT( "RestartJobOnPoolError" )
|
|
#define SPLREG_RESTART_JOB_ON_POOL_ENABLED TEXT( "RestartJobOnPoolEnabled" )
|
|
#define SPLREG_DNS_MACHINE_NAME TEXT( "DNSMachineName" )
|
|
#if (((NTDDI_VERSION & 0xFFFF0000L) == 0x05010000L) && \
|
|
((NTDDI_VERSION & 0x0000FF00L) >= 0x00000200L)) || (NTDDI_VERSION >= 0x05020000L)
|
|
#define SPLREG_ALLOW_USER_MANAGEFORMS TEXT( "AllowUserManageForms" )
|
|
#endif
|
|
#if (NTDDI_VERSION >= 0x05020000)
|
|
#define SPLREG_WEBSHAREMGMT TEXT( "WebShareMgmt" )
|
|
#endif
|
|
#if (NTDDI_VERSION >= 0x06010000)
|
|
#define SPLREG_PRINT_DRIVER_ISOLATION_GROUPS_SEPARATOR L'\\'
|
|
#define SPLREG_PRINT_DRIVER_ISOLATION_GROUPS TEXT( "PrintDriverIsolationGroups" )
|
|
#define SPLREG_PRINT_DRIVER_ISOLATION_TIME_BEFORE_RECYCLE \
|
|
TEXT( "PrintDriverIsolationTimeBeforeRecycle" )
|
|
#define SPLREG_PRINT_DRIVER_ISOLATION_MAX_OBJECTS_BEFORE_RECYCLE \
|
|
TEXT( "PrintDriverIsolationMaxobjsBeforeRecycle" )
|
|
#define SPLREG_PRINT_DRIVER_ISOLATION_IDLE_TIMEOUT \
|
|
TEXT( "PrintDriverIsolationIdleTimeout" )
|
|
#define SPLREG_PRINT_DRIVER_ISOLATION_EXECUTION_POLICY \
|
|
TEXT( "PrintDriverIsolationExecutionPolicy" )
|
|
#define SPLREG_PRINT_DRIVER_ISOLATION_OVERRIDE_POLICY \
|
|
TEXT( "PrintDriverIsolationOverrideCompat" )
|
|
#endif
|
|
|
|
/* Server access rights */
|
|
#define SERVER_ACCESS_ADMINISTER 0x0001L
|
|
#define SERVER_ACCESS_ENUMERATE 0x0002L
|
|
#define SERVER_ALL_ACCESS \
|
|
(STANDARD_RIGHTS_REQUIRED | SERVER_ACCESS_ADMINISTER | SERVER_ACCESS_ENUMERATE)
|
|
#define SERVER_READ \
|
|
(STANDARD_RIGHTS_READ | SERVER_ACCESS_ENUMERATE)
|
|
#define SERVER_WRITE \
|
|
(STANDARD_RIGHTS_WRITE | SERVER_ACCESS_ADMINISTER | SERVER_ACCESS_ENUMERATE)
|
|
#define SERVER_EXECUTE \
|
|
(STANDARD_RIGHTS_EXECUTE | SERVER_ACCESS_ENUMERATE)
|
|
|
|
/* Printer access rights */
|
|
#define PRINTER_ACCESS_ADMINISTER 0x0004L
|
|
#define PRINTER_ACCESS_USE 0x0008L
|
|
#define PRINTER_ALL_ACCESS \
|
|
(STANDARD_RIGHTS_REQUIRED | PRINTER_ACCESS_ADMINISTER | PRINTER_ACCESS_USE)
|
|
#define PRINTER_READ (STANDARD_RIGHTS_READ | PRINTER_ACCESS_USE)
|
|
#define PRINTER_WRITE (STANDARD_RIGHTS_WRITE | PRINTER_ACCESS_USE)
|
|
#define PRINTER_EXECUTE (STANDARD_RIGHTS_EXECUTE | PRINTER_ACCESS_USE)
|
|
|
|
/* Job access rights */
|
|
#define JOB_ACCESS_ADMINISTER 0x00000010L
|
|
#if (((NTDDI_VERSION & 0xFFFF0000L) == 0x05000000L) && \
|
|
((NTDDI_VERSION & 0x0000FF00L) >= 0x00000300L)) || (NTDDI_VERSION >= 0x05010100L)
|
|
#define JOB_ACCESS_READ 0x00000020L
|
|
#define JOB_ALL_ACCESS \
|
|
(STANDARD_RIGHTS_REQUIRED | JOB_ACCESS_ADMINISTER | JOB_ACCESS_READ)
|
|
#define JOB_READ (STANDARD_RIGHTS_READ | JOB_ACCESS_READ)
|
|
#else
|
|
#define JOB_ALL_ACCESS (STANDARD_RIGHTS_REQUIRED | JOB_ACCESS_ADMINISTER)
|
|
#define JOB_READ (STANDARD_RIGHTS_READ | JOB_ACCESS_ADMINISTER)
|
|
#endif
|
|
#define JOB_WRITE (STANDARD_RIGHTS_WRITE | JOB_ACCESS_ADMINISTER)
|
|
#define JOB_EXECUTE (STANDARD_RIGHTS_EXECUTE | JOB_ACCESS_ADMINISTER)
|
|
|
|
/* Spooler DS registry values */
|
|
#define SPLDS_SPOOLER_KEY TEXT( "DsSpooler" )
|
|
#define SPLDS_DRIVER_KEY TEXT( "DsDriver" )
|
|
#define SPLDS_USER_KEY TEXT( "DsUser" )
|
|
#define SPLDS_ASSET_NUMBER TEXT( "assetNumber" )
|
|
#define SPLDS_BYTES_PER_MINUTE TEXT( "bytesPerMinute" )
|
|
#define SPLDS_DESCRIPTION TEXT( "description" )
|
|
#define SPLDS_DRIVER_NAME TEXT( "driverName" )
|
|
#define SPLDS_DRIVER_VERSION TEXT( "driverVersion" )
|
|
#define SPLDS_LOCATION TEXT( "location" )
|
|
#define SPLDS_PORT_NAME TEXT( "portName" )
|
|
#define SPLDS_PRINT_ATTRIBUTES TEXT( "printAttributes" )
|
|
#define SPLDS_PRINT_BIN_NAMES TEXT( "printBinNames" )
|
|
#define SPLDS_PRINT_COLLATE TEXT( "printCollate" )
|
|
#define SPLDS_PRINT_COLOR TEXT( "printColor" )
|
|
#define SPLDS_PRINT_DUPLEX_SUPPORTED TEXT( "printDuplexSupported" )
|
|
#define SPLDS_PRINT_END_TIME TEXT( "printEndTime" )
|
|
#define SPLDS_PRINTER_CLASS TEXT( "printQueue" )
|
|
#define SPLDS_PRINTER_NAME TEXT( "printerName" )
|
|
#define SPLDS_PRINT_KEEP_PRINTED_JOBS TEXT( "printKeepPrintedJobs" )
|
|
#define SPLDS_PRINT_LANGUAGE TEXT( "printLanguage" )
|
|
#define SPLDS_PRINT_MAC_ADDRESS TEXT( "printMACAddress" )
|
|
#define SPLDS_PRINT_MAX_X_EXTENT TEXT( "printMaxXExtent" )
|
|
#define SPLDS_PRINT_MAX_Y_EXTENT TEXT( "printMaxYExtent" )
|
|
#define SPLDS_PRINT_MAX_RESOLUTION_SUPPORTED TEXT( "printMaxResolutionSupported" )
|
|
#define SPLDS_PRINT_MEDIA_READY TEXT( "printMediaReady" )
|
|
#define SPLDS_PRINT_MEDIA_SUPPORTED TEXT( "printMediaSupported" )
|
|
#define SPLDS_PRINT_MEMORY TEXT( "printMemory" )
|
|
#define SPLDS_PRINT_MIN_X_EXTENT TEXT( "printMinXExtent" )
|
|
#define SPLDS_PRINT_MIN_Y_EXTENT TEXT( "printMinYExtent" )
|
|
#define SPLDS_PRINT_NETWORK_ADDRESS TEXT( "printNetworkAddress" )
|
|
#define SPLDS_PRINT_NOTIFY TEXT( "printNotify" )
|
|
#define SPLDS_PRINT_NUMBER_UP TEXT( "printNumberUp" )
|
|
#define SPLDS_PRINT_ORIENTATIONS_SUPPORTED TEXT( "printOrientationsSupported" )
|
|
#define SPLDS_PRINT_OWNER TEXT( "printOwner" )
|
|
#define SPLDS_PRINT_PAGES_PER_MINUTE TEXT( "printPagesPerMinute" )
|
|
#define SPLDS_PRINT_RATE TEXT( "printRate" )
|
|
#define SPLDS_PRINT_RATE_UNIT TEXT( "printRateUnit" )
|
|
#define SPLDS_PRINT_SEPARATOR_FILE TEXT( "printSeparatorFile" )
|
|
#define SPLDS_PRINT_SHARE_NAME TEXT( "printShareName" )
|
|
#define SPLDS_PRINT_SPOOLING TEXT( "printSpooling" )
|
|
#define SPLDS_PRINT_STAPLING_SUPPORTED TEXT( "printStaplingSupported" )
|
|
#define SPLDS_PRINT_START_TIME TEXT( "printStartTime" )
|
|
#define SPLDS_PRINT_STATUS TEXT( "printStatus" )
|
|
#define SPLDS_PRIORITY TEXT( "priority" )
|
|
#define SPLDS_SERVER_NAME TEXT( "serverName" )
|
|
#define SPLDS_SHORT_SERVER_NAME TEXT( "shortServerName" )
|
|
#define SPLDS_UNC_NAME TEXT( "uNCName" )
|
|
#define SPLDS_URL TEXT( "url" )
|
|
#define SPLDS_FLAGS TEXT( "flags" )
|
|
#define SPLDS_VERSION_NUMBER TEXT( "versionNumber" )
|
|
#define SPLDS_PRINTER_NAME_ALIASES TEXT( "printerNameAliases" )
|
|
#define SPLDS_PRINTER_LOCATIONS TEXT( "printerLocations" )
|
|
#define SPLDS_PRINTER_MODEL TEXT( "printerModel" )
|
|
|
|
/* Printer connection flags */
|
|
#if (NTDDI_VERSION >= 0x06000000)
|
|
#define PRINTER_CONNECTION_MISMATCH 0x00000020L
|
|
#define PRINTER_CONNECTION_NO_UI 0x00000040L
|
|
#endif
|
|
|
|
/* InstallPrinterDriverFromPackage() flags */
|
|
#if (NTDDI_VERSION >= 0x06000000)
|
|
#define IPDFP_COPY_ALL_FILES 0x00000001L
|
|
#endif
|
|
|
|
/* UploadPrinterDriverPackage() flags */
|
|
#if (NTDDI_VERSION >= 0x06000000)
|
|
#define UPDP_SILENT_UPLOAD 0x00000001L
|
|
#define UPDP_UPLOAD_ALWAYS 0x00000002L
|
|
#define UPDP_CHECK_DRIVERSTORE 0x00000004L
|
|
#endif
|
|
|
|
/* Printer information (level 1) */
|
|
typedef struct _PRINTER_INFO_1A {
|
|
DWORD Flags;
|
|
LPSTR pDescription;
|
|
LPSTR pName;
|
|
LPSTR pComment;
|
|
} PRINTER_INFO_1A;
|
|
typedef PRINTER_INFO_1A *PPRINTER_INFO_1A;
|
|
typedef PRINTER_INFO_1A *LPPRINTER_INFO_1A;
|
|
typedef struct _PRINTER_INFO_1W {
|
|
DWORD Flags;
|
|
LPWSTR pDescription;
|
|
LPWSTR pName;
|
|
LPWSTR pComment;
|
|
} PRINTER_INFO_1W;
|
|
typedef PRINTER_INFO_1W *PPRINTER_INFO_1W;
|
|
typedef PRINTER_INFO_1W *LPPRINTER_INFO_1W;
|
|
#ifdef UNICODE
|
|
typedef PRINTER_INFO_1W PRINTER_INFO_1;
|
|
typedef PPRINTER_INFO_1W PPRINTER_INFO_1;
|
|
typedef LPPRINTER_INFO_1W LPPRINTER_INFO_1;
|
|
#else
|
|
typedef PRINTER_INFO_1A PRINTER_INFO_1;
|
|
typedef PPRINTER_INFO_1A PPRINTER_INFO_1;
|
|
typedef LPPRINTER_INFO_1A LPPRINTER_INFO_1;
|
|
#endif
|
|
|
|
/* Printer information (level 2) */
|
|
typedef struct _PRINTER_INFO_2A {
|
|
LPSTR pServerName;
|
|
LPSTR pPrinterName;
|
|
LPSTR pShareName;
|
|
LPSTR pPortName;
|
|
LPSTR pDriverName;
|
|
LPSTR pComment;
|
|
LPSTR pLocation;
|
|
LPDEVMODEA pDevMode;
|
|
LPSTR pSepFile;
|
|
LPSTR pPrintProcessor;
|
|
LPSTR pDatatype;
|
|
LPSTR pParameters;
|
|
PSECURITY_DESCRIPTOR pSecurityDescriptor;
|
|
DWORD Attributes;
|
|
DWORD Priority;
|
|
DWORD DefaultPriority;
|
|
DWORD StartTime;
|
|
DWORD UntilTime;
|
|
DWORD Status;
|
|
DWORD cJobs;
|
|
DWORD AveragePPM;
|
|
} PRINTER_INFO_2A;
|
|
typedef PRINTER_INFO_2A *PPRINTER_INFO_2A;
|
|
typedef PRINTER_INFO_2A *LPPRINTER_INFO_2A;
|
|
typedef struct _PRINTER_INFO_2W {
|
|
LPWSTR pServerName;
|
|
LPWSTR pPrinterName;
|
|
LPWSTR pShareName;
|
|
LPWSTR pPortName;
|
|
LPWSTR pDriverName;
|
|
LPWSTR pComment;
|
|
LPWSTR pLocation;
|
|
LPDEVMODEW pDevMode;
|
|
LPWSTR pSepFile;
|
|
LPWSTR pPrintProcessor;
|
|
LPWSTR pDatatype;
|
|
LPWSTR pParameters;
|
|
PSECURITY_DESCRIPTOR pSecurityDescriptor;
|
|
DWORD Attributes;
|
|
DWORD Priority;
|
|
DWORD DefaultPriority;
|
|
DWORD StartTime;
|
|
DWORD UntilTime;
|
|
DWORD Status;
|
|
DWORD cJobs;
|
|
DWORD AveragePPM;
|
|
} PRINTER_INFO_2W;
|
|
typedef PRINTER_INFO_2W *PPRINTER_INFO_2W;
|
|
typedef PRINTER_INFO_2W *LPPRINTER_INFO_2W;
|
|
#ifdef UNICODE
|
|
typedef PRINTER_INFO_2W PRINTER_INFO_2;
|
|
typedef PPRINTER_INFO_2W PPRINTER_INFO_2;
|
|
typedef LPPRINTER_INFO_2W LPPRINTER_INFO_2;
|
|
#else
|
|
typedef PRINTER_INFO_2A PRINTER_INFO_2;
|
|
typedef PPRINTER_INFO_2A PPRINTER_INFO_2;
|
|
typedef LPPRINTER_INFO_2A LPPRINTER_INFO_2;
|
|
#endif
|
|
|
|
/* Printer information (level 3) */
|
|
typedef struct _PRINTER_INFO_3 {
|
|
PSECURITY_DESCRIPTOR pSecurityDescriptor;
|
|
} PRINTER_INFO_3;
|
|
typedef PRINTER_INFO_3 *PPRINTER_INFO_3;
|
|
typedef PRINTER_INFO_3 *LPPRINTER_INFO_3;
|
|
|
|
/* Printer information (level 4) */
|
|
typedef struct _PRINTER_INFO_4A {
|
|
LPSTR pPrinterName;
|
|
LPSTR pServerName;
|
|
DWORD Attributes;
|
|
} PRINTER_INFO_4A;
|
|
typedef PRINTER_INFO_4A *PPRINTER_INFO_4A;
|
|
typedef PRINTER_INFO_4A *LPPRINTER_INFO_4A;
|
|
typedef struct _PRINTER_INFO_4W {
|
|
LPWSTR pPrinterName;
|
|
LPWSTR pServerName;
|
|
DWORD Attributes;
|
|
} PRINTER_INFO_4W;
|
|
typedef PRINTER_INFO_4W *PPRINTER_INFO_4W;
|
|
typedef PRINTER_INFO_4W *LPPRINTER_INFO_4W;
|
|
#ifdef UNICODE
|
|
typedef PRINTER_INFO_4W PRINTER_INFO_4;
|
|
typedef PPRINTER_INFO_4W PPRINTER_INFO_4;
|
|
typedef LPPRINTER_INFO_4W LPPRINTER_INFO_4;
|
|
#else
|
|
typedef PRINTER_INFO_4A PRINTER_INFO_4;
|
|
typedef PPRINTER_INFO_4A PPRINTER_INFO_4;
|
|
typedef LPPRINTER_INFO_4A LPPRINTER_INFO_4;
|
|
#endif
|
|
|
|
/* Printer information (level 5) */
|
|
typedef struct _PRINTER_INFO_5A {
|
|
LPSTR pPrinterName;
|
|
LPSTR pPortName;
|
|
DWORD Attributes;
|
|
DWORD DeviceNotSelectedTimeout;
|
|
DWORD TransmissionRetryTimeout;
|
|
} PRINTER_INFO_5A;
|
|
typedef PRINTER_INFO_5A *PPRINTER_INFO_5A;
|
|
typedef PRINTER_INFO_5A *LPPRINTER_INFO_5A;
|
|
typedef struct _PRINTER_INFO_5W {
|
|
LPWSTR pPrinterName;
|
|
LPWSTR pPortName;
|
|
DWORD Attributes;
|
|
DWORD DeviceNotSelectedTimeout;
|
|
DWORD TransmissionRetryTimeout;
|
|
} PRINTER_INFO_5W;
|
|
typedef PRINTER_INFO_5W *PPRINTER_INFO_5W;
|
|
typedef PRINTER_INFO_5W *LPPRINTER_INFO_5W;
|
|
#ifdef UNICODE
|
|
typedef PRINTER_INFO_5W PRINTER_INFO_5;
|
|
typedef PPRINTER_INFO_5W PPRINTER_INFO_5;
|
|
typedef LPPRINTER_INFO_5W LPPRINTER_INFO_5;
|
|
#else
|
|
typedef PRINTER_INFO_5A PRINTER_INFO_5;
|
|
typedef PPRINTER_INFO_5A PPRINTER_INFO_5;
|
|
typedef LPPRINTER_INFO_5A LPPRINTER_INFO_5;
|
|
#endif
|
|
|
|
/* Printer information (level 6) */
|
|
typedef struct _PRINTER_INFO_6 {
|
|
DWORD dwStatus;
|
|
} PRINTER_INFO_6;
|
|
typedef PRINTER_INFO_6 *PPRINTER_INFO_6;
|
|
typedef PRINTER_INFO_6 *LPPRINTER_INFO_6;
|
|
|
|
/* Printer information (level 7) */
|
|
typedef struct _PRINTER_INFO_7A {
|
|
LPSTR pszObjectGUID;
|
|
DWORD dwAction;
|
|
} PRINTER_INFO_7A;
|
|
typedef PRINTER_INFO_7A *PPRINTER_INFO_7A;
|
|
typedef PRINTER_INFO_7A *LPPRINTER_INFO_7A;
|
|
typedef struct _PRINTER_INFO_7W {
|
|
LPWSTR pszObjectGUID;
|
|
DWORD dwAction;
|
|
} PRINTER_INFO_7W;
|
|
typedef PRINTER_INFO_7W *PPRINTER_INFO_7W;
|
|
typedef PRINTER_INFO_7W *LPPRINTER_INFO_7W;
|
|
#ifdef UNICODE
|
|
typedef PRINTER_INFO_7W PRINTER_INFO_7;
|
|
typedef PPRINTER_INFO_7W PPRINTER_INFO_7;
|
|
typedef LPPRINTER_INFO_7W LPPRINTER_INFO_7;
|
|
#else
|
|
typedef PRINTER_INFO_7A PRINTER_INFO_7;
|
|
typedef PPRINTER_INFO_7A PPRINTER_INFO_7;
|
|
typedef LPPRINTER_INFO_7A LPPRINTER_INFO_7;
|
|
#endif
|
|
|
|
/* Printer information (level 8) */
|
|
typedef struct _PRINTER_INFO_8A {
|
|
LPDEVMODEA pDevMode;
|
|
} PRINTER_INFO_8A;
|
|
typedef PRINTER_INFO_8A *PPRINTER_INFO_8A;
|
|
typedef PRINTER_INFO_8A *LPPRINTER_INFO_8A;
|
|
typedef struct _PRINTER_INFO_8W {
|
|
LPDEVMODEW pDevMode;
|
|
} PRINTER_INFO_8W;
|
|
typedef PRINTER_INFO_8W *PPRINTER_INFO_8W;
|
|
typedef PRINTER_INFO_8W *LPPRINTER_INFO_8W;
|
|
#ifdef UNICODE
|
|
typedef PRINTER_INFO_8W PRINTER_INFO_8;
|
|
typedef PPRINTER_INFO_8W PPRINTER_INFO_8;
|
|
typedef LPPRINTER_INFO_8W LPPRINTER_INFO_8;
|
|
#else
|
|
typedef PRINTER_INFO_8A PRINTER_INFO_8;
|
|
typedef PPRINTER_INFO_8A PPRINTER_INFO_8;
|
|
typedef LPPRINTER_INFO_8A LPPRINTER_INFO_8;
|
|
#endif
|
|
|
|
/* Printer information (level 9) */
|
|
typedef struct _PRINTER_INFO_9A {
|
|
LPDEVMODEA pDevMode;
|
|
} PRINTER_INFO_9A;
|
|
typedef PRINTER_INFO_9A *PPRINTER_INFO_9A;
|
|
typedef PRINTER_INFO_9A *LPPRINTER_INFO_9A;
|
|
typedef struct _PRINTER_INFO_9W {
|
|
LPDEVMODEW pDevMode;
|
|
} PRINTER_INFO_9W;
|
|
typedef PRINTER_INFO_9W *PPRINTER_INFO_9W;
|
|
typedef PRINTER_INFO_9W *LPPRINTER_INFO_9W;
|
|
#ifdef UNICODE
|
|
typedef PRINTER_INFO_9W PRINTER_INFO_9;
|
|
typedef PPRINTER_INFO_9W PPRINTER_INFO_9;
|
|
typedef LPPRINTER_INFO_9W LPPRINTER_INFO_9;
|
|
#else
|
|
typedef PRINTER_INFO_9A PRINTER_INFO_9;
|
|
typedef PPRINTER_INFO_9A PPRINTER_INFO_9;
|
|
typedef LPPRINTER_INFO_9A LPPRINTER_INFO_9;
|
|
#endif
|
|
|
|
/* Job information (level 1) */
|
|
typedef struct _JOB_INFO_1A {
|
|
DWORD JobId;
|
|
LPSTR pPrinterName;
|
|
LPSTR pMachineName;
|
|
LPSTR pUserName;
|
|
LPSTR pDocument;
|
|
LPSTR pDatatype;
|
|
LPSTR pStatus;
|
|
DWORD Status;
|
|
DWORD Priority;
|
|
DWORD Position;
|
|
DWORD TotalPages;
|
|
DWORD PagesPrinted;
|
|
SYSTEMTIME Submitted;
|
|
} JOB_INFO_1A;
|
|
typedef JOB_INFO_1A *PJOB_INFO_1A;
|
|
typedef JOB_INFO_1A *LPJOB_INFO_1A;
|
|
typedef struct _JOB_INFO_1W {
|
|
DWORD JobId;
|
|
LPWSTR pPrinterName;
|
|
LPWSTR pMachineName;
|
|
LPWSTR pUserName;
|
|
LPWSTR pDocument;
|
|
LPWSTR pDatatype;
|
|
LPWSTR pStatus;
|
|
DWORD Status;
|
|
DWORD Priority;
|
|
DWORD Position;
|
|
DWORD TotalPages;
|
|
DWORD PagesPrinted;
|
|
SYSTEMTIME Submitted;
|
|
} JOB_INFO_1W;
|
|
typedef JOB_INFO_1W *PJOB_INFO_1W;
|
|
typedef JOB_INFO_1W *LPJOB_INFO_1W;
|
|
#ifdef UNICODE
|
|
typedef JOB_INFO_1W JOB_INFO_1;
|
|
typedef PJOB_INFO_1W PJOB_INFO_1;
|
|
typedef LPJOB_INFO_1W LPJOB_INFO_1;
|
|
#else
|
|
typedef JOB_INFO_1A JOB_INFO_1;
|
|
typedef PJOB_INFO_1A PJOB_INFO_1;
|
|
typedef LPJOB_INFO_1A LPJOB_INFO_1;
|
|
#endif
|
|
|
|
/* Job information (level 2) */
|
|
typedef struct _JOB_INFO_2A {
|
|
DWORD JobId;
|
|
LPSTR pPrinterName;
|
|
LPSTR pMachineName;
|
|
LPSTR pUserName;
|
|
LPSTR pDocument;
|
|
LPSTR pNotifyName;
|
|
LPSTR pDatatype;
|
|
LPSTR pPrintProcessor;
|
|
LPSTR pParameters;
|
|
LPSTR pDriverName;
|
|
LPDEVMODEA pDevMode;
|
|
LPSTR pStatus;
|
|
PSECURITY_DESCRIPTOR pSecurityDescriptor;
|
|
DWORD Status;
|
|
DWORD Priority;
|
|
DWORD Position;
|
|
DWORD StartTime;
|
|
DWORD UntilTime;
|
|
DWORD TotalPages;
|
|
DWORD Size;
|
|
SYSTEMTIME Submitted;
|
|
DWORD Time;
|
|
DWORD PagesPrinted;
|
|
} JOB_INFO_2A;
|
|
typedef JOB_INFO_2A *PJOB_INFO_2A;
|
|
typedef JOB_INFO_2A *LPJOB_INFO_2A;
|
|
typedef struct _JOB_INFO_2W {
|
|
DWORD JobId;
|
|
LPWSTR pPrinterName;
|
|
LPWSTR pMachineName;
|
|
LPWSTR pUserName;
|
|
LPWSTR pDocument;
|
|
LPWSTR pNotifyName;
|
|
LPWSTR pDatatype;
|
|
LPWSTR pPrintProcessor;
|
|
LPWSTR pParameters;
|
|
LPWSTR pDriverName;
|
|
LPDEVMODEW pSecurityDescriptor;
|
|
DWORD Status;
|
|
DWORD Priority;
|
|
DWORD Position;
|
|
DWORD StartTime;
|
|
DWORD UntilTime;
|
|
DWORD TotalPages;
|
|
DWORD Size;
|
|
SYSTEMTIME Submitted;
|
|
DWORD Time;
|
|
DWORD PagesPrinted;
|
|
} JOB_INFO_2W;
|
|
typedef JOB_INFO_2W *PJOB_INFO_2W;
|
|
typedef JOB_INFO_2W *LPJOB_INFO_2W;
|
|
#ifdef UNICODE
|
|
typedef JOB_INFO_2W JOB_INFO_2;
|
|
typedef PJOB_INFO_2W PJOB_INFO_2;
|
|
typedef LPJOB_INFO_2W LPJOB_INFO_2;
|
|
#else
|
|
typedef JOB_INFO_2A JOB_INFO_2;
|
|
typedef PJOB_INFO_2A PJOB_INFO_2;
|
|
typedef LPJOB_INFO_2A LPJOB_INFO_2;
|
|
#endif
|
|
|
|
/* Job information (level 3) */
|
|
typedef struct _JOB_INFO_3 {
|
|
DWORD JobId;
|
|
DWORD NextJobId;
|
|
DWORD Reserved;
|
|
} JOB_INFO_3;
|
|
typedef JOB_INFO_3 *PJOB_INFO_3;
|
|
typedef JOB_INFO_3 *LPJOB_INFO_3;
|
|
|
|
/* Job information (level 4) */
|
|
typedef struct _JOB_INFO_4A {
|
|
DWORD JobId;
|
|
LPSTR pPrinterName;
|
|
LPSTR pMachineName;
|
|
LPSTR pUserName;
|
|
LPSTR pDocument;
|
|
LPSTR pNotifyName;
|
|
LPSTR pDatatype;
|
|
LPSTR pPrintProcessor;
|
|
LPSTR pParameters;
|
|
LPSTR pDriverName;
|
|
LPDEVMODEA pDevMode;
|
|
LPSTR pStatus;
|
|
PSECURITY_DESCRIPTOR pSecurityDescriptor;
|
|
DWORD Status;
|
|
DWORD Priority;
|
|
DWORD Position;
|
|
DWORD StartTime;
|
|
DWORD UntilTime;
|
|
DWORD TotalPages;
|
|
DWORD Size;
|
|
SYSTEMTIME Submitted;
|
|
DWORD Time;
|
|
DWORD PagesPrinted;
|
|
LONG SizeHigh;
|
|
} JOB_INFO_4A;
|
|
typedef JOB_INFO_4A *PJOB_INFO_4A;
|
|
typedef JOB_INFO_4A *LPJOB_INFO_4A;
|
|
typedef struct _JOB_INFO_4W {
|
|
DWORD JobId;
|
|
LPWSTR pPrinterName;
|
|
LPWSTR pMachineName;
|
|
LPWSTR pUserName;
|
|
LPWSTR pDocument;
|
|
LPWSTR pNotifyName;
|
|
LPWSTR pDatatype;
|
|
LPWSTR pPrintProcessor;
|
|
LPWSTR pParameters;
|
|
LPWSTR pDriverName;
|
|
LPDEVMODEW pDevMode;
|
|
LPWSTR pStatus;
|
|
PSECURITY_DESCRIPTOR pSecurityDescriptor;
|
|
DWORD Status;
|
|
DWORD Priority;
|
|
DWORD Position;
|
|
DWORD StartTime;
|
|
DWORD UntilTime;
|
|
DWORD TotalPages;
|
|
DWORD Size;
|
|
SYSTEMTIME Submitted;
|
|
DWORD Time;
|
|
DWORD PagePrinted;
|
|
LONG SizeHigh;
|
|
} JOB_INFO_4W;
|
|
typedef JOB_INFO_4W *PJOB_INFO_4W;
|
|
typedef JOB_INFO_4W *LPJOB_INFO_4W;
|
|
#ifdef UNICODE
|
|
typedef JOB_INFO_4W JOB_INFO_4;
|
|
typedef PJOB_INFO_4W PJOB_INFO_4;
|
|
typedef LPJOB_INFO_4W LPJOB_INFO_4;
|
|
#else
|
|
typedef JOB_INFO_4A JOB_INFO_4;
|
|
typedef PJOB_INFO_4A PJOB_INFO_4;
|
|
typedef LPJOB_INFO_4A LPJOB_INFO_4;
|
|
#endif
|
|
|
|
/* AddJob() information (level 1) */
|
|
typedef struct _ADDJOB_INFO_1A {
|
|
LPSTR Path;
|
|
DWORD JobId;
|
|
} ADDJOB_INFO_1A;
|
|
typedef ADDJOB_INFO_1A *PADDJOB_INFO_1A;
|
|
typedef ADDJOB_INFO_1A *LPADDJOB_INFO_1A;
|
|
typedef struct _ADDJOB_INFO_1W {
|
|
LPWSTR Path;
|
|
DWORD JobId;
|
|
} ADDJOB_INFO_1W;
|
|
typedef ADDJOB_INFO_1W *PADDJOB_INFO_1W;
|
|
typedef ADDJOB_INFO_1W *LPADDJOB_INFO_1W;
|
|
#ifdef UNICODE
|
|
typedef ADDJOB_INFO_1W ADDJOB_INFO_1;
|
|
typedef PADDJOB_INFO_1W PADDJOB_INFO_1;
|
|
typedef LPADDJOB_INFO_1W LPADDJOB_INFO_1;
|
|
#else
|
|
typedef ADDJOB_INFO_1A ADDJOB_INFO_1;
|
|
typedef PADDJOB_INFO_1A PADDJOB_INFO_1;
|
|
typedef LPADDJOB_INFO_1A LPADDJOB_INFO_1;
|
|
#endif
|
|
|
|
/* Driver information (level 1) */
|
|
typedef struct _DRIVER_INFO_1A {
|
|
LPSTR pName;
|
|
} DRIVER_INFO_1A;
|
|
typedef DRIVER_INFO_1A *PDRIVER_INFO_1A;
|
|
typedef DRIVER_INFO_1A *LPDRIVER_INFO_1A;
|
|
typedef struct _DRIVER_INFO_1W {
|
|
LPWSTR pName;
|
|
} DRIVER_INFO_1W;
|
|
typedef DRIVER_INFO_1W *PDRIVER_INFO_1W;
|
|
typedef DRIVER_INFO_1W *LPDRIVER_INFO_1W;
|
|
#ifdef UNICODE
|
|
typedef DRIVER_INFO_1W DRIVER_INFO_1;
|
|
typedef PDRIVER_INFO_1W PDRIVER_INFO_1;
|
|
typedef LPDRIVER_INFO_1W LPDRIVER_INFO_1;
|
|
#else
|
|
typedef DRIVER_INFO_1A DRIVER_INFO_1;
|
|
typedef PDRIVER_INFO_1A PDRIVER_INFO_1;
|
|
typedef LPDRIVER_INFO_1A LPDRIVER_INFO_1;
|
|
#endif
|
|
|
|
/* Driver information (level 2) */
|
|
typedef struct _DRIVER_INFO_2A {
|
|
DWORD cVersion;
|
|
LPSTR pName;
|
|
LPSTR pEnvironment;
|
|
LPSTR pDriverPath;
|
|
LPSTR pDataFile;
|
|
LPSTR pConfigFile;
|
|
} DRIVER_INFO_2A;
|
|
typedef DRIVER_INFO_2A *PDRIVER_INFO_2A;
|
|
typedef DRIVER_INFO_2A *LPDRIVER_INFO_2A;
|
|
typedef struct _DRIVER_INFO_2W {
|
|
DWORD cVersion;
|
|
LPWSTR pName;
|
|
LPWSTR pEnvironment;
|
|
LPWSTR pDriverPath;
|
|
LPWSTR pDataFile;
|
|
LPWSTR pConfigFile;
|
|
} DRIVER_INFO_2W;
|
|
typedef DRIVER_INFO_2W *PDRIVER_INFO_2W;
|
|
typedef DRIVER_INFO_2W *LPDRIVER_INFO_2W;
|
|
#ifdef UNICODE
|
|
typedef DRIVER_INFO_2W DRIVER_INFO_2;
|
|
typedef PDRIVER_INFO_2W PDRIVER_INFO_2;
|
|
typedef LPDRIVER_INFO_2W LPDRIVER_INFO_2;
|
|
#else
|
|
typedef DRIVER_INFO_2A DRIVER_INFO_2;
|
|
typedef PDRIVER_INFO_2A PDRIVER_INFO_2;
|
|
typedef LPDRIVER_INFO_2A LPDRIVER_INFO_2;
|
|
#endif
|
|
|
|
/* Driver information (level 3) */
|
|
typedef struct _DRIVER_INFO_3A {
|
|
DWORD cVersion;
|
|
LPSTR pName;
|
|
LPSTR pEnvironment;
|
|
LPSTR pDriverPath;
|
|
LPSTR pDataFile;
|
|
LPSTR pConfigFile;
|
|
LPSTR pHelpFile;
|
|
LPSTR pDependentFiles;
|
|
LPSTR pMonitorFile;
|
|
LPSTR pDefaultDataType;
|
|
} DRIVER_INFO_3A;
|
|
typedef DRIVER_INFO_3A *PDRIVER_INFO_3A;
|
|
typedef DRIVER_INFO_3A *LPDRIVER_INFO_3A;
|
|
typedef struct _DRIVER_INFO_3W {
|
|
DWORD cVersion;
|
|
LPWSTR pName;
|
|
LPWSTR pEnvironment;
|
|
LPWSTR pDriverPath;
|
|
LPWSTR pDataFile;
|
|
LPWSTR pConfigFile;
|
|
LPWSTR pHelpFile;
|
|
LPWSTR pDependentFiles;
|
|
LPWSTR pMonitorFile;
|
|
LPWSTR pDefaultDataType;
|
|
} DRIVER_INFO_3W;
|
|
typedef DRIVER_INFO_3W *PDRIVER_INFO_3W;
|
|
typedef DRIVER_INFO_3W *LPDRIVER_INFO_3W;
|
|
#ifdef UNICODE
|
|
typedef DRIVER_INFO_3W DRIVER_INFO_3;
|
|
typedef PDRIVER_INFO_3W PDRIVER_INFO_3;
|
|
typedef LPDRIVER_INFO_3W LPDRIVER_INFO_3;
|
|
#else
|
|
typedef DRIVER_INFO_3A DRIVER_INFO_3;
|
|
typedef PDRIVER_INFO_3A PDRIVER_INFO_3;
|
|
typedef LPDRIVER_INFO_3A LPDRIVER_INFO_3;
|
|
#endif
|
|
|
|
/* Driver information (level 4) */
|
|
typedef struct _DRIVER_INFO_4A {
|
|
DWORD cVersion;
|
|
LPSTR pName;
|
|
LPSTR pEnvironment;
|
|
LPSTR pDriverPath;
|
|
LPSTR pDataFile;
|
|
LPSTR pConfigFile;
|
|
LPSTR pHelpFile;
|
|
LPSTR pDependentFiles;
|
|
LPSTR pMonitorFile;
|
|
LPSTR pDefaultDataType;
|
|
LPSTR pszzPreviousNames;
|
|
} DRIVER_INFO_4A;
|
|
typedef DRIVER_INFO_4A *PDRIVER_INFO_4A;
|
|
typedef DRIVER_INFO_4A *LPDRIVER_INFO_4A;
|
|
typedef struct _DRIVER_INFO_4W {
|
|
DWORD cVersion;
|
|
LPWSTR pName;
|
|
LPWSTR pEnvironment;
|
|
LPWSTR pDriverPath;
|
|
LPWSTR pDataFile;
|
|
LPWSTR pConfigFile;
|
|
LPWSTR pHelpFile;
|
|
LPWSTR pDependentFiles;
|
|
LPWSTR pMonitorFile;
|
|
LPWSTR pDefaultDataType;
|
|
LPWSTR pszzPreviousNames;
|
|
} DRIVER_INFO_4W;
|
|
typedef DRIVER_INFO_4W *PDRIVER_INFO_4W;
|
|
typedef DRIVER_INFO_4W *LPDRIVER_INFO_4W;
|
|
#ifdef UNICODE
|
|
typedef DRIVER_INFO_4W DRIVER_INFO_4;
|
|
typedef PDRIVER_INFO_4W PDRIVER_INFO_4;
|
|
typedef LPDRIVER_INFO_4W LPDRIVER_INFO_4;
|
|
#else
|
|
typedef DRIVER_INFO_4A DRIVER_INFO_4;
|
|
typedef PDRIVER_INFO_4A PDRIVER_INFO_4;
|
|
typedef LPDRIVER_INFO_4A LPDRIVER_INFO_4;
|
|
#endif
|
|
|
|
/* Driver information (level 5) */
|
|
typedef struct _DRIVER_INFO_5A {
|
|
DWORD cVersion;
|
|
LPSTR pName;
|
|
LPSTR pEnvironment;
|
|
LPSTR pDriverPath;
|
|
LPSTR pDataFile;
|
|
LPSTR pConfigFile;
|
|
DWORD dwDriverAttributes;
|
|
DWORD dwConfigVersion;
|
|
DWORD dwDriverVersion;
|
|
} DRIVER_INFO_5A;
|
|
typedef DRIVER_INFO_5A *PDRIVER_INFO_5A;
|
|
typedef DRIVER_INFO_5A *LPDRIVER_INFO_5A;
|
|
typedef struct _DRIVER_INFO_5W {
|
|
DWORD cVersion;
|
|
LPWSTR pName;
|
|
LPWSTR pEnvironment;
|
|
LPWSTR pDriverPath;
|
|
LPWSTR pDataFile;
|
|
LPWSTR pConfigFile;
|
|
DWORD dwDriverAttributes;
|
|
DWORD dwConfigVersion;
|
|
DWORD dwDriverVersion;
|
|
} DRIVER_INFO_5W;
|
|
typedef DRIVER_INFO_5W *PDRIVER_INFO_5W;
|
|
typedef DRIVER_INFO_5W *LPDRIVER_INFO_5W;
|
|
#ifdef UNICODE
|
|
typedef DRIVER_INFO_5W DRIVER_INFO_5;
|
|
typedef PDRIVER_INFO_5W PDRIVER_INFO_5;
|
|
typedef LPDRIVER_INFO_5W LPDRIVER_INFO_5;
|
|
#else
|
|
typedef DRIVER_INFO_5A DRIVER_INFO_5;
|
|
typedef PDRIVER_INFO_5A PDRIVER_INFO_5;
|
|
typedef LPDRIVER_INFO_5A LPDRIVER_INFO_5;
|
|
#endif
|
|
|
|
/* Driver information (level 6) */
|
|
typedef struct _DRIVER_INFO_6A {
|
|
DWORD cVersion;
|
|
LPSTR pName;
|
|
LPSTR pEnvironment;
|
|
LPSTR pDriverPath;
|
|
LPSTR pDataFile;
|
|
LPSTR pConfigFile;
|
|
LPSTR pHelpFile;
|
|
LPSTR pDependentFiles;
|
|
LPSTR pMonitorName;
|
|
LPSTR pDefaultDataType;
|
|
LPSTR pszzPreviousNames;
|
|
FILETIME ftDriverDate;
|
|
DWORDLONG dwlDriverVersion;
|
|
LPSTR pszMfgName;
|
|
LPSTR pszOEMUrl;
|
|
LPSTR pszHardwareID;
|
|
LPSTR pszProvider;
|
|
} DRIVER_INFO_6A;
|
|
typedef DRIVER_INFO_6A *PDRIVER_INFO_6A;
|
|
typedef DRIVER_INFO_6A *LPDRIVER_INFO_6A;
|
|
typedef struct _DRIVER_INFO_6W {
|
|
DWORD cVersion;
|
|
LPWSTR pName;
|
|
LPWSTR pEnvironment;
|
|
LPWSTR pDriverPath;
|
|
LPWSTR pDataFile;
|
|
LPWSTR pConfigFile;
|
|
LPWSTR pHelpFile;
|
|
LPWSTR pDependentFiles;
|
|
LPWSTR pMonitorName;
|
|
LPWSTR pDefaultDataType;
|
|
LPWSTR pszzPreviousNames;
|
|
FILETIME ftDriverDate;
|
|
DWORDLONG dwlDriverVersion;
|
|
LPWSTR pszMfgName;
|
|
LPWSTR pszOEMUrl;
|
|
LPWSTR pszHardwareID;
|
|
LPWSTR pszProvider;
|
|
} DRIVER_INFO_6W;
|
|
typedef DRIVER_INFO_6W *PDRIVER_INFO_6W;
|
|
typedef DRIVER_INFO_6W *LPDRIVER_INFO_6W;
|
|
#ifdef UNICODE
|
|
typedef DRIVER_INFO_6W DRIVER_INFO_6;
|
|
typedef PDRIVER_INFO_6W PDRIVER_INFO_6;
|
|
typedef LPDRIVER_INFO_6W LPDRIVER_INFO_6;
|
|
#else
|
|
typedef DRIVER_INFO_6A DRIVER_INFO_6;
|
|
typedef PDRIVER_INFO_6A PDRIVER_INFO_6;
|
|
typedef LPDRIVER_INFO_6A LPDRIVER_INFO_6;
|
|
#endif
|
|
|
|
/* Driver information (level 8) */
|
|
typedef struct _DRIVER_INFO_8A {
|
|
DWORD cVersion;
|
|
LPSTR pName;
|
|
LPSTR pEnvironment;
|
|
LPSTR pDriverPath;
|
|
LPSTR pDataFile;
|
|
LPSTR pConfigFile;
|
|
LPSTR pHelpFile;
|
|
LPSTR pDependentFiles;
|
|
LPSTR pMonitorName;
|
|
LPSTR pDefaultDataType;
|
|
LPSTR pszzPreviousNames;
|
|
FILETIME ftDriverDate;
|
|
DWORDLONG dwlDriverVersion;
|
|
LPSTR pszMfgName;
|
|
LPSTR pszOEMUrl;
|
|
LPSTR pszHardwareID;
|
|
LPSTR pszProvider;
|
|
LPSTR pszPrintProcessor;
|
|
LPSTR pszVendorSetup;
|
|
LPSTR pszzColorProfiles;
|
|
LPSTR pszInfPath;
|
|
DWORD dwPrinterDriverAttributes;
|
|
LPSTR pszzCoreDriverDependencies;
|
|
FILETIME ftMinInboxDriverVerDate;
|
|
DWORDLONG dwlMinInboxDriverVerVersion;
|
|
} DRIVER_INFO_8A;
|
|
typedef DRIVER_INFO_8A *PDRIVER_INFO_8A;
|
|
typedef DRIVER_INFO_8A *LPDRIVER_INFO_8A;
|
|
typedef struct _DRIVER_INFO_8W {
|
|
DWORD cVersion;
|
|
LPWSTR pName;
|
|
LPWSTR pEnvironment;
|
|
LPWSTR pDriverPath;
|
|
LPWSTR pDataFile;
|
|
LPWSTR pConfigFile;
|
|
LPWSTR pHelpFile;
|
|
LPWSTR pDependentFiles;
|
|
LPWSTR pMonitorName;
|
|
LPWSTR pDefaultDataType;
|
|
LPWSTR pszzPreviousNames;
|
|
FILETIME ftDriverDate;
|
|
DWORDLONG dwlDriverVersion;
|
|
LPWSTR pszMfgName;
|
|
LPWSTR pszOEMUrl;
|
|
LPWSTR pszHardwareID;
|
|
LPWSTR pszProvider;
|
|
LPWSTR pszPrintProcessor;
|
|
LPWSTR pszVendorSetup;
|
|
LPWSTR pszzColorProfiles;
|
|
LPWSTR pszInfPath;
|
|
DWORD dwPrinterDriverAttributes;
|
|
LPWSTR pszzCoreDriverDependencies;
|
|
FILETIME ftMinInboxDriverVerDate;
|
|
DWORDLONG dwlMinInboxDriverVerVersion;
|
|
} DRIVER_INFO_8W;
|
|
typedef DRIVER_INFO_8W *PDRIVER_INFO_8W;
|
|
typedef DRIVER_INFO_8W *LPDRIVER_INFO_8W;
|
|
#ifdef UNICODE
|
|
typedef DRIVER_INFO_8W DRIVER_INFO_8;
|
|
typedef PDRIVER_INFO_8W PDRIVER_INFO_8;
|
|
typedef LPDRIVER_INFO_8W LPDRIVER_INFO_8;
|
|
#else
|
|
typedef DRIVER_INFO_8A DRIVER_INFO_8;
|
|
typedef PDRIVER_INFO_8A PDRIVER_INFO_8;
|
|
typedef LPDRIVER_INFO_8A LPDRIVER_INFO_8;
|
|
#endif
|
|
|
|
/* Document information (level 1) */
|
|
typedef struct _DOC_INFO_1A {
|
|
LPSTR pDocName;
|
|
LPSTR pOutputFile;
|
|
LPSTR pDatatype;
|
|
} DOC_INFO_1A;
|
|
typedef DOC_INFO_1A *PDOC_INFO_1A;
|
|
typedef DOC_INFO_1A *LPDOC_INFO_1A;
|
|
typedef struct _DOC_INFO_1W {
|
|
LPWSTR pDocName;
|
|
LPWSTR pOutputFile;
|
|
LPWSTR pDatatype;
|
|
} DOC_INFO_1W;
|
|
typedef DOC_INFO_1W *PDOC_INFO_1W;
|
|
typedef DOC_INFO_1W *LPDOC_INFO_1W;
|
|
#ifdef UNICODE
|
|
typedef DOC_INFO_1W DOC_INFO_1;
|
|
typedef PDOC_INFO_1W PDOC_INFO_1;
|
|
typedef LPDOC_INFO_1W LPDOC_INFO_1;
|
|
#else
|
|
typedef DOC_INFO_1A DOC_INFO_1;
|
|
typedef PDOC_INFO_1A PDOC_INFO_1;
|
|
typedef LPDOC_INFO_1A LPDOC_INFO_1;
|
|
#endif
|
|
|
|
/* Document information (level 2) */
|
|
typedef struct _DOC_INFO_2A {
|
|
LPSTR pDocName;
|
|
LPSTR pOutputFile;
|
|
LPSTR pDatatype;
|
|
DWORD dwMode;
|
|
DWORD JobId;
|
|
} DOC_INFO_2A;
|
|
typedef DOC_INFO_2A *PDOC_INFO_2A;
|
|
typedef DOC_INFO_2A *LPDOC_INFO_2A;
|
|
typedef struct _DOC_INFO_2W {
|
|
LPWSTR pDocName;
|
|
LPWSTR pOutputFile;
|
|
LPWSTR pDatatype;
|
|
DWORD dwMode;
|
|
DWORD JobId;
|
|
} DOC_INFO_2W;
|
|
typedef DOC_INFO_2W *PDOC_INFO_2W;
|
|
typedef DOC_INFO_2W *LPDOC_INFO_2W;
|
|
#ifdef UNICODE
|
|
typedef DOC_INFO_2W DOC_INFO_2;
|
|
typedef PDOC_INFO_2W PDOC_INFO_2;
|
|
typedef LPDOC_INFO_2W LPDOC_INFO_2;
|
|
#else
|
|
typedef DOC_INFO_2A DOC_INFO_2;
|
|
typedef PDOC_INFO_2A PDOC_INFO_2;
|
|
typedef LPDOC_INFO_2A LPDOC_INFO_2;
|
|
#endif
|
|
|
|
/* Document information (level 3) */
|
|
typedef struct _DOC_INFO_3A {
|
|
LPSTR pDocName;
|
|
LPSTR pOutputFile;
|
|
LPSTR pDatatype;
|
|
DWORD dwFlags;
|
|
} DOC_INFO_3A;
|
|
typedef DOC_INFO_3A *PDOC_INFO_3A;
|
|
typedef DOC_INFO_3A *LPDOC_INFO_3A;
|
|
typedef struct _DOC_INFO_3W {
|
|
LPWSTR pDocName;
|
|
LPWSTR pOutputFile;
|
|
LPWSTR pDatatype;
|
|
DWORD dwFlags;
|
|
} DOC_INFO_3W;
|
|
typedef DOC_INFO_3W *PDOC_INFO_3W;
|
|
typedef DOC_INFO_3W *LPDOC_INFO_3W;
|
|
#ifdef UNICODE
|
|
typedef DOC_INFO_3W DOC_INFO_3;
|
|
typedef PDOC_INFO_3W PDOC_INFO_3;
|
|
typedef LPDOC_INFO_3W LPDOC_INFO_3;
|
|
#else
|
|
typedef DOC_INFO_3A DOC_INFO_3;
|
|
typedef PDOC_INFO_3A PDOC_INFO_3;
|
|
typedef LPDOC_INFO_3A LPDOC_INFO_3;
|
|
#endif
|
|
|
|
/* Form information (level 1) */
|
|
typedef struct _FORM_INFO_1A {
|
|
DWORD Flags;
|
|
LPSTR pName;
|
|
SIZEL Size;
|
|
RECTL ImageableArea;
|
|
} FORM_INFO_1A;
|
|
typedef FORM_INFO_1A *PFORM_INFO_1A;
|
|
typedef FORM_INFO_1A *LPFORM_INFO_1A;
|
|
typedef struct _FORM_INFO_1W {
|
|
DWORD Flags;
|
|
LPWSTR pName;
|
|
SIZEL Size;
|
|
RECTL ImageableArea;
|
|
} FORM_INFO_1W;
|
|
typedef FORM_INFO_1W *PFORM_INFO_1W;
|
|
typedef FORM_INFO_1W *LPFORM_INFO_1W;
|
|
#ifdef UNICODE
|
|
typedef FORM_INFO_1W FORM_INFO_1;
|
|
typedef PFORM_INFO_1W PFORM_INFO_1;
|
|
typedef LPFORM_INFO_1W LPFORM_INFO_1;
|
|
#else
|
|
typedef FORM_INFO_1A FORM_INFO_1;
|
|
typedef PFORM_INFO_1A PFORM_INFO_1;
|
|
typedef LPFORM_INFO_1A LPFORM_INFO_1;
|
|
#endif
|
|
|
|
/* Form information (level 2) */
|
|
#if (NTDDI_VERSION >= 0x06000000)
|
|
typedef struct _FORM_INFO_2A {
|
|
DWORD Flags;
|
|
LPCSTR pName;
|
|
SIZEL Size;
|
|
RECTL ImageableArea;
|
|
LPCSTR pKeyword;
|
|
DWORD StringType;
|
|
LPCSTR pMuiDll;
|
|
DWORD dwResourceId;
|
|
LPCSTR pDisplayName;
|
|
LANGID wLangId;
|
|
} FORM_INFO_2A;
|
|
typedef FORM_INFO_2A *PFORM_INFO_2A;
|
|
typedef FORM_INFO_2A *LPFORM_INFO_2A;
|
|
typedef struct _FORM_INFO_2W {
|
|
DWORD Flags;
|
|
LPCWSTR pName;
|
|
SIZEL Size;
|
|
RECTL ImageableArea;
|
|
LPCWSTR pKeyword;
|
|
DWORD StringType;
|
|
LPCWSTR pMuiDll;
|
|
DWORD dwResourceId;
|
|
LPCWSTR pDisplayName;
|
|
LANGID wLangId;
|
|
} FORM_INFO_2W;
|
|
typedef FORM_INFO_2W *PFORM_INFO_2W;
|
|
typedef FORM_INFO_2W *LPFORM_INFO_2W;
|
|
#ifdef UNICODE
|
|
typedef FORM_INFO_2W FORM_INFO_2;
|
|
typedef PFORM_INFO_2W PFORM_INFO_2;
|
|
typedef LPFORM_INFO_2W LPFORM_INFO_2;
|
|
#else
|
|
typedef FORM_INFO_2A FORM_INFO_2;
|
|
typedef PFORM_INFO_2A PFORM_INFO_2;
|
|
typedef LPFORM_INFO_2A LPFORM_INFO_2;
|
|
#endif
|
|
#endif
|
|
|
|
/* Print processor information (level 1) */
|
|
typedef struct _PRINTPROCESSOR_INFO_1A {
|
|
LPSTR pName;
|
|
} PRINTPROCESSOR_INFO_1A;
|
|
typedef PRINTPROCESSOR_INFO_1A *PPRINTPROCESSOR_INFO_1A;
|
|
typedef PRINTPROCESSOR_INFO_1A *LPPRINTPROCESSOR_INFO_1A;
|
|
typedef struct _PRINTPROCESSOR_INFO_1W {
|
|
LPWSTR pName;
|
|
} PRINTPROCESSOR_INFO_1W;
|
|
typedef PRINTPROCESSOR_INFO_1W *PPRINTPROCESSOR_INFO_1W;
|
|
typedef PRINTPROCESSOR_INFO_1W *LPPRINTPROCESSOR_INFO_1W;
|
|
#ifdef UNICODE
|
|
typedef PRINTPROCESSOR_INFO_1W PRINTPROCESSOR_INFO_1;
|
|
typedef PPRINTPROCESSOR_INFO_1W PPRINTPROCESSOR_INFO_1;
|
|
typedef LPPRINTPROCESSOR_INFO_1W LPPRINTPROCESSOR_INFO_1;
|
|
#else
|
|
typedef PRINTPROCESSOR_INFO_1A PRINTPROCESSOR_INFO_1;
|
|
typedef PPRINTPROCESSOR_INFO_1A PPRINTPROCESSOR_INFO_1;
|
|
typedef LPPRINTPROCESSOR_INFO_1A LPPRINTPROCESSOR_INFO_1;
|
|
#endif
|
|
|
|
/* Print processor capabilities (level 1) */
|
|
#if (NTDDI_VERSION >= 0x05010000)
|
|
typedef struct _PRINTPROCESSOR_CAPS_1 {
|
|
DWORD dwLevel;
|
|
DWORD dwNupOptions;
|
|
DWORD dwPageOrderFlags;
|
|
DWORD dwNumberOfCopies;
|
|
} PRINTPROCESSOR_CAPS_1;
|
|
typedef PRINTPROCESSOR_CAPS_1 *PPRINTPROCESSOR_CAPS_1;
|
|
#endif
|
|
|
|
/* Print processor capabilities (level 2) */
|
|
#if (NTDDI_VERSION >= 0x06000000)
|
|
typedef struct _PRINTPROCESSOR_CAPS_2 {
|
|
DWORD dwLevel;
|
|
DWORD dwNupOptions;
|
|
DWORD dwPageOrderFlags;
|
|
DWORD dwNumberOfCopies;
|
|
DWORD dwDuplexHandlingCaps;
|
|
DWORD dwNupDirectionCaps;
|
|
DWORD dwNupBorderCaps;
|
|
DWORD dwBookletHandlingCaps;
|
|
DWORD dwScalingCaps;
|
|
} PRINTPROCESSOR_CAPS_2;
|
|
typedef PRINTPROCESSOR_CAPS_2 *PPRINTPROCESSOR_CAPS_2;
|
|
#endif
|
|
|
|
/* Port information (level 1) */
|
|
typedef struct _PORT_INFO_1A {
|
|
LPSTR pName;
|
|
} PORT_INFO_1A;
|
|
typedef PORT_INFO_1A *PPORT_INFO_1A;
|
|
typedef PORT_INFO_1A *LPPORT_INFO_1A;
|
|
typedef struct _PORT_INFO_1W {
|
|
LPWSTR pName;
|
|
} PORT_INFO_1W;
|
|
typedef PORT_INFO_1W *PPORT_INFO_1W;
|
|
typedef PORT_INFO_1W *LPPORT_INFO_1W;
|
|
#ifdef UNICODE
|
|
typedef PORT_INFO_1A PORT_INFO_1A;
|
|
typedef PPORT_INFO_1A PPORT_INFO_1A;
|
|
typedef LPPORT_INFO_1A LPPORT_INFO_1A;
|
|
#else
|
|
typedef PORT_INFO_1W PORT_INFO_1W;
|
|
typedef PPORT_INFO_1W PPORT_INFO_1W;
|
|
typedef LPPORT_INFO_1W LPPORT_INFO_1W;
|
|
#endif
|
|
|
|
/* Port information (level 2) */
|
|
typedef struct _PORT_INFO_2A {
|
|
LPSTR pPortName;
|
|
LPSTR pMonitorName;
|
|
LPSTR pDescription;
|
|
DWORD fPortType;
|
|
DWORD Reserved;
|
|
} PORT_INFO_2A;
|
|
typedef PORT_INFO_2A *PPORT_INFO_2A;
|
|
typedef PORT_INFO_2A *LPPORT_INFO_2A;
|
|
typedef struct _PORT_INFO_2W {
|
|
LPWSTR pPortName;
|
|
LPWSTR pMonitorName;
|
|
LPWSTR pDescription;
|
|
DWORD fPortType;
|
|
DWORD Reserved;
|
|
} PORT_INFO_2W;
|
|
typedef PORT_INFO_2W *PPORT_INFO_2W;
|
|
typedef PORT_INFO_2W *LPPORT_INFO_2W;
|
|
#ifdef UNICODE
|
|
typedef PORT_INFO_2W PORT_INFO_2;
|
|
typedef PPORT_INFO_2W PPORT_INFO_2;
|
|
typedef LPPORT_INFO_2W LPPORT_INFO_2;
|
|
#else
|
|
typedef PORT_INFO_2A PORT_INFO_2;
|
|
typedef PPORT_INFO_2A PPORT_INFO_2;
|
|
typedef LPPORT_INFO_2A LPPORT_INFO_2;
|
|
#endif
|
|
|
|
/* Port information (level 3) */
|
|
typedef struct _PORT_INFO_3A {
|
|
DWORD dwStatus;
|
|
LPSTR pszStatus;
|
|
DWORD dwSeverity;
|
|
} PORT_INFO_3A;
|
|
typedef PORT_INFO_3A *PPORT_INFO_3A;
|
|
typedef PORT_INFO_3A *LPPORT_INFO_3A;
|
|
typedef struct _PORT_INFO_3W {
|
|
DWORD dwStatus;
|
|
LPWSTR pszStatus;
|
|
DWORD dwSeverity;
|
|
} PORT_INFO_3W;
|
|
typedef PORT_INFO_3W *PPORT_INFO_3W;
|
|
typedef PORT_INFO_3W *LPPORT_INFO_3W;
|
|
#ifdef UNICODE
|
|
typedef PORT_INFO_3W PORT_INFO_3;
|
|
typedef PPORT_INFO_3W PPORT_INFO_3;
|
|
typedef LPPORT_INFO_3W LPPORT_INFO_3;
|
|
#else
|
|
typedef PORT_INFO_3A PORT_INFO_3;
|
|
typedef PPORT_INFO_3A PPORT_INFO_3;
|
|
typedef LPPORT_INFO_3A LPPORT_INFO_3;
|
|
#endif
|
|
|
|
/* Monitor information (level 1) */
|
|
typedef struct _MONITOR_INFO_1A {
|
|
LPSTR pName;
|
|
} MONITOR_INFO_1A;
|
|
typedef MONITOR_INFO_1A *PMONITOR_INFO_1A;
|
|
typedef MONITOR_INFO_1A *LPMONITOR_INFO_1A;
|
|
typedef struct _MONITOR_INFO_1W {
|
|
LPWSTR pName;
|
|
} MONITOR_INFO_1W;
|
|
typedef MONITOR_INFO_1W *PMONITOR_INFO_1W;
|
|
typedef MONITOR_INFO_1W *LPMONITOR_INFO_1W;
|
|
#ifdef UNICODE
|
|
typedef MONITOR_INFO_1W MONITOR_INFO_1;
|
|
typedef PMONITOR_INFO_1W PMONITOR_INFO_1;
|
|
typedef LPMONITOR_INFO_1W LPMONITOR_INFO_1;
|
|
#else
|
|
typedef MONITOR_INFO_1A MONITOR_INFO_1;
|
|
typedef PMONITOR_INFO_1A PMONITOR_INFO_1;
|
|
typedef LPMONITOR_INFO_1A LPMONITOR_INFO_1;
|
|
#endif
|
|
|
|
/* Monitor information (level 2) */
|
|
typedef struct _MONITOR_INFO_2A {
|
|
LPSTR pName;
|
|
LPSTR pEnvironment;
|
|
LPSTR pDLLName;
|
|
} MONITOR_INFO_2A;
|
|
typedef MONITOR_INFO_2A *PMONITOR_INFO_2A;
|
|
typedef MONITOR_INFO_2A *LPMONITOR_INFO_2A;
|
|
typedef struct _MONITOR_INFO_2W {
|
|
LPWSTR pName;
|
|
LPWSTR pEnvironment;
|
|
LPWSTR pDLLName;
|
|
} MONITOR_INFO_2W;
|
|
typedef MONITOR_INFO_2W *PMONITOR_INFO_2W;
|
|
typedef MONITOR_INFO_2W *LPMONITOR_INFO_2W;
|
|
#ifdef UNICODE
|
|
typedef MONITOR_INFO_2W MONITOR_INFO_2;
|
|
typedef PMONITOR_INFO_2W PMONITOR_INFO_2;
|
|
typedef LPMONITOR_INFO_2W LPMONITOR_INFO_2;
|
|
#else
|
|
typedef MONITOR_INFO_2A MONITOR_INFO_2;
|
|
typedef PMONITOR_INFO_2A PMONITOR_INFO_2;
|
|
typedef LPMONITOR_INFO_2A LPMONITOR_INFO_2;
|
|
#endif
|
|
|
|
/* Data types information (level 1) */
|
|
typedef struct _DATATYPES_INFO_1A {
|
|
LPSTR pName;
|
|
} DATATYPES_INFO_1A;
|
|
typedef DATATYPES_INFO_1A *PDATATYPES_INFO_1A;
|
|
typedef DATATYPES_INFO_1A *LPDATATYPES_INFO_1A;
|
|
typedef struct _DATATYPES_INFO_1W {
|
|
LPWSTR pName;
|
|
} DATATYPES_INFO_1W;
|
|
typedef DATATYPES_INFO_1W *PDATATYPES_INFO_1W;
|
|
typedef DATATYPES_INFO_1W *LPDATATYPES_INFO_1W;
|
|
#ifdef UNICODE
|
|
typedef DATATYPES_INFO_1W DATATYPES_INFO_1;
|
|
typedef PDATATYPES_INFO_1W PDATATYPES_INFO_1;
|
|
typedef LPDATATYPES_INFO_1W LPDATATYPES_INFO_1;
|
|
#else
|
|
typedef DATATYPES_INFO_1A DATATYPES_INFO_1;
|
|
typedef PDATATYPES_INFO_1A PDATATYPES_INFO_1;
|
|
typedef LPDATATYPES_INFO_1A LPDATATYPES_INFO_1;
|
|
#endif
|
|
|
|
/* Printer defaults */
|
|
typedef struct _PRINTER_DEFAULTSA {
|
|
LPSTR pDatatype;
|
|
LPDEVMODEA pDevMode;
|
|
ACCESS_MASK DesiredAccess;
|
|
} PRINTER_DEFAULTSA;
|
|
typedef PRINTER_DEFAULTSA *PPRINTER_DEFAULTSA;
|
|
typedef PRINTER_DEFAULTSA *LPPRINTER_DEFAULTSA;
|
|
typedef struct _PRINTER_DEFAULTSW {
|
|
LPWSTR pDatatype;
|
|
LPDEVMODEW pDevMode;
|
|
ACCESS_MASK DesiredAccess;
|
|
} PRINTER_DEFAULTSW;
|
|
typedef PRINTER_DEFAULTSW *PPRINTER_DEFAULTSW;
|
|
typedef PRINTER_DEFAULTSW *LPPRINTER_DEFAULTSW;
|
|
#ifdef UNICODE
|
|
typedef PRINTER_DEFAULTSW PRINTER_DEFAULTS;
|
|
typedef PPRINTER_DEFAULTSW PPRINTER_DEFAULTS;
|
|
typedef LPPRINTER_DEFAULTSW LPPRINTER_DEFAULTS;
|
|
#else
|
|
typedef PRINTER_DEFAULTSA PRINTER_DEFAULTS;
|
|
typedef PPRINTER_DEFAULTSA PPRINTER_DEFAULTS;
|
|
typedef LPPRINTER_DEFAULTSA LPPRINTER_DEFAULTS;
|
|
#endif
|
|
|
|
/* Printer enumeration values */
|
|
typedef struct _PRINTER_ENUM_VALUESA {
|
|
LPSTR pValueName;
|
|
DWORD cbValueName;
|
|
DWORD dwType;
|
|
LPBYTE pData;
|
|
DWORD cbData;
|
|
} PRINTER_ENUM_VALUESA;
|
|
typedef PRINTER_ENUM_VALUESA *PPRINTER_ENUM_VALUESA;
|
|
typedef PRINTER_ENUM_VALUESA *LPPRINTER_ENUM_VALUESA;
|
|
typedef struct _PRINTER_ENUM_VALUESW {
|
|
LPWSTR pValueName;
|
|
DWORD cbValueName;
|
|
DWORD dwType;
|
|
LPBYTE pData;
|
|
DWORD cbData;
|
|
} PRINTER_ENUM_VALUESW;
|
|
typedef PRINTER_ENUM_VALUESW *PPRINTER_ENUM_VALUESW;
|
|
typedef PRINTER_ENUM_VALUESW *LPPRINTER_ENUM_VALUESW;
|
|
#ifdef UNICODE
|
|
typedef PRINTER_ENUM_VALUESW PRINTER_ENUM_VALUES;
|
|
typedef PPRINTER_ENUM_VALUESW PPRINTER_ENUM_VALUES;
|
|
typedef LPPRINTER_ENUM_VALUESW LPPRINTER_ENUM_VALUES;
|
|
#else
|
|
typedef PRINTER_ENUM_VALUESA PRINTER_ENUM_VALUES;
|
|
typedef PPRINTER_ENUM_VALUESA PPRINTER_ENUM_VALUES;
|
|
typedef LPPRINTER_ENUM_VALUESA LPPRINTER_ENUM_VALUES;
|
|
#endif
|
|
|
|
/* Printer notification options type */
|
|
typedef struct _PRINTER_NOTIFY_OPTIONS_TYPE {
|
|
WORD Type;
|
|
WORD Reserved0;
|
|
DWORD Reserved1;
|
|
DWORD Reserved2;
|
|
DWORD Count;
|
|
PWORD pFields;
|
|
} PRINTER_NOTIFY_OPTIONS_TYPE;
|
|
typedef PRINTER_NOTIFY_OPTIONS_TYPE *PPRINTER_NOTIFY_OPTIONS_TYPE;
|
|
|
|
/* Printer notification options */
|
|
typedef struct _PRINTER_NOTIFY_OPTIONS {
|
|
DWORD Version;
|
|
DWORD Flags;
|
|
DWORD Count;
|
|
PPRINTER_NOTIFY_OPTIONS_TYPE pTypes;
|
|
} PRINTER_NOTIFY_OPTIONS;
|
|
typedef PRINTER_NOTIFY_OPTIONS *PPRINTER_NOTIFY_OPTIONS;
|
|
|
|
/* Printer notification information data */
|
|
typedef struct _PRINTER_NOTIFY_INFO_DATA {
|
|
WORD Type;
|
|
WORD Field;
|
|
DWORD Reserved;
|
|
DWORD Id;
|
|
union {
|
|
DWORD adwData[2];
|
|
struct {
|
|
DWORD cbBuf;
|
|
LPVOID pBuf;
|
|
} Data;
|
|
} NotifyData;
|
|
} PRINTER_NOTIFY_INFO_DATA;
|
|
typedef PRINTER_NOTIFY_INFO_DATA *PPRINTER_NOTIFY_INFO_DATA;
|
|
typedef PRINTER_NOTIFY_INFO_DATA *LPPRINTER_NOTIFY_INFO_DATA;
|
|
|
|
/* Printer notification information */
|
|
typedef struct _PRINTER_NOTIFY_INFO {
|
|
DWORD Version;
|
|
DWORD Flags;
|
|
DWORD Count;
|
|
PRINTER_NOTIFY_INFO_DATA aData[1];
|
|
} PRINTER_NOTIFY_INFO;
|
|
typedef PRINTER_NOTIFY_INFO *PPRINTER_NOTIFY_INFO;
|
|
typedef PRINTER_NOTIFY_INFO *LPPRINTER_NOTIFY_INFO;
|
|
|
|
/* Binary container */
|
|
#if (NTDDI_VERSION >= 0x05010000)
|
|
typedef struct _BINARY_CONTAINER {
|
|
DWORD cbBuf;
|
|
LPBYTE pData;
|
|
} BINARY_CONTAINER;
|
|
typedef BINARY_CONTAINER *PBINARY_CONTAINER;
|
|
#endif
|
|
|
|
/* Bidirectional data */
|
|
#if (NTDDI_VERSION >= 0x05010000)
|
|
typedef struct _BIDI_DATA {
|
|
DWORD dwBidiType;
|
|
union {
|
|
BOOL bData;
|
|
LONG iData;
|
|
LPWSTR sData;
|
|
FLOAT fData;
|
|
BINARY_CONTAINER biData;
|
|
} u;
|
|
} BIDI_DATA;
|
|
typedef BIDI_DATA *PBIDI_DATA;
|
|
typedef BIDI_DATA *LPBIDI_DATA;
|
|
#endif
|
|
|
|
/* Bidirectional request data */
|
|
#if (NTDDI_VERSION >= 0x05010000)
|
|
typedef struct _BIDI_REQUEST_DATA {
|
|
DWORD dwReqNumber;
|
|
LPWSTR pSchema;
|
|
BIDI_DATA data;
|
|
} BIDI_REQUEST_DATA;
|
|
typedef BIDI_REQUEST_DATA *PBIDI_REQUEST_DATA;
|
|
typedef BIDI_REQUEST_DATA *LPBIDI_REQUEST_DATA;
|
|
#endif
|
|
|
|
/* Bidirectional request container */
|
|
#if (NTDDI_VERISON >= 0x05010000)
|
|
typedef struct _BIDI_REQUEST_CONTAINER {
|
|
DWORD Version;
|
|
DWORD Flags;
|
|
DWORD Count;
|
|
BIDI_REQUEST_DATA aData[1];
|
|
} BIDI_REQUEST_CONTAINER;
|
|
typedef BIDI_REQUEST_CONTAINER *PBIDI_REQUEST_CONTAINER;
|
|
typedef BIDI_REQUEST_CONTAINER *LPBIDI_REQUEST_CONTAINER;
|
|
#endif
|
|
|
|
/* Bidirectional response data */
|
|
#if (NTDDI_VERSION >= 0x05010000)
|
|
typedef struct _BIDI_RESPONSE_DATA {
|
|
DWORD dwResult;
|
|
DWORD dwReqNumber;
|
|
LPWSTR pSchema;
|
|
BIDI_DATA data;
|
|
} BIDI_RESPONSE_DATA;
|
|
typedef BIDI_RESPONSE_DATA *PBIDI_RESPONSE_DATA;
|
|
typedef BIDI_RESPONSE_DATA *LPBIDI_RESPONSE_DATA;
|
|
#endif
|
|
|
|
/* Bidirectional response container */
|
|
#if (NTDDI_VERSION >= 0x05010000)
|
|
typedef struct _BIDI_RESPONSE_CONTAINER {
|
|
DWORD Version;
|
|
DWORD Flags;
|
|
DWORD Count;
|
|
BIDI_RESPONSE_DATA aData[1];
|
|
} BIDI_RESPONSE_CONTAINER;
|
|
typedef BIDI_RESPONSE_CONTAINER *PBIDI_RESPONSE_CONTAINER;
|
|
typedef BIDI_RESPONSE_CONTAINER *LPBIDI_RESPONSE_CONTAINER;
|
|
#endif
|
|
|
|
/* Bidirectional types */
|
|
#if (NTDDI_VERSION >= 0x05010000)
|
|
typedef enum {
|
|
BIDI_NULL = 0,
|
|
BIDI_INT = 1,
|
|
BIDI_FLOAT = 2,
|
|
BIDI_BOOL = 3,
|
|
BIDI_STRING = 4,
|
|
BIDI_TEXT = 5,
|
|
BIDI_ENUM = 6,
|
|
BIDI_BLOB = 7
|
|
} BIDI_TYPE;
|
|
#endif
|
|
|
|
/* Providor information (level 1) */
|
|
typedef struct _PROVIDOR_INFO_1A {
|
|
LPSTR pName;
|
|
LPSTR pEnvironment;
|
|
LPSTR pDLLName;
|
|
} PROVIDOR_INFO_1A;
|
|
typedef PROVIDOR_INFO_1A *PPROVIDOR_INFO_1A;
|
|
typedef PROVIDOR_INFO_1A *LPPROVIDOR_INFO_1A;
|
|
typedef struct _PROVIDOR_INFO_1W {
|
|
LPWSTR pName;
|
|
LPWSTR pEnvironment;
|
|
LPWSTR pDLLName;
|
|
} PROVIDOR_INFO_1W;
|
|
typedef PROVIDOR_INFO_1W *PPROVIDOR_INFO_1W;
|
|
typedef PROVIDOR_INFO_1W *LPPROVIDOR_INFO_1W;
|
|
#ifdef UNICODE
|
|
typedef PROVIDOR_INFO_1W PROVIDOR_INFO_1;
|
|
typedef PPROVIDOR_INFO_1W PPROVIDOR_INFO_1;
|
|
typedef LPPROVIDOR_INFO_1W LPPROVIDOR_INFO_1;
|
|
#else
|
|
typedef PROVIDOR_INFO_1A PROVIDOR_INFO_1;
|
|
typedef PPROVIDOR_INFO_1A PPROVIDOR_INFO_1;
|
|
typedef LPPROVIDOR_INFO_1A LPPROVIDOR_INFO_1;
|
|
#endif
|
|
|
|
/* Providor information (level 2) */
|
|
typedef struct _PROVIDOR_INFO_2A {
|
|
LPSTR pOrder;
|
|
} PROVIDOR_INFO_2A;
|
|
typedef PROVIDOR_INFO_2A *PPROVIDOR_INFO_2A;
|
|
typedef PROVIDOR_INFO_2A *LPPROVIDOR_INFO_2A;
|
|
typedef struct _PROVIDOR_INFO_2W {
|
|
LPWSTR pOrder;
|
|
} PROVIDOR_INFO_2W;
|
|
typedef PROVIDOR_INFO_2W *PPROVIDOR_INFO_2W;
|
|
typedef PROVIDOR_INFO_2W *LPPROVIDOR_INFO_2W;
|
|
#ifdef UNICODE
|
|
typedef PROVIDOR_INFO_2W PROVIDOR_INFO_2;
|
|
typedef PPROVIDOR_INFO_2W PPROVIDOR_INFO_2;
|
|
typedef LPPROVIDOR_INFO_2W LPPROVIDOR_INFO_2;
|
|
#else
|
|
typedef PROVIDOR_INFO_2A PROVIDOR_INFO_2;
|
|
typedef PPROVIDOR_INFO_2A PPROVIDOR_INFO_2;
|
|
typedef LPPROVIDOR_INFO_2A LPPROVIDOR_INFO_2;
|
|
#endif
|
|
|
|
/* Printer option flags */
|
|
#if (NTDDI_VERSION >= 0x06000000)
|
|
typedef enum _PRINTER_OPTION_FLAGS {
|
|
PRINTER_OPTION_NO_CACHE = 0x00000001L,
|
|
PRINTER_OPTION_CACHE = 0x00000002L,
|
|
PRINTER_OPTION_CLIENT_CHANGE = 0x00000004L,
|
|
PRINTER_OPTION_NO_CLIENT_DATA = 0x00000008L
|
|
} PRINTER_OPTION_FLAGS;
|
|
#endif
|
|
|
|
/* Printer options */
|
|
#if (NTDDI_VERSION >= 0x06000000)
|
|
typedef struct _PRINTER_OPTIONSA {
|
|
UINT cbSize;
|
|
DWORD dwFlags;
|
|
} PRINTER_OPTIONSA;
|
|
typedef PRINTER_OPTIONSA *PPRINTER_OPTIONSA;
|
|
typedef PRINTER_OPTIONSA *LPPRINTER_OPTIONSA;
|
|
typedef struct _PRINTER_OPTIONSW {
|
|
UINT cbSize;
|
|
DWORD dwFlags;
|
|
} PRINTER_OPTIONSW;
|
|
typedef PRINTER_OPTIONSW *PPRINTER_OPTIONSW;
|
|
typedef PRINTER_OPTIONSW *LPPRINTER_OPTIONSW;
|
|
#ifdef UNICODE
|
|
typedef PRINTER_OPTIONSW PRINTER_OPTIONS;
|
|
typedef PPRINTER_OPTIONSW PPRINTER_OPTIONS;
|
|
typedef LPPRINTER_OPTIONSW LPPRINTER_OPTIONS;
|
|
#else
|
|
typedef PRINTER_OPTIONSA PRINTER_OPTIONS;
|
|
typedef PPRINTER_OPTIONSA PPRINTER_OPTIONS;
|
|
typedef LPPRINTER_OPTIONSA LPPRINTER_OPTIONS;
|
|
#endif
|
|
#endif
|
|
|
|
/* Printer connection information */
|
|
#if (NTDDI_VERSION >= 0x06000000)
|
|
typedef struct _PRINTER_CONNECTION_INFO_1A {
|
|
DWORD dwFlags;
|
|
LPSTR pszDriverName;
|
|
} PRINTER_CONNECTION_INFO_1A;
|
|
typedef PRINTER_CONNECTION_INFO_1A *PPRINTER_CONNECTION_INFO_1A;
|
|
typedef struct _PRINTER_CONNECTION_INFO_1W {
|
|
DWORD dwFlags;
|
|
LPWSTR pszDriverName;
|
|
} PRINTER_CONNECTION_INFO_1W;
|
|
typedef PRINTER_CONNECTION_INFO_1W *PPRINTER_CONNECTION_INFO_1W;
|
|
#ifdef UNICODE
|
|
typedef PRINTER_CONNECTION_INFO_1W PRINTER_CONNECTION_INFO_1;
|
|
typedef PPRINTER_CONNECTION_INFO_1W PPRINTER_CONNECTION_INFO_1;
|
|
#else
|
|
typedef PRINTER_CONNECTION_INFO_1A PRINTER_CONNECTION_INFO_1;
|
|
typedef PPRINTER_CONNECTION_INFO_1A PPRINTER_CONNECTION_INFO_1;
|
|
#endif
|
|
#endif
|
|
|
|
/* Core printer driver */
|
|
#if (NTDDI_VERSION >= 0x06000000)
|
|
typedef struct _CORE_PRINTER_DRIVERA {
|
|
GUID CoreDriverGUID;
|
|
FILETIME ftDriverDate;
|
|
DWORDLONG dwlDriverVersion;
|
|
CHAR szPackageID[MAX_PATH];
|
|
} CORE_PRINTER_DRIVERA;
|
|
typedef CORE_PRINTER_DRIVERA *PCORE_PRINTER_DRIVERA;
|
|
typedef struct _CORE_PRINTER_DRIVERW {
|
|
GUID CoreDriverGUID;
|
|
FILETIME ftDriverDate;
|
|
DWORDLONG dwlDriverVersion;
|
|
WCHAR szPackageID[MAX_PATH];
|
|
} CORE_PRINTER_DRIVERW;
|
|
typedef CORE_PRINTER_DRIVERW *PCORE_PRINTER_DRIVERW;
|
|
#ifdef UNICODE
|
|
typedef CORE_PRINTER_DRIVERW CORE_PRINTER_DRIVER;
|
|
typedef PCORE_PRINTER_DRIVERW PCORE_PRINTER_DRIVER;
|
|
#else
|
|
typedef CORE_PRINTER_DRIVERA CORE_PRINTER_DRIVER;
|
|
typedef PCORE_PRINTER_DRIVERA PCORE_PRINTER_DRIVER;
|
|
#endif
|
|
#endif
|
|
|
|
/* Print property types */
|
|
#if (NTDDI_VERSION >= 0x06000000)
|
|
typedef enum {
|
|
kPropertyTypeString = 1,
|
|
kPropertyTypeInt32 = 2,
|
|
kPropertyTypeInt64 = 3,
|
|
kPropertyTypeByte = 4,
|
|
kPropertyTypeTime = 5,
|
|
kPropertyTypeDevMode = 6,
|
|
kPropertyTypeSD = 7,
|
|
kPropertyTypeNotificationReply = 8,
|
|
kPropertyTypeNotificationOptions = 9,
|
|
kPropertyTypeBuffer = 10
|
|
} EPrintPropertyType;
|
|
#endif
|
|
|
|
/* Print XPS job progress values */
|
|
#if (NTDDI_VERSION >= 0x06000000)
|
|
typedef enum {
|
|
kAddingDocumentSequence = 0,
|
|
kDocumentSequenceAdded = 1,
|
|
kAddingFixedDocument = 2,
|
|
kFixedDocumentAdded = 3,
|
|
kAddingFixedPage = 4,
|
|
kFixedPageAdded = 5,
|
|
kResourceAdded = 6,
|
|
kFontAdded = 7,
|
|
kImageAdded = 8,
|
|
kXpsDocumentCommitted = 9
|
|
} EPrintXPSJobProgress;
|
|
#endif
|
|
|
|
/* Print XPS job operations */
|
|
#if (NTDDI_VERSION >= 0x06000000)
|
|
typedef enum {
|
|
kJobProduction = 1,
|
|
kJobConsumption = 2
|
|
} EPrintXPSJobOperation;
|
|
#endif
|
|
|
|
/* Print property value */
|
|
#if (NTDDI_VERSION >= 0x06000000)
|
|
typedef struct {
|
|
EPrintPropertyType ePropertyType;
|
|
union {
|
|
BYTE propertyByte;
|
|
PWSTR propertyString;
|
|
LONG propertyInt32;
|
|
LONGLONG propertyInt64;
|
|
struct {
|
|
DWORD cbBuf;
|
|
LPVOID pBuf;
|
|
} propertyBlob;
|
|
} value;
|
|
} PrintPropertyValue;
|
|
#endif
|
|
|
|
/* Print named property */
|
|
#if (NTDDI_VERSION >= 0x06000000)
|
|
typedef struct {
|
|
WCHAR *propertyName;
|
|
PrintPropertyValue propertyValue;
|
|
} PrintNamedProperty;
|
|
#endif
|
|
|
|
/* Print properties collection */
|
|
#if (NTDDI_VERSION >= 0x06000000)
|
|
typedef struct {
|
|
ULONG numberOfProperties;
|
|
PrintNamedProperty *propertiesCollection;
|
|
} PrintPropertiesCollection;
|
|
#endif
|
|
|
|
/* Print execution contexts */
|
|
#if (NTDDI_VERSION >= 0x06010000)
|
|
typedef enum {
|
|
PRINT_EXECUTION_CONTEXT_APPLICATION = 0,
|
|
PRINT_EXECUTION_CONTEXT_SPOOLER_SERVICE = 1,
|
|
PRINT_EXECUTION_CONTEXT_SPOOLER_ISOLATION_HOST = 2,
|
|
PRINT_EXECUTION_CONTEXT_FILTER_PIPELINE = 3,
|
|
PRINT_EXECUTION_CONTEXT_WOW64 = 4
|
|
} PRINT_EXECUTION_CONTEXT;
|
|
#endif
|
|
|
|
/* Print execution data */
|
|
#if (NTDDI_VERSION >= 0x06010000)
|
|
typedef struct {
|
|
PRINT_EXECUTION_CONTEXT context;
|
|
DWORD clientAppPID;
|
|
} PRINT_EXECUTION_DATA;
|
|
#endif
|
|
|
|
/* Functions in WINSPOOL.DRV */
|
|
WINSPOOLAPI BOOL WINAPI AbortPrinter( HANDLE );
|
|
WINSPOOLAPI BOOL WINAPI AddFormA( HANDLE, DWORD, LPBYTE );
|
|
WINSPOOLAPI BOOL WINAPI AddFormW( HANDLE, DWORD, LPBYTE );
|
|
WINSPOOLAPI BOOL WINAPI AddJobA( HANDLE, DWORD, LPBYTE, DWORD, LPDWORD );
|
|
WINSPOOLAPI BOOL WINAPI AddJobW( HANDLE, DWORD, LPBYTE, DWORD, LPDWORD );
|
|
WINSPOOLAPI BOOL WINAPI AddMonitorA( LPSTR, DWORD, LPBYTE );
|
|
WINSPOOLAPI BOOL WINAPI AddMonitorW( LPWSTR, DWORD, LPBYTE );
|
|
WINSPOOLAPI BOOL WINAPI AddPortA( LPSTR, HWND, LPSTR );
|
|
WINSPOOLAPI BOOL WINAPI AddPortW( LPWSTR, HWND, LPWSTR );
|
|
WINSPOOLAPI BOOL WINAPI AddPrintProcessorA( LPSTR, LPSTR, LPSTR, LPSTR );
|
|
WINSPOOLAPI BOOL WINAPI AddPrintProcessorW( LPWSTR, LPWSTR, LPWSTR, LPWSTR );
|
|
WINSPOOLAPI BOOL WINAPI AddPrintProvidorA( LPSTR, DWORD, LPBYTE );
|
|
WINSPOOLAPI BOOL WINAPI AddPrintProvidorW( LPWSTR, DWORD, LPBYTE );
|
|
WINSPOOLAPI HANDLE WINAPI AddPrinterA( LPSTR, DWORD, LPBYTE );
|
|
WINSPOOLAPI BOOL WINAPI AddPrinterConnectionA( LPSTR );
|
|
WINSPOOLAPI BOOL WINAPI AddPrinterConnectionW( LPWSTR );
|
|
WINSPOOLAPI BOOL WINAPI AddPrinterDriverA( LPSTR, DWORD, LPBYTE );
|
|
WINSPOOLAPI BOOL WINAPI AddPrinterDriverExA( LPSTR, DWORD, LPBYTE, DWORD );
|
|
WINSPOOLAPI BOOL WINAPI AddPrinterDriverExW( LPWSTR, DWORD, LPBYTE, DWORD );
|
|
WINSPOOLAPI BOOL WINAPI AddPrinterDriverW( LPWSTR, DWORD, LPBYTE );
|
|
WINSPOOLAPI HANDLE WINAPI AddPrinterW( LPWSTR, DWORD, LPBYTE );
|
|
WINSPOOLAPI LONG WINAPI AdvancedDocumentPropertiesA( HWND, HANDLE, LPSTR, PDEVMODEA, PDEVMODEA );
|
|
WINSPOOLAPI LONG WINAPI AdvancedDocumentPropertiesW( HWND, HANDLE, LPWSTR, PDEVMODEW, PDEVMODEW );
|
|
WINSPOOLAPI BOOL WINAPI ClosePrinter( HANDLE );
|
|
WINSPOOLAPI BOOL WINAPI CloseSpoolFileHandle( HANDLE, HANDLE );
|
|
WINSPOOLAPI HANDLE WINAPI CommitSpoolData( HANDLE, HANDLE, DWORD );
|
|
WINSPOOLAPI BOOL WINAPI ConfigurePortA( LPSTR, HWND, LPSTR );
|
|
WINSPOOLAPI BOOL WINAPI ConfigurePortW( LPWSTR, HWND, LPWSTR );
|
|
WINSPOOLAPI HANDLE WINAPI ConnectToPrinterDlg( HWND, DWORD );
|
|
WINSPOOLAPI BOOL WINAPI DeleteFormA( HANDLE, LPSTR );
|
|
WINSPOOLAPI BOOL WINAPI DeleteFormW( HANDLE, LPWSTR );
|
|
WINSPOOLAPI BOOL WINAPI DeleteMonitorA( LPSTR, LPSTR, LPSTR );
|
|
WINSPOOLAPI BOOL WINAPI DeleteMonitorW( LPWSTR, LPWSTR, LPWSTR );
|
|
WINSPOOLAPI BOOL WINAPI DeletePortA( LPSTR, HWND, LPSTR );
|
|
WINSPOOLAPI BOOL WINAPI DeletePortW( LPWSTR, HWND, LPWSTR );
|
|
WINSPOOLAPI BOOL WINAPI DeletePrintProcessorA( LPSTR, LPSTR, LPSTR );
|
|
WINSPOOLAPI BOOL WINAPI DeletePrintProcessorW( LPWSTR, LPWSTR, LPWSTR );
|
|
WINSPOOLAPI BOOL WINAPI DeletePrintProvidorA( LPSTR, LPSTR, LPSTR );
|
|
WINSPOOLAPI BOOL WINAPI DeletePrintProvidorW( LPWSTR, LPWSTR, LPWSTR );
|
|
WINSPOOLAPI BOOL WINAPI DeletePrinter( HANDLE );
|
|
WINSPOOLAPI BOOL WINAPI DeletePrinterConnectionA( LPSTR );
|
|
WINSPOOLAPI BOOL WINAPI DeletePrinterConnectionW( LPWSTR );
|
|
WINSPOOLAPI DWORD WINAPI DeletePrinterDataA( HANDLE, LPSTR );
|
|
WINSPOOLAPI DWORD WINAPI DeletePrinterDataExA( HANDLE, LPCSTR, LPCSTR );
|
|
WINSPOOLAPI DWORD WINAPI DeletePrinterDataExW( HANDLE, LPCWSTR, LPCWSTR );
|
|
WINSPOOLAPI DWORD WINAPI DeletePrinterDataW( HANDLE, LPWSTR );
|
|
WINSPOOLAPI BOOL WINAPI DeletePrinterDriverA( LPSTR, LPSTR, LPSTR );
|
|
WINSPOOLAPI BOOL WINAPI DeletePrinterDriverExA( LPSTR, LPSTR, LPSTR, DWORD, DWORD );
|
|
WINSPOOLAPI BOOL WINAPI DeletePrinterDriverExW( LPWSTR, LPWSTR, LPWSTR, DWORD, DWORD );
|
|
WINSPOOLAPI BOOL WINAPI DeletePrinterDriverW( LPWSTR, LPWSTR, LPWSTR );
|
|
WINSPOOLAPI DWORD WINAPI DeletePrinterKeyA( HANDLE, LPCSTR );
|
|
WINSPOOLAPI DWORD WINAPI DeletePrinterKeyW( HANDLE, LPCWSTR );
|
|
WINSPOOLAPI LONG WINAPI DocumentPropertiesA( HWND, HANDLE, LPSTR, PDEVMODEA, PDEVMODEA, DWORD );
|
|
WINSPOOLAPI LONG WINAPI DocumentPropertiesW( HWND, HANDLE, LPWSTR, PDEVMODEW, PDEVMODEW, DWORD );
|
|
WINSPOOLAPI BOOL WINAPI EndDocPrinter( HANDLE );
|
|
WINSPOOLAPI BOOL WINAPI EndPagePrinter( HANDLE );
|
|
WINSPOOLAPI BOOL WINAPI EnumFormsA( HANDLE, DWORD, LPBYTE, DWORD, LPDWORD, LPDWORD );
|
|
WINSPOOLAPI BOOL WINAPI EnumFormsW( HANDLE, DWORD, LPBYTE, DWORD, LPDWORD, LPDWORD );
|
|
WINSPOOLAPI BOOL WINAPI EnumJobsA( HANDLE, DWORD, DWORD, DWORD, LPBYTE, DWORD, LPDWORD, LPDWORD );
|
|
WINSPOOLAPI BOOL WINAPI EnumJobsW( HANDLE, DWORD, DWORD, DWORD, LPBYTE, DWORD, LPDWORD, LPDWORD );
|
|
WINSPOOLAPI BOOL WINAPI EnumMonitorsA( LPSTR, DWORD, LPBYTE, DWORD, LPDWORD, LPDWORD );
|
|
WINSPOOLAPI BOOL WINAPI EnumMonitorsW( LPWSTR, DWORD, LPBYTE, DWORD, LPDWORD, LPDWORD );
|
|
WINSPOOLAPI BOOL WINAPI EnumPortsA( LPSTR, DWORD, LPBYTE, DWORD, LPDWORD, LPDWORD );
|
|
WINSPOOLAPI BOOL WINAPI EnumPortsW( LPWSTR, DWORD, LPBYTE, DWORD, LPDWORD, LPDWORD );
|
|
WINSPOOLAPI BOOL WINAPI EnumPrintProcessorDatatypesA( LPSTR, LPSTR, DWORD, LPBYTE, DWORD, LPDWORD, LPDWORD );
|
|
WINSPOOLAPI BOOL WINAPI EnumPrintProcessorDatatypesW( LPWSTR, LPWSTR, DWORD, LPBYTE, DWORD, LPDWORD, LPDWORD );
|
|
WINSPOOLAPI BOOL WINAPI EnumPrintProcessorsA( LPSTR, LPSTR, DWORD, LPBYTE, DWORD, LPDWORD, LPDWORD );
|
|
WINSPOOLAPI BOOL WINAPI EnumPrintProcessorsW( LPWSTR, LPWSTR, DWORD, LPBYTE, DWORD, LPDWORD, LPDWORD );
|
|
WINSPOOLAPI DWORD WINAPI EnumPrinterDataA( HANDLE, DWORD, LPSTR, DWORD, LPDWORD, LPDWORD, LPBYTE, DWORD, LPDWORD );
|
|
WINSPOOLAPI DWORD WINAPI EnumPrinterDataExA( HANDLE, LPCSTR, LPBYTE, DWORD, LPDWORD, LPDWORD );
|
|
WINSPOOLAPI DWORD WINAPI EnumPrinterDataExW( HANDLE, LPCWSTR, LPBYTE, DWORD, LPDWORD, LPDWORD );
|
|
WINSPOOLAPI DWORD WINAPI EnumPrinterDataW( HANDLE, DWORD, LPWSTR, DWORD, LPDWORD, LPDWORD, LPBYTE, DWORD, LPDWORD );
|
|
WINSPOOLAPI BOOL WINAPI EnumPrinterDriversA( LPSTR, LPSTR, DWORD, LPBYTE, DWORD, LPDWORD, LPDWORD );
|
|
WINSPOOLAPI BOOL WINAPI EnumPrinterDriversW( LPWSTR, LPWSTR, DWORD, LPBYTE, DWORD, LPDWORD, LPDWORD );
|
|
WINSPOOLAPI DWORD WINAPI EnumPrinterKeyA( HANDLE, LPCSTR, LPSTR, DWORD, LPDWORD );
|
|
WINSPOOLAPI DWORD WINAPI EnumPrinterKeyW( HANDLE, LPCWSTR, LPWSTR, DWORD, LPDWORD );
|
|
WINSPOOLAPI BOOL WINAPI EnumPrintersA( DWORD, LPSTR, DWORD, LPBYTE, DWORD, LPDWORD, LPDWORD );
|
|
WINSPOOLAPI BOOL WINAPI EnumPrintersW( DWORD, LPWSTR, DWORD, LPBYTE, DWORD, LPDWORD, LPDWORD );
|
|
WINSPOOLAPI BOOL WINAPI FindClosePrinterChangeNotification( HANDLE );
|
|
WINSPOOLAPI HANDLE WINAPI FindFirstPrinterChangeNotification( HANDLE, DWORD, DWORD, PVOID );
|
|
WINSPOOLAPI BOOL WINAPI FindNextPrinterChangeNotification( HANDLE, PDWORD, LPVOID, LPVOID * );
|
|
WINSPOOLAPI BOOL WINAPI FlushPrinter( HANDLE, LPVOID, DWORD, LPDWORD, DWORD );
|
|
WINSPOOLAPI BOOL WINAPI FreePrinterNotifyInfo( PPRINTER_NOTIFY_INFO );
|
|
WINSPOOLAPI BOOL WINAPI GetDefaultPrinterA( LPSTR, LPDWORD );
|
|
WINSPOOLAPI BOOL WINAPI GetDefaultPrinterW( LPWSTR, LPDWORD );
|
|
WINSPOOLAPI BOOL WINAPI GetFormA( HANDLE, LPSTR, DWORD, LPBYTE, DWORD, LPDWORD );
|
|
WINSPOOLAPI BOOL WINAPI GetFormW( HANDLE, LPWSTR, DWORD, LPBYTE, DWORD, LPDWORD );
|
|
WINSPOOLAPI BOOL WINAPI GetJobA( HANDLE, DWORD, DWORD, LPBYTE, DWORD, LPDWORD );
|
|
WINSPOOLAPI BOOL WINAPI GetJobW( HANDLE, DWORD, DWORD, LPBYTE, DWORD, LPDWORD );
|
|
WINSPOOLAPI BOOL WINAPI GetPrintProcessorDirectoryA( LPSTR, LPSTR, DWORD, LPBYTE, DWORD, LPDWORD );
|
|
WINSPOOLAPI BOOL WINAPI GetPrintProcessorDirectoryW( LPWSTR, LPWSTR, DWORD, LPBYTE, DWORD, LPDWORD );
|
|
WINSPOOLAPI BOOL WINAPI GetPrinterA( HANDLE, DWORD, LPBYTE, DWORD, LPDWORD );
|
|
WINSPOOLAPI DWORD WINAPI GetPrinterDataA( HANDLE, LPSTR, LPDWORD, LPBYTE, DWORD, LPDWORD );
|
|
WINSPOOLAPI DWORD WINAPI GetPrinterDataExA( HANDLE, LPCSTR, LPCSTR, LPDWORD, LPBYTE, DWORD, LPDWORD );
|
|
WINSPOOLAPI DWORD WINAPI GetPrinterDataExW( HANDLE, LPCWSTR, LPCWSTR, LPDWORD, LPBYTE, DWORD, LPDWORD );
|
|
WINSPOOLAPI DWORD WINAPI GetPrinterDataW( HANDLE, LPWSTR, LPDWORD, LPBYTE, DWORD, LPDWORD );
|
|
WINSPOOLAPI BOOL WINAPI GetPrinterDriverA( HANDLE, LPSTR, DWORD, LPBYTE, DWORD, LPDWORD );
|
|
WINSPOOLAPI BOOL WINAPI GetPrinterDriverDirectoryA( LPSTR, LPSTR, DWORD, LPBYTE, DWORD, LPDWORD );
|
|
WINSPOOLAPI BOOL WINAPI GetPrinterDriverDirectoryW( LPWSTR, LPWSTR, DWORD, LPBYTE, DWORD, LPDWORD );
|
|
WINSPOOLAPI BOOL WINAPI GetPrinterDriverW( HANDLE, LPWSTR, DWORD, LPBYTE, DWORD, LPDWORD );
|
|
WINSPOOLAPI BOOL WINAPI GetPrinterW( HANDLE, DWORD, LPBYTE, DWORD, LPDWORD );
|
|
WINSPOOLAPI HANDLE WINAPI GetSpoolFileHandle( HANDLE );
|
|
WINSPOOLAPI BOOL WINAPI OpenPrinterA( LPSTR, LPHANDLE, LPPRINTER_DEFAULTSA );
|
|
WINSPOOLAPI BOOL WINAPI OpenPrinterW( LPWSTR, LPHANDLE, LPPRINTER_DEFAULTSW );
|
|
WINSPOOLAPI DWORD WINAPI PrinterMessageBoxA( HANDLE, DWORD, HWND, LPSTR, LPSTR, DWORD );
|
|
WINSPOOLAPI DWORD WINAPI PrinterMessageBoxW( HANDLE, DWORD, HWND, LPWSTR, LPWSTR, DWORD );
|
|
WINSPOOLAPI BOOL WINAPI PrinterProperties( HWND, HANDLE );
|
|
WINSPOOLAPI BOOL WINAPI ReadPrinter( HANDLE, LPVOID, DWORD, LPDWORD );
|
|
WINSPOOLAPI BOOL WINAPI ResetPrinterA( HANDLE, LPPRINTER_DEFAULTSA );
|
|
WINSPOOLAPI BOOL WINAPI ResetPrinterW( HANDLE, LPPRINTER_DEFAULTSW );
|
|
WINSPOOLAPI BOOL WINAPI ScheduleJob( HANDLE, DWORD );
|
|
WINSPOOLAPI BOOL WINAPI SetDefaultPrinterA( LPCSTR );
|
|
WINSPOOLAPI BOOL WINAPI SetDefaultPrinterW( LPCWSTR );
|
|
WINSPOOLAPI BOOL WINAPI SetFormA( HANDLE, LPSTR, DWORD, LPBYTE );
|
|
WINSPOOLAPI BOOL WINAPI SetFormW( HANDLE, LPWSTR, DWORD, LPBYTE );
|
|
WINSPOOLAPI BOOL WINAPI SetJobA( HANDLE, DWORD, DWORD, LPBYTE, DWORD );
|
|
WINSPOOLAPI BOOL WINAPI SetJobW( HANDLE, DWORD, DWORD, LPBYTE, DWORD );
|
|
WINSPOOLAPI BOOL WINAPI SetPortA( LPSTR, LPSTR, DWORD, LPBYTE );
|
|
WINSPOOLAPI BOOL WINAPI SetPortW( LPWSTR, LPWSTR, DWORD, LPBYTE );
|
|
WINSPOOLAPI BOOL WINAPI SetPrinterA( HANDLE, DWORD, LPBYTE, DWORD );
|
|
WINSPOOLAPI DWORD WINAPI SetPrinterDataA( HANDLE, LPSTR, DWORD, LPBYTE, DWORD );
|
|
WINSPOOLAPI DWORD WINAPI SetPrinterDataExA( HANDLE, LPCSTR, LPCSTR, DWORD, LPBYTE, DWORD );
|
|
WINSPOOLAPI DWORD WINAPI SetPrinterDataExW( HANDLE, LPCWSTR, LPCWSTR, DWORD, LPBYTE, DWORD );
|
|
WINSPOOLAPI DWORD WINAPI SetPrinterDataW( HANDLE, LPWSTR, DWORD, LPBYTE, DWORD );
|
|
WINSPOOLAPI BOOL WINAPI SetPrinterW( HANDLE, DWORD, LPBYTE, DWORD );
|
|
WINSPOOLAPI DWORD WINAPI StartDocPrinterA( HANDLE, DWORD, LPBYTE );
|
|
WINSPOOLAPI DWORD WINAPI StartDocPrinterW( HANDLE, DWORD, LPBYTE );
|
|
WINSPOOLAPI BOOL WINAPI StartPagePrinter( HANDLE );
|
|
WINSPOOLAPI DWORD WINAPI WaitForPrinterChange( HANDLE, DWORD );
|
|
WINSPOOLAPI BOOL WINAPI WritePrinter( HANDLE, LPVOID, DWORD, LPDWORD );
|
|
WINSPOOLAPI BOOL WINAPI XcvDataW( HANDLE, PCWSTR, PBYTE, DWORD, PBYTE, DWORD, PDWORD, PDWORD );
|
|
#if (NTDDI_VERSION >= 0x05010100)
|
|
WINSPOOLAPI LONG WINAPI ExtDeviceMode( HWND, HANDLE, LPDEVMODEA, LPSTR, LPSTR, LPDEVMODEA, LPSTR, DWORD );
|
|
#endif
|
|
#if (NTDDI_VERSION >= 0x05010200)
|
|
WINSPOOLAPI BOOL WINAPI IsValidDevmodeA( PDEVMODEA, size_t );
|
|
WINSPOOLAPI BOOL WINAPI IsValidDevmodeW( PDEVMODEW, size_t );
|
|
#endif
|
|
#if (NTDDI_VERSION >= 0x06000000)
|
|
WINSPOOLAPI BOOL WINAPI AddPrinterConnection2A( HWND, LPCSTR, DWORD, PVOID );
|
|
WINSPOOLAPI BOOL WINAPI AddPrinterConnection2W( HWND, LPCWSTR, DWORD, PVOID );
|
|
WINSPOOLAPI HRESULT WINAPI CorePrinterDriverInstalledA( LPCSTR, LPCSTR, GUID, FILETIME, DWORDLONG, BOOL * );
|
|
WINSPOOLAPI HRESULT WINAPI CorePrinterDriverInstalledW( LPCWSTR, LPCWSTR, GUID, FILETIME, DWORDLONG, BOOL * );
|
|
WINSPOOLAPI HRESULT WINAPI DeletePrinterDriverPackageA( LPCSTR, LPCSTR, LPCSTR );
|
|
WINSPOOLAPI HRESULT WINAPI DeletePrinterDriverPackageW( LPCWSTR, LPCWSTR, LPCWSTR );
|
|
WINSPOOLAPI HRESULT WINAPI GetCorePrinterDriversA( LPCSTR, LPCSTR, LPCSTR, DWORD, PCORE_PRINTER_DRIVERA );
|
|
WINSPOOLAPI HRESULT WINAPI GetCorePrinterDriversW( LPCWSTR, LPCWSTR, LPCWSTR, DWORD, PCORE_PRINTER_DRIVERW );
|
|
WINSPOOLAPI BOOL WINAPI GetPrinterDriver2A( HWND, HANDLE, LPSTR, DWORD, LPBYTE, DWORD, LPDWORD );
|
|
WINSPOOLAPI BOOL WINAPI GetPrinterDriver2W( HWND, HANDLE, LPWSTR, DWORD, LPBYTE, DWORD, LPDWORD );
|
|
WINSPOOLAPI HRESULT WINAPI GetPrinterDriverPackagePathA( LPCSTR, LPCSTR, LPCSTR, LPCSTR, LPSTR, DWORD, LPDWORD );
|
|
WINSPOOLAPI HRESULT WINAPI GetPrinterDriverPackagePathW( LPCWSTR, LPCWSTR, LPCWSTR, LPCWSTR, LPWSTR, DWORD, LPDWORD );
|
|
WINSPOOLAPI HRESULT WINAPI InstallPrinterDriverFromPackageA( LPCSTR, LPCSTR, LPCSTR, LPCSTR, DWORD );
|
|
WINSPOOLAPI HRESULT WINAPI InstallPrinterDriverFromPackageW( LPCWSTR, LPCWSTR, LPCWSTR, LPCWSTR, DWORD );
|
|
WINSPOOLAPI BOOL WINAPI OpenPrinter2A( LPCSTR, LPHANDLE, PPRINTER_DEFAULTSA, PPRINTER_OPTIONSA );
|
|
WINSPOOLAPI BOOL WINAPI OpenPrinter2W( LPCWSTR, LPHANDLE, PPRINTER_DEFAULTSW, PPRINTER_OPTIONSW );
|
|
WINSPOOLAPI HRESULT WINAPI ReportJobProcessingProgress( HANDLE, ULONG, EPrintXPSJobOperation, EPrintXPSJobProgress );
|
|
WINSPOOLAPI HRESULT WINAPI UploadPrinterDriverPackageA( LPCSTR, LPCSTR, LPCSTR, DWORD, HWND, LPSTR, PULONG );
|
|
WINSPOOLAPI HRESULT WINAPI UploadPrinterDriverPackageW( LPCWSTR, LPCWSTR, LPCWSTR, DWORD, HWND, LPWSTR, PULONG );
|
|
#endif
|
|
#if (NTDDI_VERSION >= 0x06010000)
|
|
WINSPOOLAPI BOOL WINAPI GetPrintExecutionData( PRINT_EXECUTION_DATA * );
|
|
#endif
|
|
|
|
/* Map generic function names to the appropriate ANSI or Unicode version. */
|
|
#ifdef UNICODE
|
|
#define AddForm AddFormW
|
|
#define AddJob AddJobW
|
|
#define AddMonitor AddMonitorW
|
|
#define AddPort AddPortW
|
|
#define AddPrintProcessor AddPrintProcessorW
|
|
#define AddPrintProvidor AddPrintProvidorW
|
|
#define AddPrinter AddPrinterW
|
|
#define AddPrinterConnection AddPrinterConnectionW
|
|
#define AddPrinterDriver AddPrinterDriverW
|
|
#define AddPrinterDriverEx AddPrinterDriverExW
|
|
#define AdvancedDocumentProperties AdvancedDocumentPropertiesW
|
|
#define ConfigurePort ConfigurePortW
|
|
#define DeleteForm DeleteFormW
|
|
#define DeleteMonitor DeleteMonitorW
|
|
#define DeletePort DeletePortW
|
|
#define DeletePrintProcessor DeletePrintProcessorW
|
|
#define DeletePrintProvidor DeletePrintProvidorW
|
|
#define DeletePrinterConnection DeletePrinterConnectionW
|
|
#define DeletePrinterData DeletePrinterDataW
|
|
#define DeletePrinterDataEx DeletePrinterDataExW
|
|
#define DeletePrinterDriver DeletePrinterDriverW
|
|
#define DeletePrinterDriverEx DeletePrinterDriverExW
|
|
#define DeletePrinterKey DeletePrinterKeyW
|
|
#define DocumentProperties DocumentPropertiesW
|
|
#define EnumForms EnumFormsW
|
|
#define EnumJobs EnumJobsW
|
|
#define EnumMonitors EnumMonitorsW
|
|
#define EnumPorts EnumPortsW
|
|
#define EnumPrintProcessorDatatypes EnumPrintProcessorDatatypesW
|
|
#define EnumPrintProcessors EnumPrintProcessorsW
|
|
#define EnumPrinterData EnumPrinterDataW
|
|
#define EnumPrinterDataEx EnumPrinterDataExW
|
|
#define EnumPrinterDrivers EnumPrinterDriversW
|
|
#define EnumPrinterKey EnumPrinterKeyW
|
|
#define EnumPrinters EnumPrintersW
|
|
#define GetDefaultPrinter GetDefaultPrinterW
|
|
#define GetForm GetFormW
|
|
#define GetJob GetJobW
|
|
#define GetPrintProcessorDirectory GetPrintProcessorDirectoryW
|
|
#define GetPrinter GetPrinterW
|
|
#define GetPrinterData GetPrinterDataW
|
|
#define GetPrinterDataEx GetPrinterDataExW
|
|
#define GetPrinterDriver GetPrinterDriverW
|
|
#define GetPrinterDriverDirectory GetPrinterDriverDirectoryW
|
|
#define OpenPrinter OpenPrinterW
|
|
#define ResetPrinter ResetPrinterW
|
|
#define SetDefaultPrinter SetDefaultPrinterW
|
|
#define SetForm SetFormW
|
|
#define SetJob SetJobW
|
|
#define SetPort SetPortW
|
|
#define SetPrinter SetPrinterW
|
|
#define SetPrinterData SetPrinterDataW
|
|
#define SetPrinterDataEx SetPrinterDataExW
|
|
#define StartDocPrinter StartDocPrinterW
|
|
#if (NTDDI_VERSION >= 0x05010200)
|
|
#define IsValidDevmode IsValidDevmodeW
|
|
#endif
|
|
#if (NTDDI_VERSION >= 0x06000000)
|
|
#define AddPrinterConnection2 AddPrinterConnection2W
|
|
#define CorePrinterDriverInstalled CorePrinterDriverInstalledW
|
|
#define DeletePrinterDriverPackage DeletePrinterDriverPackageW
|
|
#define GetCorePrinterDrivers GetCorePrinterDriversW
|
|
#define GetPrinterDriver2 GetPrinterDriver2W
|
|
#define GetPrinterDriverPackagePath GetPrinterDriverPackagePathW
|
|
#define InstallPrinterDriverFromPackage InstallPrinterDriverFromPackageW
|
|
#define OpenPrinter2 OpenPrinter2W
|
|
#define UploadPrinterDriverPackage UploadPrinterDriverPackageW
|
|
#endif
|
|
#else
|
|
#define AddForm AddFormA
|
|
#define AddJob AddJobA
|
|
#define AddMonitor AddMonitorA
|
|
#define AddPort AddPortA
|
|
#define AddPrintProcessor AddPrintProcessorA
|
|
#define AddPrintProvidor AddPrintProvidorA
|
|
#define AddPrinter AddPrinterA
|
|
#define AddPrinterConnection AddPrinterConnectionA
|
|
#define AddPrinterDriver AddPrinterDriverA
|
|
#define AddPrinterDriverEx AddPrinterDriverExA
|
|
#define AdvancedDocumentProperties AdvancedDocumentPropertiesA
|
|
#define ConfigurePort ConfigurePortA
|
|
#define DeleteForm DeleteFormA
|
|
#define DeleteMonitor DeleteMonitorA
|
|
#define DeletePort DeletePortA
|
|
#define DeletePrintProcessor DeletePrintProcessorA
|
|
#define DeletePrintProvidor DeletePrintProvidorA
|
|
#define DeletePrinterConnection DeletePrinterConnectionA
|
|
#define DeletePrinterData DeletePrinterDataA
|
|
#define DeletePrinterDataEx DeletePrinterDataExA
|
|
#define DeletePrinterDriver DeletePrinterDriverA
|
|
#define DeletePrinterDriverEx DeletePrinterDriverExA
|
|
#define DeletePrinterKey DeletePrinterKeyA
|
|
#define DocumentProperties DocumentPropertiesA
|
|
#define EnumForms EnumFormsA
|
|
#define EnumJobs EnumJobsA
|
|
#define EnumMonitors EnumMonitorsA
|
|
#define EnumPorts EnumPortsA
|
|
#define EnumPrintProcessorDatatypes EnumPrintProcessorDatatypesA
|
|
#define EnumPrintProcessors EnumPrintProcessorsA
|
|
#define EnumPrinterData EnumPrinterDataA
|
|
#define EnumPrinterDataEx EnumPrinterDataExA
|
|
#define EnumPrinterDrivers EnumPrinterDriversA
|
|
#define EnumPrinterKey EnumPrinterKeyA
|
|
#define EnumPrinters EnumPrintersA
|
|
#define GetDefaultPrinter GetDefaultPrinterA
|
|
#define GetForm GetFormA
|
|
#define GetJob GetJobA
|
|
#define GetPrintProcessorDirectory GetPrintProcessorDirectoryA
|
|
#define GetPrinter GetPrinterA
|
|
#define GetPrinterData GetPrinterDataA
|
|
#define GetPrinterDriver GetPrinterDriverA
|
|
#define GetPrinterDriverDirectory GetPrinterDriverDirectoryA
|
|
#define OpenPrinter OpenPrinterA
|
|
#define ResetPrinter ResetPrinterA
|
|
#define SetDefaultPrinter SetDefaultPrinterA
|
|
#define SetForm SetFormA
|
|
#define SetJob SetJobA
|
|
#define SetPort SetPortA
|
|
#define SetPrinter SetPrinterA
|
|
#define SetPrinterData SetPrinterDataA
|
|
#define SetPrinterDataEx SetPrinterDataExA
|
|
#define StartDocPrinter StartDocPrinterA
|
|
#if (NTDDI_VERSION >= 0x05010200)
|
|
#define IsValidDevmode IsValidDevmodeA
|
|
#endif
|
|
#if (NTDDI_VERSION >= 0x06000000)
|
|
#define AddPrinterConnection2 AddPrinterConnection2A
|
|
#define CorePrinterDriverInstalled CorePrinterDriverInstalledA
|
|
#define DeletePrinterDriverPackage DeletePrinterDriverPackageA
|
|
#define GetCorePrinterDrivers GetCorePrinterDriversA
|
|
#define GetPrinterDriver2 GetPrinterDriver2A
|
|
#define GetPrinterDriverPackagePath GetPrinterDriverPackagePathA
|
|
#define InstallPrinterDriverFromPackage InstallPrinterDriverFromPackageA
|
|
#define OpenPrinter2 OpenPrinter2A
|
|
#define UploadPrinterDriverPackage UploadPrinterDriverPackageA
|
|
#endif
|
|
#endif
|
|
#define XcvData XcvDataW
|
|
|
|
#ifdef __cplusplus
|
|
} /* extern "C" */
|
|
#endif
|
|
|
|
#endif /* _WINSPOOL_ */
|