1//WinSpool consts 2 3 //Commands printer 4 PRINTER_CONTROL_PAUSE = 1; //Pauses the printer 5 PRINTER_CONTROL_RESUME = 2; //Resumes a paused printer 6 PRINTER_CONTROL_PURGE = 3; //Deletes all print jobs in the printer 7 PRINTER_CONTROL_SET_STATUS = 4; //Sets the printer status. 8 9 //Status of Printer 10 PRINTER_STATUS_PAUSED = $00000001; //The printer is paused 11 PRINTER_STATUS_ERROR = $00000002; //The printer is in an error state 12 PRINTER_STATUS_PENDING_DELETION = $00000004; //The printer is being deleted 13 PRINTER_STATUS_PAPER_JAM = $00000008; //Paper is jammed in the printer 14 PRINTER_STATUS_PAPER_OUT = $00000010; //The printer is out of paper 15 PRINTER_STATUS_MANUAL_FEED = $00000020; //The printer is in a manual feed state 16 PRINTER_STATUS_PAPER_PROBLEM = $00000040; //The printer has a paper problem 17 PRINTER_STATUS_OFFLINE = $00000080; //The printer is offline 18 PRINTER_STATUS_IO_ACTIVE = $00000100; //The printer is in an active input/output state 19 PRINTER_STATUS_BUSY = $00000200; //The printer is busy 20 PRINTER_STATUS_PRINTING = $00000400; //The printer is printing 21 PRINTER_STATUS_OUTPUT_BIN_FULL = $00000800; //The printer's output bin is full 22 PRINTER_STATUS_NOT_AVAILABLE = $00001000; //The printer is not available for printing 23 PRINTER_STATUS_WAITING = $00002000; //The printer is waiting 24 PRINTER_STATUS_PROCESSING = $00004000; //The printer is processing a print job 25 PRINTER_STATUS_INITIALIZING = $00008000; //The printer is initializing 26 PRINTER_STATUS_WARMING_UP = $00010000; //The printer is warming up 27 PRINTER_STATUS_TONER_LOW = $00020000; //The printer is low on toner 28 PRINTER_STATUS_NO_TONER = $00040000; //The printer is out of toner 29 PRINTER_STATUS_PAGE_PUNT = $00080000; //The printer cannot print the current page. 30 PRINTER_STATUS_USER_INTERVENTION = $00100000; //The printer has an error that requires the user to do something 31 PRINTER_STATUS_OUT_OF_MEMORY = $00200000; //The printer has run out of memory 32 PRINTER_STATUS_DOOR_OPEN = $00400000; //The printer door is open 33 PRINTER_STATUS_SERVER_UNKNOWN = $00800000; //The printer status is unknown 34 PRINTER_STATUS_POWER_SAVE = $01000000; //The printer is in power save mode 35 36 //Attribute of printer 37 PRINTER_ATTRIBUTE_QUEUED = $00000001; //if set, the printer spools and starts printing after the last page is spooled. If not set and PRINTER_ATTRIBUTE_DIRECT is not set, the printer spools and prints while spooling 38 PRINTER_ATTRIBUTE_DIRECT = $00000002; //Job is sent directly to the printer (it is not spooled). 39 PRINTER_ATTRIBUTE_DEFAULT = $00000004; //Win9x/Me: Indicates the printer is the default printer in the system 40 PRINTER_ATTRIBUTE_SHARED = $00000008; //Printer is shared 41 PRINTER_ATTRIBUTE_NETWORK = $00000010; //Printer is a network printer connection 42 PRINTER_ATTRIBUTE_HIDDEN = $00000020; //Reserved 43 PRINTER_ATTRIBUTE_LOCAL = $00000040; //Printer is a local printer 44 PRINTER_ATTRIBUTE_ENABLE_DEVQ = $00000080; 45 PRINTER_ATTRIBUTE_KEEPPRINTEDJOBS = $00000100; //If set, jobs are kept after they are printed. If unset, jobs are deleted 46 PRINTER_ATTRIBUTE_DO_COMPLETE_FIRST = $00000200; //If set and printer is set for print-while-spooling, any jobs that have completed spooling are scheduled to print before jobs that have not completed spooling 47 PRINTER_ATTRIBUTE_WORK_OFFLINE = $00000400; //Win9x/Me: Indicates whether the printer is currently connected. If the printer is not currently connected, print jobs will continue to spool. 48 PRINTER_ATTRIBUTE_ENABLE_BIDI = $00000800; //Win9x/Me: Indicates whether bi-directional communications are enabled for the printer 49 PRINTER_ATTRIBUTE_RAW_ONLY = $00001000; //Indicates that only raw data type print jobs can be spooled 50 51 52 //Jobs priorities of printer 53 NO_PRIORITY = 0; //no priority 54 MAX_PRIORITY = 99; //Maximum priority value 55 MIN_PRIORITY = 1; //Minimum priority value 56 DEF_PRIORITY = 1; //Default value of priority 57 58 JOB_CONTROL_PAUSE = 1; 59 JOB_CONTROL_RESUME = 2; 60 JOB_CONTROL_CANCEL = 3; 61 JOB_CONTROL_RESTART = 4; 62 JOB_CONTROL_DELETE = 5; 63 JOB_CONTROL_SENT_TO_PRINTER = 6; 64 JOB_CONTROL_LAST_PAGE_EJECTED = 7; 65 66 JOB_STATUS_PAUSED = $00000001; 67 JOB_STATUS_ERROR = $00000002; 68 JOB_STATUS_DELETING = $00000004; 69 JOB_STATUS_SPOOLING = $00000008; 70 JOB_STATUS_PRINTING = $00000010; 71 JOB_STATUS_OFFLINE = $00000020; 72 JOB_STATUS_PAPEROUT = $00000040; 73 JOB_STATUS_PRINTED = $00000080; 74 JOB_STATUS_DELETED = $00000100; 75 JOB_STATUS_BLOCKED_DEVQ = $00000200; 76 JOB_STATUS_USER_INTERVENTION = $00000400; 77 JOB_STATUS_RESTART = $00000800; 78 79 JOB_POSITION_UNSPECIFIED = 0; 80 81 DI_CHANNEL = 1; 82 DI_READ_SPOOL_JOB = 3; 83 84 FORM_USER = $00000000; 85 FORM_BUILTIN = $00000001; 86 FORM_PRINTER = $00000002; 87 88 PORT_TYPE_WRITE = $0001; 89 PORT_TYPE_READ = $0002; 90 PORT_TYPE_REDIRECTED = $0004; 91 PORT_TYPE_NET_ATTACHED = $0008; 92 93 PORT_STATUS_TYPE_ERROR = 1; 94 PORT_STATUS_TYPE_WARNING= 2; 95 PORT_STATUS_TYPE_INFO = 3; 96 97 PORT_STATUS_OFFLINE = 1; 98 PORT_STATUS_PAPER_JAM = 2; 99 PORT_STATUS_PAPER_OUT = 3; 100 PORT_STATUS_OUTPUT_BIN_FULL = 4; 101 PORT_STATUS_PAPER_PROBLEM = 5; 102 PORT_STATUS_NO_TONER = 6; 103 PORT_STATUS_DOOR_OPEN = 7; 104 PORT_STATUS_USER_INTERVENTION= 8; 105 PORT_STATUS_OUT_OF_MEMORY = 9; 106 PORT_STATUS_TONER_LOW = 10; 107 PORT_STATUS_WARMING_UP = 11; 108 PORT_STATUS_POWER_SAVE = 12; 109 110 PRINTER_ENUM_DEFAULT = $00000001; 111 PRINTER_ENUM_LOCAL = $00000002; 112 PRINTER_ENUM_CONNECTIONS = $00000004; 113 PRINTER_ENUM_FAVORITE = $00000004; 114 PRINTER_ENUM_NAME = $00000008; 115 PRINTER_ENUM_REMOTE = $00000010; 116 PRINTER_ENUM_SHARED = $00000020; 117 PRINTER_ENUM_NETWORK = $00000040; 118 PRINTER_ENUM_EXPAND = $00004000; 119 PRINTER_ENUM_CONTAINER = $00008000; 120 PRINTER_ENUM_ICONMASK = $00ff0000; 121 PRINTER_ENUM_ICON1 = $00010000; 122 PRINTER_ENUM_ICON2 = $00020000; 123 PRINTER_ENUM_ICON3 = $00040000; 124 PRINTER_ENUM_ICON4 = $00080000; 125 PRINTER_ENUM_ICON5 = $00100000; 126 PRINTER_ENUM_ICON6 = $00200000; 127 PRINTER_ENUM_ICON7 = $00400000; 128 PRINTER_ENUM_ICON8 = $00800000; 129 130 PRINTER_NOTIFY_TYPE = $00; 131 JOB_NOTIFY_TYPE = $01; 132 133 PRINTER_NOTIFY_FIELD_SERVER_NAME = $00; 134 PRINTER_NOTIFY_FIELD_PRINTER_NAME = $01; 135 PRINTER_NOTIFY_FIELD_SHARE_NAME = $02; 136 PRINTER_NOTIFY_FIELD_PORT_NAME = $03; 137 PRINTER_NOTIFY_FIELD_DRIVER_NAME = $04; 138 PRINTER_NOTIFY_FIELD_COMMENT = $05; 139 PRINTER_NOTIFY_FIELD_LOCATION = $06; 140 PRINTER_NOTIFY_FIELD_DEVMODE = $07; 141 PRINTER_NOTIFY_FIELD_SEPFILE = $08; 142 PRINTER_NOTIFY_FIELD_PRINT_PROCESSOR = $09; 143 PRINTER_NOTIFY_FIELD_PARAMETERS = $0A; 144 PRINTER_NOTIFY_FIELD_DATATYPE = $0B; 145 PRINTER_NOTIFY_FIELD_SECURITY_DESCRIPTOR= $0C; 146 PRINTER_NOTIFY_FIELD_ATTRIBUTES = $0D; 147 PRINTER_NOTIFY_FIELD_PRIORITY = $0E; 148 PRINTER_NOTIFY_FIELD_DEFAULT_PRIORITY = $0F; 149 PRINTER_NOTIFY_FIELD_START_TIME = $10; 150 PRINTER_NOTIFY_FIELD_UNTIL_TIME = $11; 151 PRINTER_NOTIFY_FIELD_STATUS = $12; 152 PRINTER_NOTIFY_FIELD_STATUS_STRING = $13; 153 PRINTER_NOTIFY_FIELD_CJOBS = $14; 154 PRINTER_NOTIFY_FIELD_AVERAGE_PPM = $15; 155 PRINTER_NOTIFY_FIELD_TOTAL_PAGES = $16; 156 PRINTER_NOTIFY_FIELD_PAGES_PRINTED = $17; 157 PRINTER_NOTIFY_FIELD_TOTAL_BYTES = $18; 158 PRINTER_NOTIFY_FIELD_BYTES_PRINTED = $19; 159 160 JOB_NOTIFY_FIELD_PRINTER_NAME = $00; 161 JOB_NOTIFY_FIELD_MACHINE_NAME = $01; 162 JOB_NOTIFY_FIELD_PORT_NAME = $02; 163 JOB_NOTIFY_FIELD_USER_NAME = $03; 164 JOB_NOTIFY_FIELD_NOTIFY_NAME = $04; 165 JOB_NOTIFY_FIELD_DATATYPE = $05; 166 JOB_NOTIFY_FIELD_PRINT_PROCESSOR = $06; 167 JOB_NOTIFY_FIELD_PARAMETERS = $07; 168 JOB_NOTIFY_FIELD_DRIVER_NAME = $08; 169 JOB_NOTIFY_FIELD_DEVMODE = $09; 170 JOB_NOTIFY_FIELD_STATUS = $0A; 171 JOB_NOTIFY_FIELD_STATUS_STRING = $0B; 172 JOB_NOTIFY_FIELD_SECURITY_DESCRIPTOR = $0C; 173 JOB_NOTIFY_FIELD_DOCUMENT = $0D; 174 JOB_NOTIFY_FIELD_PRIORITY = $0E; 175 JOB_NOTIFY_FIELD_POSITION = $0F; 176 JOB_NOTIFY_FIELD_SUBMITTED = $10; 177 JOB_NOTIFY_FIELD_START_TIME = $11; 178 JOB_NOTIFY_FIELD_UNTIL_TIME = $12; 179 JOB_NOTIFY_FIELD_TIME = $13; 180 JOB_NOTIFY_FIELD_TOTAL_PAGES = $14; 181 JOB_NOTIFY_FIELD_PAGES_PRINTED = $15; 182 JOB_NOTIFY_FIELD_TOTAL_BYTES = $16; 183 JOB_NOTIFY_FIELD_BYTES_PRINTED = $17; 184 185 PRINTER_NOTIFY_OPTIONS_REFRESH = $01; 186 PRINTER_NOTIFY_INFO_DISCARDED = $01; 187 188 PRINTER_CHANGE_ADD_PRINTER = $00000001; 189 PRINTER_CHANGE_SET_PRINTER = $00000002; 190 PRINTER_CHANGE_DELETE_PRINTER = $00000004; 191 PRINTER_CHANGE_FAILED_CONNECTION_PRINTER= $00000008; 192 PRINTER_CHANGE_PRINTER = $000000FF; 193 PRINTER_CHANGE_ADD_JOB = $00000100; 194 PRINTER_CHANGE_SET_JOB = $00000200; 195 PRINTER_CHANGE_DELETE_JOB = $00000400; 196 PRINTER_CHANGE_WRITE_JOB = $00000800; 197 PRINTER_CHANGE_JOB = $0000FF00; 198 PRINTER_CHANGE_ADD_FORM = $00010000; 199 PRINTER_CHANGE_SET_FORM = $00020000; 200 PRINTER_CHANGE_DELETE_FORM = $00040000; 201 PRINTER_CHANGE_FORM = $00070000; 202 PRINTER_CHANGE_ADD_PORT = $00100000; 203 PRINTER_CHANGE_CONFIGURE_PORT = $00200000; 204 PRINTER_CHANGE_DELETE_PORT = $00400000; 205 PRINTER_CHANGE_PORT = $00700000; 206 PRINTER_CHANGE_ADD_PRINT_PROCESSOR = $01000000; 207 PRINTER_CHANGE_DELETE_PRINT_PROCESSOR = $04000000; 208 PRINTER_CHANGE_PRINT_PROCESSOR = $07000000; 209 PRINTER_CHANGE_ADD_PRINTER_DRIVER = $10000000; 210 PRINTER_CHANGE_SET_PRINTER_DRIVER = $20000000; 211 PRINTER_CHANGE_DELETE_PRINTER_DRIVER = $40000000; 212 PRINTER_CHANGE_PRINTER_DRIVER = $70000000; 213 PRINTER_CHANGE_TIMEOUT = $80000000; 214 PRINTER_CHANGE_ALL = $7777FFFF; 215 216 PRINTER_ERROR_INFORMATION = $80000000; 217 PRINTER_ERROR_WARNING = $40000000; 218 PRINTER_ERROR_SEVERE = $20000000; 219 PRINTER_ERROR_OUTOFPAPER = $00000001; 220 PRINTER_ERROR_JAM = $00000002; 221 PRINTER_ERROR_OUTOFTONER = $00000004; 222 223 //PrintDlg Flags 224 PD_ALLPAGES = $00000000; 225 PD_SELECTION = $00000001; 226 PD_PAGENUMS = $00000002; 227 PD_NOSELECTION = $00000004; 228 PD_NOPAGENUMS = $00000008; 229 PD_COLLATE = $00000010; 230 PD_PRINTTOFILE = $00000020; 231 PD_PRINTSETUP = $00000040; 232 PD_NOWARNING = $00000080; 233 PD_RETURNDC = $00000100; 234 PD_RETURNIC = $00000200; 235 PD_RETURNDEFAULT = $00000400; 236 PD_SHOWHELP = $00000800; 237 PD_ENABLEPRINTHOOK = $00001000; 238 PD_ENABLESETUPHOOK = $00002000; 239 PD_ENABLEPRINTTEMPLATE = $00004000; 240 PD_ENABLESETUPTEMPLATE = $00008000; 241 PD_ENABLEPRINTTEMPLATEHANDLE = $00010000; 242 PD_ENABLESETUPTEMPLATEHANDLE = $00020000; 243 PD_USEDEVMODECOPIES = $00040000; 244 PD_USEDEVMODECOPIESANDCOLLATE = $00040000; 245 PD_DISABLEPRINTTOFILE = $00080000; 246 PD_HIDEPRINTTOFILE = $00100000; 247 PD_NONETWORKBUTTON = $00200000; 248 249 250 251