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