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
2057 struct _spoolss_EnumPrinters {
2058         struct {
2059                 uint32_t flags;
2060                 const char *server;/* [unique,charset(UTF16)] */
2061                 uint32_t level;
2062                 DATA_BLOB *buffer;/* [unique] */
2063                 uint32_t offered;
2064         } in;
2065
2066         struct {
2067                 DATA_BLOB *info;/* [unique] */
2068                 uint32_t *needed;/* [ref] */
2069                 uint32_t *count;/* [ref] */
2070                 WERROR result;
2071         } out;
2072
2073 };
2074
2075
2076 struct __spoolss_EnumPrinters {
2077         struct {
2078                 uint32_t level;
2079                 uint32_t count;
2080         } in;
2081
2082         struct {
2083                 union spoolss_PrinterInfo *info;/* [switch_is(level)] */
2084         } out;
2085
2086 };
2087
2088
2089 struct spoolss_EnumPrinters {
2090         struct {
2091                 uint32_t flags;
2092                 const char *server;/* [unique,charset(UTF16)] */
2093                 uint32_t level;
2094                 DATA_BLOB *buffer;/* [unique] */
2095                 uint32_t offered;
2096         } in;
2097
2098         struct {
2099                 uint32_t *count;/* [ref] */
2100                 union spoolss_PrinterInfo **info;/* [ref,switch_is(level),size_is(,*count)] */
2101                 uint32_t *needed;/* [ref] */
2102                 WERROR result;
2103         } out;
2104
2105 };
2106
2107
2108 struct spoolss_OpenPrinter {
2109         struct {
2110                 const char *printername;/* [unique,charset(UTF16)] */
2111                 const char *datatype;/* [unique,charset(UTF16)] */
2112                 struct spoolss_DevmodeContainer devmode_ctr;
2113                 uint32_t access_mask;
2114         } in;
2115
2116         struct {
2117                 struct policy_handle *handle;/* [ref] */
2118                 WERROR result;
2119         } out;
2120
2121 };
2122
2123
2124 struct spoolss_SetJob {
2125         struct {
2126                 struct policy_handle *handle;/* [ref] */
2127                 uint32_t job_id;
2128                 struct spoolss_JobInfoContainer *ctr;/* [unique] */
2129                 enum spoolss_JobControl command;
2130         } in;
2131
2132         struct {
2133                 WERROR result;
2134         } out;
2135
2136 };
2137
2138
2139 struct spoolss_GetJob {
2140         struct {
2141                 struct policy_handle *handle;/* [ref] */
2142                 uint32_t job_id;
2143                 uint32_t level;
2144                 DATA_BLOB *buffer;/* [unique] */
2145                 uint32_t offered;
2146         } in;
2147
2148         struct {
2149                 union spoolss_JobInfo *info;/* [unique,subcontext_size(offered),subcontext(4),switch_is(level)] */
2150                 uint32_t *needed;/* [ref] */
2151                 WERROR result;
2152         } out;
2153
2154 };
2155
2156
2157 struct _spoolss_EnumJobs {
2158         struct {
2159                 struct policy_handle *handle;/* [ref] */
2160                 uint32_t firstjob;
2161                 uint32_t numjobs;
2162                 uint32_t level;
2163                 DATA_BLOB *buffer;/* [unique] */
2164                 uint32_t offered;
2165         } in;
2166
2167         struct {
2168                 DATA_BLOB *info;/* [unique] */
2169                 uint32_t *needed;/* [ref] */
2170                 uint32_t *count;/* [ref] */
2171                 WERROR result;
2172         } out;
2173
2174 };
2175
2176
2177 struct __spoolss_EnumJobs {
2178         struct {
2179                 uint32_t level;
2180                 uint32_t count;
2181         } in;
2182
2183         struct {
2184                 union spoolss_JobInfo *info;/* [switch_is(level)] */
2185         } out;
2186
2187 };
2188
2189
2190 struct spoolss_EnumJobs {
2191         struct {
2192                 struct policy_handle *handle;/* [ref] */
2193                 uint32_t firstjob;
2194                 uint32_t numjobs;
2195                 uint32_t level;
2196                 DATA_BLOB *buffer;/* [unique] */
2197                 uint32_t offered;
2198         } in;
2199
2200         struct {
2201                 uint32_t *count;/* [ref] */
2202                 union spoolss_JobInfo **info;/* [ref,switch_is(level),size_is(,*count)] */
2203                 uint32_t *needed;/* [ref] */
2204                 WERROR result;
2205         } out;
2206
2207 };
2208
2209
2210 struct spoolss_AddPrinter {
2211         struct {
2212                 const char *server;/* [unique,charset(UTF16)] */
2213                 struct spoolss_SetPrinterInfoCtr *info_ctr;/* [ref] */
2214                 struct spoolss_DevmodeContainer *devmode_ctr;/* [ref] */
2215                 struct sec_desc_buf *secdesc_ctr;/* [ref] */
2216         } in;
2217
2218         struct {
2219                 struct policy_handle *handle;/* [ref] */
2220                 WERROR result;
2221         } out;
2222
2223 };
2224
2225
2226 struct spoolss_DeletePrinter {
2227         struct {
2228                 struct policy_handle *handle;/* [ref] */
2229         } in;
2230
2231         struct {
2232                 WERROR result;
2233         } out;
2234
2235 };
2236
2237
2238 struct spoolss_SetPrinter {
2239         struct {
2240                 struct policy_handle *handle;/* [ref] */
2241                 struct spoolss_SetPrinterInfoCtr *info_ctr;/* [ref] */
2242                 struct spoolss_DevmodeContainer *devmode_ctr;/* [ref] */
2243                 struct sec_desc_buf *secdesc_ctr;/* [ref] */
2244                 enum spoolss_PrinterControl command;
2245         } in;
2246
2247         struct {
2248                 WERROR result;
2249         } out;
2250
2251 };
2252
2253
2254 struct spoolss_GetPrinter {
2255         struct {
2256                 struct policy_handle *handle;/* [ref] */
2257                 uint32_t level;
2258                 DATA_BLOB *buffer;/* [unique] */
2259                 uint32_t offered;
2260         } in;
2261
2262         struct {
2263                 union spoolss_PrinterInfo *info;/* [unique,subcontext_size(offered),subcontext(4),switch_is(level)] */
2264                 uint32_t *needed;/* [ref] */
2265                 WERROR result;
2266         } out;
2267
2268 };
2269
2270
2271 struct spoolss_AddPrinterDriver {
2272         struct {
2273                 const char *servername;/* [unique,charset(UTF16)] */
2274                 struct spoolss_AddDriverInfoCtr *info_ctr;/* [ref] */
2275         } in;
2276
2277         struct {
2278                 WERROR result;
2279         } out;
2280
2281 };
2282
2283
2284 struct _spoolss_EnumPrinterDrivers {
2285         struct {
2286                 const char *server;/* [unique,charset(UTF16)] */
2287                 const char *environment;/* [unique,charset(UTF16)] */
2288                 uint32_t level;
2289                 DATA_BLOB *buffer;/* [unique] */
2290                 uint32_t offered;
2291         } in;
2292
2293         struct {
2294                 DATA_BLOB *info;/* [unique] */
2295                 uint32_t *needed;/* [ref] */
2296                 uint32_t *count;/* [ref] */
2297                 WERROR result;
2298         } out;
2299
2300 };
2301
2302
2303 struct __spoolss_EnumPrinterDrivers {
2304         struct {
2305                 uint32_t level;
2306                 uint32_t count;
2307         } in;
2308
2309         struct {
2310                 union spoolss_DriverInfo *info;/* [switch_is(level)] */
2311         } out;
2312
2313 };
2314
2315
2316 struct spoolss_EnumPrinterDrivers {
2317         struct {
2318                 const char *server;/* [unique,charset(UTF16)] */
2319                 const char *environment;/* [unique,charset(UTF16)] */
2320                 uint32_t level;
2321                 DATA_BLOB *buffer;/* [unique] */
2322                 uint32_t offered;
2323         } in;
2324
2325         struct {
2326                 uint32_t *count;/* [ref] */
2327                 union spoolss_DriverInfo **info;/* [ref,switch_is(level),size_is(,*count)] */
2328                 uint32_t *needed;/* [ref] */
2329                 WERROR result;
2330         } out;
2331
2332 };
2333
2334
2335 struct spoolss_GetPrinterDriver {
2336         struct {
2337                 struct policy_handle *handle;/* [ref] */
2338                 const char *architecture;/* [unique,charset(UTF16)] */
2339                 uint32_t level;
2340                 DATA_BLOB *buffer;/* [unique] */
2341                 uint32_t offered;
2342         } in;
2343
2344         struct {
2345                 union spoolss_DriverInfo *info;/* [unique,subcontext_size(offered),subcontext(4),switch_is(level)] */
2346                 uint32_t *needed;/* [ref] */
2347                 WERROR result;
2348         } out;
2349
2350 };
2351
2352
2353 struct spoolss_GetPrinterDriverDirectory {
2354         struct {
2355                 const char *server;/* [unique,charset(UTF16)] */
2356                 const char *environment;/* [unique,charset(UTF16)] */
2357                 uint32_t level;
2358                 DATA_BLOB *buffer;/* [unique] */
2359                 uint32_t offered;
2360         } in;
2361
2362         struct {
2363                 union spoolss_DriverDirectoryInfo *info;/* [unique,subcontext_size(offered),subcontext(4),switch_is(level)] */
2364                 uint32_t *needed;/* [ref] */
2365                 WERROR result;
2366         } out;
2367
2368 };
2369
2370
2371 struct spoolss_DeletePrinterDriver {
2372         struct {
2373                 const char *server;/* [unique,charset(UTF16)] */
2374                 const char *architecture;/* [charset(UTF16)] */
2375                 const char *driver;/* [charset(UTF16)] */
2376         } in;
2377
2378         struct {
2379                 WERROR result;
2380         } out;
2381
2382 };
2383
2384
2385 struct spoolss_AddPrintProcessor {
2386         struct {
2387                 const char *server;/* [unique,charset(UTF16)] */
2388                 const char *architecture;/* [charset(UTF16)] */
2389                 const char *path_name;/* [charset(UTF16)] */
2390                 const char *print_processor_name;/* [charset(UTF16)] */
2391         } in;
2392
2393         struct {
2394                 WERROR result;
2395         } out;
2396
2397 };
2398
2399
2400 struct _spoolss_EnumPrintProcessors {
2401         struct {
2402                 const char *servername;/* [unique,charset(UTF16)] */
2403                 const char *environment;/* [unique,charset(UTF16)] */
2404                 uint32_t level;
2405                 DATA_BLOB *buffer;/* [unique] */
2406                 uint32_t offered;
2407         } in;
2408
2409         struct {
2410                 DATA_BLOB *info;/* [unique] */
2411                 uint32_t *needed;/* [ref] */
2412                 uint32_t *count;/* [ref] */
2413                 WERROR result;
2414         } out;
2415
2416 };
2417
2418
2419 struct __spoolss_EnumPrintProcessors {
2420         struct {
2421                 uint32_t level;
2422                 uint32_t count;
2423         } in;
2424
2425         struct {
2426                 union spoolss_PrintProcessorInfo *info;/* [switch_is(level)] */
2427         } out;
2428
2429 };
2430
2431
2432 struct spoolss_EnumPrintProcessors {
2433         struct {
2434                 const char *servername;/* [unique,charset(UTF16)] */
2435                 const char *environment;/* [unique,charset(UTF16)] */
2436                 uint32_t level;
2437                 DATA_BLOB *buffer;/* [unique] */
2438                 uint32_t offered;
2439         } in;
2440
2441         struct {
2442                 uint32_t *count;/* [ref] */
2443                 union spoolss_PrintProcessorInfo **info;/* [ref,switch_is(level),size_is(,*count)] */
2444                 uint32_t *needed;/* [ref] */
2445                 WERROR result;
2446         } out;
2447
2448 };
2449
2450
2451 struct spoolss_GetPrintProcessorDirectory {
2452         struct {
2453                 const char *server;/* [unique,charset(UTF16)] */
2454                 const char *environment;/* [unique,charset(UTF16)] */
2455                 uint32_t level;
2456                 DATA_BLOB *buffer;/* [unique] */
2457                 uint32_t offered;
2458         } in;
2459
2460         struct {
2461                 union spoolss_PrintProcessorDirectoryInfo *info;/* [unique,subcontext_size(offered),subcontext(4),switch_is(level)] */
2462                 uint32_t *needed;/* [ref] */
2463                 WERROR result;
2464         } out;
2465
2466 };
2467
2468
2469 struct spoolss_StartDocPrinter {
2470         struct {
2471                 struct policy_handle *handle;/* [ref] */
2472                 uint32_t level;
2473                 union spoolss_DocumentInfo info;/* [switch_is(level)] */
2474         } in;
2475
2476         struct {
2477                 uint32_t *job_id;/* [ref] */
2478                 WERROR result;
2479         } out;
2480
2481 };
2482
2483
2484 struct spoolss_StartPagePrinter {
2485         struct {
2486                 struct policy_handle *handle;/* [ref] */
2487         } in;
2488
2489         struct {
2490                 WERROR result;
2491         } out;
2492
2493 };
2494
2495
2496 struct spoolss_WritePrinter {
2497         struct {
2498                 struct policy_handle *handle;/* [ref] */
2499                 DATA_BLOB data;
2500                 uint32_t _data_size;/* [value(r->in.data.length)] */
2501         } in;
2502
2503         struct {
2504                 uint32_t *num_written;/* [ref] */
2505                 WERROR result;
2506         } out;
2507
2508 };
2509
2510
2511 struct spoolss_EndPagePrinter {
2512         struct {
2513                 struct policy_handle *handle;/* [ref] */
2514         } in;
2515
2516         struct {
2517                 WERROR result;
2518         } out;
2519
2520 };
2521
2522
2523 struct spoolss_AbortPrinter {
2524         struct {
2525                 struct policy_handle *handle;/* [ref] */
2526         } in;
2527
2528         struct {
2529                 WERROR result;
2530         } out;
2531
2532 };
2533
2534
2535 struct spoolss_ReadPrinter {
2536         struct {
2537                 struct policy_handle *handle;/* [ref] */
2538                 uint32_t data_size;
2539         } in;
2540
2541         struct {
2542                 uint8_t *data;/* [ref,size_is(data_size)] */
2543                 uint32_t *_data_size;/* [ref] */
2544                 WERROR result;
2545         } out;
2546
2547 };
2548
2549
2550 struct spoolss_EndDocPrinter {
2551         struct {
2552                 struct policy_handle *handle;/* [ref] */
2553         } in;
2554
2555         struct {
2556                 WERROR result;
2557         } out;
2558
2559 };
2560
2561
2562 struct spoolss_AddJob {
2563         struct {
2564                 struct policy_handle *handle;/* [ref] */
2565                 uint32_t level;
2566                 uint32_t offered;
2567                 uint8_t *buffer;/* [unique,size_is(offered)] */
2568         } in;
2569
2570         struct {
2571                 uint32_t *needed;/* [ref] */
2572                 uint8_t *buffer;/* [unique,size_is(offered)] */
2573                 WERROR result;
2574         } out;
2575
2576 };
2577
2578
2579 struct spoolss_ScheduleJob {
2580         struct {
2581                 struct policy_handle *handle;/* [ref] */
2582                 uint32_t jobid;
2583         } in;
2584
2585         struct {
2586                 WERROR result;
2587         } out;
2588
2589 };
2590
2591
2592 struct _spoolss_GetPrinterData {
2593         struct {
2594                 struct policy_handle *handle;/* [ref] */
2595                 const char *value_name;/* [charset(UTF16)] */
2596                 uint32_t offered;
2597         } in;
2598
2599         struct {
2600                 enum winreg_Type *type;/* [ref] */
2601                 DATA_BLOB *data;/* [ref] */
2602                 uint32_t *needed;/* [ref] */
2603                 WERROR result;
2604         } out;
2605
2606 };
2607
2608
2609 struct __spoolss_GetPrinterData {
2610         struct {
2611                 enum winreg_Type type;
2612         } in;
2613
2614         struct {
2615                 union spoolss_PrinterData *data;/* [ref,switch_is(type)] */
2616         } out;
2617
2618 };
2619
2620
2621 struct spoolss_GetPrinterData {
2622         struct {
2623                 struct policy_handle *handle;/* [ref] */
2624                 const char *value_name;/* [charset(UTF16)] */
2625                 uint32_t offered;
2626         } in;
2627
2628         struct {
2629                 enum winreg_Type *type;/* [ref] */
2630                 union spoolss_PrinterData *data;/* [subcontext_size(offered),ref,subcontext(4),switch_is(*type)] */
2631                 uint32_t *needed;/* [ref] */
2632                 WERROR result;
2633         } out;
2634
2635 };
2636
2637
2638 struct _spoolss_SetPrinterData {
2639         struct {
2640                 struct policy_handle *handle;/* [ref] */
2641                 const char *value_name;/* [charset(UTF16)] */
2642                 enum winreg_Type type;
2643                 DATA_BLOB data;
2644                 uint32_t _offered;
2645         } in;
2646
2647         struct {
2648                 WERROR result;
2649         } out;
2650
2651 };
2652
2653
2654 struct __spoolss_SetPrinterData {
2655         struct {
2656                 enum winreg_Type type;
2657         } in;
2658
2659         struct {
2660                 union spoolss_PrinterData *data;/* [ref,switch_is(type)] */
2661         } out;
2662
2663 };
2664
2665
2666 struct spoolss_SetPrinterData {
2667         struct {
2668                 struct policy_handle *handle;/* [ref] */
2669                 const char *value_name;/* [charset(UTF16)] */
2670                 enum winreg_Type type;
2671                 union spoolss_PrinterData data;/* [subcontext(4),switch_is(type)] */
2672                 uint32_t _offered;/* [value(ndr_size_spoolss_PrinterData(&data,type,ndr->iconv_convenience,flags))] */
2673         } in;
2674
2675         struct {
2676                 WERROR result;
2677         } out;
2678
2679 };
2680
2681
2682 struct spoolss_WaitForPrinterChange {
2683         struct {
2684                 WERROR result;
2685         } out;
2686
2687 };
2688
2689
2690 struct spoolss_ClosePrinter {
2691         struct {
2692                 struct policy_handle *handle;/* [ref] */
2693         } in;
2694
2695         struct {
2696                 struct policy_handle *handle;/* [ref] */
2697                 WERROR result;
2698         } out;
2699
2700 };
2701
2702
2703 struct spoolss_AddForm {
2704         struct {
2705                 struct policy_handle *handle;/* [ref] */
2706                 uint32_t level;
2707                 union spoolss_AddFormInfo info;/* [switch_is(level)] */
2708         } in;
2709
2710         struct {
2711                 WERROR result;
2712         } out;
2713
2714 };
2715
2716
2717 struct spoolss_DeleteForm {
2718         struct {
2719                 struct policy_handle *handle;/* [ref] */
2720                 const char *form_name;/* [charset(UTF16)] */
2721         } in;
2722
2723         struct {
2724                 WERROR result;
2725         } out;
2726
2727 };
2728
2729
2730 struct spoolss_GetForm {
2731         struct {
2732                 struct policy_handle *handle;/* [ref] */
2733                 const char *form_name;/* [charset(UTF16)] */
2734                 uint32_t level;
2735                 DATA_BLOB *buffer;/* [unique] */
2736                 uint32_t offered;
2737         } in;
2738
2739         struct {
2740                 union spoolss_FormInfo *info;/* [unique,subcontext_size(offered),subcontext(4),switch_is(level)] */
2741                 uint32_t *needed;/* [ref] */
2742                 WERROR result;
2743         } out;
2744
2745 };
2746
2747
2748 struct spoolss_SetForm {
2749         struct {
2750                 struct policy_handle *handle;/* [ref] */
2751                 const char *form_name;/* [charset(UTF16)] */
2752                 uint32_t level;
2753                 union spoolss_AddFormInfo info;/* [switch_is(level)] */
2754         } in;
2755
2756         struct {
2757                 WERROR result;
2758         } out;
2759
2760 };
2761
2762
2763 struct _spoolss_EnumForms {
2764         struct {
2765                 struct policy_handle *handle;/* [ref] */
2766                 uint32_t level;
2767                 DATA_BLOB *buffer;/* [unique] */
2768                 uint32_t offered;
2769         } in;
2770
2771         struct {
2772                 DATA_BLOB *info;/* [unique] */
2773                 uint32_t *needed;/* [ref] */
2774                 uint32_t *count;/* [ref] */
2775                 WERROR result;
2776         } out;
2777
2778 };
2779
2780
2781 struct __spoolss_EnumForms {
2782         struct {
2783                 uint32_t level;
2784                 uint32_t count;
2785         } in;
2786
2787         struct {
2788                 union spoolss_FormInfo *info;/* [switch_is(level)] */
2789         } out;
2790
2791 };
2792
2793
2794 struct spoolss_EnumForms {
2795         struct {
2796                 struct policy_handle *handle;/* [ref] */
2797                 uint32_t level;
2798                 DATA_BLOB *buffer;/* [unique] */
2799                 uint32_t offered;
2800         } in;
2801
2802         struct {
2803                 uint32_t *count;/* [ref] */
2804                 union spoolss_FormInfo **info;/* [ref,switch_is(level),size_is(,*count)] */
2805                 uint32_t *needed;/* [ref] */
2806                 WERROR result;
2807         } out;
2808
2809 };
2810
2811
2812 struct _spoolss_EnumPorts {
2813         struct {
2814                 const char *servername;/* [unique,charset(UTF16)] */
2815                 uint32_t level;
2816                 DATA_BLOB *buffer;/* [unique] */
2817                 uint32_t offered;
2818         } in;
2819
2820         struct {
2821                 DATA_BLOB *info;/* [unique] */
2822                 uint32_t *needed;/* [ref] */
2823                 uint32_t *count;/* [ref] */
2824                 WERROR result;
2825         } out;
2826
2827 };
2828
2829
2830 struct __spoolss_EnumPorts {
2831         struct {
2832                 uint32_t level;
2833                 uint32_t count;
2834         } in;
2835
2836         struct {
2837                 union spoolss_PortInfo *info;/* [switch_is(level)] */
2838         } out;
2839
2840 };
2841
2842
2843 struct spoolss_EnumPorts {
2844         struct {
2845                 const char *servername;/* [unique,charset(UTF16)] */
2846                 uint32_t level;
2847                 DATA_BLOB *buffer;/* [unique] */
2848                 uint32_t offered;
2849         } in;
2850
2851         struct {
2852                 uint32_t *count;/* [ref] */
2853                 union spoolss_PortInfo **info;/* [ref,switch_is(level),size_is(,*count)] */
2854                 uint32_t *needed;/* [ref] */
2855                 WERROR result;
2856         } out;
2857
2858 };
2859
2860
2861 struct _spoolss_EnumMonitors {
2862         struct {
2863                 const char *servername;/* [unique,charset(UTF16)] */
2864                 uint32_t level;
2865                 DATA_BLOB *buffer;/* [unique] */
2866                 uint32_t offered;
2867         } in;
2868
2869         struct {
2870                 DATA_BLOB *info;/* [unique] */
2871                 uint32_t *needed;/* [ref] */
2872                 uint32_t *count;/* [ref] */
2873                 WERROR result;
2874         } out;
2875
2876 };
2877
2878
2879 struct __spoolss_EnumMonitors {
2880         struct {
2881                 uint32_t level;
2882                 uint32_t count;
2883         } in;
2884
2885         struct {
2886                 union spoolss_MonitorInfo *info;/* [switch_is(level)] */
2887         } out;
2888
2889 };
2890
2891
2892 struct spoolss_EnumMonitors {
2893         struct {
2894                 const char *servername;/* [unique,charset(UTF16)] */
2895                 uint32_t level;
2896                 DATA_BLOB *buffer;/* [unique] */
2897                 uint32_t offered;
2898         } in;
2899
2900         struct {
2901                 uint32_t *count;/* [ref] */
2902                 union spoolss_MonitorInfo **info;/* [ref,switch_is(level),size_is(,*count)] */
2903                 uint32_t *needed;/* [ref] */
2904                 WERROR result;
2905         } out;
2906
2907 };
2908
2909
2910 struct spoolss_AddPort {
2911         struct {
2912                 const char *server_name;/* [unique,charset(UTF16)] */
2913                 uint32_t unknown;
2914                 const char *monitor_name;/* [charset(UTF16)] */
2915         } in;
2916
2917         struct {
2918                 WERROR result;
2919         } out;
2920
2921 };
2922
2923
2924 struct spoolss_ConfigurePort {
2925         struct {
2926                 WERROR result;
2927         } out;
2928
2929 };
2930
2931
2932 struct spoolss_DeletePort {
2933         struct {
2934                 WERROR result;
2935         } out;
2936
2937 };
2938
2939
2940 struct spoolss_CreatePrinterIC {
2941         struct {
2942                 struct policy_handle *handle;/* [ref] */
2943                 struct spoolss_DevmodeContainer *devmode_ctr;/* [ref] */
2944         } in;
2945
2946         struct {
2947                 struct policy_handle *gdi_handle;/* [ref] */
2948                 WERROR result;
2949         } out;
2950
2951 };
2952
2953
2954 struct spoolss_PlayGDIScriptOnPrinterIC {
2955         struct {
2956                 WERROR result;
2957         } out;
2958
2959 };
2960
2961
2962 struct spoolss_DeletePrinterIC {
2963         struct {
2964                 struct policy_handle *gdi_handle;/* [ref] */
2965         } in;
2966
2967         struct {
2968                 struct policy_handle *gdi_handle;/* [ref] */
2969                 WERROR result;
2970         } out;
2971
2972 };
2973
2974
2975 struct spoolss_AddPrinterConnection {
2976         struct {
2977                 WERROR result;
2978         } out;
2979
2980 };
2981
2982
2983 struct spoolss_DeletePrinterConnection {
2984         struct {
2985                 WERROR result;
2986         } out;
2987
2988 };
2989
2990
2991 struct spoolss_PrinterMessageBox {
2992         struct {
2993                 WERROR result;
2994         } out;
2995
2996 };
2997
2998
2999 struct spoolss_AddMonitor {
3000         struct {
3001                 WERROR result;
3002         } out;
3003
3004 };
3005
3006
3007 struct spoolss_DeleteMonitor {
3008         struct {
3009                 WERROR result;
3010         } out;
3011
3012 };
3013
3014
3015 struct spoolss_DeletePrintProcessor {
3016         struct {
3017                 WERROR result;
3018         } out;
3019
3020 };
3021
3022
3023 struct spoolss_AddPrintProvidor {
3024         struct {
3025                 WERROR result;
3026         } out;
3027
3028 };
3029
3030
3031 struct spoolss_DeletePrintProvidor {
3032         struct {
3033                 WERROR result;
3034         } out;
3035
3036 };
3037
3038
3039 struct _spoolss_EnumPrintProcDataTypes {
3040         struct {
3041                 const char *servername;/* [unique,charset(UTF16)] */
3042                 const char *print_processor_name;/* [unique,charset(UTF16)] */
3043                 uint32_t level;
3044                 DATA_BLOB *buffer;/* [unique] */
3045                 uint32_t offered;
3046         } in;
3047
3048         struct {
3049                 DATA_BLOB *info;/* [unique] */
3050                 uint32_t *needed;/* [ref] */
3051                 uint32_t *count;/* [ref] */
3052                 WERROR result;
3053         } out;
3054
3055 };
3056
3057
3058 struct __spoolss_EnumPrintProcDataTypes {
3059         struct {
3060                 uint32_t level;
3061                 uint32_t count;
3062         } in;
3063
3064         struct {
3065                 union spoolss_PrintProcDataTypesInfo *info;/* [switch_is(level)] */
3066         } out;
3067
3068 };
3069
3070
3071 struct spoolss_EnumPrintProcDataTypes {
3072         struct {
3073                 const char *servername;/* [unique,charset(UTF16)] */
3074                 const char *print_processor_name;/* [unique,charset(UTF16)] */
3075                 uint32_t level;
3076                 DATA_BLOB *buffer;/* [unique] */
3077                 uint32_t offered;
3078         } in;
3079
3080         struct {
3081                 uint32_t *count;/* [ref] */
3082                 union spoolss_PrintProcDataTypesInfo **info;/* [ref,switch_is(level),size_is(,*count)] */
3083                 uint32_t *needed;/* [ref] */
3084                 WERROR result;
3085         } out;
3086
3087 };
3088
3089
3090 struct spoolss_ResetPrinter {
3091         struct {
3092                 struct policy_handle *handle;/* [ref] */
3093                 const char *data_type;/* [unique,charset(UTF16)] */
3094                 struct spoolss_DevmodeContainer *devmode_ctr;/* [ref] */
3095         } in;
3096
3097         struct {
3098                 WERROR result;
3099         } out;
3100
3101 };
3102
3103
3104 struct spoolss_GetPrinterDriver2 {
3105         struct {
3106                 struct policy_handle *handle;/* [ref] */
3107                 const char *architecture;/* [unique,charset(UTF16)] */
3108                 uint32_t level;
3109                 DATA_BLOB *buffer;/* [unique] */
3110                 uint32_t offered;
3111                 uint32_t client_major_version;
3112                 uint32_t client_minor_version;
3113         } in;
3114
3115         struct {
3116                 union spoolss_DriverInfo *info;/* [unique,subcontext_size(offered),subcontext(4),switch_is(level)] */
3117                 uint32_t *needed;/* [ref] */
3118                 uint32_t *server_major_version;/* [ref] */
3119                 uint32_t *server_minor_version;/* [ref] */
3120                 WERROR result;
3121         } out;
3122
3123 };
3124
3125
3126 struct spoolss_FindFirstPrinterChangeNotification {
3127         struct {
3128                 WERROR result;
3129         } out;
3130
3131 };
3132
3133
3134 struct spoolss_FindNextPrinterChangeNotification {
3135         struct {
3136                 WERROR result;
3137         } out;
3138
3139 };
3140
3141
3142 struct spoolss_FindClosePrinterNotify {
3143         struct {
3144                 struct policy_handle *handle;/* [ref] */
3145         } in;
3146
3147         struct {
3148                 WERROR result;
3149         } out;
3150
3151 };
3152
3153
3154 struct spoolss_RouterFindFirstPrinterChangeNotificationOld {
3155         struct {
3156                 WERROR result;
3157         } out;
3158
3159 };
3160
3161
3162 struct spoolss_ReplyOpenPrinter {
3163         struct {
3164                 const char *server_name;/* [charset(UTF16)] */
3165                 uint32_t printer_local;
3166                 enum winreg_Type type;
3167                 uint32_t bufsize;/* [range(0,512)] */
3168                 uint8_t *buffer;/* [unique,size_is(bufsize)] */
3169         } in;
3170
3171         struct {
3172                 struct policy_handle *handle;/* [ref] */
3173                 WERROR result;
3174         } out;
3175
3176 };
3177
3178
3179 struct spoolss_RouterReplyPrinter {
3180         struct {
3181                 struct policy_handle *handle;/* [ref] */
3182                 uint32_t flags;
3183                 uint32_t bufsize;/* [range(0,512)] */
3184                 uint8_t *buffer;/* [unique,size_is(bufsize)] */
3185         } in;
3186
3187         struct {
3188                 WERROR result;
3189         } out;
3190
3191 };
3192
3193
3194 struct spoolss_ReplyClosePrinter {
3195         struct {
3196                 struct policy_handle *handle;/* [ref] */
3197         } in;
3198
3199         struct {
3200                 struct policy_handle *handle;/* [ref] */
3201                 WERROR result;
3202         } out;
3203
3204 };
3205
3206
3207 struct spoolss_AddPortEx {
3208         struct {
3209                 WERROR result;
3210         } out;
3211
3212 };
3213
3214
3215 struct spoolss_RouterFindFirstPrinterChangeNotification {
3216         struct {
3217                 WERROR result;
3218         } out;
3219
3220 };
3221
3222
3223 struct spoolss_SpoolerInit {
3224         struct {
3225                 WERROR result;
3226         } out;
3227
3228 };
3229
3230
3231 struct spoolss_ResetPrinterEx {
3232         struct {
3233                 WERROR result;
3234         } out;
3235
3236 };
3237
3238
3239 struct spoolss_RemoteFindFirstPrinterChangeNotifyEx {
3240         struct {
3241                 struct policy_handle *handle;/* [ref] */
3242                 uint32_t flags;
3243                 uint32_t options;
3244                 const char *local_machine;/* [unique,charset(UTF16)] */
3245                 uint32_t printer_local;
3246                 struct spoolss_NotifyOption *notify_options;/* [unique] */
3247         } in;
3248
3249         struct {
3250                 WERROR result;
3251         } out;
3252
3253 };
3254
3255
3256 struct spoolss_RouterReplyPrinterEx {
3257         struct {
3258                 struct policy_handle *handle;/* [ref] */
3259                 uint32_t color;
3260                 uint32_t flags;
3261                 uint32_t reply_type;
3262                 union spoolss_ReplyPrinterInfo info;/* [switch_is(reply_type)] */
3263         } in;
3264
3265         struct {
3266                 uint32_t *reply_result;/* [ref] */
3267                 WERROR result;
3268         } out;
3269
3270 };
3271
3272
3273 struct spoolss_RouterRefreshPrinterChangeNotify {
3274         struct {
3275                 struct policy_handle *handle;/* [ref] */
3276                 uint32_t change_low;
3277                 struct spoolss_NotifyOption *options;/* [unique] */
3278         } in;
3279
3280         struct {
3281                 struct spoolss_NotifyInfo **info;/* [ref] */
3282                 WERROR result;
3283         } out;
3284
3285 };
3286
3287
3288 struct spoolss_44 {
3289         struct {
3290                 WERROR result;
3291         } out;
3292
3293 };
3294
3295
3296 struct spoolss_OpenPrinterEx {
3297         struct {
3298                 const char *printername;/* [unique,charset(UTF16)] */
3299                 const char *datatype;/* [unique,charset(UTF16)] */
3300                 struct spoolss_DevmodeContainer devmode_ctr;
3301                 uint32_t access_mask;
3302                 uint32_t level;
3303                 union spoolss_UserLevel userlevel;/* [switch_is(level)] */
3304         } in;
3305
3306         struct {
3307                 struct policy_handle *handle;/* [ref] */
3308                 WERROR result;
3309         } out;
3310
3311 };
3312
3313
3314 struct spoolss_AddPrinterEx {
3315         struct {
3316                 const char *server;/* [unique,charset(UTF16)] */
3317                 struct spoolss_SetPrinterInfoCtr *info_ctr;/* [ref] */
3318                 struct spoolss_DevmodeContainer *devmode_ctr;/* [ref] */
3319                 struct sec_desc_buf *secdesc_ctr;/* [ref] */
3320                 struct spoolss_UserLevelCtr *userlevel_ctr;/* [ref] */
3321         } in;
3322
3323         struct {
3324                 struct policy_handle *handle;/* [ref] */
3325                 WERROR result;
3326         } out;
3327
3328 };
3329
3330
3331 struct spoolss_47 {
3332         struct {
3333                 WERROR result;
3334         } out;
3335
3336 };
3337
3338
3339 struct spoolss_EnumPrinterData {
3340         struct {
3341                 struct policy_handle *handle;/* [ref] */
3342                 uint32_t enum_index;
3343                 uint32_t value_offered;
3344                 uint32_t data_offered;
3345         } in;
3346
3347         struct {
3348                 const char *value_name;/* [charset(UTF16),size_is(value_offered/2)] */
3349                 uint32_t *value_needed;/* [ref] */
3350                 enum winreg_Type *type;/* [ref] */
3351                 uint8_t *data;/* [ref,flag(LIBNDR_PRINT_ARRAY_HEX),size_is(data_offered)] */
3352                 uint32_t *data_needed;/* [ref] */
3353                 WERROR result;
3354         } out;
3355
3356 };
3357
3358
3359 struct spoolss_DeletePrinterData {
3360         struct {
3361                 struct policy_handle *handle;/* [ref] */
3362                 const char *value_name;/* [charset(UTF16)] */
3363         } in;
3364
3365         struct {
3366                 WERROR result;
3367         } out;
3368
3369 };
3370
3371
3372 struct spoolss_4a {
3373         struct {
3374                 WERROR result;
3375         } out;
3376
3377 };
3378
3379
3380 struct spoolss_4b {
3381         struct {
3382                 WERROR result;
3383         } out;
3384
3385 };
3386
3387
3388 struct spoolss_4c {
3389         struct {
3390                 WERROR result;
3391         } out;
3392
3393 };
3394
3395
3396 struct spoolss_SetPrinterDataEx {
3397         struct {
3398                 struct policy_handle *handle;/* [ref] */
3399                 const char *key_name;/* [charset(UTF16)] */
3400                 const char *value_name;/* [charset(UTF16)] */
3401                 enum winreg_Type type;
3402                 uint8_t *buffer;/* [ref,size_is(offered)] */
3403                 uint32_t offered;
3404         } in;
3405
3406         struct {
3407                 WERROR result;
3408         } out;
3409
3410 };
3411
3412
3413 struct spoolss_GetPrinterDataEx {
3414         struct {
3415                 struct policy_handle *handle;/* [ref] */
3416                 const char *key_name;/* [charset(UTF16)] */
3417                 const char *value_name;/* [charset(UTF16)] */
3418                 uint32_t offered;
3419         } in;
3420
3421         struct {
3422                 enum winreg_Type *type;/* [ref] */
3423                 uint8_t *buffer;/* [ref,size_is(offered)] */
3424                 uint32_t *needed;/* [ref] */
3425                 WERROR result;
3426         } out;
3427
3428 };
3429
3430
3431 struct _spoolss_EnumPrinterDataEx {
3432         struct {
3433                 struct policy_handle *handle;/* [ref] */
3434                 const char *key_name;/* [charset(UTF16)] */
3435                 uint32_t offered;
3436         } in;
3437
3438         struct {
3439                 DATA_BLOB info;
3440                 uint32_t *needed;/* [ref] */
3441                 uint32_t *count;/* [ref] */
3442                 WERROR result;
3443         } out;
3444
3445 };
3446
3447
3448 struct __spoolss_EnumPrinterDataEx {
3449         struct {
3450                 uint32_t count;
3451         } in;
3452
3453         struct {
3454                 struct spoolss_PrinterEnumValues *info;
3455         } out;
3456
3457 };
3458
3459
3460 struct spoolss_EnumPrinterDataEx {
3461         struct {
3462                 struct policy_handle *handle;/* [ref] */
3463                 const char *key_name;/* [charset(UTF16)] */
3464                 uint32_t offered;
3465         } in;
3466
3467         struct {
3468                 uint32_t *count;/* [ref] */
3469                 struct spoolss_PrinterEnumValues **info;/* [ref,size_is(,*count)] */
3470                 uint32_t *needed;/* [ref] */
3471                 WERROR result;
3472         } out;
3473
3474 };
3475
3476
3477 struct spoolss_EnumPrinterKey {
3478         struct {
3479                 struct policy_handle *handle;/* [ref] */
3480                 const char *key_name;/* [charset(UTF16)] */
3481                 uint32_t offered;
3482         } in;
3483
3484         struct {
3485                 const char ** *key_buffer;/* [subcontext_size(offered),ref,subcontext(0),flag(LIBNDR_FLAG_STR_NULLTERM)] */
3486                 uint32_t *needed;/* [ref] */
3487                 WERROR result;
3488         } out;
3489
3490 };
3491
3492
3493 struct spoolss_DeletePrinterDataEx {
3494         struct {
3495                 struct policy_handle *handle;/* [ref] */
3496                 const char *key_name;/* [charset(UTF16)] */
3497                 const char *value_name;/* [charset(UTF16)] */
3498         } in;
3499
3500         struct {
3501                 WERROR result;
3502         } out;
3503
3504 };
3505
3506
3507 struct spoolss_DeletePrinterKey {
3508         struct {
3509                 struct policy_handle *handle;/* [ref] */
3510                 const char *key_name;/* [charset(UTF16)] */
3511         } in;
3512
3513         struct {
3514                 WERROR result;
3515         } out;
3516
3517 };
3518
3519
3520 struct spoolss_53 {
3521         struct {
3522                 WERROR result;
3523         } out;
3524
3525 };
3526
3527
3528 struct spoolss_DeletePrinterDriverEx {
3529         struct {
3530                 const char *server;/* [unique,charset(UTF16)] */
3531                 const char *architecture;/* [charset(UTF16)] */
3532                 const char *driver;/* [charset(UTF16)] */
3533                 uint32_t delete_flags;
3534                 uint32_t version;
3535         } in;
3536
3537         struct {
3538                 WERROR result;
3539         } out;
3540
3541 };
3542
3543
3544 struct spoolss_55 {
3545         struct {
3546                 WERROR result;
3547         } out;
3548
3549 };
3550
3551
3552 struct spoolss_56 {
3553         struct {
3554                 WERROR result;
3555         } out;
3556
3557 };
3558
3559
3560 struct spoolss_57 {
3561         struct {
3562                 WERROR result;
3563         } out;
3564
3565 };
3566
3567
3568 struct spoolss_XcvData {
3569         struct {
3570                 struct policy_handle *handle;/* [ref] */
3571                 const char *function_name;/* [charset(UTF16)] */
3572                 DATA_BLOB in_data;
3573                 uint32_t _in_data_length;/* [value(r->in.in_data.length)] */
3574                 uint32_t out_data_size;
3575                 uint32_t *status_code;/* [ref] */
3576         } in;
3577
3578         struct {
3579                 uint8_t *out_data;/* [ref,size_is(out_data_size)] */
3580                 uint32_t *needed;/* [ref] */
3581                 uint32_t *status_code;/* [ref] */
3582                 WERROR result;
3583         } out;
3584
3585 };
3586
3587
3588 struct spoolss_AddPrinterDriverEx {
3589         struct {
3590                 const char *servername;/* [unique,charset(UTF16)] */
3591                 struct spoolss_AddDriverInfoCtr *info_ctr;/* [ref] */
3592                 uint32_t flags;
3593         } in;
3594
3595         struct {
3596                 WERROR result;
3597         } out;
3598
3599 };
3600
3601
3602 struct spoolss_5a {
3603         struct {
3604                 WERROR result;
3605         } out;
3606
3607 };
3608
3609
3610 struct spoolss_5b {
3611         struct {
3612                 WERROR result;
3613         } out;
3614
3615 };
3616
3617
3618 struct spoolss_5c {
3619         struct {
3620                 WERROR result;
3621         } out;
3622
3623 };
3624
3625
3626 struct spoolss_5d {
3627         struct {
3628                 WERROR result;
3629         } out;
3630
3631 };
3632
3633
3634 struct spoolss_5e {
3635         struct {
3636                 WERROR result;
3637         } out;
3638
3639 };
3640
3641
3642 struct spoolss_5f {
3643         struct {
3644                 WERROR result;
3645         } out;
3646
3647 };
3648
3649 #endif /* _HEADER_spoolss */