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