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 "libcli/util/ntstatus.h"
6
7 #include "librpc/gen_ndr/misc.h"
8 #include "librpc/gen_ndr/security.h"
9 #include "librpc/gen_ndr/winreg.h"
10 #ifndef _HEADER_spoolss
11 #define _HEADER_spoolss
12
13 #define PRINTER_STATUS_OK       ( 0x00000000 )
14 #define JOB_STATUS_QUEUED       ( 0x0000 )
15 #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) )
16 #define SPL_ARCH_WIN40  ( "WIN40" )
17 #define SPL_ARCH_W32X86 ( "W32X86" )
18 #define SPL_ARCH_W32MIPS        ( "W32MIPS" )
19 #define SPL_ARCH_W32ALPHA       ( "W32ALPHA" )
20 #define SPL_ARCH_W32PPC ( "W32PPC" )
21 #define SPL_ARCH_IA64   ( "IA64" )
22 #define SPL_ARCH_X64    ( "x64" )
23 #define SPOOLSS_ARCHITECTURE_ALL        ( "all" )
24 #define SPOOLSS_ARCHITECTURE_NT_X86     ( "Windows NT x86" )
25 #define SPOOLSS_DEFAULT_SERVER_PATH     ( "C:\\WINDOWS\\system32\\spool" )
26 #define SPL_LOCAL_PORT  ( "Local Port" )
27 #define SPL_TCPIP_PORT  ( "Standard TCP/IP Port" )
28 #define SPL_XCV_MONITOR_LOCALMON        ( ",XcvMonitor Local Port" )
29 #define SPL_XCV_MONITOR_TCPMON  ( ",XcvMonitor Standard TCP/IP Port" )
30 #define PRINTER_CHANGE_PRINTER  ( 0x000000FF )
31 #define PRINTER_CHANGE_JOB      ( 0x0000FF00 )
32 #define PRINTER_CHANGE_FORM     ( (PRINTER_CHANGE_ADD_FORM|PRINTER_CHANGE_SET_FORM|PRINTER_CHANGE_DELETE_FORM) )
33 #define PRINTER_CHANGE_PORT     ( (PRINTER_CHANGE_ADD_PORT|PRINTER_CHANGE_CONFIGURE_PORT|PRINTER_CHANGE_DELETE_PORT) )
34 #define PRINTER_CHANGE_PRINT_PROCESSOR  ( 0x07000000 )
35 #define PRINTER_CHANGE_PRINTER_DRIVER   ( (PRINTER_CHANGE_ADD_PRINTER_DRIVER|PRINTER_CHANGE_SET_PRINTER_DRIVER|PRINTER_CHANGE_DELETE_PRINTER_DRIVER) )
36 #define PRINTER_CHANGE_ALL      ( (PRINTER_CHANGE_PRINTER|PRINTER_CHANGE_JOB|PRINTER_CHANGE_FORM|PRINTER_CHANGE_PORT|PRINTER_CHANGE_PRINT_PROCESSOR|PRINTER_CHANGE_PRINTER_DRIVER) )
37 #define SERVER_ALL_ACCESS       ( SEC_STD_REQUIRED|SERVER_ACCESS_ADMINISTER|SERVER_ACCESS_ENUMERATE )
38 #define SERVER_READ     ( SEC_STD_READ_CONTROL|SERVER_ACCESS_ENUMERATE )
39 #define SERVER_WRITE    ( STANDARD_RIGHTS_WRITE_ACCESS|SERVER_ACCESS_ADMINISTER|SERVER_ACCESS_ENUMERATE )
40 #define SERVER_EXECUTE  ( SEC_STD_READ_CONTROL|SERVER_ACCESS_ENUMERATE )
41 #define PRINTER_ALL_ACCESS      ( SEC_STD_REQUIRED|PRINTER_ACCESS_ADMINISTER|PRINTER_ACCESS_USE )
42 #define PRINTER_READ    ( SEC_STD_READ_CONTROL|PRINTER_ACCESS_USE )
43 #define PRINTER_WRITE   ( STANDARD_RIGHTS_WRITE_ACCESS|PRINTER_ACCESS_USE )
44 #define PRINTER_EXECUTE ( SEC_STD_READ_CONTROL|PRINTER_ACCESS_USE )
45 #define JOB_ALL_ACCESS  ( SEC_STD_REQUIRED|JOB_ACCESS_ADMINISTER )
46 #define JOB_READ        ( SEC_STD_READ_CONTROL|JOB_ACCESS_ADMINISTER )
47 #define JOB_WRITE       ( STANDARD_RIGHTS_WRITE_ACCESS|JOB_ACCESS_ADMINISTER )
48 #define JOB_EXECUTE     ( SEC_STD_READ_CONTROL|JOB_ACCESS_ADMINISTER )
49 #define PRINTER_ACE_FULL_CONTROL        ( SEC_GENERIC_ALL|PRINTER_ALL_ACCESS )
50 #define PRINTER_ACE_MANAGE_DOCUMENTS    ( SEC_GENERIC_ALL|READ_CONTROL_ACCESS )
51 #define PRINTER_ACE_PRINT       ( GENERIC_EXECUTE_ACCESS|READ_CONTROL_ACCESS|PRINTER_ACCESS_USE )
52 struct spoolss_Time {
53         uint16_t year;
54         uint16_t month;
55         uint16_t day_of_week;
56         uint16_t day;
57         uint16_t hour;
58         uint16_t minute;
59         uint16_t second;
60         uint16_t millisecond;
61 }/* [gensize] */;
62
63 struct spoolss_TimeCtr {
64         uint32_t size;/* [value(ndr_size_spoolss_Time(time,ndr->iconv_convenience,ndr->flags))] */
65         struct spoolss_Time *time;/* [unique] */
66 };
67
68 enum spoolss_ProcessorArchitecture
69 #ifndef USE_UINT_ENUMS
70  {
71         PROCESSOR_ARCHITECTURE_INTEL=0x0000,
72         PROCESSOR_ARCHITECTURE_IA64=0x0006,
73         PROCESSOR_ARCHITECTURE_AMD64=0x0009
74 }
75 #else
76  { __donnot_use_enum_spoolss_ProcessorArchitecture=0x7FFFFFFF}
77 #define PROCESSOR_ARCHITECTURE_INTEL ( 0x0000 )
78 #define PROCESSOR_ARCHITECTURE_IA64 ( 0x0006 )
79 #define PROCESSOR_ARCHITECTURE_AMD64 ( 0x0009 )
80 #endif
81 ;
82
83 enum spoolss_ProcessorType
84 #ifndef USE_UINT_ENUMS
85  {
86         PROCESSOR_INTEL_386=0x00000182,
87         PROCESSOR_INTEL_486=0x000001E6,
88         PROCESSOR_INTEL_PENTIUM=0x0000024A,
89         PROCESSOR_INTEL_IA64=0x00000898,
90         PROCESSOR_AMD_X8664=0x000022A0
91 }
92 #else
93  { __donnot_use_enum_spoolss_ProcessorType=0x7FFFFFFF}
94 #define PROCESSOR_INTEL_386 ( 0x00000182 )
95 #define PROCESSOR_INTEL_486 ( 0x000001E6 )
96 #define PROCESSOR_INTEL_PENTIUM ( 0x0000024A )
97 #define PROCESSOR_INTEL_IA64 ( 0x00000898 )
98 #define PROCESSOR_AMD_X8664 ( 0x000022A0 )
99 #endif
100 ;
101
102 enum spoolss_MajorVersion
103 #ifndef USE_UINT_ENUMS
104  {
105         SPOOLSS_MAJOR_VERSION_NT4_95_98_ME=0x00000004,
106         SPOOLSS_MAJOR_VERSION_2000_2003_XP=0x00000005,
107         SPOOLSS_MAJOR_VERSION_2008_VISTA=0x00000006
108 }
109 #else
110  { __donnot_use_enum_spoolss_MajorVersion=0x7FFFFFFF}
111 #define SPOOLSS_MAJOR_VERSION_NT4_95_98_ME ( 0x00000004 )
112 #define SPOOLSS_MAJOR_VERSION_2000_2003_XP ( 0x00000005 )
113 #define SPOOLSS_MAJOR_VERSION_2008_VISTA ( 0x00000006 )
114 #endif
115 ;
116
117 enum spoolss_MinorVersion
118 #ifndef USE_UINT_ENUMS
119  {
120         SPOOLSS_MINOR_VERSION_0=0x00000000,
121         SPOOLSS_MINOR_VERSION_XP=0x00000001,
122         SPOOLSS_MINOR_VERSION_2003_XP64=0x00000002,
123         SPOOLSS_MINOR_VERSION_98=0x0000000a,
124         SPOOLSS_MINOR_VERSION_ME=0x0000005a
125 }
126 #else
127  { __donnot_use_enum_spoolss_MinorVersion=0x7FFFFFFF}
128 #define SPOOLSS_MINOR_VERSION_0 ( 0x00000000 )
129 #define SPOOLSS_MINOR_VERSION_XP ( 0x00000001 )
130 #define SPOOLSS_MINOR_VERSION_2003_XP64 ( 0x00000002 )
131 #define SPOOLSS_MINOR_VERSION_98 ( 0x0000000a )
132 #define SPOOLSS_MINOR_VERSION_ME ( 0x0000005a )
133 #endif
134 ;
135
136 /* bitmap spoolss_PrinterStatus */
137 #define PRINTER_STATUS_PAUSED ( 0x00000001 )
138 #define PRINTER_STATUS_ERROR ( 0x00000002 )
139 #define PRINTER_STATUS_PENDING_DELETION ( 0x00000004 )
140 #define PRINTER_STATUS_PAPER_JAM ( 0x00000008 )
141 #define PRINTER_STATUS_PAPER_OUT ( 0x00000010 )
142 #define PRINTER_STATUS_MANUAL_FEED ( 0x00000020 )
143 #define PRINTER_STATUS_PAPER_PROBLEM ( 0x00000040 )
144 #define PRINTER_STATUS_OFFLINE ( 0x00000080 )
145 #define PRINTER_STATUS_IO_ACTIVE ( 0x00000100 )
146 #define PRINTER_STATUS_BUSY ( 0x00000200 )
147 #define PRINTER_STATUS_PRINTING ( 0x00000400 )
148 #define PRINTER_STATUS_OUTPUT_BIN_FULL ( 0x00000800 )
149 #define PRINTER_STATUS_NOT_AVAILABLE ( 0x00001000 )
150 #define PRINTER_STATUS_WAITING ( 0x00002000 )
151 #define PRINTER_STATUS_PROCESSING ( 0x00004000 )
152 #define PRINTER_STATUS_INITIALIZING ( 0x00008000 )
153 #define PRINTER_STATUS_WARMING_UP ( 0x00010000 )
154 #define PRINTER_STATUS_TONER_LOW ( 0x00020000 )
155 #define PRINTER_STATUS_NO_TONER ( 0x00040000 )
156 #define PRINTER_STATUS_PAGE_PUNT ( 0x00080000 )
157 #define PRINTER_STATUS_USER_INTERVENTION ( 0x00100000 )
158 #define PRINTER_STATUS_OUT_OF_MEMORY ( 0x00200000 )
159 #define PRINTER_STATUS_DOOR_OPEN ( 0x00400000 )
160 #define PRINTER_STATUS_SERVER_UNKNOWN ( 0x00800000 )
161 #define PRINTER_STATUS_POWER_SAVE ( 0x01000000 )
162
163 /* bitmap spoolss_JobStatus */
164 #define JOB_STATUS_PAUSED ( 0x00000001 )
165 #define JOB_STATUS_ERROR ( 0x00000002 )
166 #define JOB_STATUS_DELETING ( 0x00000004 )
167 #define JOB_STATUS_SPOOLING ( 0x00000008 )
168 #define JOB_STATUS_PRINTING ( 0x00000010 )
169 #define JOB_STATUS_OFFLINE ( 0x00000020 )
170 #define JOB_STATUS_PAPEROUT ( 0x00000040 )
171 #define JOB_STATUS_PRINTED ( 0x00000080 )
172 #define JOB_STATUS_DELETED ( 0x00000100 )
173 #define JOB_STATUS_BLOCKED_DEVQ ( 0x00000200 )
174 #define JOB_STATUS_USER_INTERVENTION ( 0x00000400 )
175 #define JOB_STATUS_RESTART ( 0x00000800 )
176 #define JOB_STATUS_COMPLETE ( 0x00001000 )
177
178 struct spoolss_PrinterInfo0 {
179         const char * printername;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */
180         const char * servername;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */
181         uint32_t cjobs;
182         uint32_t total_jobs;
183         uint32_t total_bytes;
184         struct spoolss_Time time;
185         uint32_t global_counter;
186         uint32_t total_pages;
187         uint32_t version;
188         uint32_t free_build;
189         uint32_t spooling;
190         uint32_t max_spooling;
191         uint32_t session_counter;
192         uint32_t num_error_out_of_paper;
193         uint32_t num_error_not_ready;
194         uint32_t job_error;
195         uint32_t number_of_processors;
196         enum spoolss_ProcessorType processor_type;
197         uint32_t high_part_total_bytes;
198         uint32_t change_id;
199         WERROR last_error;
200         uint32_t status;
201         uint32_t enumerate_network_printers;
202         uint32_t c_setprinter;
203         enum spoolss_ProcessorArchitecture processor_architecture;
204         uint16_t processor_level;
205         uint32_t ref_ic;
206         uint32_t reserved2;
207         uint32_t reserved3;
208 }/* [gensize,public] */;
209
210 /* bitmap spoolss_DeviceModeFields */
211 #define DEVMODE_ORIENTATION ( 0x00000001 )
212 #define DEVMODE_PAPERSIZE ( 0x00000002 )
213 #define DEVMODE_PAPERLENGTH ( 0x00000004 )
214 #define DEVMODE_PAPERWIDTH ( 0x00000008 )
215 #define DEVMODE_SCALE ( 0x00000010 )
216 #define DEVMODE_POSITION ( 0x00000020 )
217 #define DEVMODE_NUP ( 0x00000040 )
218 #define DEVMODE_COPIES ( 0x00000100 )
219 #define DEVMODE_DEFAULTSOURCE ( 0x00000200 )
220 #define DEVMODE_PRINTQUALITY ( 0x00000400 )
221 #define DEVMODE_COLOR ( 0x00000800 )
222 #define DEVMODE_DUPLEX ( 0x00001000 )
223 #define DEVMODE_YRESOLUTION ( 0x00002000 )
224 #define DEVMODE_TTOPTION ( 0x00004000 )
225 #define DEVMODE_COLLATE ( 0x00008000 )
226 #define DEVMODE_FORMNAME ( 0x00010000 )
227 #define DEVMODE_LOGPIXELS ( 0x00020000 )
228 #define DEVMODE_BITSPERPEL ( 0x00040000 )
229 #define DEVMODE_PELSWIDTH ( 0x00080000 )
230 #define DEVMODE_PELSHEIGHT ( 0x00100000 )
231 #define DEVMODE_DISPLAYFLAGS ( 0x00200000 )
232 #define DEVMODE_DISPLAYFREQUENCY ( 0x00400000 )
233 #define DEVMODE_ICMMETHOD ( 0x00800000 )
234 #define DEVMODE_ICMINTENT ( 0x01000000 )
235 #define DEVMODE_MEDIATYPE ( 0x02000000 )
236 #define DEVMODE_DITHERTYPE ( 0x04000000 )
237 #define DEVMODE_PANNINGWIDTH ( 0x08000000 )
238 #define DEVMODE_PANNINGHEIGHT ( 0x10000000 )
239
240 enum spoolss_DeviceModeSpecVersion
241 #ifndef USE_UINT_ENUMS
242  {
243         DMSPEC_NT3=0x320,
244         DMSPEC_WIN95_98_ME=0x400,
245         DMSPEC_NT4_AND_ABOVE=0x401
246 }
247 #else
248  { __donnot_use_enum_spoolss_DeviceModeSpecVersion=0x7FFFFFFF}
249 #define DMSPEC_NT3 ( 0x320 )
250 #define DMSPEC_WIN95_98_ME ( 0x400 )
251 #define DMSPEC_NT4_AND_ABOVE ( 0x401 )
252 #endif
253 ;
254
255 enum spoolss_DeviceModeOrientation
256 #ifndef USE_UINT_ENUMS
257  {
258         DMORIENT_PORTRAIT=0x0001,
259         DMORIENT_LANDSCAPE=0x0002
260 }
261 #else
262  { __donnot_use_enum_spoolss_DeviceModeOrientation=0x7FFFFFFF}
263 #define DMORIENT_PORTRAIT ( 0x0001 )
264 #define DMORIENT_LANDSCAPE ( 0x0002 )
265 #endif
266 ;
267
268 enum spoolss_DeviceModePaperSize
269 #ifndef USE_UINT_ENUMS
270  {
271         DMPAPER_LETTER=0x0001,
272         DMPAPER_LETTERSMALL=0x0002,
273         DMPAPER_TABLOID=0x0003,
274         DMPAPER_LEDGER=0x0004,
275         DMPAPER_LEGAL=0x0005,
276         DMPAPER_STATEMENT=0x0006,
277         DMPAPER_EXECUTIVE=0x0007,
278         DMPAPER_A3=0x0008,
279         DMPAPER_A4=0x0009,
280         DMPAPER_A4SMALL=0x000A,
281         DMPAPER_A5=0x000B,
282         DMPAPER_B4=0x000C,
283         DMPAPER_B5=0x000D,
284         DMPAPER_FOLIO=0x000E,
285         DMPAPER_QUARTO=0x000F,
286         DMPAPER_10X14=0x0010,
287         DMPAPER_11X17=0x0011,
288         DMPAPER_NOTE=0x0012,
289         DMPAPER_ENV_9=0x0013,
290         DMPAPER_ENV_10=0x0014,
291         DMPAPER_ENV_11=0x0015,
292         DMPAPER_ENV_12=0x0016,
293         DMPAPER_ENV_14=0x0017,
294         DMPAPER_CSHEET=0x0018,
295         DMPAPER_DSHEET=0x0019,
296         DMPAPER_ESHEET=0x001A,
297         DMPAPER_ENV_DL=0x001B,
298         DMPAPER_ENV_C5=0x001C,
299         DMPAPER_ENV_C3=0x001D,
300         DMPAPER_ENV_C4=0x001E,
301         DMPAPER_ENV_C6=0x001F,
302         DMPAPER_ENV_C65=0x0020,
303         DMPAPER_ENV_B4=0x0021,
304         DMPAPER_ENV_B5=0x0022,
305         DMPAPER_ENV_B6=0x0023,
306         DMPAPER_ENV_ITALY=0x0024,
307         DMPAPER_ENV_MONARCH=0x0025,
308         DMPAPER_ENV_PERSONAL=0x0026,
309         DMPAPER_FANFOLD_US=0x0027,
310         DMPAPER_FANFOLD_STD_GERMAN=0x0028,
311         DMPAPER_FANFOLD_LGL_GERMAN=0x0029,
312         DMPAPER_DBL_JAPANESE_POSTCARD=0x0045,
313         DMPAPER_A6=0x0046,
314         DMPAPER_JENV_KAKU2=0x0047,
315         DMPAPER_JENV_KAKU3=0x0048,
316         DMPAPER_JENV_CHOU3=0x0049,
317         DMPAPER_JENV_CHOU4=0x004A,
318         DMPAPER_LETTER_ROTATED=0x004B,
319         DMPAPER_A3_ROTATED=0x004C,
320         DMPAPER_A4_ROTATED=0x004D,
321         DMPAPER_A5_ROTATED=0x004E,
322         DMPAPER_B4_JIS_ROTATED=0x004F,
323         DMPAPER_B5_JIS_ROTATED=0x0050,
324         DMPAPER_JAPANESE_POSTCARD_ROTATED=0x0051,
325         DMPAPER_DBL_JAPANESE_POSTCARD_ROTATED=0x0052,
326         DMPAPER_A6_ROTATED=0x0053,
327         DMPAPER_JENV_KAKU2_ROTATED=0x0054,
328         DMPAPER_JENV_KAKU3_ROTATED=0x0055,
329         DMPAPER_JENV_CHOU3_ROTATED=0x0056,
330         DMPAPER_JENV_CHOU4_ROTATED=0x0057,
331         DMPAPER_B6_JIS=0x0058,
332         DMPAPER_B6_JIS_ROTATED=0x0059,
333         DMPAPER_12X11=0x005A,
334         DMPAPER_JENV_YOU4=0x005B,
335         DMPAPER_JENV_YOU4_ROTATED=0x005C,
336         DMPAPER_P16K=0x005D,
337         DMPAPER_P32K=0x005E,
338         DMPAPER_P32KBIG=0x005F,
339         DMPAPER_PENV_1=0x0060,
340         DMPAPER_PENV_2=0x0061,
341         DMPAPER_PENV_3=0x0062,
342         DMPAPER_PENV_4=0x0063,
343         DMPAPER_PENV_5=0x0064,
344         DMPAPER_PENV_6=0x0065,
345         DMPAPER_PENV_7=0x0066,
346         DMPAPER_PENV_8=0x0067,
347         DMPAPER_PENV_9=0x0068,
348         DMPAPER_PENV_10=0x0069,
349         DMPAPER_P16K_ROTATED=0x006A,
350         DMPAPER_P32K_ROTATED=0x006B,
351         DMPAPER_P32KBIG_ROTATED=0x006C,
352         DMPAPER_PENV_1_ROTATED=0x006D,
353         DMPAPER_PENV_2_ROTATED=0x006E,
354         DMPAPER_PENV_3_ROTATED=0x006F,
355         DMPAPER_PENV_4_ROTATED=0x0070,
356         DMPAPER_PENV_5_ROTATED=0x0071,
357         DMPAPER_PENV_6_ROTATED=0x0072,
358         DMPAPER_PENV_7_ROTATED=0x0073,
359         DMPAPER_PENV_8_ROTATED=0x0074,
360         DMPAPER_PENV_9_ROTATED=0x0075,
361         DMPAPER_PENV_10_ROTATED=0x0076
362 }
363 #else
364  { __donnot_use_enum_spoolss_DeviceModePaperSize=0x7FFFFFFF}
365 #define DMPAPER_LETTER ( 0x0001 )
366 #define DMPAPER_LETTERSMALL ( 0x0002 )
367 #define DMPAPER_TABLOID ( 0x0003 )
368 #define DMPAPER_LEDGER ( 0x0004 )
369 #define DMPAPER_LEGAL ( 0x0005 )
370 #define DMPAPER_STATEMENT ( 0x0006 )
371 #define DMPAPER_EXECUTIVE ( 0x0007 )
372 #define DMPAPER_A3 ( 0x0008 )
373 #define DMPAPER_A4 ( 0x0009 )
374 #define DMPAPER_A4SMALL ( 0x000A )
375 #define DMPAPER_A5 ( 0x000B )
376 #define DMPAPER_B4 ( 0x000C )
377 #define DMPAPER_B5 ( 0x000D )
378 #define DMPAPER_FOLIO ( 0x000E )
379 #define DMPAPER_QUARTO ( 0x000F )
380 #define DMPAPER_10X14 ( 0x0010 )
381 #define DMPAPER_11X17 ( 0x0011 )
382 #define DMPAPER_NOTE ( 0x0012 )
383 #define DMPAPER_ENV_9 ( 0x0013 )
384 #define DMPAPER_ENV_10 ( 0x0014 )
385 #define DMPAPER_ENV_11 ( 0x0015 )
386 #define DMPAPER_ENV_12 ( 0x0016 )
387 #define DMPAPER_ENV_14 ( 0x0017 )
388 #define DMPAPER_CSHEET ( 0x0018 )
389 #define DMPAPER_DSHEET ( 0x0019 )
390 #define DMPAPER_ESHEET ( 0x001A )
391 #define DMPAPER_ENV_DL ( 0x001B )
392 #define DMPAPER_ENV_C5 ( 0x001C )
393 #define DMPAPER_ENV_C3 ( 0x001D )
394 #define DMPAPER_ENV_C4 ( 0x001E )
395 #define DMPAPER_ENV_C6 ( 0x001F )
396 #define DMPAPER_ENV_C65 ( 0x0020 )
397 #define DMPAPER_ENV_B4 ( 0x0021 )
398 #define DMPAPER_ENV_B5 ( 0x0022 )
399 #define DMPAPER_ENV_B6 ( 0x0023 )
400 #define DMPAPER_ENV_ITALY ( 0x0024 )
401 #define DMPAPER_ENV_MONARCH ( 0x0025 )
402 #define DMPAPER_ENV_PERSONAL ( 0x0026 )
403 #define DMPAPER_FANFOLD_US ( 0x0027 )
404 #define DMPAPER_FANFOLD_STD_GERMAN ( 0x0028 )
405 #define DMPAPER_FANFOLD_LGL_GERMAN ( 0x0029 )
406 #define DMPAPER_DBL_JAPANESE_POSTCARD ( 0x0045 )
407 #define DMPAPER_A6 ( 0x0046 )
408 #define DMPAPER_JENV_KAKU2 ( 0x0047 )
409 #define DMPAPER_JENV_KAKU3 ( 0x0048 )
410 #define DMPAPER_JENV_CHOU3 ( 0x0049 )
411 #define DMPAPER_JENV_CHOU4 ( 0x004A )
412 #define DMPAPER_LETTER_ROTATED ( 0x004B )
413 #define DMPAPER_A3_ROTATED ( 0x004C )
414 #define DMPAPER_A4_ROTATED ( 0x004D )
415 #define DMPAPER_A5_ROTATED ( 0x004E )
416 #define DMPAPER_B4_JIS_ROTATED ( 0x004F )
417 #define DMPAPER_B5_JIS_ROTATED ( 0x0050 )
418 #define DMPAPER_JAPANESE_POSTCARD_ROTATED ( 0x0051 )
419 #define DMPAPER_DBL_JAPANESE_POSTCARD_ROTATED ( 0x0052 )
420 #define DMPAPER_A6_ROTATED ( 0x0053 )
421 #define DMPAPER_JENV_KAKU2_ROTATED ( 0x0054 )
422 #define DMPAPER_JENV_KAKU3_ROTATED ( 0x0055 )
423 #define DMPAPER_JENV_CHOU3_ROTATED ( 0x0056 )
424 #define DMPAPER_JENV_CHOU4_ROTATED ( 0x0057 )
425 #define DMPAPER_B6_JIS ( 0x0058 )
426 #define DMPAPER_B6_JIS_ROTATED ( 0x0059 )
427 #define DMPAPER_12X11 ( 0x005A )
428 #define DMPAPER_JENV_YOU4 ( 0x005B )
429 #define DMPAPER_JENV_YOU4_ROTATED ( 0x005C )
430 #define DMPAPER_P16K ( 0x005D )
431 #define DMPAPER_P32K ( 0x005E )
432 #define DMPAPER_P32KBIG ( 0x005F )
433 #define DMPAPER_PENV_1 ( 0x0060 )
434 #define DMPAPER_PENV_2 ( 0x0061 )
435 #define DMPAPER_PENV_3 ( 0x0062 )
436 #define DMPAPER_PENV_4 ( 0x0063 )
437 #define DMPAPER_PENV_5 ( 0x0064 )
438 #define DMPAPER_PENV_6 ( 0x0065 )
439 #define DMPAPER_PENV_7 ( 0x0066 )
440 #define DMPAPER_PENV_8 ( 0x0067 )
441 #define DMPAPER_PENV_9 ( 0x0068 )
442 #define DMPAPER_PENV_10 ( 0x0069 )
443 #define DMPAPER_P16K_ROTATED ( 0x006A )
444 #define DMPAPER_P32K_ROTATED ( 0x006B )
445 #define DMPAPER_P32KBIG_ROTATED ( 0x006C )
446 #define DMPAPER_PENV_1_ROTATED ( 0x006D )
447 #define DMPAPER_PENV_2_ROTATED ( 0x006E )
448 #define DMPAPER_PENV_3_ROTATED ( 0x006F )
449 #define DMPAPER_PENV_4_ROTATED ( 0x0070 )
450 #define DMPAPER_PENV_5_ROTATED ( 0x0071 )
451 #define DMPAPER_PENV_6_ROTATED ( 0x0072 )
452 #define DMPAPER_PENV_7_ROTATED ( 0x0073 )
453 #define DMPAPER_PENV_8_ROTATED ( 0x0074 )
454 #define DMPAPER_PENV_9_ROTATED ( 0x0075 )
455 #define DMPAPER_PENV_10_ROTATED ( 0x0076 )
456 #endif
457 ;
458
459 enum spoolss_DeviceModeDefaultSource
460 #ifndef USE_UINT_ENUMS
461  {
462         DMBIN_UPPER=0x0001,
463         DMBIN_LOWER=0x0002,
464         DMBIN_MIDDLE=0x0003,
465         DMBIN_MANUAL=0x0004,
466         DMBIN_ENVELOPE=0x0005,
467         DMBIN_ENVMANUAL=0x0006,
468         DMBIN_AUTO=0x0007,
469         DMBIN_TRACTOR=0x0008,
470         DMBIN_SMALLFMT=0x0009,
471         DMBIN_LARGEFMT=0x000a,
472         DMBIN_LARGECAPACITY=0x000b,
473         DMBIN_CASSETTE=0x000e,
474         DMBIN_FORMSOURCE=0x000f
475 }
476 #else
477  { __donnot_use_enum_spoolss_DeviceModeDefaultSource=0x7FFFFFFF}
478 #define DMBIN_UPPER ( 0x0001 )
479 #define DMBIN_LOWER ( 0x0002 )
480 #define DMBIN_MIDDLE ( 0x0003 )
481 #define DMBIN_MANUAL ( 0x0004 )
482 #define DMBIN_ENVELOPE ( 0x0005 )
483 #define DMBIN_ENVMANUAL ( 0x0006 )
484 #define DMBIN_AUTO ( 0x0007 )
485 #define DMBIN_TRACTOR ( 0x0008 )
486 #define DMBIN_SMALLFMT ( 0x0009 )
487 #define DMBIN_LARGEFMT ( 0x000a )
488 #define DMBIN_LARGECAPACITY ( 0x000b )
489 #define DMBIN_CASSETTE ( 0x000e )
490 #define DMBIN_FORMSOURCE ( 0x000f )
491 #endif
492 ;
493
494 enum spoolss_DeviceModePrintQuality
495 #ifndef USE_UINT_ENUMS
496  {
497         DMRES_HIGH=0xfffc,
498         DMRES_MEDIUM=0xfffd,
499         DMRES_LOW=0xfffe,
500         DMRES_DRAFT=0xffff
501 }
502 #else
503  { __donnot_use_enum_spoolss_DeviceModePrintQuality=0x7FFFFFFF}
504 #define DMRES_HIGH ( 0xfffc )
505 #define DMRES_MEDIUM ( 0xfffd )
506 #define DMRES_LOW ( 0xfffe )
507 #define DMRES_DRAFT ( 0xffff )
508 #endif
509 ;
510
511 enum spoolss_DeviceModeColor
512 #ifndef USE_UINT_ENUMS
513  {
514         DMRES_MONOCHROME=0x0001,
515         DMRES_COLOR=0x0002
516 }
517 #else
518  { __donnot_use_enum_spoolss_DeviceModeColor=0x7FFFFFFF}
519 #define DMRES_MONOCHROME ( 0x0001 )
520 #define DMRES_COLOR ( 0x0002 )
521 #endif
522 ;
523
524 enum spoolss_DeviceModeDuplex
525 #ifndef USE_UINT_ENUMS
526  {
527         DMDUP_SIMPLEX=0x0001,
528         DMDUP_VERTICAL=0x0002,
529         DMDUP_HORIZONTAL=0x0003
530 }
531 #else
532  { __donnot_use_enum_spoolss_DeviceModeDuplex=0x7FFFFFFF}
533 #define DMDUP_SIMPLEX ( 0x0001 )
534 #define DMDUP_VERTICAL ( 0x0002 )
535 #define DMDUP_HORIZONTAL ( 0x0003 )
536 #endif
537 ;
538
539 enum spoolss_DeviceModeTTOption
540 #ifndef USE_UINT_ENUMS
541  {
542         DMTT_BITMAP=0x0001,
543         DMTT_DOWNLOAD=0x0002,
544         DMTT_SUBDEV=0x0003,
545         DMTT_DOWNLOAD_OUTLINE=0x0004
546 }
547 #else
548  { __donnot_use_enum_spoolss_DeviceModeTTOption=0x7FFFFFFF}
549 #define DMTT_BITMAP ( 0x0001 )
550 #define DMTT_DOWNLOAD ( 0x0002 )
551 #define DMTT_SUBDEV ( 0x0003 )
552 #define DMTT_DOWNLOAD_OUTLINE ( 0x0004 )
553 #endif
554 ;
555
556 enum spoolss_DeviceModeCollate
557 #ifndef USE_UINT_ENUMS
558  {
559         DMCOLLATE_FALSE=0x0000,
560         DMCOLLATE_TRUE=0x0001
561 }
562 #else
563  { __donnot_use_enum_spoolss_DeviceModeCollate=0x7FFFFFFF}
564 #define DMCOLLATE_FALSE ( 0x0000 )
565 #define DMCOLLATE_TRUE ( 0x0001 )
566 #endif
567 ;
568
569 enum spoolss_DeviceModeNUp
570 #ifndef USE_UINT_ENUMS
571  {
572         DMNUP_SYSTEM=0x00000001,
573         DMNUP_ONEUP=0x00000002
574 }
575 #else
576  { __donnot_use_enum_spoolss_DeviceModeNUp=0x7FFFFFFF}
577 #define DMNUP_SYSTEM ( 0x00000001 )
578 #define DMNUP_ONEUP ( 0x00000002 )
579 #endif
580 ;
581
582 enum spoolss_DeviceModeICMMethod
583 #ifndef USE_UINT_ENUMS
584  {
585         DMICMMETHOD_NONE=0x00000001,
586         DMICMMETHOD_SYSTEM=0x00000002,
587         DMICMMETHOD_DRIVER=0x00000003,
588         DMICMMETHOD_DEVICE=0x00000004
589 }
590 #else
591  { __donnot_use_enum_spoolss_DeviceModeICMMethod=0x7FFFFFFF}
592 #define DMICMMETHOD_NONE ( 0x00000001 )
593 #define DMICMMETHOD_SYSTEM ( 0x00000002 )
594 #define DMICMMETHOD_DRIVER ( 0x00000003 )
595 #define DMICMMETHOD_DEVICE ( 0x00000004 )
596 #endif
597 ;
598
599 enum spoolss_DeviceModeICMIntent
600 #ifndef USE_UINT_ENUMS
601  {
602         DMICM_SATURATE=0x00000001,
603         DMICM_CONTRAST=0x00000002,
604         DMICM_COLORIMETRIC=0x00000003,
605         DMICM_ABS_COLORIMETRIC=0x00000004
606 }
607 #else
608  { __donnot_use_enum_spoolss_DeviceModeICMIntent=0x7FFFFFFF}
609 #define DMICM_SATURATE ( 0x00000001 )
610 #define DMICM_CONTRAST ( 0x00000002 )
611 #define DMICM_COLORIMETRIC ( 0x00000003 )
612 #define DMICM_ABS_COLORIMETRIC ( 0x00000004 )
613 #endif
614 ;
615
616 enum spoolss_DeviceModeMediaType
617 #ifndef USE_UINT_ENUMS
618  {
619         DMMEDIA_STANDARD=0x00000001,
620         DMMEDIA_TRANSPARENCY=0x00000002,
621         DMMEDIA_GLOSSY=0x00000003
622 }
623 #else
624  { __donnot_use_enum_spoolss_DeviceModeMediaType=0x7FFFFFFF}
625 #define DMMEDIA_STANDARD ( 0x00000001 )
626 #define DMMEDIA_TRANSPARENCY ( 0x00000002 )
627 #define DMMEDIA_GLOSSY ( 0x00000003 )
628 #endif
629 ;
630
631 enum spoolss_DeviceModeDitherType
632 #ifndef USE_UINT_ENUMS
633  {
634         DMDITHER_NONE=0x00000001,
635         DMDITHER_COARSE=0x00000002,
636         DMDITHER_FINE=0x00000003,
637         DMDITHER_LINEART=0x00000004,
638         DMDITHER_ERRORDIFFUSION=0x00000005,
639         DMDITHER_RESERVED6=0x00000006,
640         DMDITHER_RESERVED7=0x00000007,
641         DMDITHER_RESERVED8=0x00000008,
642         DMDITHER_RESERVED9=0x00000009,
643         DMDITHER_GRAYSCALE=0x0000000A
644 }
645 #else
646  { __donnot_use_enum_spoolss_DeviceModeDitherType=0x7FFFFFFF}
647 #define DMDITHER_NONE ( 0x00000001 )
648 #define DMDITHER_COARSE ( 0x00000002 )
649 #define DMDITHER_FINE ( 0x00000003 )
650 #define DMDITHER_LINEART ( 0x00000004 )
651 #define DMDITHER_ERRORDIFFUSION ( 0x00000005 )
652 #define DMDITHER_RESERVED6 ( 0x00000006 )
653 #define DMDITHER_RESERVED7 ( 0x00000007 )
654 #define DMDITHER_RESERVED8 ( 0x00000008 )
655 #define DMDITHER_RESERVED9 ( 0x00000009 )
656 #define DMDITHER_GRAYSCALE ( 0x0000000A )
657 #endif
658 ;
659
660 struct spoolss_DeviceMode {
661         const char *devicename;/* [charset(UTF16)] */
662         enum spoolss_DeviceModeSpecVersion specversion;
663         uint16_t driverversion;
664         uint16_t size;
665         uint16_t __driverextra_length;/* [value(r->driverextra_data.length)] */
666         uint32_t fields;
667         enum spoolss_DeviceModeOrientation orientation;
668         enum spoolss_DeviceModePaperSize papersize;
669         uint16_t paperlength;
670         uint16_t paperwidth;
671         uint16_t scale;
672         uint16_t copies;
673         enum spoolss_DeviceModeDefaultSource defaultsource;
674         enum spoolss_DeviceModePrintQuality printquality;
675         enum spoolss_DeviceModeColor color;
676         enum spoolss_DeviceModeDuplex duplex;
677         uint16_t yresolution;
678         enum spoolss_DeviceModeTTOption ttoption;
679         enum spoolss_DeviceModeCollate collate;
680         const char *formname;/* [charset(UTF16)] */
681         uint16_t logpixels;
682         uint32_t bitsperpel;
683         uint32_t pelswidth;
684         uint32_t pelsheight;
685         enum spoolss_DeviceModeNUp displayflags;
686         uint32_t displayfrequency;
687         enum spoolss_DeviceModeICMMethod icmmethod;
688         enum spoolss_DeviceModeICMIntent icmintent;
689         enum spoolss_DeviceModeMediaType mediatype;
690         enum spoolss_DeviceModeDitherType dithertype;
691         uint32_t reserved1;
692         uint32_t reserved2;
693         uint32_t panningwidth;
694         uint32_t panningheight;
695         DATA_BLOB driverextra_data;/* [subcontext_size(__driverextra_length),subcontext(0),flag(LIBNDR_FLAG_REMAINING)] */
696 }/* [gensize,public] */;
697
698 /* bitmap spoolss_EnumPrinterFlags */
699 #define PRINTER_ENUM_DEFAULT ( 0x00000001 )
700 #define PRINTER_ENUM_LOCAL ( 0x00000002 )
701 #define PRINTER_ENUM_CONNECTIONS ( 0x00000004 )
702 #define PRINTER_ENUM_FAVORITE ( 0x00000004 )
703 #define PRINTER_ENUM_NAME ( 0x00000008 )
704 #define PRINTER_ENUM_REMOTE ( 0x00000010 )
705 #define PRINTER_ENUM_SHARED ( 0x00000020 )
706 #define PRINTER_ENUM_NETWORK ( 0x00000040 )
707 #define PRINTER_ENUM_EXPAND ( 0x00004000 )
708 #define PRINTER_ENUM_CONTAINER ( 0x00008000 )
709 #define PRINTER_ENUM_ICON1 ( 0x00010000 )
710 #define PRINTER_ENUM_ICON2 ( 0x00020000 )
711 #define PRINTER_ENUM_ICON3 ( 0x00040000 )
712 #define PRINTER_ENUM_ICON4 ( 0x00080000 )
713 #define PRINTER_ENUM_ICON5 ( 0x00100000 )
714 #define PRINTER_ENUM_ICON6 ( 0x00200000 )
715 #define PRINTER_ENUM_ICON7 ( 0x00400000 )
716 #define PRINTER_ENUM_ICON8 ( 0x00800000 )
717 #define PRINTER_ENUM_HIDE ( 0x01000000 )
718
719 /* bitmap spoolss_PrinterAttributes */
720 #define PRINTER_ATTRIBUTE_QUEUED ( 0x00000001 )
721 #define PRINTER_ATTRIBUTE_DIRECT ( 0x00000002 )
722 #define PRINTER_ATTRIBUTE_DEFAULT ( 0x00000004 )
723 #define PRINTER_ATTRIBUTE_SHARED ( 0x00000008 )
724 #define PRINTER_ATTRIBUTE_NETWORK ( 0x00000010 )
725 #define PRINTER_ATTRIBUTE_HIDDEN ( 0x00000020 )
726 #define PRINTER_ATTRIBUTE_LOCAL ( 0x00000040 )
727 #define PRINTER_ATTRIBUTE_ENABLE_DEVQ ( 0x00000080 )
728 #define PRINTER_ATTRIBUTE_KEEPPRINTEDJOBS ( 0x00000100 )
729 #define PRINTER_ATTRIBUTE_DO_COMPLETE_FIRST ( 0x00000200 )
730 #define PRINTER_ATTRIBUTE_WORK_OFFLINE ( 0x00000400 )
731 #define PRINTER_ATTRIBUTE_ENABLE_BIDI ( 0x00000800 )
732 #define PRINTER_ATTRIBUTE_RAW_ONLY ( 0x00001000 )
733 #define PRINTER_ATTRIBUTE_PUBLISHED ( 0x00002000 )
734 #define PRINTER_ATTRIBUTE_FAX ( 0x00004000 )
735 #define PRINTER_ATTRIBUTE_TS ( 0x00008000 )
736
737 struct spoolss_PrinterInfo1 {
738         uint32_t flags;
739         const char * description;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */
740         const char * name;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */
741         const char * comment;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */
742 }/* [gensize,public] */;
743
744 struct spoolss_PrinterInfo2 {
745         const char * servername;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */
746         const char * printername;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */
747         const char * sharename;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */
748         const char * portname;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */
749         const char * drivername;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */
750         const char * comment;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */
751         const char * location;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */
752         struct spoolss_DeviceMode *devmode;/* [relative,subcontext(0)] */
753         const char * sepfile;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */
754         const char * printprocessor;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */
755         const char * datatype;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */
756         const char * parameters;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */
757         struct security_descriptor *secdesc;/* [relative,subcontext(0)] */
758         uint32_t attributes;
759         uint32_t priority;/* [range(0,99)] */
760         uint32_t defaultpriority;
761         uint32_t starttime;
762         uint32_t untiltime;
763         uint32_t status;
764         uint32_t cjobs;
765         uint32_t averageppm;
766 }/* [gensize,public] */;
767
768 struct spoolss_PrinterInfo3 {
769         struct security_descriptor *secdesc;/* [relative,subcontext(0)] */
770 }/* [gensize,public] */;
771
772 struct spoolss_PrinterInfo4 {
773         const char * printername;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */
774         const char * servername;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */
775         uint32_t attributes;
776 }/* [gensize,public] */;
777
778 struct spoolss_PrinterInfo5 {
779         const char * printername;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */
780         const char * portname;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */
781         uint32_t attributes;
782         uint32_t device_not_selected_timeout;
783         uint32_t transmission_retry_timeout;
784 }/* [gensize,public] */;
785
786 struct spoolss_PrinterInfo6 {
787         uint32_t status;
788 }/* [gensize,public] */;
789
790 /* bitmap spoolss_DsPrintAction */
791 #define DSPRINT_PUBLISH ( 0x00000001 )
792 #define DSPRINT_UPDATE ( 0x00000002 )
793 #define DSPRINT_UNPUBLISH ( 0x00000004 )
794 #define DSPRINT_REPUBLISH ( 0x00000008 )
795 #define DSPRINT_PENDING ( 0x80000000 )
796
797 struct spoolss_PrinterInfo7 {
798         const char * guid;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */
799         uint32_t action;
800 }/* [gensize,public] */;
801
802 struct spoolss_DeviceModeInfo {
803         struct spoolss_DeviceMode *devmode;/* [relative,subcontext(0)] */
804 };
805
806 union spoolss_PrinterInfo {
807         struct spoolss_PrinterInfo0 info0;/* [case(0)] */
808         struct spoolss_PrinterInfo1 info1;/* [case] */
809         struct spoolss_PrinterInfo2 info2;/* [case(2)] */
810         struct spoolss_PrinterInfo3 info3;/* [case(3)] */
811         struct spoolss_PrinterInfo4 info4;/* [case(4)] */
812         struct spoolss_PrinterInfo5 info5;/* [case(5)] */
813         struct spoolss_PrinterInfo6 info6;/* [case(6)] */
814         struct spoolss_PrinterInfo7 info7;/* [case(7)] */
815         struct spoolss_DeviceModeInfo info8;/* [case(8)] */
816         struct spoolss_DeviceModeInfo info9;/* [case(9)] */
817 }/* [relative_base,gensize,public,nodiscriminant] */;
818
819 struct spoolss_DevmodeContainer {
820         uint32_t _ndr_size;/* [value(_ndr_size_spoolss_DeviceMode(devmode,ndr->iconv_convenience,ndr->flags))] */
821         struct spoolss_DeviceMode *devmode;/* [unique,subcontext_size(_ndr_size),subcontext(4)] */
822 };
823
824 struct spoolss_JobInfo1 {
825         uint32_t job_id;
826         const char * printer_name;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */
827         const char * server_name;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */
828         const char * user_name;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */
829         const char * document_name;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */
830         const char * data_type;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */
831         const char * text_status;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */
832         uint32_t status;
833         uint32_t priority;/* [range(0,99)] */
834         uint32_t position;
835         uint32_t total_pages;
836         uint32_t pages_printed;
837         struct spoolss_Time submitted;
838 }/* [gensize,public] */;
839
840 struct spoolss_JobInfo2 {
841         uint32_t job_id;
842         const char * printer_name;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */
843         const char * server_name;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */
844         const char * user_name;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */
845         const char * document_name;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */
846         const char * notify_name;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */
847         const char * data_type;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */
848         const char * print_processor;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */
849         const char * parameters;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */
850         const char * driver_name;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */
851         struct spoolss_DeviceMode *devmode;/* [relative] */
852         const char * text_status;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */
853         struct security_descriptor *secdesc;/* [relative] */
854         uint32_t status;
855         uint32_t priority;/* [range(0,99)] */
856         uint32_t position;
857         uint32_t start_time;
858         uint32_t until_time;
859         uint32_t total_pages;
860         uint32_t size;
861         struct spoolss_Time submitted;
862         uint32_t time;
863         uint32_t pages_printed;
864 }/* [gensize,public] */;
865
866 struct spoolss_JobInfo3 {
867         uint32_t job_id;
868         uint32_t next_job_id;
869         uint32_t reserved;
870 }/* [gensize,public] */;
871
872 struct spoolss_JobInfo4 {
873         uint32_t job_id;
874         const char * printer_name;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */
875         const char * server_name;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */
876         const char * user_name;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */
877         const char * document_name;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */
878         const char * notify_name;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */
879         const char * data_type;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */
880         const char * print_processor;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */
881         const char * parameters;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */
882         const char * driver_name;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */
883         struct spoolss_DeviceMode *devmode;/* [relative] */
884         const char * text_status;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */
885         struct security_descriptor *secdesc;/* [relative] */
886         uint32_t status;
887         uint32_t priority;/* [range(0,99)] */
888         uint32_t position;
889         uint32_t start_time;
890         uint32_t until_time;
891         uint32_t total_pages;
892         uint32_t size;
893         struct spoolss_Time submitted;
894         uint32_t time;
895         uint32_t pages_printed;
896         uint32_t size_high;
897 }/* [gensize,public] */;
898
899 union spoolss_JobInfo {
900         struct spoolss_JobInfo1 info1;/* [case] */
901         struct spoolss_JobInfo2 info2;/* [case(2)] */
902         struct spoolss_JobInfo3 info3;/* [case(3)] */
903         struct spoolss_JobInfo4 info4;/* [case(4)] */
904 }/* [relative_base,gensize,public,nodiscriminant] */;
905
906 struct spoolss_SetJobInfo1 {
907         uint32_t job_id;
908         const char *printer_name;/* [unique,charset(UTF16)] */
909         const char *server_name;/* [unique,charset(UTF16)] */
910         const char *user_name;/* [unique,charset(UTF16)] */
911         const char *document_name;/* [unique,charset(UTF16)] */
912         const char *data_type;/* [unique,charset(UTF16)] */
913         const char *text_status;/* [unique,charset(UTF16)] */
914         uint32_t status;
915         uint32_t priority;/* [range(0,99)] */
916         uint32_t position;
917         uint32_t total_pages;
918         uint32_t pages_printed;
919         struct spoolss_Time submitted;
920 };
921
922 struct spoolss_SetJobInfo2 {
923         uint32_t job_id;
924         const char *printer_name;/* [unique,charset(UTF16)] */
925         const char *server_name;/* [unique,charset(UTF16)] */
926         const char *user_name;/* [unique,charset(UTF16)] */
927         const char *document_name;/* [unique,charset(UTF16)] */
928         const char *notify_name;/* [unique,charset(UTF16)] */
929         const char *data_type;/* [unique,charset(UTF16)] */
930         const char *print_processor;/* [unique,charset(UTF16)] */
931         const char *parameters;/* [unique,charset(UTF16)] */
932         const char *driver_name;/* [unique,charset(UTF16)] */
933         uint32_t _devmode_ptr;
934         const char *text_status;/* [unique,charset(UTF16)] */
935         uint32_t _secdesc_ptr;
936         uint32_t status;
937         uint32_t priority;/* [range(0,99)] */
938         uint32_t position;
939         uint32_t start_time;
940         uint32_t until_time;
941         uint32_t total_pages;
942         uint32_t size;
943         struct spoolss_Time submitted;
944         uint32_t time;
945         uint32_t pages_printed;
946 };
947
948 struct spoolss_SetJobInfo4 {
949         uint32_t job_id;
950         const char *printer_name;/* [unique,charset(UTF16)] */
951         const char *server_name;/* [unique,charset(UTF16)] */
952         const char *user_name;/* [unique,charset(UTF16)] */
953         const char *document_name;/* [unique,charset(UTF16)] */
954         const char *notify_name;/* [unique,charset(UTF16)] */
955         const char *data_type;/* [unique,charset(UTF16)] */
956         const char *print_processor;/* [unique,charset(UTF16)] */
957         const char *parameters;/* [unique,charset(UTF16)] */
958         const char *driver_name;/* [unique,charset(UTF16)] */
959         uint32_t _devmode_ptr;
960         const char *text_status;/* [unique,charset(UTF16)] */
961         uint32_t _secdesc_ptr;
962         uint32_t status;
963         uint32_t priority;/* [range(0,99)] */
964         uint32_t position;
965         uint32_t start_time;
966         uint32_t until_time;
967         uint32_t total_pages;
968         uint32_t size;
969         struct spoolss_Time submitted;
970         uint32_t time;
971         uint32_t pages_printed;
972         uint32_t size_high;
973 };
974
975 union spoolss_SetJobInfo {
976         struct spoolss_SetJobInfo1 *info1;/* [unique,case] */
977         struct spoolss_SetJobInfo2 *info2;/* [unique,case(2)] */
978         struct spoolss_JobInfo3 *info3;/* [unique,case(3)] */
979         struct spoolss_SetJobInfo4 *info4;/* [unique,case(4)] */
980 }/* [public] */;
981
982 struct spoolss_JobInfoContainer {
983         uint32_t level;
984         union spoolss_SetJobInfo info;/* [switch_is(level)] */
985 };
986
987 enum spoolss_JobControl
988 #ifndef USE_UINT_ENUMS
989  {
990         SPOOLSS_JOB_CONTROL_PAUSE=1,
991         SPOOLSS_JOB_CONTROL_RESUME=2,
992         SPOOLSS_JOB_CONTROL_CANCEL=3,
993         SPOOLSS_JOB_CONTROL_RESTART=4,
994         SPOOLSS_JOB_CONTROL_DELETE=5,
995         SPOOLSS_JOB_CONTROL_SEND_TO_PRINTER=6,
996         SPOOLSS_JOB_CONTROL_LAST_PAGE_EJECTED=7,
997         SPOOLSS_JOB_CONTROL_RETAIN=8,
998         SPOOLSS_JOB_CONTROL_RELEASE=9
999 }
1000 #else
1001  { __donnot_use_enum_spoolss_JobControl=0x7FFFFFFF}
1002 #define SPOOLSS_JOB_CONTROL_PAUSE ( 1 )
1003 #define SPOOLSS_JOB_CONTROL_RESUME ( 2 )
1004 #define SPOOLSS_JOB_CONTROL_CANCEL ( 3 )
1005 #define SPOOLSS_JOB_CONTROL_RESTART ( 4 )
1006 #define SPOOLSS_JOB_CONTROL_DELETE ( 5 )
1007 #define SPOOLSS_JOB_CONTROL_SEND_TO_PRINTER ( 6 )
1008 #define SPOOLSS_JOB_CONTROL_LAST_PAGE_EJECTED ( 7 )
1009 #define SPOOLSS_JOB_CONTROL_RETAIN ( 8 )
1010 #define SPOOLSS_JOB_CONTROL_RELEASE ( 9 )
1011 #endif
1012 ;
1013
1014 enum spoolss_PrinterControl
1015 #ifndef USE_UINT_ENUMS
1016  {
1017         SPOOLSS_PRINTER_CONTROL_UNPAUSE=0,
1018         SPOOLSS_PRINTER_CONTROL_PAUSE=1,
1019         SPOOLSS_PRINTER_CONTROL_RESUME=2,
1020         SPOOLSS_PRINTER_CONTROL_PURGE=3,
1021         SPOOLSS_PRINTER_CONTROL_SET_STATUS=4
1022 }
1023 #else
1024  { __donnot_use_enum_spoolss_PrinterControl=0x7FFFFFFF}
1025 #define SPOOLSS_PRINTER_CONTROL_UNPAUSE ( 0 )
1026 #define SPOOLSS_PRINTER_CONTROL_PAUSE ( 1 )
1027 #define SPOOLSS_PRINTER_CONTROL_RESUME ( 2 )
1028 #define SPOOLSS_PRINTER_CONTROL_PURGE ( 3 )
1029 #define SPOOLSS_PRINTER_CONTROL_SET_STATUS ( 4 )
1030 #endif
1031 ;
1032
1033 struct spoolss_SetPrinterInfo0 {
1034         const char *servername;/* [unique,charset(UTF16)] */
1035         const char *printername;/* [unique,charset(UTF16)] */
1036         uint32_t cjobs;
1037         uint32_t total_jobs;
1038         uint32_t total_bytes;
1039         struct spoolss_Time time;
1040         uint32_t global_counter;
1041         uint32_t total_pages;
1042         uint32_t version;
1043         uint32_t free_build;
1044         uint32_t spooling;
1045         uint32_t max_spooling;
1046         uint32_t session_counter;
1047         uint32_t num_error_out_of_paper;
1048         uint32_t num_error_not_ready;
1049         uint32_t job_error;
1050         uint32_t number_of_processors;
1051         enum spoolss_ProcessorType processor_type;
1052         uint32_t high_part_total_bytes;
1053         uint32_t change_id;
1054         WERROR last_error;
1055         uint32_t status;
1056         uint32_t enumerate_network_printers;
1057         uint32_t c_setprinter;
1058         enum spoolss_ProcessorArchitecture processor_architecture;
1059         uint16_t processor_level;
1060         uint32_t ref_ic;
1061         uint32_t reserved2;
1062         uint32_t reserved3;
1063 };
1064
1065 struct spoolss_SetPrinterInfo1 {
1066         uint32_t flags;
1067         const char *description;/* [unique,charset(UTF16)] */
1068         const char *name;/* [unique,charset(UTF16)] */
1069         const char *comment;/* [unique,charset(UTF16)] */
1070 };
1071
1072 struct spoolss_SetPrinterInfo2 {
1073         const char *servername;/* [unique,charset(UTF16)] */
1074         const char *printername;/* [unique,charset(UTF16)] */
1075         const char *sharename;/* [unique,charset(UTF16)] */
1076         const char *portname;/* [unique,charset(UTF16)] */
1077         const char *drivername;/* [unique,charset(UTF16)] */
1078         const char *comment;/* [unique,charset(UTF16)] */
1079         const char *location;/* [unique,charset(UTF16)] */
1080         struct spoolss_DeviceMode *devmode;/* [unique,subcontext(0)] */
1081         const char *sepfile;/* [unique,charset(UTF16)] */
1082         const char *printprocessor;/* [unique,charset(UTF16)] */
1083         const char *datatype;/* [unique,charset(UTF16)] */
1084         const char *parameters;/* [unique,charset(UTF16)] */
1085         struct security_descriptor *secdesc;/* [unique,subcontext(0)] */
1086         uint32_t attributes;
1087         uint32_t priority;/* [range(0,99)] */
1088         uint32_t defaultpriority;
1089         uint32_t starttime;
1090         uint32_t untiltime;
1091         uint32_t status;
1092         uint32_t cjobs;
1093         uint32_t averageppm;
1094 };
1095
1096 struct spoolss_SetPrinterInfo3 {
1097         uint32_t sec_desc_ptr;
1098 };
1099
1100 struct spoolss_SetPrinterInfo4 {
1101         const char *printername;/* [unique,charset(UTF16)] */
1102         const char *servername;/* [unique,charset(UTF16)] */
1103         uint32_t attributes;
1104 };
1105
1106 struct spoolss_SetPrinterInfo5 {
1107         const char *printername;/* [unique,charset(UTF16)] */
1108         const char *portname;/* [unique,charset(UTF16)] */
1109         uint32_t attributes;
1110         uint32_t device_not_selected_timeout;
1111         uint32_t transmission_retry_timeout;
1112 };
1113
1114 struct spoolss_SetPrinterInfo6 {
1115         uint32_t status;
1116 };
1117
1118 struct spoolss_SetPrinterInfo7 {
1119         const char *guid;/* [unique,charset(UTF16)] */
1120         uint32_t action;
1121 };
1122
1123 union spoolss_SetPrinterInfo {
1124         struct spoolss_SetPrinterInfo0 *info0;/* [unique,case(0)] */
1125         struct spoolss_SetPrinterInfo1 *info1;/* [unique,case] */
1126         struct spoolss_SetPrinterInfo2 *info2;/* [unique,case(2)] */
1127         struct spoolss_SetPrinterInfo3 *info3;/* [unique,case(3)] */
1128         struct spoolss_SetPrinterInfo4 *info4;/* [unique,case(4)] */
1129         struct spoolss_SetPrinterInfo5 *info5;/* [unique,case(5)] */
1130         struct spoolss_SetPrinterInfo6 *info6;/* [unique,case(6)] */
1131         struct spoolss_SetPrinterInfo7 *info7;/* [unique,case(7)] */
1132         struct spoolss_DeviceModeInfo *info8;/* [unique,case(8)] */
1133         struct spoolss_DeviceModeInfo *info9;/* [unique,case(9)] */
1134 }/* [switch_type(uint32)] */;
1135
1136 struct spoolss_SetPrinterInfoCtr {
1137         uint32_t level;
1138         union spoolss_SetPrinterInfo info;/* [switch_is(level)] */
1139 };
1140
1141 struct spoolss_StringArray {
1142         uint32_t _ndr_size;/* [value((ndr_size_spoolss_StringArray(r,ndr->iconv_convenience,ndr->flags)-4)/2)] */
1143         const char ** string;/* [flag(LIBNDR_FLAG_STR_NULLTERM)] */
1144 }/* [public] */;
1145
1146 struct spoolss_AddDriverInfo1 {
1147         const char *driver_name;/* [unique,charset(UTF16)] */
1148 };
1149
1150 enum spoolss_DriverOSVersion
1151 #ifndef USE_UINT_ENUMS
1152  {
1153         SPOOLSS_DRIVER_VERSION_9X=0,
1154         SPOOLSS_DRIVER_VERSION_NT35=1,
1155         SPOOLSS_DRIVER_VERSION_NT4=2,
1156         SPOOLSS_DRIVER_VERSION_200X=3
1157 }
1158 #else
1159  { __donnot_use_enum_spoolss_DriverOSVersion=0x7FFFFFFF}
1160 #define SPOOLSS_DRIVER_VERSION_9X ( 0 )
1161 #define SPOOLSS_DRIVER_VERSION_NT35 ( 1 )
1162 #define SPOOLSS_DRIVER_VERSION_NT4 ( 2 )
1163 #define SPOOLSS_DRIVER_VERSION_200X ( 3 )
1164 #endif
1165 ;
1166
1167 struct spoolss_AddDriverInfo2 {
1168         enum spoolss_DriverOSVersion version;
1169         const char *driver_name;/* [unique,charset(UTF16)] */
1170         const char *architecture;/* [unique,charset(UTF16)] */
1171         const char *driver_path;/* [unique,charset(UTF16)] */
1172         const char *data_file;/* [unique,charset(UTF16)] */
1173         const char *config_file;/* [unique,charset(UTF16)] */
1174 };
1175
1176 struct spoolss_AddDriverInfo3 {
1177         enum spoolss_DriverOSVersion version;
1178         const char *driver_name;/* [unique,charset(UTF16)] */
1179         const char *architecture;/* [unique,charset(UTF16)] */
1180         const char *driver_path;/* [unique,charset(UTF16)] */
1181         const char *data_file;/* [unique,charset(UTF16)] */
1182         const char *config_file;/* [unique,charset(UTF16)] */
1183         const char *help_file;/* [unique,charset(UTF16)] */
1184         const char *monitor_name;/* [unique,charset(UTF16)] */
1185         const char *default_datatype;/* [unique,charset(UTF16)] */
1186         uint32_t _ndr_size_dependent_files;/* [value(((ndr_size_spoolss_StringArray(dependent_files,ndr->iconv_convenience,ndr->flags)-4)/2))] */
1187         struct spoolss_StringArray *dependent_files;/* [unique] */
1188 };
1189
1190 struct spoolss_AddDriverInfo4 {
1191         enum spoolss_DriverOSVersion version;
1192         const char *driver_name;/* [unique,charset(UTF16)] */
1193         const char *architecture;/* [unique,charset(UTF16)] */
1194         const char *driver_path;/* [unique,charset(UTF16)] */
1195         const char *data_file;/* [unique,charset(UTF16)] */
1196         const char *config_file;/* [unique,charset(UTF16)] */
1197         const char *help_file;/* [unique,charset(UTF16)] */
1198         const char *monitor_name;/* [unique,charset(UTF16)] */
1199         const char *default_datatype;/* [unique,charset(UTF16)] */
1200         uint32_t _ndr_size_dependent_files;/* [value(((ndr_size_spoolss_StringArray(dependent_files,ndr->iconv_convenience,ndr->flags)-4)/2))] */
1201         struct spoolss_StringArray *dependent_files;/* [unique] */
1202         uint32_t _ndr_size_previous_names;/* [value(((ndr_size_spoolss_StringArray(previous_names,ndr->iconv_convenience,ndr->flags)-4)/2))] */
1203         struct spoolss_StringArray *previous_names;/* [unique] */
1204 };
1205
1206 /* bitmap spoolss_DriverAttributes */
1207 #define PRINTER_DRIVER_PACKAGE_AWARE ( 0x00000002 )
1208
1209 struct spoolss_AddDriverInfo5 {
1210         enum spoolss_DriverOSVersion version;
1211         const char *driver_name;/* [unique,charset(UTF16)] */
1212         const char *architecture;/* [unique,charset(UTF16)] */
1213         const char *driver_path;/* [unique,charset(UTF16)] */
1214         const char *data_file;/* [unique,charset(UTF16)] */
1215         const char *config_file;/* [unique,charset(UTF16)] */
1216         uint32_t driver_attributes;
1217         uint32_t config_version;
1218         uint32_t driver_version;
1219 };
1220
1221 struct spoolss_AddDriverInfo6 {
1222         enum spoolss_DriverOSVersion version;
1223         const char *driver_name;/* [unique,charset(UTF16)] */
1224         const char *architecture;/* [unique,charset(UTF16)] */
1225         const char *driver_path;/* [unique,charset(UTF16)] */
1226         const char *data_file;/* [unique,charset(UTF16)] */
1227         const char *config_file;/* [unique,charset(UTF16)] */
1228         const char *help_file;/* [unique,charset(UTF16)] */
1229         const char *monitor_name;/* [unique,charset(UTF16)] */
1230         const char *default_datatype;/* [unique,charset(UTF16)] */
1231         uint32_t _ndr_size_dependent_files;/* [value(((ndr_size_spoolss_StringArray(dependent_files,ndr->iconv_convenience,ndr->flags)-4)/2))] */
1232         struct spoolss_StringArray *dependent_files;/* [unique] */
1233         uint32_t _ndr_size_previous_names;/* [value(((ndr_size_spoolss_StringArray(previous_names,ndr->iconv_convenience,ndr->flags)-4)/2))] */
1234         struct spoolss_StringArray *previous_names;/* [unique] */
1235         NTTIME driver_date;
1236         uint64_t driver_version;
1237         const char *manufacturer_name;/* [unique,charset(UTF16)] */
1238         const char *manufacturer_url;/* [unique,charset(UTF16)] */
1239         const char *hardware_id;/* [unique,charset(UTF16)] */
1240         const char *provider;/* [unique,charset(UTF16)] */
1241 };
1242
1243 struct spoolss_AddDriverInfo8 {
1244         enum spoolss_DriverOSVersion version;
1245         const char *driver_name;/* [unique,charset(UTF16)] */
1246         const char *architecture;/* [unique,charset(UTF16)] */
1247         const char *driver_path;/* [unique,charset(UTF16)] */
1248         const char *data_file;/* [unique,charset(UTF16)] */
1249         const char *config_file;/* [unique,charset(UTF16)] */
1250         const char *help_file;/* [unique,charset(UTF16)] */
1251         const char *monitor_name;/* [unique,charset(UTF16)] */
1252         const char *default_datatype;/* [unique,charset(UTF16)] */
1253         uint32_t _ndr_size_dependent_files;/* [value(((ndr_size_spoolss_StringArray(dependent_files,ndr->iconv_convenience,ndr->flags)-4)/2))] */
1254         struct spoolss_StringArray *dependent_files;/* [unique] */
1255         uint32_t _ndr_size_previous_names;/* [value(((ndr_size_spoolss_StringArray(previous_names,ndr->iconv_convenience,ndr->flags)-4)/2))] */
1256         struct spoolss_StringArray *previous_names;/* [unique] */
1257         NTTIME driver_date;
1258         uint64_t driver_version;
1259         const char *manufacturer_name;/* [unique,charset(UTF16)] */
1260         const char *manufacturer_url;/* [unique,charset(UTF16)] */
1261         const char *hardware_id;/* [unique,charset(UTF16)] */
1262         const char *provider;/* [unique,charset(UTF16)] */
1263         const char *print_processor;/* [unique,charset(UTF16)] */
1264         const char *vendor_setup;/* [unique,charset(UTF16)] */
1265         uint32_t _ndr_size_color_profiles;/* [value(((ndr_size_spoolss_StringArray(color_profiles,ndr->iconv_convenience,ndr->flags)-4)/2))] */
1266         struct spoolss_StringArray *color_profiles;/* [unique] */
1267         const char *inf_path;/* [unique,charset(UTF16)] */
1268         uint32_t printer_driver_attributes;
1269         uint32_t _ndr_size_core_driver_dependencies;/* [value(((ndr_size_spoolss_StringArray(core_driver_dependencies,ndr->iconv_convenience,ndr->flags)-4)/2))] */
1270         struct spoolss_StringArray *core_driver_dependencies;/* [unique] */
1271         NTTIME min_inbox_driver_ver_date;
1272         uint64_t min_inbox_driver_ver_version;
1273 };
1274
1275 union spoolss_AddDriverInfo {
1276         struct spoolss_AddDriverInfo1 *info1;/* [unique,case] */
1277         struct spoolss_AddDriverInfo2 *info2;/* [unique,case(2)] */
1278         struct spoolss_AddDriverInfo3 *info3;/* [unique,case(3)] */
1279         struct spoolss_AddDriverInfo4 *info4;/* [unique,case(4)] */
1280         struct spoolss_AddDriverInfo6 *info6;/* [unique,case(6)] */
1281         struct spoolss_AddDriverInfo8 *info8;/* [unique,case(8)] */
1282 }/* [switch_type(uint32)] */;
1283
1284 struct spoolss_AddDriverInfoCtr {
1285         uint32_t level;
1286         union spoolss_AddDriverInfo info;/* [switch_is(level)] */
1287 };
1288
1289 struct spoolss_DriverInfo1 {
1290         const char * driver_name;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */
1291 }/* [gensize,public] */;
1292
1293 struct spoolss_DriverInfo2 {
1294         enum spoolss_DriverOSVersion version;
1295         const char * driver_name;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */
1296         const char * architecture;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */
1297         const char * driver_path;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */
1298         const char * data_file;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */
1299         const char * config_file;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */
1300 }/* [gensize,public] */;
1301
1302 struct spoolss_DriverInfo3 {
1303         enum spoolss_DriverOSVersion version;
1304         const char * driver_name;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */
1305         const char * architecture;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */
1306         const char * driver_path;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */
1307         const char * data_file;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */
1308         const char * config_file;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */
1309         const char * help_file;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */
1310         const char ** dependent_files;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */
1311         const char * monitor_name;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */
1312         const char * default_datatype;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */
1313 }/* [gensize,public] */;
1314
1315 struct spoolss_DriverInfo4 {
1316         enum spoolss_DriverOSVersion version;
1317         const char * driver_name;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */
1318         const char * architecture;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */
1319         const char * driver_path;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */
1320         const char * data_file;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */
1321         const char * config_file;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */
1322         const char * help_file;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */
1323         const char ** dependent_files;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */
1324         const char * monitor_name;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */
1325         const char * default_datatype;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */
1326         const char ** previous_names;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */
1327 }/* [gensize,public] */;
1328
1329 struct spoolss_DriverInfo5 {
1330         enum spoolss_DriverOSVersion version;
1331         const char * driver_name;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */
1332         const char * architecture;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */
1333         const char * driver_path;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */
1334         const char * data_file;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */
1335         const char * config_file;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */
1336         uint32_t driver_attributes;
1337         uint32_t config_version;
1338         uint32_t driver_version;
1339 }/* [gensize,public] */;
1340
1341 struct spoolss_DriverInfo6 {
1342         enum spoolss_DriverOSVersion version;
1343         const char * driver_name;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */
1344         const char * architecture;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */
1345         const char * driver_path;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */
1346         const char * data_file;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */
1347         const char * config_file;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */
1348         const char * help_file;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */
1349         const char ** dependent_files;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */
1350         const char * monitor_name;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */
1351         const char * default_datatype;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */
1352         const char ** previous_names;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */
1353         NTTIME driver_date;
1354         uint64_t driver_version;
1355         const char * manufacturer_name;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */
1356         const char * manufacturer_url;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */
1357         const char * hardware_id;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */
1358         const char * provider;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */
1359 }/* [gensize,public] */;
1360
1361 struct spoolss_DriverInfo8 {
1362         enum spoolss_DriverOSVersion version;
1363         const char * driver_name;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */
1364         const char * architecture;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */
1365         const char * driver_path;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */
1366         const char * data_file;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */
1367         const char * config_file;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */
1368         const char * help_file;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */
1369         const char * monitor_name;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */
1370         const char * default_datatype;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */
1371         const char ** dependent_files;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */
1372         const char ** previous_names;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */
1373         NTTIME driver_date;
1374         uint64_t driver_version;
1375         const char * manufacturer_name;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */
1376         const char * manufacturer_url;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */
1377         const char * hardware_id;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */
1378         const char * provider;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */
1379         const char * print_processor;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */
1380         const char * vendor_setup;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */
1381         const char ** color_profiles;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */
1382         const char * inf_path;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */
1383         uint32_t printer_driver_attributes;
1384         const char ** core_driver_dependencies;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */
1385         NTTIME min_inbox_driver_ver_date;
1386         uint64_t min_inbox_driver_ver_version;
1387 }/* [gensize,public] */;
1388
1389 enum spoolss_DriverFileType
1390 #ifndef USE_UINT_ENUMS
1391  {
1392         SPOOLSS_DRIVER_FILE_TYPE_RENDERING=0x00000000,
1393         SPOOLSS_DRIVER_FILE_TYPE_CONFIGURATION=0x00000001,
1394         SPOOLSS_DRIVER_FILE_TYPE_DATA=0x00000002,
1395         SPOOLSS_DRIVER_FILE_TYPE_HELP=0x00000003,
1396         SPOOLSS_DRIVER_FILE_TYPE_OTHER=0x00000004
1397 }
1398 #else
1399  { __donnot_use_enum_spoolss_DriverFileType=0x7FFFFFFF}
1400 #define SPOOLSS_DRIVER_FILE_TYPE_RENDERING ( 0x00000000 )
1401 #define SPOOLSS_DRIVER_FILE_TYPE_CONFIGURATION ( 0x00000001 )
1402 #define SPOOLSS_DRIVER_FILE_TYPE_DATA ( 0x00000002 )
1403 #define SPOOLSS_DRIVER_FILE_TYPE_HELP ( 0x00000003 )
1404 #define SPOOLSS_DRIVER_FILE_TYPE_OTHER ( 0x00000004 )
1405 #endif
1406 ;
1407
1408 struct spoolss_DriverFileInfo {
1409         const char * file_name;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */
1410         enum spoolss_DriverFileType file_type;
1411         uint32_t file_version;
1412 }/* [public] */;
1413
1414 struct spoolss_DriverInfo101 {
1415         enum spoolss_DriverOSVersion version;
1416         const char * driver_name;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */
1417         const char * architecture;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */
1418         struct spoolss_DriverFileInfo *file_info;/* [relative,size_is(file_count)] */
1419         uint32_t file_count;
1420         const char * monitor_name;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */
1421         const char * default_datatype;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */
1422         const char ** previous_names;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */
1423         NTTIME driver_date;
1424         uint64_t driver_version;
1425         const char * manufacturer_name;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */
1426         const char * manufacturer_url;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */
1427         const char * hardware_id;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */
1428         const char * provider;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */
1429 }/* [gensize,nopush,public,nopull] */;
1430
1431 union spoolss_DriverInfo {
1432         struct spoolss_DriverInfo1 info1;/* [case] */
1433         struct spoolss_DriverInfo2 info2;/* [case(2)] */
1434         struct spoolss_DriverInfo3 info3;/* [case(3)] */
1435         struct spoolss_DriverInfo4 info4;/* [case(4)] */
1436         struct spoolss_DriverInfo5 info5;/* [case(5)] */
1437         struct spoolss_DriverInfo6 info6;/* [case(6)] */
1438         struct spoolss_DriverInfo8 info8;/* [case(8)] */
1439         struct spoolss_DriverInfo101 info101;/* [case(101)] */
1440 }/* [relative_base,gensize,public,nodiscriminant] */;
1441
1442 struct spoolss_DriverDirectoryInfo1 {
1443         const char * directory_name;/* [flag(LIBNDR_FLAG_STR_NULLTERM)] */
1444 }/* [gensize,public] */;
1445
1446 union spoolss_DriverDirectoryInfo {
1447         struct spoolss_DriverDirectoryInfo1 info1;/* [case] */
1448 }/* [gensize,relative_base,nodiscriminant,public] */;
1449
1450 struct spoolss_PrintProcessorInfo1 {
1451         const char * print_processor_name;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */
1452 }/* [gensize,public] */;
1453
1454 union spoolss_PrintProcessorInfo {
1455         struct spoolss_PrintProcessorInfo1 info1;/* [case] */
1456 }/* [relative_base,nodiscriminant,public] */;
1457
1458 struct spoolss_PrintProcessorDirectoryInfo1 {
1459         const char * directory_name;/* [flag(LIBNDR_FLAG_STR_NULLTERM)] */
1460 }/* [gensize,public] */;
1461
1462 union spoolss_PrintProcessorDirectoryInfo {
1463         struct spoolss_PrintProcessorDirectoryInfo1 info1;/* [case] */
1464 }/* [gensize,relative_base,nodiscriminant,public] */;
1465
1466 struct spoolss_DocumentInfo1 {
1467         const char *document_name;/* [unique,charset(UTF16)] */
1468         const char *output_file;/* [unique,charset(UTF16)] */
1469         const char *datatype;/* [unique,charset(UTF16)] */
1470 };
1471
1472 union spoolss_DocumentInfo {
1473         struct spoolss_DocumentInfo1 *info1;/* [unique,case] */
1474 }/* [switch_type(uint32)] */;
1475
1476 struct spoolss_OSVersion {
1477         uint32_t _ndr_size;/* [value(ndr_size_spoolss_OSVersion(r,ndr->iconv_convenience,ndr->flags))] */
1478         uint32_t major;
1479         uint32_t minor;
1480         uint32_t build;
1481         uint32_t platform_id;/* [value(2)] */
1482         const char * extra_string;/* [subcontext_size(256),subcontext(0),flag(LIBNDR_FLAG_STR_NULLTERM)] */
1483 }/* [gensize,public] */;
1484
1485 struct spoolss_OSVersionEx {
1486         uint32_t _ndr_size;/* [value(ndr_size_spoolss_OSVersionEx(r,ndr->iconv_convenience,ndr->flags))] */
1487         uint32_t major;
1488         uint32_t minor;
1489         uint32_t build;
1490         uint32_t platform_id;/* [value(2)] */
1491         const char * extra_string;/* [subcontext_size(256),subcontext(0),flag(LIBNDR_FLAG_STR_NULLTERM)] */
1492         uint16_t service_pack_major;
1493         uint16_t service_pack_minor;
1494         uint16_t suite_mask;
1495         uint8_t product_type;
1496         uint8_t reserved;
1497 }/* [gensize,public] */;
1498
1499 union spoolss_PrinterData {
1500         const char * string;/* [flag(LIBNDR_FLAG_STR_NULLTERM),case(REG_SZ)] */
1501         DATA_BLOB binary;/* [flag(LIBNDR_FLAG_REMAINING),case(REG_BINARY)] */
1502         uint32_t value;/* [case(REG_DWORD)] */
1503         const char ** string_array;/* [flag(LIBNDR_FLAG_STR_NULLTERM),case(REG_MULTI_SZ)] */
1504         DATA_BLOB data;/* [flag(LIBNDR_FLAG_REMAINING),default] */
1505 }/* [gensize,public,nodiscriminant] */;
1506
1507 enum spoolss_FormFlags
1508 #ifndef USE_UINT_ENUMS
1509  {
1510         SPOOLSS_FORM_USER=0,
1511         SPOOLSS_FORM_BUILTIN=1,
1512         SPOOLSS_FORM_PRINTER=2
1513 }
1514 #else
1515  { __donnot_use_enum_spoolss_FormFlags=0x7FFFFFFF}
1516 #define SPOOLSS_FORM_USER ( 0 )
1517 #define SPOOLSS_FORM_BUILTIN ( 1 )
1518 #define SPOOLSS_FORM_PRINTER ( 2 )
1519 #endif
1520 ;
1521
1522 struct spoolss_FormSize {
1523         uint32_t width;
1524         uint32_t height;
1525 };
1526
1527 struct spoolss_FormArea {
1528         uint32_t left;
1529         uint32_t top;
1530         uint32_t right;
1531         uint32_t bottom;
1532 };
1533
1534 struct spoolss_FormInfo1 {
1535         enum spoolss_FormFlags flags;
1536         const char * form_name;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */
1537         struct spoolss_FormSize size;
1538         struct spoolss_FormArea area;
1539 }/* [gensize,public] */;
1540
1541 /* bitmap spoolss_FormStringType */
1542 #define SPOOLSS_FORM_STRING_TYPE_NONE ( 0x00000001 )
1543 #define SPOOLSS_FORM_STRING_TYPE_MUI_DLL ( 0x00000002 )
1544 #define SPOOLSS_FORM_STRING_TYPE_LANG_PAIR ( 0x00000004 )
1545
1546 struct spoolss_FormInfo2 {
1547         enum spoolss_FormFlags flags;
1548         const char * form_name;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */
1549         struct spoolss_FormSize size;
1550         struct spoolss_FormArea area;
1551         const char * keyword;/* [relative,flag(LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM)] */
1552         uint32_t string_type;
1553         const char * mui_dll;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */
1554         uint32_t ressource_id;
1555         const char * display_name;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */
1556         uint32_t lang_id;
1557 }/* [gensize,public] */;
1558
1559 union spoolss_FormInfo {
1560         struct spoolss_FormInfo1 info1;/* [case] */
1561         struct spoolss_FormInfo2 info2;/* [case(2)] */
1562 }/* [relative_base,gensize,public,nodiscriminant] */;
1563
1564 struct spoolss_AddFormInfo1 {
1565         enum spoolss_FormFlags flags;
1566         const char *form_name;/* [unique,charset(UTF16)] */
1567         struct spoolss_FormSize size;
1568         struct spoolss_FormArea area;
1569 };
1570
1571 struct spoolss_AddFormInfo2 {
1572         enum spoolss_FormFlags flags;
1573         const char *form_name;/* [unique,charset(UTF16)] */
1574         struct spoolss_FormSize size;
1575         struct spoolss_FormArea area;
1576         const char *keyword;/* [unique,charset(DOS)] */
1577         uint32_t string_type;
1578         const char *mui_dll;/* [unique,charset(UTF16)] */
1579         uint32_t ressource_id;
1580         const char *display_name;/* [unique,charset(UTF16)] */
1581         uint32_t lang_id;
1582 };
1583
1584 union spoolss_AddFormInfo {
1585         struct spoolss_AddFormInfo1 *info1;/* [unique,case] */
1586         struct spoolss_AddFormInfo2 *info2;/* [unique,case(2)] */
1587 }/* [switch_type(uint32)] */;
1588
1589 struct spoolss_PortInfo1 {
1590         const char * port_name;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */
1591 }/* [gensize,public] */;
1592
1593 /* bitmap spoolss_PortType */
1594 #define SPOOLSS_PORT_TYPE_WRITE ( 0x00000001 )
1595 #define SPOOLSS_PORT_TYPE_READ ( 0x00000002 )
1596 #define SPOOLSS_PORT_TYPE_REDIRECTED ( 0x00000004 )
1597 #define SPOOLSS_PORT_TYPE_NET_ATTACHED ( 0x00000008 )
1598
1599 struct spoolss_PortInfo2 {
1600         const char * port_name;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */
1601         const char * monitor_name;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */
1602         const char * description;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */
1603         uint32_t port_type;
1604         uint32_t reserved;
1605 }/* [gensize,public] */;
1606
1607 enum spoolss_PortStatus
1608 #ifndef USE_UINT_ENUMS
1609  {
1610         PORT_STATUS_CLEAR=0x00000000,
1611         PORT_STATUS_OFFLINE=0x00000001,
1612         PORT_STATUS_PAPER_JAM=0x00000002,
1613         PORT_STATUS_PAPER_OUT=0x00000003,
1614         PORT_STATUS_OUTPUT_BIN_FULL=0x00000004,
1615         PORT_STATUS_PAPER_PROBLEM=0x00000005,
1616         PORT_STATUS_NO_TONER=0x00000006,
1617         PORT_STATUS_DOOR_OPEN=0x00000007,
1618         PORT_STATUS_USER_INTERVENTION=0x00000008,
1619         PORT_STATUS_OUT_OF_MEMORY=0x00000009,
1620         PORT_STATUS_TONER_LOW=0x0000000A,
1621         PORT_STATUS_WARMING_UP=0x0000000B,
1622         PORT_STATUS_POWER_SAVE=0x0000000C
1623 }
1624 #else
1625  { __donnot_use_enum_spoolss_PortStatus=0x7FFFFFFF}
1626 #define PORT_STATUS_CLEAR ( 0x00000000 )
1627 #define PORT_STATUS_OFFLINE ( 0x00000001 )
1628 #define PORT_STATUS_PAPER_JAM ( 0x00000002 )
1629 #define PORT_STATUS_PAPER_OUT ( 0x00000003 )
1630 #define PORT_STATUS_OUTPUT_BIN_FULL ( 0x00000004 )
1631 #define PORT_STATUS_PAPER_PROBLEM ( 0x00000005 )
1632 #define PORT_STATUS_NO_TONER ( 0x00000006 )
1633 #define PORT_STATUS_DOOR_OPEN ( 0x00000007 )
1634 #define PORT_STATUS_USER_INTERVENTION ( 0x00000008 )
1635 #define PORT_STATUS_OUT_OF_MEMORY ( 0x00000009 )
1636 #define PORT_STATUS_TONER_LOW ( 0x0000000A )
1637 #define PORT_STATUS_WARMING_UP ( 0x0000000B )
1638 #define PORT_STATUS_POWER_SAVE ( 0x0000000C )
1639 #endif
1640 ;
1641
1642 enum spoolss_PortSeverity
1643 #ifndef USE_UINT_ENUMS
1644  {
1645         PORT_STATUS_TYPE_ERROR=0x00000001,
1646         PORT_STATUS_TYPE_WARNING=0x00000002,
1647         PORT_STATUS_TYPE_INFO=0x00000003
1648 }
1649 #else
1650  { __donnot_use_enum_spoolss_PortSeverity=0x7FFFFFFF}
1651 #define PORT_STATUS_TYPE_ERROR ( 0x00000001 )
1652 #define PORT_STATUS_TYPE_WARNING ( 0x00000002 )
1653 #define PORT_STATUS_TYPE_INFO ( 0x00000003 )
1654 #endif
1655 ;
1656
1657 struct spoolss_PortInfo3 {
1658         enum spoolss_PortStatus status;
1659         const char * status_string;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */
1660         enum spoolss_PortSeverity severity;
1661 }/* [gensize,public] */;
1662
1663 struct spoolss_PortInfoFF {
1664         const char * port_name;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */
1665         DATA_BLOB monitor_data;
1666 }/* [gensize,public] */;
1667
1668 union spoolss_PortInfo {
1669         struct spoolss_PortInfo1 info1;/* [case] */
1670         struct spoolss_PortInfo2 info2;/* [case(2)] */
1671         struct spoolss_PortInfo3 info3;/* [case(3)] */
1672         struct spoolss_PortInfoFF infoFF;/* [case(0xff)] */
1673 }/* [relative_base,nodiscriminant,public] */;
1674
1675 struct spoolss_MonitorInfo1 {
1676         const char * monitor_name;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */
1677 }/* [gensize,public] */;
1678
1679 struct spoolss_MonitorInfo2 {
1680         const char * monitor_name;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */
1681         const char * environment;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */
1682         const char * dll_name;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */
1683 }/* [gensize,public] */;
1684
1685 union spoolss_MonitorInfo {
1686         struct spoolss_MonitorInfo1 info1;/* [case] */
1687         struct spoolss_MonitorInfo2 info2;/* [case(2)] */
1688 }/* [relative_base,nodiscriminant,public] */;
1689
1690 struct spoolss_PrintProcDataTypesInfo1 {
1691         const char * name_array;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */
1692 }/* [gensize,public] */;
1693
1694 union spoolss_PrintProcDataTypesInfo {
1695         struct spoolss_PrintProcDataTypesInfo1 info1;/* [case] */
1696 }/* [relative_base,nodiscriminant,public] */;
1697
1698 /* bitmap spoolss_PrinterChangeFlags */
1699 #define PRINTER_CHANGE_ADD_PRINTER ( 0x00000001 )
1700 #define PRINTER_CHANGE_SET_PRINTER ( 0x00000002 )
1701 #define PRINTER_CHANGE_DELETE_PRINTER ( 0x00000004 )
1702 #define PRINTER_CHANGE_FAILED_CONNECTION_PRINTER ( 0x00000008 )
1703 #define PRINTER_CHANGE_ADD_JOB ( 0x00000100 )
1704 #define PRINTER_CHANGE_SET_JOB ( 0x00000200 )
1705 #define PRINTER_CHANGE_DELETE_JOB ( 0x00000400 )
1706 #define PRINTER_CHANGE_WRITE_JOB ( 0x00000800 )
1707 #define PRINTER_CHANGE_ADD_FORM ( 0x00010000 )
1708 #define PRINTER_CHANGE_SET_FORM ( 0x00020000 )
1709 #define PRINTER_CHANGE_DELETE_FORM ( 0x00040000 )
1710 #define PRINTER_CHANGE_ADD_PORT ( 0x00100000 )
1711 #define PRINTER_CHANGE_CONFIGURE_PORT ( 0x00200000 )
1712 #define PRINTER_CHANGE_DELETE_PORT ( 0x00400000 )
1713 #define PRINTER_CHANGE_ADD_PRINT_PROCESSOR ( 0x01000000 )
1714 #define PRINTER_CHANGE_DELETE_PRINT_PROCESSOR ( 0x04000000 )
1715 #define PRINTER_CHANGE_SERVER ( 0x08000000 )
1716 #define PRINTER_CHANGE_ADD_PRINTER_DRIVER ( 0x10000000 )
1717 #define PRINTER_CHANGE_SET_PRINTER_DRIVER ( 0x20000000 )
1718 #define PRINTER_CHANGE_DELETE_PRINTER_DRIVER ( 0x40000000 )
1719 #define PRINTER_CHANGE_TIMEOUT ( 0x80000000 )
1720
1721 enum spoolss_JobNotifyField
1722 #ifndef USE_UINT_ENUMS
1723  {
1724         JOB_NOTIFY_FIELD_PRINTER_NAME=0x00,
1725         JOB_NOTIFY_FIELD_MACHINE_NAME=0x01,
1726         JOB_NOTIFY_FIELD_PORT_NAME=0x02,
1727         JOB_NOTIFY_FIELD_USER_NAME=0x03,
1728         JOB_NOTIFY_FIELD_NOTIFY_NAME=0x04,
1729         JOB_NOTIFY_FIELD_DATATYPE=0x05,
1730         JOB_NOTIFY_FIELD_PRINT_PROCESSOR=0x06,
1731         JOB_NOTIFY_FIELD_PARAMETERS=0x07,
1732         JOB_NOTIFY_FIELD_DRIVER_NAME=0x08,
1733         JOB_NOTIFY_FIELD_DEVMODE=0x09,
1734         JOB_NOTIFY_FIELD_STATUS=0x0a,
1735         JOB_NOTIFY_FIELD_STATUS_STRING=0x0b,
1736         JOB_NOTIFY_FIELD_SECURITY_DESCRIPTOR=0x0c,
1737         JOB_NOTIFY_FIELD_DOCUMENT=0x0d,
1738         JOB_NOTIFY_FIELD_PRIORITY=0x0e,
1739         JOB_NOTIFY_FIELD_POSITION=0x0f,
1740         JOB_NOTIFY_FIELD_SUBMITTED=0x10,
1741         JOB_NOTIFY_FIELD_START_TIME=0x11,
1742         JOB_NOTIFY_FIELD_UNTIL_TIME=0x12,
1743         JOB_NOTIFY_FIELD_TIME=0x13,
1744         JOB_NOTIFY_FIELD_TOTAL_PAGES=0x14,
1745         JOB_NOTIFY_FIELD_PAGES_PRINTED=0x15,
1746         JOB_NOTIFY_FIELD_TOTAL_BYTES=0x16,
1747         JOB_NOTIFY_FIELD_BYTES_PRINTED=0x17
1748 }
1749 #else
1750  { __donnot_use_enum_spoolss_JobNotifyField=0x7FFFFFFF}
1751 #define JOB_NOTIFY_FIELD_PRINTER_NAME ( 0x00 )
1752 #define JOB_NOTIFY_FIELD_MACHINE_NAME ( 0x01 )
1753 #define JOB_NOTIFY_FIELD_PORT_NAME ( 0x02 )
1754 #define JOB_NOTIFY_FIELD_USER_NAME ( 0x03 )
1755 #define JOB_NOTIFY_FIELD_NOTIFY_NAME ( 0x04 )
1756 #define JOB_NOTIFY_FIELD_DATATYPE ( 0x05 )
1757 #define JOB_NOTIFY_FIELD_PRINT_PROCESSOR ( 0x06 )
1758 #define JOB_NOTIFY_FIELD_PARAMETERS ( 0x07 )
1759 #define JOB_NOTIFY_FIELD_DRIVER_NAME ( 0x08 )
1760 #define JOB_NOTIFY_FIELD_DEVMODE ( 0x09 )
1761 #define JOB_NOTIFY_FIELD_STATUS ( 0x0a )
1762 #define JOB_NOTIFY_FIELD_STATUS_STRING ( 0x0b )
1763 #define JOB_NOTIFY_FIELD_SECURITY_DESCRIPTOR ( 0x0c )
1764 #define JOB_NOTIFY_FIELD_DOCUMENT ( 0x0d )
1765 #define JOB_NOTIFY_FIELD_PRIORITY ( 0x0e )
1766 #define JOB_NOTIFY_FIELD_POSITION ( 0x0f )
1767 #define JOB_NOTIFY_FIELD_SUBMITTED ( 0x10 )
1768 #define JOB_NOTIFY_FIELD_START_TIME ( 0x11 )
1769 #define JOB_NOTIFY_FIELD_UNTIL_TIME ( 0x12 )
1770 #define JOB_NOTIFY_FIELD_TIME ( 0x13 )
1771 #define JOB_NOTIFY_FIELD_TOTAL_PAGES ( 0x14 )
1772 #define JOB_NOTIFY_FIELD_PAGES_PRINTED ( 0x15 )
1773 #define JOB_NOTIFY_FIELD_TOTAL_BYTES ( 0x16 )
1774 #define JOB_NOTIFY_FIELD_BYTES_PRINTED ( 0x17 )
1775 #endif
1776 ;
1777
1778 enum spoolss_PrintNotifyField
1779 #ifndef USE_UINT_ENUMS
1780  {
1781         PRINTER_NOTIFY_FIELD_SERVER_NAME=0x00,
1782         PRINTER_NOTIFY_FIELD_PRINTER_NAME=0x01,
1783         PRINTER_NOTIFY_FIELD_SHARE_NAME=0x02,
1784         PRINTER_NOTIFY_FIELD_PORT_NAME=0x03,
1785         PRINTER_NOTIFY_FIELD_DRIVER_NAME=0x04,
1786         PRINTER_NOTIFY_FIELD_COMMENT=0x05,
1787         PRINTER_NOTIFY_FIELD_LOCATION=0x06,
1788         PRINTER_NOTIFY_FIELD_DEVMODE=0x07,
1789         PRINTER_NOTIFY_FIELD_SEPFILE=0x08,
1790         PRINTER_NOTIFY_FIELD_PRINT_PROCESSOR=0x09,
1791         PRINTER_NOTIFY_FIELD_PARAMETERS=0x0a,
1792         PRINTER_NOTIFY_FIELD_DATATYPE=0x0b,
1793         PRINTER_NOTIFY_FIELD_SECURITY_DESCRIPTOR=0x0c,
1794         PRINTER_NOTIFY_FIELD_ATTRIBUTES=0x0d,
1795         PRINTER_NOTIFY_FIELD_PRIORITY=0x0e,
1796         PRINTER_NOTIFY_FIELD_DEFAULT_PRIORITY=0x0f,
1797         PRINTER_NOTIFY_FIELD_START_TIME=0x10,
1798         PRINTER_NOTIFY_FIELD_UNTIL_TIME=0x11,
1799         PRINTER_NOTIFY_FIELD_STATUS=0x12,
1800         PRINTER_NOTIFY_FIELD_STATUS_STRING=0x13,
1801         PRINTER_NOTIFY_FIELD_CJOBS=0x14,
1802         PRINTER_NOTIFY_FIELD_AVERAGE_PPM=0x15,
1803         PRINTER_NOTIFY_FIELD_TOTAL_PAGES=0x16,
1804         PRINTER_NOTIFY_FIELD_PAGES_PRINTED=0x17,
1805         PRINTER_NOTIFY_FIELD_TOTAL_BYTES=0x18,
1806         PRINTER_NOTIFY_FIELD_BYTES_PRINTED=0x19,
1807         PRINTER_NOTIFY_FIELD_OBJECT_GUID=0x1a,
1808         PRINTER_NOTIFY_FIELD_FRIENDLY_NAME=0x1b
1809 }
1810 #else
1811  { __donnot_use_enum_spoolss_PrintNotifyField=0x7FFFFFFF}
1812 #define PRINTER_NOTIFY_FIELD_SERVER_NAME ( 0x00 )
1813 #define PRINTER_NOTIFY_FIELD_PRINTER_NAME ( 0x01 )
1814 #define PRINTER_NOTIFY_FIELD_SHARE_NAME ( 0x02 )
1815 #define PRINTER_NOTIFY_FIELD_PORT_NAME ( 0x03 )
1816 #define PRINTER_NOTIFY_FIELD_DRIVER_NAME ( 0x04 )
1817 #define PRINTER_NOTIFY_FIELD_COMMENT ( 0x05 )
1818 #define PRINTER_NOTIFY_FIELD_LOCATION ( 0x06 )
1819 #define PRINTER_NOTIFY_FIELD_DEVMODE ( 0x07 )
1820 #define PRINTER_NOTIFY_FIELD_SEPFILE ( 0x08 )
1821 #define PRINTER_NOTIFY_FIELD_PRINT_PROCESSOR ( 0x09 )
1822 #define PRINTER_NOTIFY_FIELD_PARAMETERS ( 0x0a )
1823 #define PRINTER_NOTIFY_FIELD_DATATYPE ( 0x0b )
1824 #define PRINTER_NOTIFY_FIELD_SECURITY_DESCRIPTOR ( 0x0c )
1825 #define PRINTER_NOTIFY_FIELD_ATTRIBUTES ( 0x0d )
1826 #define PRINTER_NOTIFY_FIELD_PRIORITY ( 0x0e )
1827 #define PRINTER_NOTIFY_FIELD_DEFAULT_PRIORITY ( 0x0f )
1828 #define PRINTER_NOTIFY_FIELD_START_TIME ( 0x10 )
1829 #define PRINTER_NOTIFY_FIELD_UNTIL_TIME ( 0x11 )
1830 #define PRINTER_NOTIFY_FIELD_STATUS ( 0x12 )
1831 #define PRINTER_NOTIFY_FIELD_STATUS_STRING ( 0x13 )
1832 #define PRINTER_NOTIFY_FIELD_CJOBS ( 0x14 )
1833 #define PRINTER_NOTIFY_FIELD_AVERAGE_PPM ( 0x15 )
1834 #define PRINTER_NOTIFY_FIELD_TOTAL_PAGES ( 0x16 )
1835 #define PRINTER_NOTIFY_FIELD_PAGES_PRINTED ( 0x17 )
1836 #define PRINTER_NOTIFY_FIELD_TOTAL_BYTES ( 0x18 )
1837 #define PRINTER_NOTIFY_FIELD_BYTES_PRINTED ( 0x19 )
1838 #define PRINTER_NOTIFY_FIELD_OBJECT_GUID ( 0x1a )
1839 #define PRINTER_NOTIFY_FIELD_FRIENDLY_NAME ( 0x1b )
1840 #endif
1841 ;
1842
1843 enum spoolss_NotifyType
1844 #ifndef USE_UINT_ENUMS
1845  {
1846         PRINTER_NOTIFY_TYPE=0x00,
1847         JOB_NOTIFY_TYPE=0x01
1848 }
1849 #else
1850  { __donnot_use_enum_spoolss_NotifyType=0x7FFFFFFF}
1851 #define PRINTER_NOTIFY_TYPE ( 0x00 )
1852 #define JOB_NOTIFY_TYPE ( 0x01 )
1853 #endif
1854 ;
1855
1856 union spoolss_Field {
1857         uint16_t field;/* [case(PRINTER_NOTIFY_TYPE)] */
1858 }/* [noprint,nodiscriminant] */;
1859
1860 struct spoolss_NotifyOptionType {
1861         enum spoolss_NotifyType type;
1862         uint16_t u1;
1863         uint32_t u2;
1864         uint32_t u3;
1865         uint32_t count;
1866         union spoolss_Field *fields;/* [unique,switch_is(type),size_is(count)] */
1867 };
1868
1869 /* bitmap spoolssNotifyOptionFlags */
1870 #define PRINTER_NOTIFY_OPTIONS_REFRESH ( 0x00000001 )
1871
1872 struct spoolss_NotifyOption {
1873         uint32_t version;/* [value(2)] */
1874         uint32_t flags;
1875         uint32_t count;
1876         struct spoolss_NotifyOptionType *types;/* [unique,size_is(count)] */
1877 };
1878
1879 struct spoolss_NotifyString {
1880         uint32_t size;
1881         const char *string;/* [unique,charset(UTF16),size_is(size/2)] */
1882 };
1883
1884 enum spoolss_NotifyTable
1885 #ifndef USE_UINT_ENUMS
1886  {
1887         NOTIFY_TABLE_DWORD=0x0001,
1888         NOTIFY_TABLE_STRING=0x0002,
1889         NOTIFY_TABLE_DEVMODE=0x0003,
1890         NOTIFY_TABLE_TIME=0x0004,
1891         NOTIFY_TABLE_SECURITYDESCRIPTOR=0x0005
1892 }
1893 #else
1894  { __donnot_use_enum_spoolss_NotifyTable=0x7FFFFFFF}
1895 #define NOTIFY_TABLE_DWORD ( 0x0001 )
1896 #define NOTIFY_TABLE_STRING ( 0x0002 )
1897 #define NOTIFY_TABLE_DEVMODE ( 0x0003 )
1898 #define NOTIFY_TABLE_TIME ( 0x0004 )
1899 #define NOTIFY_TABLE_SECURITYDESCRIPTOR ( 0x0005 )
1900 #endif
1901 ;
1902
1903 union spoolss_NotifyData {
1904         uint32_t integer[2];/* [case] */
1905         struct spoolss_NotifyString string;/* [case(2)] */
1906         struct spoolss_DevmodeContainer devmode;/* [case(3)] */
1907         struct spoolss_TimeCtr time;/* [case(4)] */
1908         struct sec_desc_buf sd;/* [case(5)] */
1909 }/* [switch_type(uint32)] */;
1910
1911 struct spoolss_Notify {
1912         enum spoolss_NotifyType type;
1913         union spoolss_Field field;/* [switch_is(type)] */
1914         enum spoolss_NotifyTable variable_type;
1915         uint32_t job_id;
1916         union spoolss_NotifyData data;/* [switch_is(variable_type)] */
1917 };
1918
1919 struct spoolss_NotifyInfo {
1920         uint32_t version;/* [value(2)] */
1921         uint32_t flags;
1922         uint32_t count;
1923         struct spoolss_Notify *notifies;/* [size_is(count)] */
1924 };
1925
1926 union spoolss_ReplyPrinterInfo {
1927         struct spoolss_NotifyInfo *info0;/* [unique,case(0)] */
1928 }/* [switch_type(uint32)] */;
1929
1930 /* bitmap spoolss_PrinterNotifyFlags */
1931 #define PRINTER_NOTIFY_INFO_DISCARDED ( 0x00000001 )
1932 #define PRINTER_NOTIFY_INFO_DISCARDNOTED ( 0x00010000 )
1933 #define PRINTER_NOTIFY_INFO_COLOR_MISMATCH ( 0x00080000 )
1934
1935 struct spoolss_UserLevel1 {
1936         uint32_t size;
1937         const char *client;/* [unique,charset(UTF16)] */
1938         const char *user;/* [unique,charset(UTF16)] */
1939         uint32_t build;
1940         enum spoolss_MajorVersion major;
1941         enum spoolss_MinorVersion minor;
1942         enum spoolss_ProcessorArchitecture processor;
1943 };
1944
1945 struct spoolss_UserLevel2 {
1946         uint32_t not_used;
1947 };
1948
1949 struct spoolss_UserLevel3 {
1950         uint32_t size;
1951         uint32_t flags;
1952         uint32_t size2;
1953         const char *client;/* [unique,charset(UTF16)] */
1954         const char *user;/* [unique,charset(UTF16)] */
1955         uint32_t build;
1956         enum spoolss_MajorVersion major;
1957         enum spoolss_MinorVersion minor;
1958         enum spoolss_ProcessorArchitecture processor;
1959         uint64_t reserved;
1960 };
1961
1962 union spoolss_UserLevel {
1963         struct spoolss_UserLevel1 *level1;/* [unique,case] */
1964         struct spoolss_UserLevel2 *level2;/* [unique,case(2)] */
1965         struct spoolss_UserLevel3 *level3;/* [unique,case(3)] */
1966 }/* [switch_type(uint32)] */;
1967
1968 struct spoolss_UserLevelCtr {
1969         uint32_t level;
1970         union spoolss_UserLevel user_info;/* [switch_is(level)] */
1971 };
1972
1973 /* bitmap spoolss_AccessRights */
1974 #define SERVER_ACCESS_ADMINISTER ( 0x00000001 )
1975 #define SERVER_ACCESS_ENUMERATE ( 0x00000002 )
1976 #define PRINTER_ACCESS_ADMINISTER ( 0x00000004 )
1977 #define PRINTER_ACCESS_USE ( 0x00000008 )
1978 #define JOB_ACCESS_ADMINISTER ( 0x00000010 )
1979 #define JOB_ACCESS_READ ( 0x00000020 )
1980
1981 struct spoolss_PrinterEnumValues {
1982         const char * value_name;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */
1983         uint32_t value_name_len;/* [value(2*strlen_m_term(value_name))] */
1984         enum winreg_Type type;
1985         union spoolss_PrinterData *data;/* [relative,subcontext_size(r->data_length),subcontext(0),switch_is(type)] */
1986         uint32_t data_length;/* [value(ndr_size_spoolss_PrinterData(data,type,ndr->iconv_convenience,ndr->flags))] */
1987 }/* [relative_base,gensize,public] */;
1988
1989 /* bitmap spoolss_DeleteDriverFlags */
1990 #define DPD_DELETE_UNUSED_FILES ( 0x00000001 )
1991 #define DPD_DELETE_SPECIFIC_VERSION ( 0x00000002 )
1992 #define DPD_DELETE_ALL_FILES ( 0x00000004 )
1993
1994 enum spoolss_PortProtocol
1995 #ifndef USE_UINT_ENUMS
1996  {
1997         PROTOCOL_RAWTCP_TYPE=1,
1998         PROTOCOL_LPR_TYPE=2
1999 }
2000 #else
2001  { __donnot_use_enum_spoolss_PortProtocol=0x7FFFFFFF}
2002 #define PROTOCOL_RAWTCP_TYPE ( 1 )
2003 #define PROTOCOL_LPR_TYPE ( 2 )
2004 #endif
2005 ;
2006
2007 struct spoolss_PortData1 {
2008         const char *portname;/* [charset(UTF16)] */
2009         uint32_t version;/* [value(0x00000001)] */
2010         enum spoolss_PortProtocol protocol;
2011         uint32_t size;/* [value(sizeof(r))] */
2012         uint32_t reserved;
2013         const char *hostaddress;/* [charset(UTF16)] */
2014         const char *snmpcommunity;/* [charset(UTF16)] */
2015         uint32_t dblspool;
2016         const char *queue;/* [charset(UTF16)] */
2017         const char *ip_address;/* [charset(UTF16)] */
2018         const char *hardware_address;/* [charset(UTF16)] */
2019         const char *device_type;/* [charset(UTF16)] */
2020         uint32_t port_number;
2021         uint32_t snmp_enabled;
2022         uint32_t snmp_dev_index;
2023 }/* [public] */;
2024
2025 struct spoolss_PortData2 {
2026         const char *portname;/* [charset(UTF16)] */
2027         uint32_t version;/* [value(0x00000002)] */
2028         enum spoolss_PortProtocol protocol;
2029         uint32_t size;/* [value(sizeof(r))] */
2030         uint32_t reserved;
2031         const char *hostaddress;/* [charset(UTF16)] */
2032         const char *snmpcommunity;/* [charset(UTF16)] */
2033         uint32_t dblspool;
2034         const char *queue;/* [charset(UTF16)] */
2035         const char *device_type;/* [charset(UTF16)] */
2036         uint32_t port_number;
2037         uint32_t snmp_enabled;
2038         uint32_t snmp_dev_index;
2039         uint32_t port_monitor_mib_index;
2040 }/* [public] */;
2041
2042 struct spoolss_MonitorUi {
2043         const char * dll_name;/* [flag(LIBNDR_FLAG_STR_NULLTERM)] */
2044 }/* [public] */;
2045
2046 /* bitmap spoolss_AddPrinterDriverExFlags */
2047 #define APD_STRICT_UPGRADE ( 0x00000001 )
2048 #define APD_STRICT_DOWNGRADE ( 0x00000002 )
2049 #define APD_COPY_ALL_FILES ( 0x00000004 )
2050 #define APD_COPY_NEW_FILES ( 0x00000008 )
2051 #define APD_COPY_FROM_DIRECTORY ( 0x00000010 )
2052 #define APD_DONT_COPY_FILES_TO_CLUSTER ( 0x00001000 )
2053 #define APD_COPY_TO_ALL_SPOOLERS ( 0x00002000 )
2054 #define APD_RETURN_BLOCKING_STATUS_CODE ( 0x00010000 )
2055
2056 struct spoolss_CorePrinterDriver {
2057         struct GUID core_driver_guid;
2058         NTTIME driver_date;
2059         uint64_t driver_version;
2060         const char *formname;/* [charset(UTF8)] */
2061 };
2062
2063
2064 struct _spoolss_EnumPrinters {
2065         struct {
2066                 uint32_t flags;
2067                 const char *server;/* [unique,charset(UTF16)] */
2068                 uint32_t level;
2069                 DATA_BLOB *buffer;/* [unique] */
2070                 uint32_t offered;
2071         } in;
2072
2073         struct {
2074                 DATA_BLOB *info;/* [unique] */
2075                 uint32_t *needed;/* [ref] */
2076                 uint32_t *count;/* [ref] */
2077                 WERROR result;
2078         } out;
2079
2080 };
2081
2082
2083 struct __spoolss_EnumPrinters {
2084         struct {
2085                 uint32_t level;
2086                 uint32_t count;
2087         } in;
2088
2089         struct {
2090                 union spoolss_PrinterInfo *info;/* [switch_is(level)] */
2091         } out;
2092
2093 };
2094
2095
2096 struct spoolss_EnumPrinters {
2097         struct {
2098                 uint32_t flags;
2099                 const char *server;/* [unique,charset(UTF16)] */
2100                 uint32_t level;
2101                 DATA_BLOB *buffer;/* [unique] */
2102                 uint32_t offered;
2103         } in;
2104
2105         struct {
2106                 uint32_t *count;/* [ref] */
2107                 union spoolss_PrinterInfo **info;/* [ref,switch_is(level),size_is(,*count)] */
2108                 uint32_t *needed;/* [ref] */
2109                 WERROR result;
2110         } out;
2111
2112 };
2113
2114
2115 struct spoolss_OpenPrinter {
2116         struct {
2117                 const char *printername;/* [unique,charset(UTF16)] */
2118                 const char *datatype;/* [unique,charset(UTF16)] */
2119                 struct spoolss_DevmodeContainer devmode_ctr;
2120                 uint32_t access_mask;
2121         } in;
2122
2123         struct {
2124                 struct policy_handle *handle;/* [ref] */
2125                 WERROR result;
2126         } out;
2127
2128 };
2129
2130
2131 struct spoolss_SetJob {
2132         struct {
2133                 struct policy_handle *handle;/* [ref] */
2134                 uint32_t job_id;
2135                 struct spoolss_JobInfoContainer *ctr;/* [unique] */
2136                 enum spoolss_JobControl command;
2137         } in;
2138
2139         struct {
2140                 WERROR result;
2141         } out;
2142
2143 };
2144
2145
2146 struct spoolss_GetJob {
2147         struct {
2148                 struct policy_handle *handle;/* [ref] */
2149                 uint32_t job_id;
2150                 uint32_t level;
2151                 DATA_BLOB *buffer;/* [unique] */
2152                 uint32_t offered;
2153         } in;
2154
2155         struct {
2156                 union spoolss_JobInfo *info;/* [unique,subcontext_size(offered),subcontext(4),switch_is(level)] */
2157                 uint32_t *needed;/* [ref] */
2158                 WERROR result;
2159         } out;
2160
2161 };
2162
2163
2164 struct _spoolss_EnumJobs {
2165         struct {
2166                 struct policy_handle *handle;/* [ref] */
2167                 uint32_t firstjob;
2168                 uint32_t numjobs;
2169                 uint32_t level;
2170                 DATA_BLOB *buffer;/* [unique] */
2171                 uint32_t offered;
2172         } in;
2173
2174         struct {
2175                 DATA_BLOB *info;/* [unique] */
2176                 uint32_t *needed;/* [ref] */
2177                 uint32_t *count;/* [ref] */
2178                 WERROR result;
2179         } out;
2180
2181 };
2182
2183
2184 struct __spoolss_EnumJobs {
2185         struct {
2186                 uint32_t level;
2187                 uint32_t count;
2188         } in;
2189
2190         struct {
2191                 union spoolss_JobInfo *info;/* [switch_is(level)] */
2192         } out;
2193
2194 };
2195
2196
2197 struct spoolss_EnumJobs {
2198         struct {
2199                 struct policy_handle *handle;/* [ref] */
2200                 uint32_t firstjob;
2201                 uint32_t numjobs;
2202                 uint32_t level;
2203                 DATA_BLOB *buffer;/* [unique] */
2204                 uint32_t offered;
2205         } in;
2206
2207         struct {
2208                 uint32_t *count;/* [ref] */
2209                 union spoolss_JobInfo **info;/* [ref,switch_is(level),size_is(,*count)] */
2210                 uint32_t *needed;/* [ref] */
2211                 WERROR result;
2212         } out;
2213
2214 };
2215
2216
2217 struct spoolss_AddPrinter {
2218         struct {
2219                 const char *server;/* [unique,charset(UTF16)] */
2220                 struct spoolss_SetPrinterInfoCtr *info_ctr;/* [ref] */
2221                 struct spoolss_DevmodeContainer *devmode_ctr;/* [ref] */
2222                 struct sec_desc_buf *secdesc_ctr;/* [ref] */
2223         } in;
2224
2225         struct {
2226                 struct policy_handle *handle;/* [ref] */
2227                 WERROR result;
2228         } out;
2229
2230 };
2231
2232
2233 struct spoolss_DeletePrinter {
2234         struct {
2235                 struct policy_handle *handle;/* [ref] */
2236         } in;
2237
2238         struct {
2239                 WERROR result;
2240         } out;
2241
2242 };
2243
2244
2245 struct spoolss_SetPrinter {
2246         struct {
2247                 struct policy_handle *handle;/* [ref] */
2248                 struct spoolss_SetPrinterInfoCtr *info_ctr;/* [ref] */
2249                 struct spoolss_DevmodeContainer *devmode_ctr;/* [ref] */
2250                 struct sec_desc_buf *secdesc_ctr;/* [ref] */
2251                 enum spoolss_PrinterControl command;
2252         } in;
2253
2254         struct {
2255                 WERROR result;
2256         } out;
2257
2258 };
2259
2260
2261 struct spoolss_GetPrinter {
2262         struct {
2263                 struct policy_handle *handle;/* [ref] */
2264                 uint32_t level;
2265                 DATA_BLOB *buffer;/* [unique] */
2266                 uint32_t offered;
2267         } in;
2268
2269         struct {
2270                 union spoolss_PrinterInfo *info;/* [unique,subcontext_size(offered),subcontext(4),switch_is(level)] */
2271                 uint32_t *needed;/* [ref] */
2272                 WERROR result;
2273         } out;
2274
2275 };
2276
2277
2278 struct spoolss_AddPrinterDriver {
2279         struct {
2280                 const char *servername;/* [unique,charset(UTF16)] */
2281                 struct spoolss_AddDriverInfoCtr *info_ctr;/* [ref] */
2282         } in;
2283
2284         struct {
2285                 WERROR result;
2286         } out;
2287
2288 };
2289
2290
2291 struct _spoolss_EnumPrinterDrivers {
2292         struct {
2293                 const char *server;/* [unique,charset(UTF16)] */
2294                 const char *environment;/* [unique,charset(UTF16)] */
2295                 uint32_t level;
2296                 DATA_BLOB *buffer;/* [unique] */
2297                 uint32_t offered;
2298         } in;
2299
2300         struct {
2301                 DATA_BLOB *info;/* [unique] */
2302                 uint32_t *needed;/* [ref] */
2303                 uint32_t *count;/* [ref] */
2304                 WERROR result;
2305         } out;
2306
2307 };
2308
2309
2310 struct __spoolss_EnumPrinterDrivers {
2311         struct {
2312                 uint32_t level;
2313                 uint32_t count;
2314         } in;
2315
2316         struct {
2317                 union spoolss_DriverInfo *info;/* [switch_is(level)] */
2318         } out;
2319
2320 };
2321
2322
2323 struct spoolss_EnumPrinterDrivers {
2324         struct {
2325                 const char *server;/* [unique,charset(UTF16)] */
2326                 const char *environment;/* [unique,charset(UTF16)] */
2327                 uint32_t level;
2328                 DATA_BLOB *buffer;/* [unique] */
2329                 uint32_t offered;
2330         } in;
2331
2332         struct {
2333                 uint32_t *count;/* [ref] */
2334                 union spoolss_DriverInfo **info;/* [ref,switch_is(level),size_is(,*count)] */
2335                 uint32_t *needed;/* [ref] */
2336                 WERROR result;
2337         } out;
2338
2339 };
2340
2341
2342 struct spoolss_GetPrinterDriver {
2343         struct {
2344                 struct policy_handle *handle;/* [ref] */
2345                 const char *architecture;/* [unique,charset(UTF16)] */
2346                 uint32_t level;
2347                 DATA_BLOB *buffer;/* [unique] */
2348                 uint32_t offered;
2349         } in;
2350
2351         struct {
2352                 union spoolss_DriverInfo *info;/* [unique,subcontext_size(offered),subcontext(4),switch_is(level)] */
2353                 uint32_t *needed;/* [ref] */
2354                 WERROR result;
2355         } out;
2356
2357 };
2358
2359
2360 struct spoolss_GetPrinterDriverDirectory {
2361         struct {
2362                 const char *server;/* [unique,charset(UTF16)] */
2363                 const char *environment;/* [unique,charset(UTF16)] */
2364                 uint32_t level;
2365                 DATA_BLOB *buffer;/* [unique] */
2366                 uint32_t offered;
2367         } in;
2368
2369         struct {
2370                 union spoolss_DriverDirectoryInfo *info;/* [unique,subcontext_size(offered),subcontext(4),switch_is(level)] */
2371                 uint32_t *needed;/* [ref] */
2372                 WERROR result;
2373         } out;
2374
2375 };
2376
2377
2378 struct spoolss_DeletePrinterDriver {
2379         struct {
2380                 const char *server;/* [unique,charset(UTF16)] */
2381                 const char *architecture;/* [charset(UTF16)] */
2382                 const char *driver;/* [charset(UTF16)] */
2383         } in;
2384
2385         struct {
2386                 WERROR result;
2387         } out;
2388
2389 };
2390
2391
2392 struct spoolss_AddPrintProcessor {
2393         struct {
2394                 const char *server;/* [unique,charset(UTF16)] */
2395                 const char *architecture;/* [charset(UTF16)] */
2396                 const char *path_name;/* [charset(UTF16)] */
2397                 const char *print_processor_name;/* [charset(UTF16)] */
2398         } in;
2399
2400         struct {
2401                 WERROR result;
2402         } out;
2403
2404 };
2405
2406
2407 struct _spoolss_EnumPrintProcessors {
2408         struct {
2409                 const char *servername;/* [unique,charset(UTF16)] */
2410                 const char *environment;/* [unique,charset(UTF16)] */
2411                 uint32_t level;
2412                 DATA_BLOB *buffer;/* [unique] */
2413                 uint32_t offered;
2414         } in;
2415
2416         struct {
2417                 DATA_BLOB *info;/* [unique] */
2418                 uint32_t *needed;/* [ref] */
2419                 uint32_t *count;/* [ref] */
2420                 WERROR result;
2421         } out;
2422
2423 };
2424
2425
2426 struct __spoolss_EnumPrintProcessors {
2427         struct {
2428                 uint32_t level;
2429                 uint32_t count;
2430         } in;
2431
2432         struct {
2433                 union spoolss_PrintProcessorInfo *info;/* [switch_is(level)] */
2434         } out;
2435
2436 };
2437
2438
2439 struct spoolss_EnumPrintProcessors {
2440         struct {
2441                 const char *servername;/* [unique,charset(UTF16)] */
2442                 const char *environment;/* [unique,charset(UTF16)] */
2443                 uint32_t level;
2444                 DATA_BLOB *buffer;/* [unique] */
2445                 uint32_t offered;
2446         } in;
2447
2448         struct {
2449                 uint32_t *count;/* [ref] */
2450                 union spoolss_PrintProcessorInfo **info;/* [ref,switch_is(level),size_is(,*count)] */
2451                 uint32_t *needed;/* [ref] */
2452                 WERROR result;
2453         } out;
2454
2455 };
2456
2457
2458 struct spoolss_GetPrintProcessorDirectory {
2459         struct {
2460                 const char *server;/* [unique,charset(UTF16)] */
2461                 const char *environment;/* [unique,charset(UTF16)] */
2462                 uint32_t level;
2463                 DATA_BLOB *buffer;/* [unique] */
2464                 uint32_t offered;
2465         } in;
2466
2467         struct {
2468                 union spoolss_PrintProcessorDirectoryInfo *info;/* [unique,subcontext_size(offered),subcontext(4),switch_is(level)] */
2469                 uint32_t *needed;/* [ref] */
2470                 WERROR result;
2471         } out;
2472
2473 };
2474
2475
2476 struct spoolss_StartDocPrinter {
2477         struct {
2478                 struct policy_handle *handle;/* [ref] */
2479                 uint32_t level;
2480                 union spoolss_DocumentInfo info;/* [switch_is(level)] */
2481         } in;
2482
2483         struct {
2484                 uint32_t *job_id;/* [ref] */
2485                 WERROR result;
2486         } out;
2487
2488 };
2489
2490
2491 struct spoolss_StartPagePrinter {
2492         struct {
2493                 struct policy_handle *handle;/* [ref] */
2494         } in;
2495
2496         struct {
2497                 WERROR result;
2498         } out;
2499
2500 };
2501
2502
2503 struct spoolss_WritePrinter {
2504         struct {
2505                 struct policy_handle *handle;/* [ref] */
2506                 DATA_BLOB data;
2507                 uint32_t _data_size;/* [value(r->in.data.length)] */
2508         } in;
2509
2510         struct {
2511                 uint32_t *num_written;/* [ref] */
2512                 WERROR result;
2513         } out;
2514
2515 };
2516
2517
2518 struct spoolss_EndPagePrinter {
2519         struct {
2520                 struct policy_handle *handle;/* [ref] */
2521         } in;
2522
2523         struct {
2524                 WERROR result;
2525         } out;
2526
2527 };
2528
2529
2530 struct spoolss_AbortPrinter {
2531         struct {
2532                 struct policy_handle *handle;/* [ref] */
2533         } in;
2534
2535         struct {
2536                 WERROR result;
2537         } out;
2538
2539 };
2540
2541
2542 struct spoolss_ReadPrinter {
2543         struct {
2544                 struct policy_handle *handle;/* [ref] */
2545                 uint32_t data_size;
2546         } in;
2547
2548         struct {
2549                 uint8_t *data;/* [ref,size_is(data_size)] */
2550                 uint32_t *_data_size;/* [ref] */
2551                 WERROR result;
2552         } out;
2553
2554 };
2555
2556
2557 struct spoolss_EndDocPrinter {
2558         struct {
2559                 struct policy_handle *handle;/* [ref] */
2560         } in;
2561
2562         struct {
2563                 WERROR result;
2564         } out;
2565
2566 };
2567
2568
2569 struct spoolss_AddJob {
2570         struct {
2571                 struct policy_handle *handle;/* [ref] */
2572                 uint32_t level;
2573                 uint32_t offered;
2574                 uint8_t *buffer;/* [unique,size_is(offered)] */
2575         } in;
2576
2577         struct {
2578                 uint32_t *needed;/* [ref] */
2579                 uint8_t *buffer;/* [unique,size_is(offered)] */
2580                 WERROR result;
2581         } out;
2582
2583 };
2584
2585
2586 struct spoolss_ScheduleJob {
2587         struct {
2588                 struct policy_handle *handle;/* [ref] */
2589                 uint32_t jobid;
2590         } in;
2591
2592         struct {
2593                 WERROR result;
2594         } out;
2595
2596 };
2597
2598
2599 struct _spoolss_GetPrinterData {
2600         struct {
2601                 struct policy_handle *handle;/* [ref] */
2602                 const char *value_name;/* [charset(UTF16)] */
2603                 uint32_t offered;
2604         } in;
2605
2606         struct {
2607                 enum winreg_Type *type;/* [ref] */
2608                 DATA_BLOB *data;/* [ref] */
2609                 uint32_t *needed;/* [ref] */
2610                 WERROR result;
2611         } out;
2612
2613 };
2614
2615
2616 struct __spoolss_GetPrinterData {
2617         struct {
2618                 enum winreg_Type type;
2619         } in;
2620
2621         struct {
2622                 union spoolss_PrinterData *data;/* [ref,switch_is(type)] */
2623         } out;
2624
2625 };
2626
2627
2628 struct spoolss_GetPrinterData {
2629         struct {
2630                 struct policy_handle *handle;/* [ref] */
2631                 const char *value_name;/* [charset(UTF16)] */
2632                 uint32_t offered;
2633         } in;
2634
2635         struct {
2636                 enum winreg_Type *type;/* [ref] */
2637                 union spoolss_PrinterData *data;/* [subcontext_size(offered),ref,subcontext(4),switch_is(*type)] */
2638                 uint32_t *needed;/* [ref] */
2639                 WERROR result;
2640         } out;
2641
2642 };
2643
2644
2645 struct _spoolss_SetPrinterData {
2646         struct {
2647                 struct policy_handle *handle;/* [ref] */
2648                 const char *value_name;/* [charset(UTF16)] */
2649                 enum winreg_Type type;
2650                 DATA_BLOB data;
2651                 uint32_t _offered;
2652         } in;
2653
2654         struct {
2655                 WERROR result;
2656         } out;
2657
2658 };
2659
2660
2661 struct __spoolss_SetPrinterData {
2662         struct {
2663                 enum winreg_Type type;
2664         } in;
2665
2666         struct {
2667                 union spoolss_PrinterData *data;/* [ref,switch_is(type)] */
2668         } out;
2669
2670 };
2671
2672
2673 struct spoolss_SetPrinterData {
2674         struct {
2675                 struct policy_handle *handle;/* [ref] */
2676                 const char *value_name;/* [charset(UTF16)] */
2677                 enum winreg_Type type;
2678                 union spoolss_PrinterData data;/* [subcontext(4),switch_is(type)] */
2679                 uint32_t _offered;/* [value(ndr_size_spoolss_PrinterData(&data,type,ndr->iconv_convenience,flags))] */
2680         } in;
2681
2682         struct {
2683                 WERROR result;
2684         } out;
2685
2686 };
2687
2688
2689 struct spoolss_WaitForPrinterChange {
2690         struct {
2691                 WERROR result;
2692         } out;
2693
2694 };
2695
2696
2697 struct spoolss_ClosePrinter {
2698         struct {
2699                 struct policy_handle *handle;/* [ref] */
2700         } in;
2701
2702         struct {
2703                 struct policy_handle *handle;/* [ref] */
2704                 WERROR result;
2705         } out;
2706
2707 };
2708
2709
2710 struct spoolss_AddForm {
2711         struct {
2712                 struct policy_handle *handle;/* [ref] */
2713                 uint32_t level;
2714                 union spoolss_AddFormInfo info;/* [switch_is(level)] */
2715         } in;
2716
2717         struct {
2718                 WERROR result;
2719         } out;
2720
2721 };
2722
2723
2724 struct spoolss_DeleteForm {
2725         struct {
2726                 struct policy_handle *handle;/* [ref] */
2727                 const char *form_name;/* [charset(UTF16)] */
2728         } in;
2729
2730         struct {
2731                 WERROR result;
2732         } out;
2733
2734 };
2735
2736
2737 struct spoolss_GetForm {
2738         struct {
2739                 struct policy_handle *handle;/* [ref] */
2740                 const char *form_name;/* [charset(UTF16)] */
2741                 uint32_t level;
2742                 DATA_BLOB *buffer;/* [unique] */
2743                 uint32_t offered;
2744         } in;
2745
2746         struct {
2747                 union spoolss_FormInfo *info;/* [unique,subcontext_size(offered),subcontext(4),switch_is(level)] */
2748                 uint32_t *needed;/* [ref] */
2749                 WERROR result;
2750         } out;
2751
2752 };
2753
2754
2755 struct spoolss_SetForm {
2756         struct {
2757                 struct policy_handle *handle;/* [ref] */
2758                 const char *form_name;/* [charset(UTF16)] */
2759                 uint32_t level;
2760                 union spoolss_AddFormInfo info;/* [switch_is(level)] */
2761         } in;
2762
2763         struct {
2764                 WERROR result;
2765         } out;
2766
2767 };
2768
2769
2770 struct _spoolss_EnumForms {
2771         struct {
2772                 struct policy_handle *handle;/* [ref] */
2773                 uint32_t level;
2774                 DATA_BLOB *buffer;/* [unique] */
2775                 uint32_t offered;
2776         } in;
2777
2778         struct {
2779                 DATA_BLOB *info;/* [unique] */
2780                 uint32_t *needed;/* [ref] */
2781                 uint32_t *count;/* [ref] */
2782                 WERROR result;
2783         } out;
2784
2785 };
2786
2787
2788 struct __spoolss_EnumForms {
2789         struct {
2790                 uint32_t level;
2791                 uint32_t count;
2792         } in;
2793
2794         struct {
2795                 union spoolss_FormInfo *info;/* [switch_is(level)] */
2796         } out;
2797
2798 };
2799
2800
2801 struct spoolss_EnumForms {
2802         struct {
2803                 struct policy_handle *handle;/* [ref] */
2804                 uint32_t level;
2805                 DATA_BLOB *buffer;/* [unique] */
2806                 uint32_t offered;
2807         } in;
2808
2809         struct {
2810                 uint32_t *count;/* [ref] */
2811                 union spoolss_FormInfo **info;/* [ref,switch_is(level),size_is(,*count)] */
2812                 uint32_t *needed;/* [ref] */
2813                 WERROR result;
2814         } out;
2815
2816 };
2817
2818
2819 struct _spoolss_EnumPorts {
2820         struct {
2821                 const char *servername;/* [unique,charset(UTF16)] */
2822                 uint32_t level;
2823                 DATA_BLOB *buffer;/* [unique] */
2824                 uint32_t offered;
2825         } in;
2826
2827         struct {
2828                 DATA_BLOB *info;/* [unique] */
2829                 uint32_t *needed;/* [ref] */
2830                 uint32_t *count;/* [ref] */
2831                 WERROR result;
2832         } out;
2833
2834 };
2835
2836
2837 struct __spoolss_EnumPorts {
2838         struct {
2839                 uint32_t level;
2840                 uint32_t count;
2841         } in;
2842
2843         struct {
2844                 union spoolss_PortInfo *info;/* [switch_is(level)] */
2845         } out;
2846
2847 };
2848
2849
2850 struct spoolss_EnumPorts {
2851         struct {
2852                 const char *servername;/* [unique,charset(UTF16)] */
2853                 uint32_t level;
2854                 DATA_BLOB *buffer;/* [unique] */
2855                 uint32_t offered;
2856         } in;
2857
2858         struct {
2859                 uint32_t *count;/* [ref] */
2860                 union spoolss_PortInfo **info;/* [ref,switch_is(level),size_is(,*count)] */
2861                 uint32_t *needed;/* [ref] */
2862                 WERROR result;
2863         } out;
2864
2865 };
2866
2867
2868 struct _spoolss_EnumMonitors {
2869         struct {
2870                 const char *servername;/* [unique,charset(UTF16)] */
2871                 uint32_t level;
2872                 DATA_BLOB *buffer;/* [unique] */
2873                 uint32_t offered;
2874         } in;
2875
2876         struct {
2877                 DATA_BLOB *info;/* [unique] */
2878                 uint32_t *needed;/* [ref] */
2879                 uint32_t *count;/* [ref] */
2880                 WERROR result;
2881         } out;
2882
2883 };
2884
2885
2886 struct __spoolss_EnumMonitors {
2887         struct {
2888                 uint32_t level;
2889                 uint32_t count;
2890         } in;
2891
2892         struct {
2893                 union spoolss_MonitorInfo *info;/* [switch_is(level)] */
2894         } out;
2895
2896 };
2897
2898
2899 struct spoolss_EnumMonitors {
2900         struct {
2901                 const char *servername;/* [unique,charset(UTF16)] */
2902                 uint32_t level;
2903                 DATA_BLOB *buffer;/* [unique] */
2904                 uint32_t offered;
2905         } in;
2906
2907         struct {
2908                 uint32_t *count;/* [ref] */
2909                 union spoolss_MonitorInfo **info;/* [ref,switch_is(level),size_is(,*count)] */
2910                 uint32_t *needed;/* [ref] */
2911                 WERROR result;
2912         } out;
2913
2914 };
2915
2916
2917 struct spoolss_AddPort {
2918         struct {
2919                 const char *server_name;/* [unique,charset(UTF16)] */
2920                 uint32_t unknown;
2921                 const char *monitor_name;/* [charset(UTF16)] */
2922         } in;
2923
2924         struct {
2925                 WERROR result;
2926         } out;
2927
2928 };
2929
2930
2931 struct spoolss_ConfigurePort {
2932         struct {
2933                 WERROR result;
2934         } out;
2935
2936 };
2937
2938
2939 struct spoolss_DeletePort {
2940         struct {
2941                 WERROR result;
2942         } out;
2943
2944 };
2945
2946
2947 struct spoolss_CreatePrinterIC {
2948         struct {
2949                 struct policy_handle *handle;/* [ref] */
2950                 struct spoolss_DevmodeContainer *devmode_ctr;/* [ref] */
2951         } in;
2952
2953         struct {
2954                 struct policy_handle *gdi_handle;/* [ref] */
2955                 WERROR result;
2956         } out;
2957
2958 };
2959
2960
2961 struct spoolss_PlayGDIScriptOnPrinterIC {
2962         struct {
2963                 WERROR result;
2964         } out;
2965
2966 };
2967
2968
2969 struct spoolss_DeletePrinterIC {
2970         struct {
2971                 struct policy_handle *gdi_handle;/* [ref] */
2972         } in;
2973
2974         struct {
2975                 struct policy_handle *gdi_handle;/* [ref] */
2976                 WERROR result;
2977         } out;
2978
2979 };
2980
2981
2982 struct spoolss_AddPrinterConnection {
2983         struct {
2984                 WERROR result;
2985         } out;
2986
2987 };
2988
2989
2990 struct spoolss_DeletePrinterConnection {
2991         struct {
2992                 WERROR result;
2993         } out;
2994
2995 };
2996
2997
2998 struct spoolss_PrinterMessageBox {
2999         struct {
3000                 WERROR result;
3001         } out;
3002
3003 };
3004
3005
3006 struct spoolss_AddMonitor {
3007         struct {
3008                 WERROR result;
3009         } out;
3010
3011 };
3012
3013
3014 struct spoolss_DeleteMonitor {
3015         struct {
3016                 WERROR result;
3017         } out;
3018
3019 };
3020
3021
3022 struct spoolss_DeletePrintProcessor {
3023         struct {
3024                 WERROR result;
3025         } out;
3026
3027 };
3028
3029
3030 struct spoolss_AddPrintProvidor {
3031         struct {
3032                 WERROR result;
3033         } out;
3034
3035 };
3036
3037
3038 struct spoolss_DeletePrintProvidor {
3039         struct {
3040                 WERROR result;
3041         } out;
3042
3043 };
3044
3045
3046 struct _spoolss_EnumPrintProcDataTypes {
3047         struct {
3048                 const char *servername;/* [unique,charset(UTF16)] */
3049                 const char *print_processor_name;/* [unique,charset(UTF16)] */
3050                 uint32_t level;
3051                 DATA_BLOB *buffer;/* [unique] */
3052                 uint32_t offered;
3053         } in;
3054
3055         struct {
3056                 DATA_BLOB *info;/* [unique] */
3057                 uint32_t *needed;/* [ref] */
3058                 uint32_t *count;/* [ref] */
3059                 WERROR result;
3060         } out;
3061
3062 };
3063
3064
3065 struct __spoolss_EnumPrintProcDataTypes {
3066         struct {
3067                 uint32_t level;
3068                 uint32_t count;
3069         } in;
3070
3071         struct {
3072                 union spoolss_PrintProcDataTypesInfo *info;/* [switch_is(level)] */
3073         } out;
3074
3075 };
3076
3077
3078 struct spoolss_EnumPrintProcDataTypes {
3079         struct {
3080                 const char *servername;/* [unique,charset(UTF16)] */
3081                 const char *print_processor_name;/* [unique,charset(UTF16)] */
3082                 uint32_t level;
3083                 DATA_BLOB *buffer;/* [unique] */
3084                 uint32_t offered;
3085         } in;
3086
3087         struct {
3088                 uint32_t *count;/* [ref] */
3089                 union spoolss_PrintProcDataTypesInfo **info;/* [ref,switch_is(level),size_is(,*count)] */
3090                 uint32_t *needed;/* [ref] */
3091                 WERROR result;
3092         } out;
3093
3094 };
3095
3096
3097 struct spoolss_ResetPrinter {
3098         struct {
3099                 struct policy_handle *handle;/* [ref] */
3100                 const char *data_type;/* [unique,charset(UTF16)] */
3101                 struct spoolss_DevmodeContainer *devmode_ctr;/* [ref] */
3102         } in;
3103
3104         struct {
3105                 WERROR result;
3106         } out;
3107
3108 };
3109
3110
3111 struct spoolss_GetPrinterDriver2 {
3112         struct {
3113                 struct policy_handle *handle;/* [ref] */
3114                 const char *architecture;/* [unique,charset(UTF16)] */
3115                 uint32_t level;
3116                 DATA_BLOB *buffer;/* [unique] */
3117                 uint32_t offered;
3118                 uint32_t client_major_version;
3119                 uint32_t client_minor_version;
3120         } in;
3121
3122         struct {
3123                 union spoolss_DriverInfo *info;/* [unique,subcontext_size(offered),subcontext(4),switch_is(level)] */
3124                 uint32_t *needed;/* [ref] */
3125                 uint32_t *server_major_version;/* [ref] */
3126                 uint32_t *server_minor_version;/* [ref] */
3127                 WERROR result;
3128         } out;
3129
3130 };
3131
3132
3133 struct spoolss_FindFirstPrinterChangeNotification {
3134         struct {
3135                 WERROR result;
3136         } out;
3137
3138 };
3139
3140
3141 struct spoolss_FindNextPrinterChangeNotification {
3142         struct {
3143                 WERROR result;
3144         } out;
3145
3146 };
3147
3148
3149 struct spoolss_FindClosePrinterNotify {
3150         struct {
3151                 struct policy_handle *handle;/* [ref] */
3152         } in;
3153
3154         struct {
3155                 WERROR result;
3156         } out;
3157
3158 };
3159
3160
3161 struct spoolss_RouterFindFirstPrinterChangeNotificationOld {
3162         struct {
3163                 WERROR result;
3164         } out;
3165
3166 };
3167
3168
3169 struct spoolss_ReplyOpenPrinter {
3170         struct {
3171                 const char *server_name;/* [charset(UTF16)] */
3172                 uint32_t printer_local;
3173                 enum winreg_Type type;
3174                 uint32_t bufsize;/* [range(0,512)] */
3175                 uint8_t *buffer;/* [unique,size_is(bufsize)] */
3176         } in;
3177
3178         struct {
3179                 struct policy_handle *handle;/* [ref] */
3180                 WERROR result;
3181         } out;
3182
3183 };
3184
3185
3186 struct spoolss_RouterReplyPrinter {
3187         struct {
3188                 struct policy_handle *handle;/* [ref] */
3189                 uint32_t flags;
3190                 uint32_t bufsize;/* [range(0,512)] */
3191                 uint8_t *buffer;/* [unique,size_is(bufsize)] */
3192         } in;
3193
3194         struct {
3195                 WERROR result;
3196         } out;
3197
3198 };
3199
3200
3201 struct spoolss_ReplyClosePrinter {
3202         struct {
3203                 struct policy_handle *handle;/* [ref] */
3204         } in;
3205
3206         struct {
3207                 struct policy_handle *handle;/* [ref] */
3208                 WERROR result;
3209         } out;
3210
3211 };
3212
3213
3214 struct spoolss_AddPortEx {
3215         struct {
3216                 WERROR result;
3217         } out;
3218
3219 };
3220
3221
3222 struct spoolss_RouterFindFirstPrinterChangeNotification {
3223         struct {
3224                 WERROR result;
3225         } out;
3226
3227 };
3228
3229
3230 struct spoolss_SpoolerInit {
3231         struct {
3232                 WERROR result;
3233         } out;
3234
3235 };
3236
3237
3238 struct spoolss_ResetPrinterEx {
3239         struct {
3240                 WERROR result;
3241         } out;
3242
3243 };
3244
3245
3246 struct spoolss_RemoteFindFirstPrinterChangeNotifyEx {
3247         struct {
3248                 struct policy_handle *handle;/* [ref] */
3249                 uint32_t flags;
3250                 uint32_t options;
3251                 const char *local_machine;/* [unique,charset(UTF16)] */
3252                 uint32_t printer_local;
3253                 struct spoolss_NotifyOption *notify_options;/* [unique] */
3254         } in;
3255
3256         struct {
3257                 WERROR result;
3258         } out;
3259
3260 };
3261
3262
3263 struct spoolss_RouterReplyPrinterEx {
3264         struct {
3265                 struct policy_handle *handle;/* [ref] */
3266                 uint32_t color;
3267                 uint32_t flags;
3268                 uint32_t reply_type;
3269                 union spoolss_ReplyPrinterInfo info;/* [switch_is(reply_type)] */
3270         } in;
3271
3272         struct {
3273                 uint32_t *reply_result;/* [ref] */
3274                 WERROR result;
3275         } out;
3276
3277 };
3278
3279
3280 struct spoolss_RouterRefreshPrinterChangeNotify {
3281         struct {
3282                 struct policy_handle *handle;/* [ref] */
3283                 uint32_t change_low;
3284                 struct spoolss_NotifyOption *options;/* [unique] */
3285         } in;
3286
3287         struct {
3288                 struct spoolss_NotifyInfo **info;/* [ref] */
3289                 WERROR result;
3290         } out;
3291
3292 };
3293
3294
3295 struct spoolss_44 {
3296         struct {
3297                 WERROR result;
3298         } out;
3299
3300 };
3301
3302
3303 struct spoolss_OpenPrinterEx {
3304         struct {
3305                 const char *printername;/* [unique,charset(UTF16)] */
3306                 const char *datatype;/* [unique,charset(UTF16)] */
3307                 struct spoolss_DevmodeContainer devmode_ctr;
3308                 uint32_t access_mask;
3309                 uint32_t level;
3310                 union spoolss_UserLevel userlevel;/* [switch_is(level)] */
3311         } in;
3312
3313         struct {
3314                 struct policy_handle *handle;/* [ref] */
3315                 WERROR result;
3316         } out;
3317
3318 };
3319
3320
3321 struct spoolss_AddPrinterEx {
3322         struct {
3323                 const char *server;/* [unique,charset(UTF16)] */
3324                 struct spoolss_SetPrinterInfoCtr *info_ctr;/* [ref] */
3325                 struct spoolss_DevmodeContainer *devmode_ctr;/* [ref] */
3326                 struct sec_desc_buf *secdesc_ctr;/* [ref] */
3327                 struct spoolss_UserLevelCtr *userlevel_ctr;/* [ref] */
3328         } in;
3329
3330         struct {
3331                 struct policy_handle *handle;/* [ref] */
3332                 WERROR result;
3333         } out;
3334
3335 };
3336
3337
3338 struct spoolss_47 {
3339         struct {
3340                 WERROR result;
3341         } out;
3342
3343 };
3344
3345
3346 struct spoolss_EnumPrinterData {
3347         struct {
3348                 struct policy_handle *handle;/* [ref] */
3349                 uint32_t enum_index;
3350                 uint32_t value_offered;
3351                 uint32_t data_offered;
3352         } in;
3353
3354         struct {
3355                 const char *value_name;/* [charset(UTF16),size_is(value_offered/2)] */
3356                 uint32_t *value_needed;/* [ref] */
3357                 enum winreg_Type *type;/* [ref] */
3358                 uint8_t *data;/* [ref,flag(LIBNDR_PRINT_ARRAY_HEX),size_is(data_offered)] */
3359                 uint32_t *data_needed;/* [ref] */
3360                 WERROR result;
3361         } out;
3362
3363 };
3364
3365
3366 struct spoolss_DeletePrinterData {
3367         struct {
3368                 struct policy_handle *handle;/* [ref] */
3369                 const char *value_name;/* [charset(UTF16)] */
3370         } in;
3371
3372         struct {
3373                 WERROR result;
3374         } out;
3375
3376 };
3377
3378
3379 struct spoolss_4a {
3380         struct {
3381                 WERROR result;
3382         } out;
3383
3384 };
3385
3386
3387 struct spoolss_4b {
3388         struct {
3389                 WERROR result;
3390         } out;
3391
3392 };
3393
3394
3395 struct spoolss_4c {
3396         struct {
3397                 WERROR result;
3398         } out;
3399
3400 };
3401
3402
3403 struct spoolss_SetPrinterDataEx {
3404         struct {
3405                 struct policy_handle *handle;/* [ref] */
3406                 const char *key_name;/* [charset(UTF16)] */
3407                 const char *value_name;/* [charset(UTF16)] */
3408                 enum winreg_Type type;
3409                 uint8_t *buffer;/* [ref,size_is(offered)] */
3410                 uint32_t offered;
3411         } in;
3412
3413         struct {
3414                 WERROR result;
3415         } out;
3416
3417 };
3418
3419
3420 struct spoolss_GetPrinterDataEx {
3421         struct {
3422                 struct policy_handle *handle;/* [ref] */
3423                 const char *key_name;/* [charset(UTF16)] */
3424                 const char *value_name;/* [charset(UTF16)] */
3425                 uint32_t offered;
3426         } in;
3427
3428         struct {
3429                 enum winreg_Type *type;/* [ref] */
3430                 uint8_t *buffer;/* [ref,size_is(offered)] */
3431                 uint32_t *needed;/* [ref] */
3432                 WERROR result;
3433         } out;
3434
3435 };
3436
3437
3438 struct _spoolss_EnumPrinterDataEx {
3439         struct {
3440                 struct policy_handle *handle;/* [ref] */
3441                 const char *key_name;/* [charset(UTF16)] */
3442                 uint32_t offered;
3443         } in;
3444
3445         struct {
3446                 DATA_BLOB info;
3447                 uint32_t *needed;/* [ref] */
3448                 uint32_t *count;/* [ref] */
3449                 WERROR result;
3450         } out;
3451
3452 };
3453
3454
3455 struct __spoolss_EnumPrinterDataEx {
3456         struct {
3457                 uint32_t count;
3458         } in;
3459
3460         struct {
3461                 struct spoolss_PrinterEnumValues *info;
3462         } out;
3463
3464 };
3465
3466
3467 struct spoolss_EnumPrinterDataEx {
3468         struct {
3469                 struct policy_handle *handle;/* [ref] */
3470                 const char *key_name;/* [charset(UTF16)] */
3471                 uint32_t offered;
3472         } in;
3473
3474         struct {
3475                 uint32_t *count;/* [ref] */
3476                 struct spoolss_PrinterEnumValues **info;/* [ref,size_is(,*count)] */
3477                 uint32_t *needed;/* [ref] */
3478                 WERROR result;
3479         } out;
3480
3481 };
3482
3483
3484 struct spoolss_EnumPrinterKey {
3485         struct {
3486                 struct policy_handle *handle;/* [ref] */
3487                 const char *key_name;/* [charset(UTF16)] */
3488                 uint32_t offered;
3489         } in;
3490
3491         struct {
3492                 const char ** *key_buffer;/* [subcontext_size(offered),ref,subcontext(0),flag(LIBNDR_FLAG_STR_NULLTERM)] */
3493                 uint32_t *needed;/* [ref] */
3494                 WERROR result;
3495         } out;
3496
3497 };
3498
3499
3500 struct spoolss_DeletePrinterDataEx {
3501         struct {
3502                 struct policy_handle *handle;/* [ref] */
3503                 const char *key_name;/* [charset(UTF16)] */
3504                 const char *value_name;/* [charset(UTF16)] */
3505         } in;
3506
3507         struct {
3508                 WERROR result;
3509         } out;
3510
3511 };
3512
3513
3514 struct spoolss_DeletePrinterKey {
3515         struct {
3516                 struct policy_handle *handle;/* [ref] */
3517                 const char *key_name;/* [charset(UTF16)] */
3518         } in;
3519
3520         struct {
3521                 WERROR result;
3522         } out;
3523
3524 };
3525
3526
3527 struct spoolss_53 {
3528         struct {
3529                 WERROR result;
3530         } out;
3531
3532 };
3533
3534
3535 struct spoolss_DeletePrinterDriverEx {
3536         struct {
3537                 const char *server;/* [unique,charset(UTF16)] */
3538                 const char *architecture;/* [charset(UTF16)] */
3539                 const char *driver;/* [charset(UTF16)] */
3540                 uint32_t delete_flags;
3541                 uint32_t version;
3542         } in;
3543
3544         struct {
3545                 WERROR result;
3546         } out;
3547
3548 };
3549
3550
3551 struct spoolss_55 {
3552         struct {
3553                 WERROR result;
3554         } out;
3555
3556 };
3557
3558
3559 struct spoolss_56 {
3560         struct {
3561                 WERROR result;
3562         } out;
3563
3564 };
3565
3566
3567 struct spoolss_57 {
3568         struct {
3569                 WERROR result;
3570         } out;
3571
3572 };
3573
3574
3575 struct spoolss_XcvData {
3576         struct {
3577                 struct policy_handle *handle;/* [ref] */
3578                 const char *function_name;/* [charset(UTF16)] */
3579                 DATA_BLOB in_data;
3580                 uint32_t _in_data_length;/* [value(r->in.in_data.length)] */
3581                 uint32_t out_data_size;
3582                 uint32_t *status_code;/* [ref] */
3583         } in;
3584
3585         struct {
3586                 uint8_t *out_data;/* [ref,size_is(out_data_size)] */
3587                 uint32_t *needed;/* [ref] */
3588                 uint32_t *status_code;/* [ref] */
3589                 WERROR result;
3590         } out;
3591
3592 };
3593
3594
3595 struct spoolss_AddPrinterDriverEx {
3596         struct {
3597                 const char *servername;/* [unique,charset(UTF16)] */
3598                 struct spoolss_AddDriverInfoCtr *info_ctr;/* [ref] */
3599                 uint32_t flags;
3600         } in;
3601
3602         struct {
3603                 WERROR result;
3604         } out;
3605
3606 };
3607
3608
3609 struct spoolss_5a {
3610         struct {
3611                 WERROR result;
3612         } out;
3613
3614 };
3615
3616
3617 struct spoolss_5b {
3618         struct {
3619                 WERROR result;
3620         } out;
3621
3622 };
3623
3624
3625 struct spoolss_5c {
3626         struct {
3627                 WERROR result;
3628         } out;
3629
3630 };
3631
3632
3633 struct spoolss_5d {
3634         struct {
3635                 WERROR result;
3636         } out;
3637
3638 };
3639
3640
3641 struct spoolss_5e {
3642         struct {
3643                 WERROR result;
3644         } out;
3645
3646 };
3647
3648
3649 struct spoolss_5f {
3650         struct {
3651                 WERROR result;
3652         } out;
3653
3654 };
3655
3656
3657 struct spoolss_60 {
3658         struct {
3659                 WERROR result;
3660         } out;
3661
3662 };
3663
3664
3665 struct spoolss_61 {
3666         struct {
3667                 WERROR result;
3668         } out;
3669
3670 };
3671
3672
3673 struct spoolss_62 {
3674         struct {
3675                 WERROR result;
3676         } out;
3677
3678 };
3679
3680
3681 struct spoolss_63 {
3682         struct {
3683                 WERROR result;
3684         } out;
3685
3686 };
3687
3688
3689 struct spoolss_64 {
3690         struct {
3691                 WERROR result;
3692         } out;
3693
3694 };
3695
3696
3697 struct spoolss_65 {
3698         struct {
3699                 WERROR result;
3700         } out;
3701
3702 };
3703
3704
3705 struct spoolss_GetCorePrinterDrivers {
3706         struct {
3707                 const char *servername;/* [unique,charset(UTF16)] */
3708                 const char *architecture;/* [ref,charset(UTF16)] */
3709                 uint32_t core_driver_size;
3710                 const char *core_driver_dependencies;/* [ref,charset(UTF16),size_is(core_driver_size)] */
3711                 uint32_t core_printer_driver_count;
3712         } in;
3713
3714         struct {
3715                 struct spoolss_CorePrinterDriver *core_printer_drivers;/* [ref,size_is(core_printer_driver_count)] */
3716                 WERROR result;
3717         } out;
3718
3719 };
3720
3721
3722 struct spoolss_67 {
3723         struct {
3724                 WERROR result;
3725         } out;
3726
3727 };
3728
3729
3730 struct spoolss_GetPrinterDriverPackagePath {
3731         struct {
3732                 const char *servername;/* [unique,charset(UTF16)] */
3733                 const char *architecture;/* [ref,charset(UTF16)] */
3734                 const char *language;/* [unique,charset(UTF16)] */
3735                 const char *package_id;/* [ref,charset(UTF16)] */
3736                 uint32_t driver_package_cab_size;
3737                 const char *driver_package_cab;/* [unique,charset(UTF16),size_is(driver_package_cab_size)] */
3738         } in;
3739
3740         struct {
3741                 uint32_t *required;/* [ref] */
3742                 const char *driver_package_cab;/* [unique,charset(UTF16),size_is(driver_package_cab_size)] */
3743                 WERROR result;
3744         } out;
3745
3746 };
3747
3748
3749 struct spoolss_69 {
3750         struct {
3751                 WERROR result;
3752         } out;
3753
3754 };
3755
3756
3757 struct spoolss_6a {
3758         struct {
3759                 WERROR result;
3760         } out;
3761
3762 };
3763
3764
3765 struct spoolss_6b {
3766         struct {
3767                 WERROR result;
3768         } out;
3769
3770 };
3771
3772
3773 struct spoolss_6c {
3774         struct {
3775                 WERROR result;
3776         } out;
3777
3778 };
3779
3780
3781 struct spoolss_6d {
3782         struct {
3783                 WERROR result;
3784         } out;
3785
3786 };
3787
3788 #endif /* _HEADER_spoolss */