s3: re-run make samba3-idl.
[abartlet/samba.git/.git] / librpc / gen_ndr / spoolss.h
1 /* header auto-generated by pidl */
2
3 #include <stdint.h>
4
5 #include "librpc/gen_ndr/misc.h"
6 #include "librpc/gen_ndr/security.h"
7 #include "librpc/gen_ndr/winreg.h"
8 #ifndef _HEADER_spoolss
9 #define _HEADER_spoolss
10
11 #define PRINTER_ENUM_ICONMASK   ( (PRINTER_ENUM_ICON1|PRINTER_ENUM_ICON2|PRINTER_ENUM_ICON3|PRINTER_ENUM_ICON4|PRINTER_ENUM_ICON5|PRINTER_ENUM_ICON6|PRINTER_ENUM_ICON7|PRINTER_ENUM_ICON8) )
12 #define SPOOLSS_ARCHITECTURE_NT_X86     ( "Windows NT x86" )
13 #define PRINTER_CHANGE_PRINTER  ( (PRINTER_CHANGE_ADD_PRINTER|PRINTER_CHANGE_SET_PRINTER|PRINTER_CHANGE_DELETE_PRINTER|PRINTER_CHANGE_FAILED_CONNECTION_PRINTER) )
14 #define PRINTER_CHANGE_JOB      ( (PRINTER_CHANGE_ADD_JOB|PRINTER_CHANGE_SET_JOB|PRINTER_CHANGE_DELETE_JOB|PRINTER_CHANGE_WRITE_JOB) )
15 #define PRINTER_CHANGE_FORM     ( (PRINTER_CHANGE_ADD_FORM|PRINTER_CHANGE_SET_FORM|PRINTER_CHANGE_DELETE_FORM) )
16 #define PRINTER_CHANGE_PORT     ( (PRINTER_CHANGE_ADD_PORT|PRINTER_CHANGE_CONFIGURE_PORT|PRINTER_CHANGE_DELETE_PORT) )
17 #define PRINTER_CHANGE_PRINT_PROCESSOR  ( (PRINTER_CHANGE_ADD_PRINT_PROCESSOR|PRINTER_CHANGE_DELETE_PRINT_PROCESSOR) )
18 #define PRINTER_CHANGE_PRINTER_DRIVER   ( (PRINTER_CHANGE_ADD_PRINTER_DRIVER|PRINTER_CHANGE_SET_PRINTER_DRIVER|PRINTER_CHANGE_DELETE_PRINTER_DRIVER) )
19 #define PRINTER_CHANGE_ALL      ( (PRINTER_CHANGE_JOB|PRINTER_CHANGE_FORM|PRINTER_CHANGE_PORT|PRINTER_CHANGE_PRINT_PROCESSOR|PRINTER_CHANGE_PRINTER_DRIVER) )
20 #define SERVER_ALL_ACCESS       ( SEC_STD_REQUIRED|SERVER_ACCESS_ADMINISTER|SERVER_ACCESS_ENUMERATE )
21 #define SERVER_READ     ( SEC_STD_READ_CONTROL|SERVER_ACCESS_ENUMERATE )
22 #define SERVER_WRITE    ( STANDARD_RIGHTS_WRITE_ACCESS|SERVER_ACCESS_ADMINISTER|SERVER_ACCESS_ENUMERATE )
23 #define SERVER_EXECUTE  ( SEC_STD_READ_CONTROL|SERVER_ACCESS_ENUMERATE )
24 #define PRINTER_ALL_ACCESS      ( SEC_STD_REQUIRED|PRINTER_ACCESS_ADMINISTER|PRINTER_ACCESS_USE )
25 #define PRINTER_READ    ( SEC_STD_READ_CONTROL|PRINTER_ACCESS_USE )
26 #define PRINTER_WRITE   ( STANDARD_RIGHTS_WRITE_ACCESS|PRINTER_ACCESS_USE )
27 #define PRINTER_EXECUTE ( SEC_STD_READ_CONTROL|PRINTER_ACCESS_USE )
28 #define JOB_ALL_ACCESS  ( SEC_STD_REQUIRED|JOB_ACCESS_ADMINISTER )
29 #define JOB_READ        ( SEC_STD_READ_CONTROL|JOB_ACCESS_ADMINISTER )
30 #define JOB_WRITE       ( STANDARD_RIGHTS_WRITE_ACCESS|JOB_ACCESS_ADMINISTER )
31 #define JOB_EXECUTE     ( SEC_STD_READ_CONTROL|JOB_ACCESS_ADMINISTER )
32 #define PRINTER_ACE_FULL_CONTROL        ( SEC_GENERIC_ALL|PRINTER_ALL_ACCESS )
33 #define PRINTER_ACE_MANAGE_DOCUMENTS    ( SEC_GENERIC_ALL|READ_CONTROL_ACCESS )
34 #define PRINTER_ACE_PRINT       ( GENERIC_EXECUTE_ACCESS|READ_CONTROL_ACCESS|PRINTER_ACCESS_USE )
35 struct spoolss_Time {
36         uint16_t year;
37         uint16_t month;
38         uint16_t day_of_week;
39         uint16_t day;
40         uint16_t hour;
41         uint16_t minute;
42         uint16_t second;
43         uint16_t millisecond;
44 };
45
46 struct spoolss_PrinterInfo0 {
47         const char * printername;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */
48         const char * servername;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */
49         uint32_t cjobs;
50         uint32_t total_jobs;
51         uint32_t total_bytes;
52         struct spoolss_Time time;
53         uint32_t global_counter;
54         uint32_t total_pages;
55         uint32_t version;
56         uint32_t unknown10;
57         uint32_t unknown11;
58         uint32_t unknown12;
59         uint32_t session_counter;
60         uint32_t unknown14;
61         uint32_t printer_errors;
62         uint32_t unknown16;
63         uint32_t unknown17;
64         uint32_t unknown18;
65         uint32_t unknown19;
66         uint32_t change_id;
67         uint32_t unknown21;
68         uint32_t status;
69         uint32_t unknown23;
70         uint32_t c_setprinter;
71         uint16_t unknown25;
72         uint16_t unknown26;
73         uint32_t unknown27;
74         uint32_t unknown28;
75         uint32_t unknown29;
76 };
77
78 /* bitmap spoolss_DeviceModeFields */
79 #define DEVMODE_ORIENTATION ( 0x00000001 )
80 #define DEVMODE_PAPERSIZE ( 0x00000002 )
81 #define DEVMODE_PAPERLENGTH ( 0x00000004 )
82 #define DEVMODE_PAPERWIDTH ( 0x00000008 )
83 #define DEVMODE_SCALE ( 0x00000010 )
84 #define DEVMODE_POSITION ( 0x00000020 )
85 #define DEVMODE_NUP ( 0x00000040 )
86 #define DEVMODE_COPIES ( 0x00000100 )
87 #define DEVMODE_DEFAULTSOURCE ( 0x00000200 )
88 #define DEVMODE_PRINTQUALITY ( 0x00000400 )
89 #define DEVMODE_COLOR ( 0x00000800 )
90 #define DEVMODE_DUPLEX ( 0x00001000 )
91 #define DEVMODE_YRESOLUTION ( 0x00002000 )
92 #define DEVMODE_TTOPTION ( 0x00004000 )
93 #define DEVMODE_COLLATE ( 0x00008000 )
94 #define DEVMODE_FORMNAME ( 0x00010000 )
95 #define DEVMODE_LOGPIXELS ( 0x00020000 )
96 #define DEVMODE_BITSPERPEL ( 0x00040000 )
97 #define DEVMODE_PELSWIDTH ( 0x00080000 )
98 #define DEVMODE_PELSHEIGHT ( 0x00100000 )
99 #define DEVMODE_DISPLAYFLAGS ( 0x00200000 )
100 #define DEVMODE_DISPLAYFREQUENCY ( 0x00400000 )
101 #define DEVMODE_ICMMETHOD ( 0x00800000 )
102 #define DEVMODE_ICMINTENT ( 0x01000000 )
103 #define DEVMODE_MEDIATYPE ( 0x02000000 )
104 #define DEVMODE_DITHERTYPE ( 0x04000000 )
105 #define DEVMODE_PANNINGWIDTH ( 0x08000000 )
106 #define DEVMODE_PANNINGHEIGHT ( 0x10000000 )
107
108 struct spoolss_DeviceMode {
109         const char *devicename;/* [charset(UTF16)] */
110         uint16_t specversion;
111         uint16_t driverversion;
112         uint16_t size;
113         uint16_t __driverextra_length;/* [value(r->driverextra_data.length)] */
114         uint32_t fields;
115         uint16_t orientation;
116         uint16_t papersize;
117         uint16_t paperlength;
118         uint16_t paperwidth;
119         uint16_t scale;
120         uint16_t copies;
121         uint16_t defaultsource;
122         uint16_t printquality;
123         uint16_t color;
124         uint16_t duplex;
125         uint16_t yresolution;
126         uint16_t ttoption;
127         uint16_t collate;
128         const char *formname;/* [charset(UTF16)] */
129         uint16_t logpixels;
130         uint32_t bitsperpel;
131         uint32_t pelswidth;
132         uint32_t pelsheight;
133         uint32_t displayflags;
134         uint32_t displayfrequency;
135         uint32_t icmmethod;
136         uint32_t icmintent;
137         uint32_t mediatype;
138         uint32_t dithertype;
139         uint32_t reserved1;
140         uint32_t reserved2;
141         uint32_t panningwidth;
142         uint32_t panningheight;
143         DATA_BLOB driverextra_data;/* [subcontext_size(__driverextra_length),subcontext(0),flag(LIBNDR_FLAG_REMAINING)] */
144 }/* [gensize,public] */;
145
146 /* bitmap spoolss_EnumPrinterFlags */
147 #define PRINTER_ENUM_DEFAULT ( 0x00000001 )
148 #define PRINTER_ENUM_LOCAL ( 0x00000002 )
149 #define PRINTER_ENUM_CONNECTIONS ( 0x00000004 )
150 #define PRINTER_ENUM_FAVORITE ( 0x00000004 )
151 #define PRINTER_ENUM_NAME ( 0x00000008 )
152 #define PRINTER_ENUM_REMOTE ( 0x00000010 )
153 #define PRINTER_ENUM_SHARED ( 0x00000020 )
154 #define PRINTER_ENUM_NETWORK ( 0x00000040 )
155 #define PRINTER_ENUM_EXPAND ( 0x00004000 )
156 #define PRINTER_ENUM_CONTAINER ( 0x00008000 )
157 #define PRINTER_ENUM_ICON1 ( 0x00010000 )
158 #define PRINTER_ENUM_ICON2 ( 0x00020000 )
159 #define PRINTER_ENUM_ICON3 ( 0x00040000 )
160 #define PRINTER_ENUM_ICON4 ( 0x00080000 )
161 #define PRINTER_ENUM_ICON5 ( 0x00100000 )
162 #define PRINTER_ENUM_ICON6 ( 0x00200000 )
163 #define PRINTER_ENUM_ICON7 ( 0x00400000 )
164 #define PRINTER_ENUM_ICON8 ( 0x00800000 )
165 #define PRINTER_ENUM_HIDE ( 0x01000000 )
166
167 struct spoolss_PrinterInfo1 {
168         uint32_t flags;
169         const char * name;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */
170         const char * description;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */
171         const char * comment;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */
172 };
173
174 /* bitmap spoolss_PrinterAttributes */
175 #define PRINTER_ATTRIBUTE_QUEUED ( 0x00000001 )
176 #define PRINTER_ATTRIBUTE_DIRECT ( 0x00000002 )
177 #define PRINTER_ATTRIBUTE_DEFAULT ( 0x00000004 )
178 #define PRINTER_ATTRIBUTE_SHARED ( 0x00000008 )
179 #define PRINTER_ATTRIBUTE_NETWORK ( 0x00000010 )
180 #define PRINTER_ATTRIBUTE_HIDDEN ( 0x00000020 )
181 #define PRINTER_ATTRIBUTE_LOCAL ( 0x00000040 )
182 #define PRINTER_ATTRIBUTE_ENABLE_DEVQ ( 0x00000080 )
183 #define PRINTER_ATTRIBUTE_KEEPPRINTEDJOBS ( 0x00000100 )
184 #define PRINTER_ATTRIBUTE_DO_COMPLETE_FIRST ( 0x00000200 )
185 #define PRINTER_ATTRIBUTE_WORK_OFFLINE ( 0x00000400 )
186 #define PRINTER_ATTRIBUTE_ENABLE_BIDI ( 0x00000800 )
187 #define PRINTER_ATTRIBUTE_RAW_ONLY ( 0x00001000 )
188 #define PRINTER_ATTRIBUTE_PUBLISHED ( 0x00002000 )
189 #define PRINTER_ATTRIBUTE_FAX ( 0x00004000 )
190 #define PRINTER_ATTRIBUTE_TS ( 0x00008000 )
191
192 /* bitmap spoolss_PrinterStatus */
193 #define PRINTER_STATUS_PAUSED ( 0x00000001 )
194 #define PRINTER_STATUS_ERROR ( 0x00000002 )
195 #define PRINTER_STATUS_PENDING_DELETION ( 0x00000004 )
196 #define PRINTER_STATUS_PAPER_JAM ( 0x00000008 )
197 #define PRINTER_STATUS_PAPER_OUT ( 0x00000010 )
198 #define PRINTER_STATUS_MANUAL_FEED ( 0x00000020 )
199 #define PRINTER_STATUS_PAPER_PROBLEM ( 0x00000040 )
200 #define PRINTER_STATUS_OFFLINE ( 0x00000080 )
201 #define PRINTER_STATUS_IO_ACTIVE ( 0x00000100 )
202 #define PRINTER_STATUS_BUSY ( 0x00000200 )
203 #define PRINTER_STATUS_PRINTING ( 0x00000400 )
204 #define PRINTER_STATUS_OUTPUT_BIN_FULL ( 0x00000800 )
205 #define PRINTER_STATUS_NOT_AVAILABLE ( 0x00001000 )
206 #define PRINTER_STATUS_WAITING ( 0x00002000 )
207 #define PRINTER_STATUS_PROCESSING ( 0x00004000 )
208 #define PRINTER_STATUS_INITIALIZING ( 0x00008000 )
209 #define PRINTER_STATUS_WARMING_UP ( 0x00010000 )
210 #define PRINTER_STATUS_TONER_LOW ( 0x00020000 )
211 #define PRINTER_STATUS_NO_TONER ( 0x00040000 )
212 #define PRINTER_STATUS_PAGE_PUNT ( 0x00080000 )
213 #define PRINTER_STATUS_USER_INTERVENTION ( 0x00100000 )
214 #define PRINTER_STATUS_OUT_OF_MEMORY ( 0x00200000 )
215 #define PRINTER_STATUS_DOOR_OPEN ( 0x00400000 )
216 #define PRINTER_STATUS_SERVER_UNKNOWN ( 0x00800000 )
217 #define PRINTER_STATUS_POWER_SAVE ( 0x01000000 )
218
219 struct spoolss_PrinterInfo2 {
220         const char * servername;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */
221         const char * printername;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */
222         const char * sharename;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */
223         const char * portname;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */
224         const char * drivername;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */
225         const char * comment;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */
226         const char * location;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */
227         struct spoolss_DeviceMode *devmode;/* [relative,subcontext(0)] */
228         const char * sepfile;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */
229         const char * printprocessor;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */
230         const char * datatype;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */
231         const char * parameters;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */
232         struct security_descriptor *secdesc;/* [relative,subcontext(0)] */
233         uint32_t attributes;
234         uint32_t priority;
235         uint32_t defaultpriority;
236         uint32_t starttime;
237         uint32_t untiltime;
238         uint32_t status;
239         uint32_t cjobs;
240         uint32_t averageppm;
241 };
242
243 struct spoolss_PrinterInfo3 {
244         struct security_descriptor *secdesc;/* [relative,subcontext(0)] */
245 };
246
247 struct spoolss_PrinterInfo4 {
248         const char * printername;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */
249         const char * servername;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */
250         uint32_t attributes;
251 };
252
253 struct spoolss_PrinterInfo5 {
254         const char * printername;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */
255         const char * portname;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */
256         uint32_t attributes;
257         uint32_t device_not_selected_timeout;
258         uint32_t transmission_retry_timeout;
259 };
260
261 struct spoolss_PrinterInfo6 {
262         uint32_t status;
263 };
264
265 /* bitmap spoolss_DsPrintAction */
266 #define DSPRINT_PUBLISH ( 0x00000001 )
267 #define DSPRINT_UPDATE ( 0x00000002 )
268 #define DSPRINT_UNPUBLISH ( 0x00000004 )
269 #define DSPRINT_REPUBLISH ( 0x00000008 )
270 #define DSPRINT_PENDING ( 0x80000000 )
271
272 struct spoolss_PrinterInfo7 {
273         const char * guid;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */
274         uint32_t action;
275 };
276
277 struct spoolss_DeviceModeInfo {
278         struct spoolss_DeviceMode *devmode;/* [relative,subcontext(0)] */
279 };
280
281 union spoolss_PrinterInfo {
282         struct spoolss_PrinterInfo0 info0;/* [case(0)] */
283         struct spoolss_PrinterInfo1 info1;/* [case] */
284         struct spoolss_PrinterInfo2 info2;/* [case(2)] */
285         struct spoolss_PrinterInfo3 info3;/* [case(3)] */
286         struct spoolss_PrinterInfo4 info4;/* [case(4)] */
287         struct spoolss_PrinterInfo5 info5;/* [case(5)] */
288         struct spoolss_PrinterInfo6 info6;/* [case(6)] */
289         struct spoolss_PrinterInfo7 info7;/* [case(7)] */
290         struct spoolss_DeviceModeInfo info8;/* [case(8)] */
291         struct spoolss_DeviceModeInfo info9;/* [case(9)] */
292 }/* [relative_base,nodiscriminant,public] */;
293
294 struct spoolss_DevmodeContainer {
295         uint32_t _ndr_size;/* [value(_ndr_size_spoolss_DeviceMode(devmode,ndr->iconv_convenience,ndr->flags))] */
296         struct spoolss_DeviceMode *devmode;/* [unique,subcontext_size(_ndr_size),subcontext(4)] */
297 };
298
299 struct spoolss_JobInfo1 {
300         uint32_t job_id;
301         const char * printer_name;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */
302         const char * server_name;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */
303         const char * user_name;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */
304         const char * document_name;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */
305         const char * data_type;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */
306         const char * text_status;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */
307         uint32_t status;
308         uint32_t priority;
309         uint32_t position;
310         uint32_t total_pages;
311         uint32_t pages_printed;
312         struct spoolss_Time time;
313 };
314
315 union spoolss_JobInfo {
316         struct spoolss_JobInfo1 info1;/* [case] */
317 }/* [relative_base,nodiscriminant,public] */;
318
319 struct spoolss_JobInfoContainer {
320         uint32_t level;
321         union spoolss_JobInfo info;/* [switch_is(level)] */
322 };
323
324 enum spoolss_JobControl
325 #ifndef USE_UINT_ENUMS
326  {
327         SPOOLSS_JOB_CONTROL_PAUSE=1,
328         SPOOLSS_JOB_CONTROL_RESUME=2,
329         SPOOLSS_JOB_CONTROL_CANCEL=3,
330         SPOOLSS_JOB_CONTROL_RESTART=4,
331         SPOOLSS_JOB_CONTROL_DELETE=5,
332         SPOOLSS_JOB_CONTROL_SEND_TO_PRINTER=6,
333         SPOOLSS_JOB_CONTROL_LAST_PAGE_EJECTED=7
334 }
335 #else
336  { __donnot_use_enum_spoolss_JobControl=0x7FFFFFFF}
337 #define SPOOLSS_JOB_CONTROL_PAUSE ( 1 )
338 #define SPOOLSS_JOB_CONTROL_RESUME ( 2 )
339 #define SPOOLSS_JOB_CONTROL_CANCEL ( 3 )
340 #define SPOOLSS_JOB_CONTROL_RESTART ( 4 )
341 #define SPOOLSS_JOB_CONTROL_DELETE ( 5 )
342 #define SPOOLSS_JOB_CONTROL_SEND_TO_PRINTER ( 6 )
343 #define SPOOLSS_JOB_CONTROL_LAST_PAGE_EJECTED ( 7 )
344 #endif
345 ;
346
347 enum spoolss_PrinterControl
348 #ifndef USE_UINT_ENUMS
349  {
350         SPOOLSS_PRINTER_CONTROL_UNPAUSE=0,
351         SPOOLSS_PRINTER_CONTROL_PAUSE=1,
352         SPOOLSS_PRINTER_CONTROL_RESUME=2,
353         SPOOLSS_PRINTER_CONTROL_PURGE=3,
354         SPOOLSS_PRINTER_CONTROL_SET_STATUS=4
355 }
356 #else
357  { __donnot_use_enum_spoolss_PrinterControl=0x7FFFFFFF}
358 #define SPOOLSS_PRINTER_CONTROL_UNPAUSE ( 0 )
359 #define SPOOLSS_PRINTER_CONTROL_PAUSE ( 1 )
360 #define SPOOLSS_PRINTER_CONTROL_RESUME ( 2 )
361 #define SPOOLSS_PRINTER_CONTROL_PURGE ( 3 )
362 #define SPOOLSS_PRINTER_CONTROL_SET_STATUS ( 4 )
363 #endif
364 ;
365
366 union spoolss_SetPrinterInfo {
367         struct spoolss_PrinterInfo0 *info0;/* [unique,case(0)] */
368         struct spoolss_PrinterInfo1 *info1;/* [unique,case] */
369         struct spoolss_PrinterInfo2 *info2;/* [unique,case(2)] */
370         struct spoolss_PrinterInfo3 *info3;/* [unique,case(3)] */
371         struct spoolss_PrinterInfo4 *info4;/* [unique,case(4)] */
372         struct spoolss_PrinterInfo5 *info5;/* [unique,case(5)] */
373         struct spoolss_PrinterInfo6 *info6;/* [unique,case(6)] */
374         struct spoolss_PrinterInfo7 *info7;/* [unique,case(7)] */
375         struct spoolss_DeviceModeInfo *info8;/* [unique,case(8)] */
376         struct spoolss_DeviceModeInfo *info9;/* [unique,case(9)] */
377 }/* [switch_type(uint32)] */;
378
379 struct spoolss_StringArray {
380         uint32_t _ndr_size;/* [value((ndr_size_spoolss_StringArray(r,ndr->iconv_convenience,ndr->flags)-4)/2)] */
381         const char ** string;/* [flag(LIBNDR_FLAG_STR_NULLTERM)] */
382 }/* [gensize,public] */;
383
384 struct spoolss_AddDriverInfo1 {
385         const char *driver_name;/* [unique,charset(UTF16)] */
386 };
387
388 enum spoolss_DriverOSVersion
389 #ifndef USE_UINT_ENUMS
390  {
391         SPOOLSS_DRIVER_VERSION_9X=0,
392         SPOOLSS_DRIVER_VERSION_NT35=1,
393         SPOOLSS_DRIVER_VERSION_NT4=2,
394         SPOOLSS_DRIVER_VERSION_200X=3
395 }
396 #else
397  { __donnot_use_enum_spoolss_DriverOSVersion=0x7FFFFFFF}
398 #define SPOOLSS_DRIVER_VERSION_9X ( 0 )
399 #define SPOOLSS_DRIVER_VERSION_NT35 ( 1 )
400 #define SPOOLSS_DRIVER_VERSION_NT4 ( 2 )
401 #define SPOOLSS_DRIVER_VERSION_200X ( 3 )
402 #endif
403 ;
404
405 struct spoolss_AddDriverInfo2 {
406         enum spoolss_DriverOSVersion version;
407         const char *driver_name;/* [unique,charset(UTF16)] */
408         const char *architecture;/* [unique,charset(UTF16)] */
409         const char *driver_path;/* [unique,charset(UTF16)] */
410         const char *data_file;/* [unique,charset(UTF16)] */
411         const char *config_file;/* [unique,charset(UTF16)] */
412 };
413
414 struct spoolss_AddDriverInfo3 {
415         enum spoolss_DriverOSVersion version;
416         const char *driver_name;/* [unique,charset(UTF16)] */
417         const char *architecture;/* [unique,charset(UTF16)] */
418         const char *driver_path;/* [unique,charset(UTF16)] */
419         const char *data_file;/* [unique,charset(UTF16)] */
420         const char *config_file;/* [unique,charset(UTF16)] */
421         const char *help_file;/* [unique,charset(UTF16)] */
422         const char *monitor_name;/* [unique,charset(UTF16)] */
423         const char *default_datatype;/* [unique,charset(UTF16)] */
424         uint32_t _ndr_size_dependent_files;/* [value(((ndr_size_spoolss_StringArray(dependent_files,ndr->iconv_convenience,ndr->flags)-4)/2))] */
425         struct spoolss_StringArray *dependent_files;/* [unique] */
426 };
427
428 struct spoolss_AddDriverInfo4 {
429         enum spoolss_DriverOSVersion version;
430         const char *driver_name;/* [unique,charset(UTF16)] */
431         const char *architecture;/* [unique,charset(UTF16)] */
432         const char *driver_path;/* [unique,charset(UTF16)] */
433         const char *data_file;/* [unique,charset(UTF16)] */
434         const char *config_file;/* [unique,charset(UTF16)] */
435         const char *help_file;/* [unique,charset(UTF16)] */
436         const char *monitor_name;/* [unique,charset(UTF16)] */
437         const char *default_datatype;/* [unique,charset(UTF16)] */
438         uint32_t _ndr_size_dependent_files;/* [value(((ndr_size_spoolss_StringArray(dependent_files,ndr->iconv_convenience,ndr->flags)-4)/2))] */
439         struct spoolss_StringArray *dependent_files;/* [unique] */
440         uint32_t _ndr_size_previous_names;/* [value(((ndr_size_spoolss_StringArray(previous_names,ndr->iconv_convenience,ndr->flags)-4)/2))] */
441         struct spoolss_StringArray *previous_names;/* [unique] */
442 };
443
444 struct spoolss_AddDriverInfo5 {
445         enum spoolss_DriverOSVersion version;
446         const char *driver_name;/* [unique,charset(UTF16)] */
447         const char *architecture;/* [unique,charset(UTF16)] */
448         const char *driver_path;/* [unique,charset(UTF16)] */
449         const char *data_file;/* [unique,charset(UTF16)] */
450         const char *config_file;/* [unique,charset(UTF16)] */
451         uint32_t driver_attributes;
452         uint32_t config_version;
453         uint32_t driver_version;
454 };
455
456 struct spoolss_AddDriverInfo6 {
457         enum spoolss_DriverOSVersion version;
458         const char *driver_name;/* [unique,charset(UTF16)] */
459         const char *architecture;/* [unique,charset(UTF16)] */
460         const char *driver_path;/* [unique,charset(UTF16)] */
461         const char *data_file;/* [unique,charset(UTF16)] */
462         const char *config_file;/* [unique,charset(UTF16)] */
463         const char *help_file;/* [unique,charset(UTF16)] */
464         const char *monitor_name;/* [unique,charset(UTF16)] */
465         const char *default_datatype;/* [unique,charset(UTF16)] */
466         uint32_t _ndr_size_dependent_files;/* [value(((ndr_size_spoolss_StringArray(dependent_files,ndr->iconv_convenience,ndr->flags)-4)/2))] */
467         struct spoolss_StringArray *dependent_files;/* [unique] */
468         uint32_t _ndr_size_previous_names;/* [value(((ndr_size_spoolss_StringArray(previous_names,ndr->iconv_convenience,ndr->flags)-4)/2))] */
469         struct spoolss_StringArray *previous_names;/* [unique] */
470         NTTIME driver_data;
471         uint64_t driver_version;
472         const char *manufacturer_name;/* [unique,charset(UTF16)] */
473         const char *manufacturer_url;/* [unique,charset(UTF16)] */
474         const char *hardware_id;/* [unique,charset(UTF16)] */
475         const char *provider;/* [unique,charset(UTF16)] */
476 };
477
478 union spoolss_AddDriverInfo {
479         struct spoolss_AddDriverInfo1 *info1;/* [unique,case] */
480         struct spoolss_AddDriverInfo2 *info2;/* [unique,case(2)] */
481         struct spoolss_AddDriverInfo3 *info3;/* [unique,case(3)] */
482         struct spoolss_AddDriverInfo4 *info4;/* [unique,case(4)] */
483         struct spoolss_AddDriverInfo6 *info6;/* [unique,case(6)] */
484 }/* [switch_type(uint32)] */;
485
486 struct spoolss_DriverInfo1 {
487         const char * driver_name;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */
488 };
489
490 struct spoolss_DriverInfo2 {
491         enum spoolss_DriverOSVersion version;
492         const char * driver_name;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */
493         const char * architecture;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */
494         const char * driver_path;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */
495         const char * data_file;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */
496         const char * config_file;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */
497 };
498
499 struct spoolss_DriverInfo3 {
500         enum spoolss_DriverOSVersion version;
501         const char * driver_name;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */
502         const char * architecture;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */
503         const char * driver_path;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */
504         const char * data_file;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */
505         const char * config_file;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */
506         const char * help_file;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */
507         const char ** dependent_files;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */
508         const char * monitor_name;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */
509         const char * default_datatype;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */
510 };
511
512 struct spoolss_DriverInfo4 {
513         enum spoolss_DriverOSVersion version;
514         const char * driver_name;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */
515         const char * architecture;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */
516         const char * driver_path;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */
517         const char * data_file;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */
518         const char * config_file;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */
519         const char * help_file;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */
520         const char ** dependent_files;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */
521         const char * monitor_name;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */
522         const char * default_datatype;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */
523         const char ** previous_names;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */
524 };
525
526 struct spoolss_DriverInfo5 {
527         enum spoolss_DriverOSVersion version;
528         const char * driver_name;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */
529         const char * architecture;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */
530         const char * driver_path;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */
531         const char * data_file;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */
532         const char * config_file;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */
533         uint32_t driver_attributes;
534         uint32_t config_version;
535         uint32_t driver_version;
536 };
537
538 struct spoolss_DriverInfo6 {
539         enum spoolss_DriverOSVersion version;
540         const char * driver_name;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */
541         const char * architecture;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */
542         const char * driver_path;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */
543         const char * data_file;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */
544         const char * config_file;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */
545         const char * help_file;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */
546         const char ** dependent_files;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */
547         const char * monitor_name;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */
548         const char * default_datatype;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */
549         const char ** previous_names;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */
550         NTTIME driver_data;
551         uint64_t driver_version;
552         const char * manufacturer_name;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */
553         const char * manufacturer_url;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */
554         const char * hardware_id;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */
555         const char * provider;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */
556 };
557
558 union spoolss_DriverInfo {
559         struct spoolss_DriverInfo1 info1;/* [case] */
560         struct spoolss_DriverInfo2 info2;/* [case(2)] */
561         struct spoolss_DriverInfo3 info3;/* [case(3)] */
562         struct spoolss_DriverInfo4 info4;/* [case(4)] */
563         struct spoolss_DriverInfo5 info5;/* [case(5)] */
564         struct spoolss_DriverInfo6 info6;/* [case(6)] */
565 }/* [relative_base,nodiscriminant,public] */;
566
567 struct spoolss_DriverDirectoryInfo1 {
568         const char * directory_name;/* [flag(LIBNDR_FLAG_STR_NULLTERM)] */
569 };
570
571 union spoolss_DriverDirectoryInfo {
572         struct spoolss_DriverDirectoryInfo1 info1;/* [case] */
573 }/* [gensize,relative_base,nodiscriminant,public] */;
574
575 struct spoolss_PrintProcessorInfo1 {
576         const char * print_processor_name;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */
577 };
578
579 union spoolss_PrintProcessorInfo {
580         struct spoolss_PrintProcessorInfo1 info1;/* [case] */
581 }/* [relative_base,nodiscriminant,public] */;
582
583 struct spoolss_DocumentInfo1 {
584         const char *document_name;/* [unique,charset(UTF16)] */
585         const char *output_file;/* [unique,charset(UTF16)] */
586         const char *datatype;/* [unique,charset(UTF16)] */
587 };
588
589 union spoolss_DocumentInfo {
590         struct spoolss_DocumentInfo1 *info1;/* [unique,case] */
591 }/* [switch_type(uint32)] */;
592
593 struct spoolss_OSVersion {
594         uint32_t _ndr_size;/* [value(ndr_size_spoolss_OSVersion(r,ndr->iconv_convenience,ndr->flags))] */
595         uint32_t major;
596         uint32_t minor;
597         uint32_t build;
598         uint32_t unknown;/* [value(2)] */
599         const char * extra_string;/* [subcontext_size(256),subcontext(0),flag(LIBNDR_FLAG_STR_NULLTERM)] */
600 }/* [gensize,public] */;
601
602 struct spoolss_OSVersionEx {
603         uint32_t _ndr_size;/* [value(ndr_size_spoolss_OSVersionEx(r,ndr->iconv_convenience,ndr->flags))] */
604         uint32_t major;
605         uint32_t minor;
606         uint32_t build;
607         uint32_t unknown1;/* [value(2)] */
608         const char * extra_string;/* [subcontext_size(256),subcontext(0),flag(LIBNDR_FLAG_STR_NULLTERM)] */
609         uint32_t unknown2;
610         uint32_t unknown3;
611 }/* [gensize,public] */;
612
613 enum spoolss_PrinterDataType
614 #ifndef USE_UINT_ENUMS
615  {
616         SPOOLSS_PRINTER_DATA_TYPE_NULL=0,
617         SPOOLSS_PRINTER_DATA_TYPE_STRING=1,
618         SPOOLSS_PRINTER_DATA_TYPE_BINARY=3,
619         SPOOLSS_PRINTER_DATA_TYPE_UINT32=4,
620         SPOOLSS_PRINTER_DATA_TYPE_STRING_ARRAY=7
621 }
622 #else
623  { __donnot_use_enum_spoolss_PrinterDataType=0x7FFFFFFF}
624 #define SPOOLSS_PRINTER_DATA_TYPE_NULL ( 0 )
625 #define SPOOLSS_PRINTER_DATA_TYPE_STRING ( 1 )
626 #define SPOOLSS_PRINTER_DATA_TYPE_BINARY ( 3 )
627 #define SPOOLSS_PRINTER_DATA_TYPE_UINT32 ( 4 )
628 #define SPOOLSS_PRINTER_DATA_TYPE_STRING_ARRAY ( 7 )
629 #endif
630 ;
631
632 union spoolss_PrinterData {
633         const char * string;/* [flag(LIBNDR_FLAG_STR_NULLTERM),case(SPOOLSS_PRINTER_DATA_TYPE_STRING)] */
634         DATA_BLOB binary;/* [flag(LIBNDR_FLAG_REMAINING),case(SPOOLSS_PRINTER_DATA_TYPE_BINARY)] */
635         uint32_t value;/* [case(SPOOLSS_PRINTER_DATA_TYPE_UINT32)] */
636         const char ** string_array;/* [flag(LIBNDR_FLAG_STR_NULLTERM),case(SPOOLSS_PRINTER_DATA_TYPE_STRING_ARRAY)] */
637         DATA_BLOB data;/* [flag(LIBNDR_FLAG_REMAINING),default] */
638 }/* [gensize,public,nodiscriminant] */;
639
640 enum spoolss_FormFlags
641 #ifndef USE_UINT_ENUMS
642  {
643         SPOOLSS_FORM_USER=0,
644         SPOOLSS_FORM_BUILTIN=1,
645         SPOOLSS_FORM_PRINTER=2
646 }
647 #else
648  { __donnot_use_enum_spoolss_FormFlags=0x7FFFFFFF}
649 #define SPOOLSS_FORM_USER ( 0 )
650 #define SPOOLSS_FORM_BUILTIN ( 1 )
651 #define SPOOLSS_FORM_PRINTER ( 2 )
652 #endif
653 ;
654
655 struct spoolss_FormSize {
656         uint32_t width;
657         uint32_t height;
658 };
659
660 struct spoolss_FormArea {
661         uint32_t left;
662         uint32_t top;
663         uint32_t right;
664         uint32_t bottom;
665 };
666
667 struct spoolss_FormInfo1 {
668         enum spoolss_FormFlags flags;
669         const char * form_name;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */
670         struct spoolss_FormSize size;
671         struct spoolss_FormArea area;
672 };
673
674 union spoolss_FormInfo {
675         struct spoolss_FormInfo1 info1;/* [case] */
676 }/* [relative_base,gensize,public,nodiscriminant] */;
677
678 struct spoolss_AddFormInfo1 {
679         enum spoolss_FormFlags flags;
680         const char *form_name;/* [unique,charset(UTF16)] */
681         struct spoolss_FormSize size;
682         struct spoolss_FormArea area;
683 };
684
685 union spoolss_AddFormInfo {
686         struct spoolss_AddFormInfo1 *info1;/* [unique,case] */
687 }/* [switch_type(uint32)] */;
688
689 struct spoolss_PortInfo1 {
690         const char * port_name;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */
691 };
692
693 /* bitmap spoolss_PortType */
694 #define SPOOLSS_PORT_TYPE_WRITE ( 0x00000001 )
695 #define SPOOLSS_PORT_TYPE_READ ( 0x00000002 )
696 #define SPOOLSS_PORT_TYPE_REDIRECTED ( 0x00000004 )
697 #define SPOOLSS_PORT_TYPE_NET_ATTACHED ( 0x00000008 )
698
699 struct spoolss_PortInfo2 {
700         const char * port_name;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */
701         const char * monitor_name;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */
702         const char * description;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */
703         uint32_t port_type;
704         uint32_t reserved;
705 };
706
707 union spoolss_PortInfo {
708         struct spoolss_PortInfo1 info1;/* [case] */
709         struct spoolss_PortInfo2 info2;/* [case(2)] */
710 }/* [relative_base,nodiscriminant,public] */;
711
712 struct spoolss_MonitorInfo1 {
713         const char * monitor_name;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */
714 };
715
716 struct spoolss_MonitorInfo2 {
717         const char * monitor_name;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */
718         const char * environment;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */
719         const char * dll_name;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */
720 };
721
722 union spoolss_MonitorInfo {
723         struct spoolss_MonitorInfo1 info1;/* [case] */
724         struct spoolss_MonitorInfo2 info2;/* [case(2)] */
725 }/* [relative_base,nodiscriminant,public] */;
726
727 /* bitmap spoolss_PrinterChangeFlags */
728 #define PRINTER_CHANGE_ADD_PRINTER ( 0x00000001 )
729 #define PRINTER_CHANGE_SET_PRINTER ( 0x00000002 )
730 #define PRINTER_CHANGE_DELETE_PRINTER ( 0x00000004 )
731 #define PRINTER_CHANGE_FAILED_CONNECTION_PRINTER ( 0x00000008 )
732 #define PRINTER_CHANGE_ADD_JOB ( 0x00000100 )
733 #define PRINTER_CHANGE_SET_JOB ( 0x00000200 )
734 #define PRINTER_CHANGE_DELETE_JOB ( 0x00000400 )
735 #define PRINTER_CHANGE_WRITE_JOB ( 0x00000800 )
736 #define PRINTER_CHANGE_ADD_FORM ( 0x00010000 )
737 #define PRINTER_CHANGE_SET_FORM ( 0x00020000 )
738 #define PRINTER_CHANGE_DELETE_FORM ( 0x00040000 )
739 #define PRINTER_CHANGE_ADD_PORT ( 0x00100000 )
740 #define PRINTER_CHANGE_CONFIGURE_PORT ( 0x00200000 )
741 #define PRINTER_CHANGE_DELETE_PORT ( 0x00400000 )
742 #define PRINTER_CHANGE_ADD_PRINT_PROCESSOR ( 0x01000000 )
743 #define PRINTER_CHANGE_DELETE_PRINT_PROCESSOR ( 0x04000000 )
744 #define PRINTER_CHANGE_ADD_PRINTER_DRIVER ( 0x10000000 )
745 #define PRINTER_CHANGE_SET_PRINTER_DRIVER ( 0x20000000 )
746 #define PRINTER_CHANGE_DELETE_PRINTER_DRIVER ( 0x40000000 )
747 #define PRINTER_CHANGE_TIMEOUT ( 0x80000000 )
748
749 enum spoolss_Field
750 #ifndef USE_UINT_ENUMS
751  {
752         SPOOLSS_FIELD_SERVER_NAME=0,
753         SPOOLSS_FIELD_PRINTER_NAME=1,
754         SPOOLSS_FIELD_SHARE_NAME=2,
755         SPOOLSS_FIELD_PORT_NAME=3,
756         SPOOLSS_FIELD_DRIVER_NAME=4,
757         SPOOLSS_FIELD_COMMENT=5,
758         SPOOLSS_FIELD_LOCATION=6,
759         SPOOLSS_FIELD_DEVMODE=7,
760         SPOOLSS_FIELD_SEPFILE=8,
761         SPOOLSS_FIELD_PRINT_PROCESSOR=9,
762         SPOOLSS_FIELD_PARAMETERS=10,
763         SPOOLSS_FIELD_DATATYPE=11,
764         SPOOLSS_FIELD_SECURITY_DESCRIPTOR=12,
765         SPOOLSS_FIELD_ATTRIBUTES=13,
766         SPOOLSS_FIELD_PRIORITY=14,
767         SPOOLSS_FIELD_DEFAULT_PRIORITY=15,
768         SPOOLSS_FIELD_START_TIME=16,
769         SPOOLSS_FIELD_UNTIL_TIME=17,
770         SPOOLSS_FIELD_STATUS=18,
771         SPOOLSS_FIELD_STATUS_STRING=19,
772         SPOOLSS_FIELD_CJOBS=20,
773         SPOOLSS_FIELD_AVERAGE_PPM=21,
774         SPOOLSS_FIELD_TOTAL_PAGES=22,
775         SPOOLSS_FIELD_PAGES_PRINTED=23,
776         SPOOLSS_FIELD_TOTAL_BYTES=24,
777         SPOOLSS_FIELD_BYTES_PRINTED=25
778 }
779 #else
780  { __donnot_use_enum_spoolss_Field=0x7FFFFFFF}
781 #define SPOOLSS_FIELD_SERVER_NAME ( 0 )
782 #define SPOOLSS_FIELD_PRINTER_NAME ( 1 )
783 #define SPOOLSS_FIELD_SHARE_NAME ( 2 )
784 #define SPOOLSS_FIELD_PORT_NAME ( 3 )
785 #define SPOOLSS_FIELD_DRIVER_NAME ( 4 )
786 #define SPOOLSS_FIELD_COMMENT ( 5 )
787 #define SPOOLSS_FIELD_LOCATION ( 6 )
788 #define SPOOLSS_FIELD_DEVMODE ( 7 )
789 #define SPOOLSS_FIELD_SEPFILE ( 8 )
790 #define SPOOLSS_FIELD_PRINT_PROCESSOR ( 9 )
791 #define SPOOLSS_FIELD_PARAMETERS ( 10 )
792 #define SPOOLSS_FIELD_DATATYPE ( 11 )
793 #define SPOOLSS_FIELD_SECURITY_DESCRIPTOR ( 12 )
794 #define SPOOLSS_FIELD_ATTRIBUTES ( 13 )
795 #define SPOOLSS_FIELD_PRIORITY ( 14 )
796 #define SPOOLSS_FIELD_DEFAULT_PRIORITY ( 15 )
797 #define SPOOLSS_FIELD_START_TIME ( 16 )
798 #define SPOOLSS_FIELD_UNTIL_TIME ( 17 )
799 #define SPOOLSS_FIELD_STATUS ( 18 )
800 #define SPOOLSS_FIELD_STATUS_STRING ( 19 )
801 #define SPOOLSS_FIELD_CJOBS ( 20 )
802 #define SPOOLSS_FIELD_AVERAGE_PPM ( 21 )
803 #define SPOOLSS_FIELD_TOTAL_PAGES ( 22 )
804 #define SPOOLSS_FIELD_PAGES_PRINTED ( 23 )
805 #define SPOOLSS_FIELD_TOTAL_BYTES ( 24 )
806 #define SPOOLSS_FIELD_BYTES_PRINTED ( 25 )
807 #endif
808 ;
809
810 enum spoolss_NotifyType
811 #ifndef USE_UINT_ENUMS
812  {
813         SPOOLSS_NOTIFY_PRINTER=0,
814         SPOOLSS_NOTIFY_JOB=1
815 }
816 #else
817  { __donnot_use_enum_spoolss_NotifyType=0x7FFFFFFF}
818 #define SPOOLSS_NOTIFY_PRINTER ( 0 )
819 #define SPOOLSS_NOTIFY_JOB ( 1 )
820 #endif
821 ;
822
823 struct spoolss_NotifyOptionsArray {
824         enum spoolss_NotifyType type;
825         uint16_t u1;
826         uint32_t u2;
827         uint32_t u3;
828         uint32_t count;
829         enum spoolss_Field *fields;/* [unique,size_is(count)] */
830 };
831
832 struct spoolss_NotifyOptionsContainer {
833         uint32_t version;
834         uint32_t flags;
835         uint32_t count;
836         struct spoolss_NotifyOptionsArray *options;/* [unique,size_is(count)] */
837 };
838
839 struct spoolss_NotifyUTF16String {
840         uint32_t size;
841         const char *string;/* [unique,charset(UTF16),size_is(size/2)] */
842 };
843
844 struct spoolss_NotifyDOSString {
845         uint32_t size;
846         const char *string;/* [unique,charset(DOS),size_is(size)] */
847 };
848
849 struct spoolss_NotifyBlobData {
850         uint16_t data[8];
851 };
852
853 struct spoolss_NotifyBlob {
854         uint32_t len;
855         struct spoolss_NotifyBlobData *data;/* [unique] */
856 };
857
858 union spoolss_NotifyData {
859         int64_t integer;/* [case] */
860         struct spoolss_NotifyUTF16String utf16_string;/* [case(2)] */
861         struct spoolss_NotifyDOSString ascii_string;/* [case(3)] */
862         struct spoolss_NotifyBlob blob;/* [case(4)] */
863 }/* [switch_type(uint32)] */;
864
865 struct spoolss_Notify {
866         enum spoolss_NotifyType type;
867         enum spoolss_Field field;
868         uint32_t variable_type;
869         uint32_t job_id;
870         union spoolss_NotifyData data;/* [switch_is(variable_type)] */
871 };
872
873 struct spoolss_NotifyInfo {
874         uint32_t version;
875         uint32_t flags;
876         uint32_t count;
877         struct spoolss_Notify *notifies;/* [size_is(count)] */
878 };
879
880 struct spoolss_UserLevel1 {
881         uint32_t size;
882         const char *client;/* [unique,charset(UTF16)] */
883         const char *user;/* [unique,charset(UTF16)] */
884         uint32_t build;
885         uint32_t major;
886         uint32_t minor;
887         uint32_t processor;
888 };
889
890 union spoolss_UserLevel {
891         struct spoolss_UserLevel1 *level1;/* [unique,case] */
892 };
893
894 /* bitmap spoolss_AccessRights */
895 #define SERVER_ACCESS_ADMINISTER ( 0x00000001 )
896 #define SERVER_ACCESS_ENUMERATE ( 0x00000002 )
897 #define PRINTER_ACCESS_ADMINISTER ( 0x00000004 )
898 #define PRINTER_ACCESS_USE ( 0x00000008 )
899 #define JOB_ACCESS_ADMINISTER ( 0x00000010 )
900
901 /* bitmap spoolss_DeleteDriverFlags */
902 #define DPD_DELETE_UNUSED_FILES ( 0x00000001 )
903 #define DPD_DELETE_SPECIFIC_VERSION ( 0x00000002 )
904 #define DPD_DELETE_ALL_FILES ( 0x00000004 )
905
906
907 struct _spoolss_EnumPrinters {
908         struct {
909                 uint32_t flags;
910                 const char *server;/* [unique,charset(UTF16)] */
911                 uint32_t level;
912                 DATA_BLOB *buffer;/* [unique] */
913                 uint32_t offered;
914         } in;
915
916         struct {
917                 DATA_BLOB *info;/* [unique] */
918                 uint32_t *needed;/* [ref] */
919                 uint32_t count;
920                 WERROR result;
921         } out;
922
923 };
924
925
926 struct __spoolss_EnumPrinters {
927         struct {
928                 uint32_t level;
929                 uint32_t count;
930         } in;
931
932         struct {
933                 union spoolss_PrinterInfo *info;/* [switch_is(level)] */
934         } out;
935
936 };
937
938
939 struct spoolss_EnumPrinters {
940         struct {
941                 uint32_t flags;
942                 const char *server;/* [unique,charset(UTF16)] */
943                 uint32_t level;
944                 DATA_BLOB *buffer;/* [unique] */
945                 uint32_t offered;
946         } in;
947
948         struct {
949                 union spoolss_PrinterInfo *info;/* [unique,switch_is(level),size_is(count)] */
950                 uint32_t *needed;/* [ref] */
951                 uint32_t count;
952                 WERROR result;
953         } out;
954
955 };
956
957
958 struct spoolss_OpenPrinter {
959         struct {
960                 const char *printername;/* [unique,charset(UTF16)] */
961                 const char *datatype;/* [unique,charset(UTF16)] */
962                 struct spoolss_DevmodeContainer devmode_ctr;
963                 uint32_t access_mask;
964         } in;
965
966         struct {
967                 struct policy_handle *handle;/* [ref] */
968                 WERROR result;
969         } out;
970
971 };
972
973
974 struct spoolss_SetJob {
975         struct {
976                 struct policy_handle *handle;/* [ref] */
977                 uint32_t job_id;
978                 struct spoolss_JobInfoContainer *ctr;/* [unique] */
979                 enum spoolss_JobControl command;
980         } in;
981
982         struct {
983                 WERROR result;
984         } out;
985
986 };
987
988
989 struct spoolss_GetJob {
990         struct {
991                 struct policy_handle *handle;/* [ref] */
992                 uint32_t job_id;
993                 uint32_t level;
994                 DATA_BLOB *buffer;/* [unique] */
995                 uint32_t offered;
996         } in;
997
998         struct {
999                 union spoolss_JobInfo *info;/* [unique,subcontext_size(offered),subcontext(4),switch_is(level)] */
1000                 uint32_t *needed;/* [ref] */
1001                 WERROR result;
1002         } out;
1003
1004 };
1005
1006
1007 struct _spoolss_EnumJobs {
1008         struct {
1009                 struct policy_handle *handle;/* [ref] */
1010                 uint32_t firstjob;
1011                 uint32_t numjobs;
1012                 uint32_t level;
1013                 DATA_BLOB *buffer;/* [unique] */
1014                 uint32_t offered;
1015         } in;
1016
1017         struct {
1018                 DATA_BLOB *info;/* [unique] */
1019                 uint32_t *needed;/* [ref] */
1020                 uint32_t count;
1021                 WERROR result;
1022         } out;
1023
1024 };
1025
1026
1027 struct __spoolss_EnumJobs {
1028         struct {
1029                 uint32_t level;
1030                 uint32_t count;
1031         } in;
1032
1033         struct {
1034                 union spoolss_JobInfo *info;/* [switch_is(level)] */
1035         } out;
1036
1037 };
1038
1039
1040 struct spoolss_EnumJobs {
1041         struct {
1042                 struct policy_handle *handle;/* [ref] */
1043                 uint32_t firstjob;
1044                 uint32_t numjobs;
1045                 uint32_t level;
1046                 DATA_BLOB *buffer;/* [unique] */
1047                 uint32_t offered;
1048         } in;
1049
1050         struct {
1051                 union spoolss_JobInfo *info;/* [unique,switch_is(level),size_is(count)] */
1052                 uint32_t *needed;/* [ref] */
1053                 uint32_t count;
1054                 WERROR result;
1055         } out;
1056
1057 };
1058
1059
1060 struct spoolss_AddPrinter {
1061         struct {
1062                 WERROR result;
1063         } out;
1064
1065 };
1066
1067
1068 struct spoolss_DeletePrinter {
1069         struct {
1070                 struct policy_handle *handle;/* [ref] */
1071         } in;
1072
1073         struct {
1074                 WERROR result;
1075         } out;
1076
1077 };
1078
1079
1080 struct spoolss_SetPrinter {
1081         struct {
1082                 struct policy_handle *handle;/* [ref] */
1083                 uint32_t level;
1084                 union spoolss_SetPrinterInfo info;/* [switch_is(level)] */
1085                 struct spoolss_DevmodeContainer devmode_ctr;
1086                 struct sec_desc_buf secdesc_ctr;
1087                 enum spoolss_PrinterControl command;
1088         } in;
1089
1090         struct {
1091                 WERROR result;
1092         } out;
1093
1094 };
1095
1096
1097 struct spoolss_GetPrinter {
1098         struct {
1099                 struct policy_handle *handle;/* [ref] */
1100                 uint32_t level;
1101                 DATA_BLOB *buffer;/* [unique] */
1102                 uint32_t offered;
1103         } in;
1104
1105         struct {
1106                 union spoolss_PrinterInfo *info;/* [unique,subcontext_size(offered),subcontext(4),switch_is(level)] */
1107                 uint32_t *needed;/* [ref] */
1108                 WERROR result;
1109         } out;
1110
1111 };
1112
1113
1114 struct spoolss_AddPrinterDriver {
1115         struct {
1116                 const char *servername;/* [ref,charset(UTF16)] */
1117                 uint32_t level;
1118                 union spoolss_AddDriverInfo info;/* [switch_is(level)] */
1119         } in;
1120
1121         struct {
1122                 WERROR result;
1123         } out;
1124
1125 };
1126
1127
1128 struct _spoolss_EnumPrinterDrivers {
1129         struct {
1130                 const char *server;/* [unique,charset(UTF16)] */
1131                 const char *environment;/* [unique,charset(UTF16)] */
1132                 uint32_t level;
1133                 DATA_BLOB *buffer;/* [unique] */
1134                 uint32_t offered;
1135         } in;
1136
1137         struct {
1138                 DATA_BLOB *info;/* [unique] */
1139                 uint32_t *needed;/* [ref] */
1140                 uint32_t count;
1141                 WERROR result;
1142         } out;
1143
1144 };
1145
1146
1147 struct __spoolss_EnumPrinterDrivers {
1148         struct {
1149                 uint32_t level;
1150                 uint32_t count;
1151         } in;
1152
1153         struct {
1154                 union spoolss_DriverInfo *info;/* [switch_is(level)] */
1155         } out;
1156
1157 };
1158
1159
1160 struct spoolss_EnumPrinterDrivers {
1161         struct {
1162                 const char *server;/* [unique,charset(UTF16)] */
1163                 const char *environment;/* [unique,charset(UTF16)] */
1164                 uint32_t level;
1165                 DATA_BLOB *buffer;/* [unique] */
1166                 uint32_t offered;
1167         } in;
1168
1169         struct {
1170                 union spoolss_DriverInfo *info;/* [unique,switch_is(level),size_is(count)] */
1171                 uint32_t *needed;/* [ref] */
1172                 uint32_t count;
1173                 WERROR result;
1174         } out;
1175
1176 };
1177
1178
1179 struct spoolss_GetPrinterDriver {
1180         struct {
1181                 WERROR result;
1182         } out;
1183
1184 };
1185
1186
1187 struct spoolss_GetPrinterDriverDirectory {
1188         struct {
1189                 const char *server;/* [unique,charset(UTF16)] */
1190                 const char *environment;/* [unique,charset(UTF16)] */
1191                 uint32_t level;
1192                 DATA_BLOB *buffer;/* [unique] */
1193                 uint32_t offered;
1194         } in;
1195
1196         struct {
1197                 union spoolss_DriverDirectoryInfo *info;/* [unique,subcontext_size(offered),subcontext(4),switch_is(level)] */
1198                 uint32_t *needed;/* [ref] */
1199                 WERROR result;
1200         } out;
1201
1202 };
1203
1204
1205 struct spoolss_DeletePrinterDriver {
1206         struct {
1207                 const char *server;/* [unique,charset(UTF16)] */
1208                 const char *architecture;/* [charset(UTF16)] */
1209                 const char *driver;/* [charset(UTF16)] */
1210         } in;
1211
1212         struct {
1213                 WERROR result;
1214         } out;
1215
1216 };
1217
1218
1219 struct spoolss_AddPrintProcessor {
1220         struct {
1221                 const char *server;/* [unique,charset(UTF16)] */
1222                 const char *architecture;/* [charset(UTF16)] */
1223                 const char *path_name;/* [charset(UTF16)] */
1224                 const char *print_processor_name;/* [charset(UTF16)] */
1225         } in;
1226
1227         struct {
1228                 WERROR result;
1229         } out;
1230
1231 };
1232
1233
1234 struct _spoolss_EnumPrintProcessors {
1235         struct {
1236                 const char *servername;/* [unique,charset(UTF16)] */
1237                 const char *environment;/* [unique,charset(UTF16)] */
1238                 uint32_t level;
1239                 DATA_BLOB *buffer;/* [unique] */
1240                 uint32_t offered;
1241         } in;
1242
1243         struct {
1244                 DATA_BLOB *info;/* [unique] */
1245                 uint32_t *needed;/* [ref] */
1246                 uint32_t count;
1247                 WERROR result;
1248         } out;
1249
1250 };
1251
1252
1253 struct __spoolss_EnumPrintProcessors {
1254         struct {
1255                 uint32_t level;
1256                 uint32_t count;
1257         } in;
1258
1259         struct {
1260                 union spoolss_PrintProcessorInfo *info;/* [switch_is(level)] */
1261         } out;
1262
1263 };
1264
1265
1266 struct spoolss_EnumPrintProcessors {
1267         struct {
1268                 const char *servername;/* [unique,charset(UTF16)] */
1269                 const char *environment;/* [unique,charset(UTF16)] */
1270                 uint32_t level;
1271                 DATA_BLOB *buffer;/* [unique] */
1272                 uint32_t offered;
1273         } in;
1274
1275         struct {
1276                 union spoolss_PrintProcessorInfo *info;/* [unique,switch_is(level),size_is(count)] */
1277                 uint32_t *needed;/* [ref] */
1278                 uint32_t count;
1279                 WERROR result;
1280         } out;
1281
1282 };
1283
1284
1285 struct spoolss_GetPrintProcessorDirectory {
1286         struct {
1287                 WERROR result;
1288         } out;
1289
1290 };
1291
1292
1293 struct spoolss_StartDocPrinter {
1294         struct {
1295                 struct policy_handle *handle;/* [ref] */
1296                 uint32_t level;
1297                 union spoolss_DocumentInfo info;/* [switch_is(level)] */
1298         } in;
1299
1300         struct {
1301                 uint32_t *job_id;/* [ref] */
1302                 WERROR result;
1303         } out;
1304
1305 };
1306
1307
1308 struct spoolss_StartPagePrinter {
1309         struct {
1310                 struct policy_handle *handle;/* [ref] */
1311         } in;
1312
1313         struct {
1314                 WERROR result;
1315         } out;
1316
1317 };
1318
1319
1320 struct spoolss_WritePrinter {
1321         struct {
1322                 struct policy_handle *handle;/* [ref] */
1323                 DATA_BLOB data;
1324                 uint32_t _data_size;/* [value(r->in.data.length)] */
1325         } in;
1326
1327         struct {
1328                 uint32_t *num_written;/* [ref] */
1329                 WERROR result;
1330         } out;
1331
1332 };
1333
1334
1335 struct spoolss_EndPagePrinter {
1336         struct {
1337                 struct policy_handle *handle;/* [ref] */
1338         } in;
1339
1340         struct {
1341                 WERROR result;
1342         } out;
1343
1344 };
1345
1346
1347 struct spoolss_AbortPrinter {
1348         struct {
1349                 struct policy_handle *handle;/* [ref] */
1350         } in;
1351
1352         struct {
1353                 WERROR result;
1354         } out;
1355
1356 };
1357
1358
1359 struct spoolss_ReadPrinter {
1360         struct {
1361                 struct policy_handle *handle;/* [ref] */
1362                 uint32_t data_size;
1363         } in;
1364
1365         struct {
1366                 uint8_t *data;/* [ref,size_is(data_size)] */
1367                 uint32_t *_data_size;/* [ref] */
1368                 WERROR result;
1369         } out;
1370
1371 };
1372
1373
1374 struct spoolss_EndDocPrinter {
1375         struct {
1376                 struct policy_handle *handle;/* [ref] */
1377         } in;
1378
1379         struct {
1380                 WERROR result;
1381         } out;
1382
1383 };
1384
1385
1386 struct spoolss_AddJob {
1387         struct {
1388                 struct policy_handle *handle;/* [ref] */
1389                 uint32_t level;
1390                 uint32_t offered;
1391                 uint8_t *buffer;/* [unique,size_is(offered)] */
1392         } in;
1393
1394         struct {
1395                 uint32_t *needed;/* [ref] */
1396                 uint8_t *buffer;/* [unique,size_is(offered)] */
1397                 WERROR result;
1398         } out;
1399
1400 };
1401
1402
1403 struct spoolss_ScheduleJob {
1404         struct {
1405                 struct policy_handle *handle;/* [ref] */
1406                 uint32_t jobid;
1407         } in;
1408
1409         struct {
1410                 WERROR result;
1411         } out;
1412
1413 };
1414
1415
1416 struct _spoolss_GetPrinterData {
1417         struct {
1418                 struct policy_handle *handle;/* [ref] */
1419                 const char *value_name;/* [charset(UTF16)] */
1420                 uint32_t offered;
1421         } in;
1422
1423         struct {
1424                 enum spoolss_PrinterDataType *type;/* [ref] */
1425                 DATA_BLOB data;
1426                 uint32_t *needed;/* [ref] */
1427                 WERROR result;
1428         } out;
1429
1430 };
1431
1432
1433 struct __spoolss_GetPrinterData {
1434         struct {
1435                 enum spoolss_PrinterDataType type;
1436         } in;
1437
1438         struct {
1439                 union spoolss_PrinterData data;/* [switch_is(type)] */
1440         } out;
1441
1442 };
1443
1444
1445 struct spoolss_GetPrinterData {
1446         struct {
1447                 struct policy_handle *handle;/* [ref] */
1448                 const char *value_name;/* [charset(UTF16)] */
1449                 uint32_t offered;
1450         } in;
1451
1452         struct {
1453                 enum spoolss_PrinterDataType *type;/* [ref] */
1454                 union spoolss_PrinterData data;/* [subcontext_size(offered),subcontext(4),switch_is(*type)] */
1455                 uint32_t *needed;/* [ref] */
1456                 WERROR result;
1457         } out;
1458
1459 };
1460
1461
1462 struct _spoolss_SetPrinterData {
1463         struct {
1464                 struct policy_handle *handle;/* [ref] */
1465                 const char *value_name;/* [charset(UTF16)] */
1466                 enum spoolss_PrinterDataType type;
1467                 DATA_BLOB data;
1468                 uint32_t _offered;
1469         } in;
1470
1471         struct {
1472                 WERROR result;
1473         } out;
1474
1475 };
1476
1477
1478 struct __spoolss_SetPrinterData {
1479         struct {
1480                 enum spoolss_PrinterDataType type;
1481         } in;
1482
1483         struct {
1484                 union spoolss_PrinterData data;/* [switch_is(type)] */
1485         } out;
1486
1487 };
1488
1489
1490 struct spoolss_SetPrinterData {
1491         struct {
1492                 struct policy_handle *handle;/* [ref] */
1493                 const char *value_name;/* [charset(UTF16)] */
1494                 enum spoolss_PrinterDataType type;
1495                 union spoolss_PrinterData data;/* [subcontext(4),switch_is(type)] */
1496                 uint32_t _offered;/* [value(ndr_size_spoolss_PrinterData(&data,type,ndr->iconv_convenience,flags))] */
1497         } in;
1498
1499         struct {
1500                 WERROR result;
1501         } out;
1502
1503 };
1504
1505
1506 struct spoolss_WaitForPrinterChange {
1507         struct {
1508                 WERROR result;
1509         } out;
1510
1511 };
1512
1513
1514 struct spoolss_ClosePrinter {
1515         struct {
1516                 struct policy_handle *handle;/* [ref] */
1517         } in;
1518
1519         struct {
1520                 struct policy_handle *handle;/* [ref] */
1521                 WERROR result;
1522         } out;
1523
1524 };
1525
1526
1527 struct spoolss_AddForm {
1528         struct {
1529                 struct policy_handle *handle;/* [ref] */
1530                 uint32_t level;
1531                 union spoolss_AddFormInfo info;/* [switch_is(level)] */
1532         } in;
1533
1534         struct {
1535                 WERROR result;
1536         } out;
1537
1538 };
1539
1540
1541 struct spoolss_DeleteForm {
1542         struct {
1543                 struct policy_handle *handle;/* [ref] */
1544                 const char *form_name;/* [charset(UTF16)] */
1545         } in;
1546
1547         struct {
1548                 WERROR result;
1549         } out;
1550
1551 };
1552
1553
1554 struct spoolss_GetForm {
1555         struct {
1556                 struct policy_handle *handle;/* [ref] */
1557                 const char *form_name;/* [charset(UTF16)] */
1558                 uint32_t level;
1559                 DATA_BLOB *buffer;/* [unique] */
1560                 uint32_t offered;
1561         } in;
1562
1563         struct {
1564                 union spoolss_FormInfo *info;/* [unique,subcontext_size(offered),subcontext(4),switch_is(level)] */
1565                 uint32_t *needed;/* [ref] */
1566                 WERROR result;
1567         } out;
1568
1569 };
1570
1571
1572 struct spoolss_SetForm {
1573         struct {
1574                 struct policy_handle *handle;/* [ref] */
1575                 const char *form_name;/* [charset(UTF16)] */
1576                 uint32_t level;
1577                 union spoolss_AddFormInfo info;/* [switch_is(level)] */
1578         } in;
1579
1580         struct {
1581                 WERROR result;
1582         } out;
1583
1584 };
1585
1586
1587 struct _spoolss_EnumForms {
1588         struct {
1589                 struct policy_handle *handle;/* [ref] */
1590                 uint32_t level;
1591                 DATA_BLOB *buffer;/* [unique] */
1592                 uint32_t offered;
1593         } in;
1594
1595         struct {
1596                 DATA_BLOB *info;/* [unique] */
1597                 uint32_t *needed;/* [ref] */
1598                 uint32_t count;
1599                 WERROR result;
1600         } out;
1601
1602 };
1603
1604
1605 struct __spoolss_EnumForms {
1606         struct {
1607                 uint32_t level;
1608                 uint32_t count;
1609         } in;
1610
1611         struct {
1612                 union spoolss_FormInfo *info;/* [switch_is(level)] */
1613         } out;
1614
1615 };
1616
1617
1618 struct spoolss_EnumForms {
1619         struct {
1620                 struct policy_handle *handle;/* [ref] */
1621                 uint32_t level;
1622                 DATA_BLOB *buffer;/* [unique] */
1623                 uint32_t offered;
1624         } in;
1625
1626         struct {
1627                 union spoolss_FormInfo *info;/* [unique,switch_is(level),size_is(count)] */
1628                 uint32_t *needed;/* [ref] */
1629                 uint32_t count;
1630                 WERROR result;
1631         } out;
1632
1633 };
1634
1635
1636 struct _spoolss_EnumPorts {
1637         struct {
1638                 const char *servername;/* [unique,charset(UTF16)] */
1639                 uint32_t level;
1640                 DATA_BLOB *buffer;/* [unique] */
1641                 uint32_t offered;
1642         } in;
1643
1644         struct {
1645                 DATA_BLOB *info;/* [unique] */
1646                 uint32_t *needed;/* [ref] */
1647                 uint32_t count;
1648                 WERROR result;
1649         } out;
1650
1651 };
1652
1653
1654 struct __spoolss_EnumPorts {
1655         struct {
1656                 uint32_t level;
1657                 uint32_t count;
1658         } in;
1659
1660         struct {
1661                 union spoolss_PortInfo *info;/* [switch_is(level)] */
1662         } out;
1663
1664 };
1665
1666
1667 struct spoolss_EnumPorts {
1668         struct {
1669                 const char *servername;/* [unique,charset(UTF16)] */
1670                 uint32_t level;
1671                 DATA_BLOB *buffer;/* [unique] */
1672                 uint32_t offered;
1673         } in;
1674
1675         struct {
1676                 union spoolss_PortInfo *info;/* [unique,switch_is(level),size_is(count)] */
1677                 uint32_t *needed;/* [ref] */
1678                 uint32_t count;
1679                 WERROR result;
1680         } out;
1681
1682 };
1683
1684
1685 struct _spoolss_EnumMonitors {
1686         struct {
1687                 const char *servername;/* [unique,charset(UTF16)] */
1688                 uint32_t level;
1689                 DATA_BLOB *buffer;/* [unique] */
1690                 uint32_t offered;
1691         } in;
1692
1693         struct {
1694                 DATA_BLOB *info;/* [unique] */
1695                 uint32_t *needed;/* [ref] */
1696                 uint32_t count;
1697                 WERROR result;
1698         } out;
1699
1700 };
1701
1702
1703 struct __spoolss_EnumMonitors {
1704         struct {
1705                 uint32_t level;
1706                 uint32_t count;
1707         } in;
1708
1709         struct {
1710                 union spoolss_MonitorInfo *info;/* [switch_is(level)] */
1711         } out;
1712
1713 };
1714
1715
1716 struct spoolss_EnumMonitors {
1717         struct {
1718                 const char *servername;/* [unique,charset(UTF16)] */
1719                 uint32_t level;
1720                 DATA_BLOB *buffer;/* [unique] */
1721                 uint32_t offered;
1722         } in;
1723
1724         struct {
1725                 union spoolss_MonitorInfo *info;/* [unique,switch_is(level),size_is(count)] */
1726                 uint32_t *needed;/* [ref] */
1727                 uint32_t count;
1728                 WERROR result;
1729         } out;
1730
1731 };
1732
1733
1734 struct spoolss_AddPort {
1735         struct {
1736                 const char *server_name;/* [unique,charset(UTF16)] */
1737                 uint32_t unknown;
1738                 const char *monitor_name;/* [charset(UTF16)] */
1739         } in;
1740
1741         struct {
1742                 WERROR result;
1743         } out;
1744
1745 };
1746
1747
1748 struct spoolss_ConfigurePort {
1749         struct {
1750                 WERROR result;
1751         } out;
1752
1753 };
1754
1755
1756 struct spoolss_DeletePort {
1757         struct {
1758                 WERROR result;
1759         } out;
1760
1761 };
1762
1763
1764 struct spoolss_CreatePrinterIC {
1765         struct {
1766                 WERROR result;
1767         } out;
1768
1769 };
1770
1771
1772 struct spoolss_PlayGDIScriptOnPrinterIC {
1773         struct {
1774                 WERROR result;
1775         } out;
1776
1777 };
1778
1779
1780 struct spoolss_DeletePrinterIC {
1781         struct {
1782                 WERROR result;
1783         } out;
1784
1785 };
1786
1787
1788 struct spoolss_AddPrinterConnection {
1789         struct {
1790                 WERROR result;
1791         } out;
1792
1793 };
1794
1795
1796 struct spoolss_DeletePrinterConnection {
1797         struct {
1798                 WERROR result;
1799         } out;
1800
1801 };
1802
1803
1804 struct spoolss_PrinterMessageBox {
1805         struct {
1806                 WERROR result;
1807         } out;
1808
1809 };
1810
1811
1812 struct spoolss_AddMonitor {
1813         struct {
1814                 WERROR result;
1815         } out;
1816
1817 };
1818
1819
1820 struct spoolss_DeleteMonitor {
1821         struct {
1822                 WERROR result;
1823         } out;
1824
1825 };
1826
1827
1828 struct spoolss_DeletePrintProcessor {
1829         struct {
1830                 WERROR result;
1831         } out;
1832
1833 };
1834
1835
1836 struct spoolss_AddPrintProvidor {
1837         struct {
1838                 WERROR result;
1839         } out;
1840
1841 };
1842
1843
1844 struct spoolss_DeletePrintProvidor {
1845         struct {
1846                 WERROR result;
1847         } out;
1848
1849 };
1850
1851
1852 struct spoolss_EnumPrintProcDataTypes {
1853         struct {
1854                 WERROR result;
1855         } out;
1856
1857 };
1858
1859
1860 struct spoolss_ResetPrinter {
1861         struct {
1862                 WERROR result;
1863         } out;
1864
1865 };
1866
1867
1868 struct spoolss_GetPrinterDriver2 {
1869         struct {
1870                 struct policy_handle *handle;/* [ref] */
1871                 const char *architecture;/* [unique,charset(UTF16)] */
1872                 uint32_t level;
1873                 DATA_BLOB *buffer;/* [unique] */
1874                 uint32_t offered;
1875                 uint32_t client_major_version;
1876                 uint32_t client_minor_version;
1877         } in;
1878
1879         struct {
1880                 DATA_BLOB *info;/* [unique] */
1881                 uint32_t *needed;/* [ref] */
1882                 uint32_t *server_major_version;/* [ref] */
1883                 uint32_t *server_minor_version;/* [ref] */
1884                 WERROR result;
1885         } out;
1886
1887 };
1888
1889
1890 struct spoolss_FindFirstPrinterChangeNotification {
1891         struct {
1892                 WERROR result;
1893         } out;
1894
1895 };
1896
1897
1898 struct spoolss_FindNextPrinterChangeNotification {
1899         struct {
1900                 WERROR result;
1901         } out;
1902
1903 };
1904
1905
1906 struct spoolss_FindClosePrinterNotify {
1907         struct {
1908                 struct policy_handle *handle;/* [ref] */
1909         } in;
1910
1911         struct {
1912                 WERROR result;
1913         } out;
1914
1915 };
1916
1917
1918 struct spoolss_RouterFindFirstPrinterChangeNotificationOld {
1919         struct {
1920                 WERROR result;
1921         } out;
1922
1923 };
1924
1925
1926 struct spoolss_ReplyOpenPrinter {
1927         struct {
1928                 const char *server_name;/* [charset(UTF16)] */
1929                 uint32_t printer_local;
1930                 enum winreg_Type type;
1931                 uint32_t bufsize;/* [range(0,512)] */
1932                 uint8_t *buffer;/* [unique,size_is(bufsize)] */
1933         } in;
1934
1935         struct {
1936                 struct policy_handle *handle;/* [ref] */
1937                 WERROR result;
1938         } out;
1939
1940 };
1941
1942
1943 struct spoolss_RouterReplyPrinter {
1944         struct {
1945                 struct policy_handle *handle;/* [ref] */
1946                 uint32_t flags;
1947                 uint32_t bufsize;/* [range(0,512)] */
1948                 uint8_t *buffer;/* [unique,size_is(bufsize)] */
1949         } in;
1950
1951         struct {
1952                 WERROR result;
1953         } out;
1954
1955 };
1956
1957
1958 struct spoolss_ReplyClosePrinter {
1959         struct {
1960                 struct policy_handle *handle;/* [ref] */
1961         } in;
1962
1963         struct {
1964                 struct policy_handle *handle;/* [ref] */
1965                 WERROR result;
1966         } out;
1967
1968 };
1969
1970
1971 struct spoolss_AddPortEx {
1972         struct {
1973                 WERROR result;
1974         } out;
1975
1976 };
1977
1978
1979 struct spoolss_RouterFindFirstPrinterChangeNotification {
1980         struct {
1981                 WERROR result;
1982         } out;
1983
1984 };
1985
1986
1987 struct spoolss_SpoolerInit {
1988         struct {
1989                 WERROR result;
1990         } out;
1991
1992 };
1993
1994
1995 struct spoolss_ResetPrinterEx {
1996         struct {
1997                 WERROR result;
1998         } out;
1999
2000 };
2001
2002
2003 struct spoolss_RemoteFindFirstPrinterChangeNotifyEx {
2004         struct {
2005                 struct policy_handle *handle;/* [ref] */
2006                 uint32_t flags;
2007                 uint32_t options;
2008                 const char *str;/* [unique,charset(UTF16)] */
2009                 uint32_t printer_local;
2010                 struct spoolss_NotifyOptionsContainer *t1;/* [unique] */
2011         } in;
2012
2013         struct {
2014                 WERROR result;
2015         } out;
2016
2017 };
2018
2019
2020 struct spoolss_RouterReplyPrinterEx {
2021         struct {
2022                 WERROR result;
2023         } out;
2024
2025 };
2026
2027
2028 struct spoolss_RouterRefreshPrinterChangeNotify {
2029         struct {
2030                 struct policy_handle *handle;/* [ref] */
2031                 uint32_t change_low;
2032                 struct spoolss_NotifyOptionsContainer *container;/* [unique] */
2033         } in;
2034
2035         struct {
2036                 struct spoolss_NotifyInfo **info;/* [ref] */
2037                 WERROR result;
2038         } out;
2039
2040 };
2041
2042
2043 struct spoolss_44 {
2044         struct {
2045                 WERROR result;
2046         } out;
2047
2048 };
2049
2050
2051 struct spoolss_OpenPrinterEx {
2052         struct {
2053                 const char *printername;/* [unique,charset(UTF16)] */
2054                 const char *datatype;/* [unique,charset(UTF16)] */
2055                 struct spoolss_DevmodeContainer devmode_ctr;
2056                 uint32_t access_mask;
2057                 uint32_t level;
2058                 union spoolss_UserLevel userlevel;/* [switch_is(level)] */
2059         } in;
2060
2061         struct {
2062                 struct policy_handle *handle;/* [ref] */
2063                 WERROR result;
2064         } out;
2065
2066 };
2067
2068
2069 struct spoolss_AddPrinterEx {
2070         struct {
2071                 const char *server;/* [unique,charset(UTF16)] */
2072                 uint32_t level;
2073                 union spoolss_PrinterInfo *info;/* [unique,switch_is(level)] */
2074                 struct spoolss_DevmodeContainer devmode_ctr;
2075                 struct security_descriptor *secdesc;/* [unique] */
2076                 uint32_t ulevel;
2077                 union spoolss_UserLevel userlevel;/* [switch_is(ulevel)] */
2078         } in;
2079
2080         struct {
2081                 WERROR result;
2082         } out;
2083
2084 };
2085
2086
2087 struct spoolss_47 {
2088         struct {
2089                 WERROR result;
2090         } out;
2091
2092 };
2093
2094
2095 struct spoolss_EnumPrinterData {
2096         struct {
2097                 struct policy_handle *handle;/* [ref] */
2098                 uint32_t enum_index;
2099                 uint32_t value_offered;
2100                 uint32_t data_offered;
2101         } in;
2102
2103         struct {
2104                 const char *value_name;/* [charset(UTF16),size_is(value_offered/2)] */
2105                 uint32_t *value_needed;/* [ref] */
2106                 uint32_t *printerdata_type;/* [ref] */
2107                 DATA_BLOB *buffer;/* [ref] */
2108                 uint32_t *data_needed;/* [ref] */
2109                 WERROR result;
2110         } out;
2111
2112 };
2113
2114
2115 struct spoolss_DeletePrinterData {
2116         struct {
2117                 struct policy_handle *handle;/* [ref] */
2118                 const char *value_name;/* [charset(UTF16)] */
2119         } in;
2120
2121         struct {
2122                 WERROR result;
2123         } out;
2124
2125 };
2126
2127
2128 struct spoolss_4a {
2129         struct {
2130                 WERROR result;
2131         } out;
2132
2133 };
2134
2135
2136 struct spoolss_4b {
2137         struct {
2138                 WERROR result;
2139         } out;
2140
2141 };
2142
2143
2144 struct spoolss_4c {
2145         struct {
2146                 WERROR result;
2147         } out;
2148
2149 };
2150
2151
2152 struct spoolss_SetPrinterDataEx {
2153         struct {
2154                 struct policy_handle *handle;/* [ref] */
2155                 const char *key_name;/* [charset(UTF16)] */
2156                 const char *value_name;/* [charset(UTF16)] */
2157                 uint32_t type;
2158                 DATA_BLOB buffer;
2159                 uint32_t offered;
2160         } in;
2161
2162         struct {
2163                 WERROR result;
2164         } out;
2165
2166 };
2167
2168
2169 struct spoolss_GetPrinterDataEx {
2170         struct {
2171                 struct policy_handle *handle;/* [ref] */
2172                 const char *key_name;/* [charset(UTF16)] */
2173                 const char *value_name;/* [charset(UTF16)] */
2174                 uint32_t offered;
2175         } in;
2176
2177         struct {
2178                 uint32_t *type;/* [ref] */
2179                 uint8_t *buffer;/* [ref,size_is(offered)] */
2180                 uint32_t *needed;/* [ref] */
2181                 WERROR result;
2182         } out;
2183
2184 };
2185
2186
2187 struct spoolss_EnumPrinterDataEx {
2188         struct {
2189                 struct policy_handle *handle;/* [ref] */
2190                 const char *key_name;/* [charset(UTF16)] */
2191                 uint32_t offered;
2192         } in;
2193
2194         struct {
2195                 uint8_t *buffer;/* [ref,size_is(offered)] */
2196                 uint32_t *needed;/* [ref] */
2197                 uint32_t *count;/* [ref] */
2198                 WERROR result;
2199         } out;
2200
2201 };
2202
2203
2204 struct spoolss_EnumPrinterKey {
2205         struct {
2206                 struct policy_handle *handle;/* [ref] */
2207                 const char *key_name;/* [charset(UTF16)] */
2208                 uint32_t key_buffer_size;
2209         } in;
2210
2211         struct {
2212                 uint16_t *key_buffer;/* [ref,size_is(key_buffer_size/2)] */
2213                 uint32_t *needed;/* [ref] */
2214                 WERROR result;
2215         } out;
2216
2217 };
2218
2219
2220 struct spoolss_DeletePrinterDataEx {
2221         struct {
2222                 struct policy_handle *handle;/* [ref] */
2223                 const char *key_name;/* [charset(UTF16)] */
2224                 const char *value_name;/* [charset(UTF16)] */
2225         } in;
2226
2227         struct {
2228                 WERROR result;
2229         } out;
2230
2231 };
2232
2233
2234 struct spoolss_DeletePrinterKey {
2235         struct {
2236                 struct policy_handle *handle;/* [ref] */
2237                 const char *key_name;/* [charset(UTF16)] */
2238         } in;
2239
2240         struct {
2241                 WERROR result;
2242         } out;
2243
2244 };
2245
2246
2247 struct spoolss_53 {
2248         struct {
2249                 WERROR result;
2250         } out;
2251
2252 };
2253
2254
2255 struct spoolss_DeletePrinterDriverEx {
2256         struct {
2257                 const char *server;/* [unique,charset(UTF16)] */
2258                 const char *architecture;/* [charset(UTF16)] */
2259                 const char *driver;/* [charset(UTF16)] */
2260                 uint32_t delete_flags;
2261                 uint32_t version;
2262         } in;
2263
2264         struct {
2265                 WERROR result;
2266         } out;
2267
2268 };
2269
2270
2271 struct spoolss_55 {
2272         struct {
2273                 WERROR result;
2274         } out;
2275
2276 };
2277
2278
2279 struct spoolss_56 {
2280         struct {
2281                 WERROR result;
2282         } out;
2283
2284 };
2285
2286
2287 struct spoolss_57 {
2288         struct {
2289                 WERROR result;
2290         } out;
2291
2292 };
2293
2294
2295 struct spoolss_XcvData {
2296         struct {
2297                 struct policy_handle *handle;/* [ref] */
2298                 const char *function_name;/* [charset(UTF16)] */
2299                 DATA_BLOB in_data;
2300                 uint32_t _in_data_length;/* [value(r->in.in_data.length)] */
2301                 uint32_t out_data_size;
2302                 uint32_t *status_code;/* [ref] */
2303         } in;
2304
2305         struct {
2306                 uint8_t *out_data;/* [ref,size_is(out_data_size)] */
2307                 uint32_t *needed;/* [ref] */
2308                 uint32_t *status_code;/* [ref] */
2309                 WERROR result;
2310         } out;
2311
2312 };
2313
2314
2315 struct spoolss_AddPrinterDriverEx {
2316         struct {
2317                 const char *servername;/* [ref,charset(UTF16)] */
2318                 uint32_t level;
2319                 union spoolss_AddDriverInfo info;/* [switch_is(level)] */
2320                 uint32_t flags;
2321         } in;
2322
2323         struct {
2324                 WERROR result;
2325         } out;
2326
2327 };
2328
2329
2330 struct spoolss_5a {
2331         struct {
2332                 WERROR result;
2333         } out;
2334
2335 };
2336
2337
2338 struct spoolss_5b {
2339         struct {
2340                 WERROR result;
2341         } out;
2342
2343 };
2344
2345
2346 struct spoolss_5c {
2347         struct {
2348                 WERROR result;
2349         } out;
2350
2351 };
2352
2353
2354 struct spoolss_5d {
2355         struct {
2356                 WERROR result;
2357         } out;
2358
2359 };
2360
2361
2362 struct spoolss_5e {
2363         struct {
2364                 WERROR result;
2365         } out;
2366
2367 };
2368
2369
2370 struct spoolss_5f {
2371         struct {
2372                 WERROR result;
2373         } out;
2374
2375 };
2376
2377 #endif /* _HEADER_spoolss */