git add -f bin/default/librpc/gen_ndr/*.[ch] bin/default/source*/librpc/gen_ndr/...
[metze/samba/wip.git] / bin.gen_ndr / default / librpc / gen_ndr / spoolss.h
1 /* header auto-generated by pidl */
2
3 #ifndef _PIDL_HEADER_spoolss
4 #define _PIDL_HEADER_spoolss
5
6 #include <stdint.h>
7
8 #include "libcli/util/ntstatus.h"
9
10 #include "librpc/gen_ndr/misc.h"
11 #include "librpc/gen_ndr/security.h"
12 #include "librpc/gen_ndr/winreg.h"
13 #define spoolss_security_descriptor security_descriptor
14 #ifndef _HEADER_spoolss
15 #define _HEADER_spoolss
16
17 #define PRINTER_STATUS_OK       ( 0x00000000 )
18 #define JOB_STATUS_QUEUED       ( 0x0000 )
19 #define MAXDEVICENAME   ( 32 )
20 #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) )
21 #define SPL_ARCH_WIN40  ( "WIN40" )
22 #define SPL_ARCH_W32X86 ( "W32X86" )
23 #define SPL_ARCH_W32MIPS        ( "W32MIPS" )
24 #define SPL_ARCH_W32ALPHA       ( "W32ALPHA" )
25 #define SPL_ARCH_W32PPC ( "W32PPC" )
26 #define SPL_ARCH_IA64   ( "IA64" )
27 #define SPL_ARCH_X64    ( "x64" )
28 #define SPL_ARCH_ARM    ( "ARM" )
29 #define SPOOLSS_ARCHITECTURE_ALL        ( "All" )
30 #define SPOOLSS_ARCHITECTURE_ALL_CLUSTER        ( "AllCluster" )
31 #define SPOOLSS_ARCHITECTURE_NT_X86     ( "Windows NT x86" )
32 #define SPOOLSS_ARCHITECTURE_IA_64      ( "Windows IA64" )
33 #define SPOOLSS_ARCHITECTURE_x64        ( "Windows x64" )
34 #define SPOOLSS_ARCHITECTURE_4_0        ( "Windows 4.0" )
35 #define SPOOLSS_ARCHITECTURE_ARM        ( "Windows ARM" )
36 #define SPOOLSS_DEFAULT_SERVER_PATH     ( "C:\\WINDOWS\\system32\\spool" )
37 #define SPOOL_PRINTERDATA_KEY   ( "PrinterDriverData" )
38 #define SPOOL_DSSPOOLER_KEY     ( "DsSpooler" )
39 #define SPOOL_DSDRIVER_KEY      ( "DsDriver" )
40 #define SPOOL_DSUSER_KEY        ( "DsUser" )
41 #define SPOOL_PNPDATA_KEY       ( "PnPData" )
42 #define SPOOL_OID_KEY   ( "OID" )
43 #define SPOOL_REG_ASSETNUMBER   ( "assetNumber" )
44 #define SPOOL_REG_BYTESPERMINUTE        ( "bytesPerMinute" )
45 #define SPOOL_REG_DEFAULTPRIORITY       ( "defaultPriority" )
46 #define SPOOL_REG_DESCRIPTION   ( "description" )
47 #define SPOOL_REG_DRIVERNAME    ( "driverName" )
48 #define SPOOL_REG_DRIVERVERSION ( "driverVersion" )
49 #define SPOOL_REG_FLAGS ( "flags" )
50 #define SPOOL_REG_LOCATION      ( "location" )
51 #define SPOOL_REG_OPERATINGSYSTEM       ( "operatingSystem" )
52 #define SPOOL_REG_OPERATINGSYSTEMHOTFIX ( "operatingSystemHotfix" )
53 #define SPOOL_REG_OPERATINGSYSTEMSERVICEPACK    ( "operatingSystemServicePack" )
54 #define SPOOL_REG_OPERATINGSYSTEMVERSION        ( "operatingSystemVersion" )
55 #define SPOOL_REG_PORTNAME      ( "portName" )
56 #define SPOOL_REG_PRINTATTRIBUTES       ( "printAttributes" )
57 #define SPOOL_REG_PRINTBINNAMES ( "printBinNames" )
58 #define SPOOL_REG_PRINTCOLLATE  ( "printCollate" )
59 #define SPOOL_REG_PRINTCOLOR    ( "printColor" )
60 #define SPOOL_REG_PRINTDUPLEXSUPPORTED  ( "printDuplexSupported" )
61 #define SPOOL_REG_PRINTENDTIME  ( "printEndTime" )
62 #define SPOOL_REG_PRINTERNAME   ( "printerName" )
63 #define SPOOL_REG_PRINTFORMNAME ( "printFormName" )
64 #define SPOOL_REG_PRINTKEEPPRINTEDJOBS  ( "printKeepPrintedJobs" )
65 #define SPOOL_REG_PRINTLANGUAGE ( "printLanguage" )
66 #define SPOOL_REG_PRINTMACADDRESS       ( "printMACAddress" )
67 #define SPOOL_REG_PRINTMAXCOPIES        ( "printMaxCopies" )
68 #define SPOOL_REG_PRINTMAXRESOLUTIONSUPPORTED   ( "printMaxResolutionSupported" )
69 #define SPOOL_REG_PRINTMAXXEXTENT       ( "printMaxXExtent" )
70 #define SPOOL_REG_PRINTMAXYEXTENT       ( "printMaxYExtent" )
71 #define SPOOL_REG_PRINTMEDIAREADY       ( "printMediaReady" )
72 #define SPOOL_REG_PRINTMEDIASUPPORTED   ( "printMediaSupported" )
73 #define SPOOL_REG_PRINTMEMORY   ( "printMemory" )
74 #define SPOOL_REG_PRINTMINXEXTENT       ( "printMinXExtent" )
75 #define SPOOL_REG_PRINTMINYEXTENT       ( "printMinYExtent" )
76 #define SPOOL_REG_PRINTNETWORKADDRESS   ( "printNetworkAddress" )
77 #define SPOOL_REG_PRINTNOTIFY   ( "printNotify" )
78 #define SPOOL_REG_PRINTNUMBERUP ( "printNumberUp" )
79 #define SPOOL_REG_PRINTORIENTATIONSSUPPORTED    ( "printOrientationsSupported" )
80 #define SPOOL_REG_PRINTOWNER    ( "printOwner" )
81 #define SPOOL_REG_PRINTPAGESPERMINUTE   ( "printPagesPerMinute" )
82 #define SPOOL_REG_PRINTRATE     ( "printRate" )
83 #define SPOOL_REG_PRINTRATEUNIT ( "printRateUnit" )
84 #define SPOOL_REG_PRINTSEPARATORFILE    ( "printSeparatorFile" )
85 #define SPOOL_REG_PRINTSHARENAME        ( "printShareName" )
86 #define SPOOL_REG_PRINTSPOOLING ( "printSpooling" )
87 #define SPOOL_REGVAL_PRINTWHILESPOOLING ( "PrintWhileSpooling" )
88 #define SPOOL_REGVAL_PRINTAFTERSPOOLED  ( "PrintAfterSpooled" )
89 #define SPOOL_REGVAL_PRINTDIRECT        ( "PrintDirect" )
90 #define SPOOL_REG_PRINTSTAPLINGSUPPORTED        ( "printStaplingSupported" )
91 #define SPOOL_REG_PRINTSTARTTIME        ( "printStartTime" )
92 #define SPOOL_REG_PRINTSTATUS   ( "printStatus" )
93 #define SPOOL_REG_PRIORITY      ( "priority" )
94 #define SPOOL_REG_SERVERNAME    ( "serverName" )
95 #define SPOOL_REG_SHORTSERVERNAME       ( "shortServerName" )
96 #define SPOOL_REG_UNCNAME       ( "uNCName" )
97 #define SPOOL_REG_URL   ( "url" )
98 #define SPOOL_REG_VERSIONNUMBER ( "versionNumber" )
99 #define SPL_LOCAL_PORT  ( "Local Port" )
100 #define SPL_TCPIP_PORT  ( "Standard TCP/IP Port" )
101 #define SPL_XCV_MONITOR_LOCALMON        ( ",XcvMonitor Local Port" )
102 #define SPL_XCV_MONITOR_TCPMON  ( ",XcvMonitor Standard TCP/IP Port" )
103 #define PRINTER_CHANGE_PRINTER  ( 0x000000FF )
104 #define PRINTER_CHANGE_JOB      ( 0x0000FF00 )
105 #define PRINTER_CHANGE_FORM     ( (PRINTER_CHANGE_ADD_FORM|PRINTER_CHANGE_SET_FORM|PRINTER_CHANGE_DELETE_FORM) )
106 #define PRINTER_CHANGE_PORT     ( (PRINTER_CHANGE_ADD_PORT|PRINTER_CHANGE_CONFIGURE_PORT|PRINTER_CHANGE_DELETE_PORT) )
107 #define PRINTER_CHANGE_PRINT_PROCESSOR  ( 0x07000000 )
108 #define PRINTER_CHANGE_PRINTER_DRIVER   ( (PRINTER_CHANGE_ADD_PRINTER_DRIVER|PRINTER_CHANGE_SET_PRINTER_DRIVER|PRINTER_CHANGE_DELETE_PRINTER_DRIVER) )
109 #define PRINTER_CHANGE_ALL      ( (PRINTER_CHANGE_PRINTER|PRINTER_CHANGE_JOB|PRINTER_CHANGE_FORM|PRINTER_CHANGE_PORT|PRINTER_CHANGE_PRINT_PROCESSOR|PRINTER_CHANGE_PRINTER_DRIVER) )
110 #define SERVER_ALL_ACCESS       ( SEC_STD_REQUIRED|SERVER_ACCESS_ADMINISTER|SERVER_ACCESS_ENUMERATE )
111 #define SERVER_READ     ( SEC_STD_READ_CONTROL|SERVER_ACCESS_ENUMERATE )
112 #define SERVER_WRITE    ( STANDARD_RIGHTS_WRITE_ACCESS|SERVER_ACCESS_ADMINISTER|SERVER_ACCESS_ENUMERATE )
113 #define SERVER_EXECUTE  ( SEC_STD_READ_CONTROL|SERVER_ACCESS_ENUMERATE )
114 #define PRINTER_ALL_ACCESS      ( SEC_STD_REQUIRED|PRINTER_ACCESS_ADMINISTER|PRINTER_ACCESS_USE )
115 #define PRINTER_READ    ( SEC_STD_READ_CONTROL|PRINTER_ACCESS_USE )
116 #define PRINTER_WRITE   ( STANDARD_RIGHTS_WRITE_ACCESS|PRINTER_ACCESS_USE )
117 #define PRINTER_EXECUTE ( SEC_STD_READ_CONTROL|PRINTER_ACCESS_USE )
118 #define JOB_ALL_ACCESS  ( SEC_STD_REQUIRED|JOB_ACCESS_ADMINISTER )
119 #define JOB_READ        ( SEC_STD_READ_CONTROL|JOB_ACCESS_ADMINISTER )
120 #define JOB_WRITE       ( STANDARD_RIGHTS_WRITE_ACCESS|JOB_ACCESS_ADMINISTER )
121 #define JOB_EXECUTE     ( SEC_STD_READ_CONTROL|JOB_ACCESS_ADMINISTER )
122 #define PRINTER_ACE_FULL_CONTROL        ( SEC_GENERIC_ALL|PRINTER_ALL_ACCESS )
123 #define PRINTER_ACE_MANAGE_DOCUMENTS    ( SEC_GENERIC_ALL|READ_CONTROL_ACCESS )
124 #define PRINTER_ACE_PRINT       ( GENERIC_EXECUTE_ACCESS|READ_CONTROL_ACCESS|PRINTER_ACCESS_USE )
125 #define BIDI_ACTION_ENUM_SCHEMA ( "EnumSchema" )
126 #define BIDI_ACTION_GET ( "Get" )
127 #define BIDI_ACTION_SET ( "Set" )
128 #define BIDI_ACTION_GET_ALL     ( "GetAll" )
129 #define SPLFILE_CONTENT_TYPE_PROP_NAME  ( "Spool File Contents" )
130 #define SPLFILE_CONTENT_TYPE_XPS_MS     ( "TYPE_XPS_MS" )
131 #define SPLFILE_CONTENT_TYPE_XPS_OPEN   ( "TYPE_XPS_OPEN" )
132 #define SPLFILE_CONTENT_TYPE_PDL_POSTSCRIPT     ( "TYPE_PDL_POSTSCRIPT" )
133 #define SPLFILE_CONTENT_TYPE_PDL_UNKNOWN        ( "TYPE_PDL_UNKNOWN" )
134 struct spoolss_Time {
135         uint16_t year;
136         uint16_t month;
137         uint16_t day_of_week;
138         uint16_t day;
139         uint16_t hour;
140         uint16_t minute;
141         uint16_t second;
142         uint16_t millisecond;
143 }/* [noprint,gensize] */;
144
145 struct spoolss_TimeCtr {
146         uint32_t size;/* [value(ndr_size_spoolss_Time(time,ndr->flags))] */
147         struct spoolss_Time *time;/* [unique] */
148 }/* [public] */;
149
150 enum spoolss_ProcessorArchitecture
151 #ifndef USE_UINT_ENUMS
152  {
153         PROCESSOR_ARCHITECTURE_INTEL=(int)(0x0000),
154         PROCESSOR_ARCHITECTURE_ARM=(int)(0x0005),
155         PROCESSOR_ARCHITECTURE_IA64=(int)(0x0006),
156         PROCESSOR_ARCHITECTURE_AMD64=(int)(0x0009)
157 }
158 #else
159  { __do_not_use_enum_spoolss_ProcessorArchitecture=0x7FFFFFFF}
160 #define PROCESSOR_ARCHITECTURE_INTEL ( 0x0000 )
161 #define PROCESSOR_ARCHITECTURE_ARM ( 0x0005 )
162 #define PROCESSOR_ARCHITECTURE_IA64 ( 0x0006 )
163 #define PROCESSOR_ARCHITECTURE_AMD64 ( 0x0009 )
164 #endif
165 ;
166
167 enum spoolss_ProcessorType
168 #ifndef USE_UINT_ENUMS
169  {
170         PROCESSOR_ARM=(int)(0x00000000),
171         PROCESSOR_INTEL_386=(int)(0x00000182),
172         PROCESSOR_INTEL_486=(int)(0x000001E6),
173         PROCESSOR_INTEL_PENTIUM=(int)(0x0000024A),
174         PROCESSOR_INTEL_IA64=(int)(0x00000898),
175         PROCESSOR_AMD_X8664=(int)(0x000022A0)
176 }
177 #else
178  { __do_not_use_enum_spoolss_ProcessorType=0x7FFFFFFF}
179 #define PROCESSOR_ARM ( 0x00000000 )
180 #define PROCESSOR_INTEL_386 ( 0x00000182 )
181 #define PROCESSOR_INTEL_486 ( 0x000001E6 )
182 #define PROCESSOR_INTEL_PENTIUM ( 0x0000024A )
183 #define PROCESSOR_INTEL_IA64 ( 0x00000898 )
184 #define PROCESSOR_AMD_X8664 ( 0x000022A0 )
185 #endif
186 ;
187
188 enum spoolss_MajorVersion
189 #ifndef USE_UINT_ENUMS
190  {
191         SPOOLSS_MAJOR_VERSION_NT4_95_98_ME=(int)(0x00000004),
192         SPOOLSS_MAJOR_VERSION_2000_2003_XP=(int)(0x00000005),
193         SPOOLSS_MAJOR_VERSION_2008_VISTA=(int)(0x00000006)
194 }
195 #else
196  { __do_not_use_enum_spoolss_MajorVersion=0x7FFFFFFF}
197 #define SPOOLSS_MAJOR_VERSION_NT4_95_98_ME ( 0x00000004 )
198 #define SPOOLSS_MAJOR_VERSION_2000_2003_XP ( 0x00000005 )
199 #define SPOOLSS_MAJOR_VERSION_2008_VISTA ( 0x00000006 )
200 #endif
201 ;
202
203 enum spoolss_MinorVersion
204 #ifndef USE_UINT_ENUMS
205  {
206         SPOOLSS_MINOR_VERSION_0=(int)(0x00000000),
207         SPOOLSS_MINOR_VERSION_XP=(int)(0x00000001),
208         SPOOLSS_MINOR_VERSION_2003_XP64=(int)(0x00000002),
209         SPOOLSS_MINOR_VERSION_98=(int)(0x0000000a),
210         SPOOLSS_MINOR_VERSION_ME=(int)(0x0000005a)
211 }
212 #else
213  { __do_not_use_enum_spoolss_MinorVersion=0x7FFFFFFF}
214 #define SPOOLSS_MINOR_VERSION_0 ( 0x00000000 )
215 #define SPOOLSS_MINOR_VERSION_XP ( 0x00000001 )
216 #define SPOOLSS_MINOR_VERSION_2003_XP64 ( 0x00000002 )
217 #define SPOOLSS_MINOR_VERSION_98 ( 0x0000000a )
218 #define SPOOLSS_MINOR_VERSION_ME ( 0x0000005a )
219 #endif
220 ;
221
222 /* bitmap spoolss_PrinterStatus */
223 #define PRINTER_STATUS_PAUSED ( 0x00000001 )
224 #define PRINTER_STATUS_ERROR ( 0x00000002 )
225 #define PRINTER_STATUS_PENDING_DELETION ( 0x00000004 )
226 #define PRINTER_STATUS_PAPER_JAM ( 0x00000008 )
227 #define PRINTER_STATUS_PAPER_OUT ( 0x00000010 )
228 #define PRINTER_STATUS_MANUAL_FEED ( 0x00000020 )
229 #define PRINTER_STATUS_PAPER_PROBLEM ( 0x00000040 )
230 #define PRINTER_STATUS_OFFLINE ( 0x00000080 )
231 #define PRINTER_STATUS_IO_ACTIVE ( 0x00000100 )
232 #define PRINTER_STATUS_BUSY ( 0x00000200 )
233 #define PRINTER_STATUS_PRINTING ( 0x00000400 )
234 #define PRINTER_STATUS_OUTPUT_BIN_FULL ( 0x00000800 )
235 #define PRINTER_STATUS_NOT_AVAILABLE ( 0x00001000 )
236 #define PRINTER_STATUS_WAITING ( 0x00002000 )
237 #define PRINTER_STATUS_PROCESSING ( 0x00004000 )
238 #define PRINTER_STATUS_INITIALIZING ( 0x00008000 )
239 #define PRINTER_STATUS_WARMING_UP ( 0x00010000 )
240 #define PRINTER_STATUS_TONER_LOW ( 0x00020000 )
241 #define PRINTER_STATUS_NO_TONER ( 0x00040000 )
242 #define PRINTER_STATUS_PAGE_PUNT ( 0x00080000 )
243 #define PRINTER_STATUS_USER_INTERVENTION ( 0x00100000 )
244 #define PRINTER_STATUS_OUT_OF_MEMORY ( 0x00200000 )
245 #define PRINTER_STATUS_DOOR_OPEN ( 0x00400000 )
246 #define PRINTER_STATUS_SERVER_UNKNOWN ( 0x00800000 )
247 #define PRINTER_STATUS_POWER_SAVE ( 0x01000000 )
248
249 /* bitmap spoolss_JobStatus */
250 #define JOB_STATUS_PAUSED ( 0x00000001 )
251 #define JOB_STATUS_ERROR ( 0x00000002 )
252 #define JOB_STATUS_DELETING ( 0x00000004 )
253 #define JOB_STATUS_SPOOLING ( 0x00000008 )
254 #define JOB_STATUS_PRINTING ( 0x00000010 )
255 #define JOB_STATUS_OFFLINE ( 0x00000020 )
256 #define JOB_STATUS_PAPEROUT ( 0x00000040 )
257 #define JOB_STATUS_PRINTED ( 0x00000080 )
258 #define JOB_STATUS_DELETED ( 0x00000100 )
259 #define JOB_STATUS_BLOCKED_DEVQ ( 0x00000200 )
260 #define JOB_STATUS_USER_INTERVENTION ( 0x00000400 )
261 #define JOB_STATUS_RESTART ( 0x00000800 )
262 #define JOB_STATUS_COMPLETE ( 0x00001000 )
263
264 enum spoolss_Build
265 #ifndef USE_UINT_ENUMS
266  {
267         SPOOLSS_DEBUGGING_BUILD=(int)(0x00000000),
268         SPOOLSS_RELEASE_BUILD=(int)(0x00000001)
269 }
270 #else
271  { __do_not_use_enum_spoolss_Build=0x7FFFFFFF}
272 #define SPOOLSS_DEBUGGING_BUILD ( 0x00000000 )
273 #define SPOOLSS_RELEASE_BUILD ( 0x00000001 )
274 #endif
275 ;
276
277 struct spoolss_PrinterInfo0 {
278         const char * printername;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] */
279         const char * servername;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] */
280         uint32_t cjobs;
281         uint32_t total_jobs;
282         uint32_t total_bytes;
283         struct spoolss_Time time;
284         uint32_t global_counter;
285         uint32_t total_pages;
286         uint32_t version;
287         enum spoolss_Build free_build;
288         uint32_t spooling;
289         uint32_t max_spooling;
290         uint32_t session_counter;
291         uint32_t num_error_out_of_paper;
292         uint32_t num_error_not_ready;
293         uint32_t job_error;
294         uint32_t number_of_processors;
295         enum spoolss_ProcessorType processor_type;
296         uint32_t high_part_total_bytes;
297         uint32_t change_id;
298         WERROR last_error;
299         uint32_t status;
300         uint32_t enumerate_network_printers;
301         uint32_t c_setprinter;
302         enum spoolss_ProcessorArchitecture processor_architecture;
303         uint16_t processor_level;
304         uint32_t ref_ic;
305         uint32_t reserved2;
306         uint32_t reserved3;
307 }/* [gensize,public] */;
308
309 enum spoolss_DM_Signature
310 #ifndef USE_UINT_ENUMS
311  {
312         SPOOLSS_DM_SIGNATURE_UNIDRVEXTRA=(int)(0x554e4944),
313         SPOOLSS_DM_SIGNATURE_JTEXP=(int)(0x4a544d53),
314         SPOOLSS_DM_SIGNATURE_PSEXTRA=(int)(0x50524956)
315 }
316 #else
317  { __do_not_use_enum_spoolss_DM_Signature=0x7FFFFFFF}
318 #define SPOOLSS_DM_SIGNATURE_UNIDRVEXTRA ( 0x554e4944 )
319 #define SPOOLSS_DM_SIGNATURE_JTEXP ( 0x4a544d53 )
320 #define SPOOLSS_DM_SIGNATURE_PSEXTRA ( 0x50524956 )
321 #endif
322 ;
323
324 enum spoolss_DM_Layout
325 #ifndef USE_UINT_ENUMS
326  {
327         SPOOLSS_DM_LAYOUT_NUP_DISABLED=(int)(0x00000000),
328         SPOOLSS_DM_LAYOUT_NUP_2=(int)(0x00000001),
329         SPOOLSS_DM_LAYOUT_NUP_4=(int)(0x00000002),
330         SPOOLSS_DM_LAYOUT_NUP_6=(int)(0x00000003),
331         SPOOLSS_DM_LAYOUT_NUP_9=(int)(0x00000004),
332         SPOOLSS_DM_LAYOUT_NUP_16=(int)(0x00000005),
333         SPOOLSS_DM_LAYOUT_BOOKLET=(int)(0x00000006)
334 }
335 #else
336  { __do_not_use_enum_spoolss_DM_Layout=0x7FFFFFFF}
337 #define SPOOLSS_DM_LAYOUT_NUP_DISABLED ( 0x00000000 )
338 #define SPOOLSS_DM_LAYOUT_NUP_2 ( 0x00000001 )
339 #define SPOOLSS_DM_LAYOUT_NUP_4 ( 0x00000002 )
340 #define SPOOLSS_DM_LAYOUT_NUP_6 ( 0x00000003 )
341 #define SPOOLSS_DM_LAYOUT_NUP_9 ( 0x00000004 )
342 #define SPOOLSS_DM_LAYOUT_NUP_16 ( 0x00000005 )
343 #define SPOOLSS_DM_LAYOUT_BOOKLET ( 0x00000006 )
344 #endif
345 ;
346
347 enum spoolss_DM_NupDirection
348 #ifndef USE_UINT_ENUMS
349  {
350         SPOOLSS_DM_NUP_DIRECTION_L2R_T2B=(int)(0x00000001),
351         SPOOLSS_DM_NUP_DIRECTION_T2B_L2R=(int)(0x00000002),
352         SPOOLSS_DM_NUP_DIRECTION_R2L_T2B=(int)(0x00000004),
353         SPOOLSS_DM_NUP_DIRECTION_T2B_R2L=(int)(0x00000008)
354 }
355 #else
356  { __do_not_use_enum_spoolss_DM_NupDirection=0x7FFFFFFF}
357 #define SPOOLSS_DM_NUP_DIRECTION_L2R_T2B ( 0x00000001 )
358 #define SPOOLSS_DM_NUP_DIRECTION_T2B_L2R ( 0x00000002 )
359 #define SPOOLSS_DM_NUP_DIRECTION_R2L_T2B ( 0x00000004 )
360 #define SPOOLSS_DM_NUP_DIRECTION_T2B_R2L ( 0x00000008 )
361 #endif
362 ;
363
364 enum spoolss_DM_NupBorderFlags
365 #ifndef USE_UINT_ENUMS
366  {
367         SPOOLSS_DM_NUP_BORDER_PRINT=(int)(0x00000000),
368         SPOOLSS_DM_NUP_BORDER_NONE=(int)(0x00000001)
369 }
370 #else
371  { __do_not_use_enum_spoolss_DM_NupBorderFlags=0x7FFFFFFF}
372 #define SPOOLSS_DM_NUP_BORDER_PRINT ( 0x00000000 )
373 #define SPOOLSS_DM_NUP_BORDER_NONE ( 0x00000001 )
374 #endif
375 ;
376
377 enum spoolss_DM_BookletFlags
378 #ifndef USE_UINT_ENUMS
379  {
380         SPOOLSS_DM_BOOKLET_LEFT_FLIP=(int)(0x00000000),
381         SPOOLSS_DM_BOOKLET_RIGHT_FLIP=(int)(0x00000001)
382 }
383 #else
384  { __do_not_use_enum_spoolss_DM_BookletFlags=0x7FFFFFFF}
385 #define SPOOLSS_DM_BOOKLET_LEFT_FLIP ( 0x00000000 )
386 #define SPOOLSS_DM_BOOKLET_RIGHT_FLIP ( 0x00000001 )
387 #endif
388 ;
389
390 /* bitmap spoolss_DMPS_Flags */
391 #define SPOOLSS_DM_PS_FLAGS_DRV_ERROR_HANDLER ( 0x00000002 )
392 #define SPOOLSS_DM_PS_FLAGS_PRINT_MIRROR ( 0x00000004 )
393 #define SPOOLSS_DM_PS_FLAGS_PRINT_NEGATIVE ( 0x00000010 )
394 #define SPOOLSS_DM_PS_FLAGS_COMPRESS_BITMAP ( 0x00000040 )
395 #define SPOOLSS_DM_PS_FLAGS_ROTATE_180 ( 0x00000200 )
396 #define SPOOLSS_DM_PS_FLAGS_GDI_METAFILE_SPOOL ( 0x00002000 )
397
398 struct spoolss_PSDRVEXTRA351 {
399         enum spoolss_DM_Signature dwSignature;/* [value(SPOOLSS_DM_SIGNATURE_PSEXTRA)] */
400         uint32_t dwFlags;
401         uint32_t wchEPSFile[12];
402         uint16_t caSize;/* [value(24)] */
403         uint16_t caFlags;
404         uint16_t caIlluminantIndex;
405         uint16_t caRedGamma;
406         uint16_t caGreenGamma;
407         uint16_t caBlueGamma;
408         uint16_t caReferenceBlack;
409         uint16_t caReferenceWhite;
410         uint16_t caContrast;
411         uint16_t caBrightness;
412         uint16_t caColorfulness;
413         uint16_t caRedGreenTint;
414 };
415
416 struct spoolss_PSDRVEXTRA400 {
417         enum spoolss_DM_Signature dwSignature;/* [value(SPOOLSS_DM_SIGNATURE_PSEXTRA)] */
418         uint32_t dwFlags;
419         uint32_t wchEPSFile[12];
420         uint16_t caSize;/* [value(24)] */
421         uint16_t caFlags;
422         uint16_t caIlluminantIndex;
423         uint16_t caRedGamma;
424         uint16_t caGreenGamma;
425         uint16_t caBlueGamma;
426         uint16_t caReferenceBlack;
427         uint16_t caReferenceWhite;
428         uint16_t caContrast;
429         uint16_t caBrightness;
430         uint16_t caColorfulness;
431         uint16_t caRedGreenTint;
432         uint16_t wChecksum;
433         uint16_t wOptions;
434         uint32_t aubOptions[8];
435 };
436
437 enum spoolss_DMPS_Dialect
438 #ifndef USE_UINT_ENUMS
439  {
440         SPOOLSS_DM_PS_OPTIMIZE_SPEED=(int)(0x00000000),
441         SPOOLSS_DM_PS_OPTIMIZE_PORTABILITY=(int)(0x00000001),
442         SPOOLSS_DM_PS_OPTIMIZE_EPS=(int)(0x00000002),
443         SPOOLSS_DM_PS_OPTIMIZE_ARCHIVAL=(int)(0x00000003)
444 }
445 #else
446  { __do_not_use_enum_spoolss_DMPS_Dialect=0x7FFFFFFF}
447 #define SPOOLSS_DM_PS_OPTIMIZE_SPEED ( 0x00000000 )
448 #define SPOOLSS_DM_PS_OPTIMIZE_PORTABILITY ( 0x00000001 )
449 #define SPOOLSS_DM_PS_OPTIMIZE_EPS ( 0x00000002 )
450 #define SPOOLSS_DM_PS_OPTIMIZE_ARCHIVAL ( 0x00000003 )
451 #endif
452 ;
453
454 enum spoolss_DMPS_TTDLFmt
455 #ifndef USE_UINT_ENUMS
456  {
457         SPOOLSS_DM_PS_TTDLFMT_DEFAULT=(int)(0x00000000),
458         SPOOLSS_DM_PS_TTDLFMT_TYPE_1=(int)(0x00000001),
459         SPOOLSS_DM_PS_TTDLFMT_TYPE_3=(int)(0x00000002),
460         SPOOLSS_DM_PS_TTDLFMT_TYPE_42=(int)(0x00000003)
461 }
462 #else
463  { __do_not_use_enum_spoolss_DMPS_TTDLFmt=0x7FFFFFFF}
464 #define SPOOLSS_DM_PS_TTDLFMT_DEFAULT ( 0x00000000 )
465 #define SPOOLSS_DM_PS_TTDLFMT_TYPE_1 ( 0x00000001 )
466 #define SPOOLSS_DM_PS_TTDLFMT_TYPE_3 ( 0x00000002 )
467 #define SPOOLSS_DM_PS_TTDLFMT_TYPE_42 ( 0x00000003 )
468 #endif
469 ;
470
471 enum spoolss_DMPS_PSLevel
472 #ifndef USE_UINT_ENUMS
473  {
474         SPOOLSS_DM_PS_PSLEVEL_1=(int)(0x00000001),
475         SPOOLSS_DM_PS_PSLEVEL_2=(int)(0x00000002),
476         SPOOLSS_DM_PS_PSLEVEL_3=(int)(0x00000003)
477 }
478 #else
479  { __do_not_use_enum_spoolss_DMPS_PSLevel=0x7FFFFFFF}
480 #define SPOOLSS_DM_PS_PSLEVEL_1 ( 0x00000001 )
481 #define SPOOLSS_DM_PS_PSLEVEL_2 ( 0x00000002 )
482 #define SPOOLSS_DM_PS_PSLEVEL_3 ( 0x00000003 )
483 #endif
484 ;
485
486 enum spoolss_DMPS_FeedDirection
487 #ifndef USE_UINT_ENUMS
488  {
489         SPOOLSS_DM_PS_FEED_DIRECTION_LONG_EDGE_FIRST=(int)(0x0000),
490         SPOOLSS_DM_PS_FEED_DIRECTION_SHORT_EDGE_FIRST=(int)(0x0001),
491         SPOOLSS_DM_PS_FEED_DIRECTION_LONG_EDGE_FIRST_UPSIDEDOWN=(int)(0x0002),
492         SPOOLSS_DM_PS_FEED_DIRECTION_SHORT_EDGE_FIRST_UPSIDEDOWN=(int)(0x0003)
493 }
494 #else
495  { __do_not_use_enum_spoolss_DMPS_FeedDirection=0x7FFFFFFF}
496 #define SPOOLSS_DM_PS_FEED_DIRECTION_LONG_EDGE_FIRST ( 0x0000 )
497 #define SPOOLSS_DM_PS_FEED_DIRECTION_SHORT_EDGE_FIRST ( 0x0001 )
498 #define SPOOLSS_DM_PS_FEED_DIRECTION_LONG_EDGE_FIRST_UPSIDEDOWN ( 0x0002 )
499 #define SPOOLSS_DM_PS_FEED_DIRECTION_SHORT_EDGE_FIRST_UPSIDEDOWN ( 0x0003 )
500 #endif
501 ;
502
503 struct spoolss_PSDRVEXTRA500 {
504         enum spoolss_DM_Signature dwSignature;/* [value(SPOOLSS_DM_SIGNATURE_PSEXTRA)] */
505         uint32_t dwFlags;
506         uint32_t wchEPSFile[12];
507         uint16_t caSize;/* [value(24)] */
508         uint16_t caFlags;
509         uint16_t caIlluminantIndex;
510         uint16_t caRedGamma;
511         uint16_t caGreenGamma;
512         uint16_t caBlueGamma;
513         uint16_t caReferenceBlack;
514         uint16_t caReferenceWhite;
515         uint16_t caContrast;
516         uint16_t caBrightness;
517         uint16_t caColorfulness;
518         uint16_t caRedGreenTint;
519         uint16_t wReserved1;
520         uint16_t wSize;
521         uint32_t fxScrFreq;
522         uint32_t fxScrAngle;
523         enum spoolss_DMPS_Dialect iDialect;
524         enum spoolss_DMPS_TTDLFmt iTTDLFmt;
525         uint32_t bReversePrint;
526         enum spoolss_DM_Layout iLayout;
527         enum spoolss_DMPS_PSLevel iPSLevel;
528         uint32_t dwReserved2;
529         uint16_t wOEMExtra;
530         uint16_t wVer;/* [value(0x0010)] */
531         uint32_t dwX;
532         uint32_t dwY;
533         uint32_t dwWidthOffset;
534         uint32_t dwHeightOffset;
535         enum spoolss_DMPS_FeedDirection wFeedDirection;
536         uint16_t wCutSheet;
537         uint32_t dwReserved3[4];
538         uint32_t dwChecksum32;
539         uint32_t dwOptions;
540         uint32_t aOptions[128];
541 };
542
543 struct spoolss_PSDRVEXTRA {
544         enum spoolss_DM_Signature dwSignature;/* [value(SPOOLSS_DM_SIGNATURE_PSEXTRA)] */
545         uint32_t dwFlags;
546         uint32_t wchEPSFile[12];
547         uint16_t caSize;/* [value(24)] */
548         uint16_t caFlags;
549         uint16_t caIlluminantIndex;
550         uint16_t caRedGamma;
551         uint16_t caGreenGamma;
552         uint16_t caBlueGamma;
553         uint16_t caReferenceBlack;
554         uint16_t caReferenceWhite;
555         uint16_t caContrast;
556         uint16_t caBrightness;
557         uint16_t caColorfulness;
558         uint16_t caRedGreenTint;
559         uint16_t wCoreJTExpSize;
560         uint16_t wCoreFullSize;/* [value(ndr_size_spoolss_PSDRVEXTRA(r,ndr->flags)+wCoreJTExpSize)] */
561         uint32_t fxScrFreq;
562         uint32_t fxScrAngle;
563         enum spoolss_DMPS_Dialect iDialect;
564         enum spoolss_DMPS_TTDLFmt iTTDLFmt;
565         uint32_t bReversePrint;
566         enum spoolss_DM_Layout iLayout;
567         enum spoolss_DMPS_PSLevel iPSLevel;
568         uint32_t dwReserved2;
569         uint16_t wOEMExtra;
570         uint16_t wVer;/* [value(0x0010)] */
571         uint32_t dwX;
572         uint32_t dwY;
573         uint32_t dwWidthOffset;
574         uint32_t dwHeightOffset;
575         enum spoolss_DMPS_FeedDirection wFeedDirection;
576         uint16_t wCutSheet;
577         uint32_t dwReserved3[4];
578         uint32_t dwChecksum32;
579         uint32_t dwOptions;
580         uint32_t aOptions[128];
581         enum spoolss_DM_NupDirection dwNupDirection;
582         enum spoolss_DM_NupBorderFlags dwNupBorderFlags;
583         enum spoolss_DM_BookletFlags dwBookletFlags;
584         uint32_t dwPadding;
585 };
586
587 struct spoolss_UNIDRVEXTRA3_4 {
588         uint16_t wReserved[56];
589 };
590
591 enum spoolss_DMUNI_Quality
592 #ifndef USE_UINT_ENUMS
593  {
594         SPOOLSS_DM_UNI_QUALITY_BEST=(int)(0x00000000),
595         SPOOLSS_DM_UNI_QUALITY_MEDIUM=(int)(0x00000001),
596         SPOOLSS_DM_UNI_QUALITY_DRAFT=(int)(0x00000002)
597 }
598 #else
599  { __do_not_use_enum_spoolss_DMUNI_Quality=0x7FFFFFFF}
600 #define SPOOLSS_DM_UNI_QUALITY_BEST ( 0x00000000 )
601 #define SPOOLSS_DM_UNI_QUALITY_MEDIUM ( 0x00000001 )
602 #define SPOOLSS_DM_UNI_QUALITY_DRAFT ( 0x00000002 )
603 #endif
604 ;
605
606 /* bitmap spoolss_DMUNI_Flags */
607 #define SPOOLSS_DM_UNI_FLAGS_PRINT_TEXT_AS_GRAPHICS ( 0x00000002 )
608 #define SPOOLSS_DM_UNI_FLAGS_AVOID_EMFSPOOL ( 0x00000010 )
609 #define SPOOLSS_DM_UNI_FLAGS_CUSTOM_HALFTONING ( 0x00000080 )
610
611 struct spoolss_UNIDRVEXTRA500 {
612         enum spoolss_DM_Signature dwSignature;/* [value(SPOOLSS_DM_SIGNATURE_UNIDRVEXTRA)] */
613         uint16_t wVer;/* [value(0x0022)] */
614         uint16_t sPadding;
615         uint16_t wSize;
616         uint16_t wOEMExtra;
617         uint32_t dwChecksum32;
618         uint32_t dwFlags;
619         uint32_t bReversePrint;
620         enum spoolss_DM_Layout iLayout;
621         enum spoolss_DMUNI_Quality iQuality;
622         uint16_t wReserved[6];
623         uint32_t dwOptions;
624         uint32_t aOptions[128];
625 };
626
627 struct spoolss_UNIDRVEXTRA {
628         enum spoolss_DM_Signature dwSignature;/* [value(SPOOLSS_DM_SIGNATURE_UNIDRVEXTRA)] */
629         uint16_t wVer;/* [value(0x0022)] */
630         uint16_t wCoreJTExpSize;
631         uint16_t wCoreFullSize;/* [value(ndr_size_spoolss_UNIDRVEXTRA(r,ndr->flags)+wCoreJTExpSize)] */
632         uint16_t wOEMExtra;
633         uint32_t dwChecksum32;
634         uint32_t dwFlags;
635         uint32_t bReversePrint;
636         enum spoolss_DM_Layout iLayout;
637         enum spoolss_DMUNI_Quality iQuality;
638         uint16_t wReserved[6];
639         uint32_t dwOptions;
640         uint32_t aOptions[128];
641         enum spoolss_DM_NupDirection dwNupDirection;
642         enum spoolss_DM_NupBorderFlags dwNupBorderFlags;
643         enum spoolss_DM_BookletFlags dwBookletFlags;
644 }/* [gensize,public] */;
645
646 struct spoolss_JTEXP {
647         uint32_t dwSize;
648         enum spoolss_DM_Signature dwSignature;/* [value(SPOOLSS_DM_SIGNATURE_JTEXP)] */
649         uint32_t dwVersion;/* [value(0)] */
650         uint16_t wJTHdrSize;/* [value(16)] */
651         uint16_t wCoreMFOSize;
652         const char * ModelName;/* [flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] */
653         const char ** FeatureOptionPairs;/* [flag(LIBNDR_FLAG_STR_UTF8|LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_REMAINING)] */
654 };
655
656 struct spoolss_OEM_DMEXTRA {
657         uint32_t dwSize;
658         enum spoolss_DM_Signature dwSignature;
659         uint32_t dwVersion;
660         DATA_BLOB Data;/* [flag(LIBNDR_FLAG_REMAINING)] */
661 };
662
663 union spoolss_DeviceModeExtraDataPostScript {
664         struct spoolss_PSDRVEXTRA351 psdrvextra351;/* [case(0x0350)] */
665         struct spoolss_PSDRVEXTRA400 psdrvextra400;/* [case(0x0400)] */
666         struct spoolss_PSDRVEXTRA500 psdrvextra500;/* [case(0x0501)] */
667         struct spoolss_PSDRVEXTRA psdrvextra;/* [case(0x0600)] */
668         DATA_BLOB psblob;/* [default,flag(LIBNDR_FLAG_REMAINING)] */
669 }/* [nodiscriminant] */;
670
671 union spoolss_DeviceModeExtraDataUniDriver {
672         struct spoolss_UNIDRVEXTRA3_4 unidrvextra3_4;/* [case(0x0301)] */
673         struct spoolss_UNIDRVEXTRA500 unidrvextra500;/* [case(0x0500)] */
674         struct spoolss_UNIDRVEXTRA unidrvextra;/* [case(0x0600)] */
675         DATA_BLOB uniblob;/* [default,flag(LIBNDR_FLAG_REMAINING)] */
676 }/* [nodiscriminant] */;
677
678 /* bitmap spoolss_DeviceModeFields */
679 #define DEVMODE_ORIENTATION ( 0x00000001 )
680 #define DEVMODE_PAPERSIZE ( 0x00000002 )
681 #define DEVMODE_PAPERLENGTH ( 0x00000004 )
682 #define DEVMODE_PAPERWIDTH ( 0x00000008 )
683 #define DEVMODE_SCALE ( 0x00000010 )
684 #define DEVMODE_POSITION ( 0x00000020 )
685 #define DEVMODE_NUP ( 0x00000040 )
686 #define DEVMODE_COPIES ( 0x00000100 )
687 #define DEVMODE_DEFAULTSOURCE ( 0x00000200 )
688 #define DEVMODE_PRINTQUALITY ( 0x00000400 )
689 #define DEVMODE_COLOR ( 0x00000800 )
690 #define DEVMODE_DUPLEX ( 0x00001000 )
691 #define DEVMODE_YRESOLUTION ( 0x00002000 )
692 #define DEVMODE_TTOPTION ( 0x00004000 )
693 #define DEVMODE_COLLATE ( 0x00008000 )
694 #define DEVMODE_FORMNAME ( 0x00010000 )
695 #define DEVMODE_LOGPIXELS ( 0x00020000 )
696 #define DEVMODE_BITSPERPEL ( 0x00040000 )
697 #define DEVMODE_PELSWIDTH ( 0x00080000 )
698 #define DEVMODE_PELSHEIGHT ( 0x00100000 )
699 #define DEVMODE_DISPLAYFLAGS ( 0x00200000 )
700 #define DEVMODE_DISPLAYFREQUENCY ( 0x00400000 )
701 #define DEVMODE_ICMMETHOD ( 0x00800000 )
702 #define DEVMODE_ICMINTENT ( 0x01000000 )
703 #define DEVMODE_MEDIATYPE ( 0x02000000 )
704 #define DEVMODE_DITHERTYPE ( 0x04000000 )
705 #define DEVMODE_PANNINGWIDTH ( 0x08000000 )
706 #define DEVMODE_PANNINGHEIGHT ( 0x10000000 )
707
708 enum spoolss_DeviceModeSpecVersion
709 #ifndef USE_UINT_ENUMS
710  {
711         DMSPEC_NT3=(int)(0x320),
712         DMSPEC_WIN95_98_ME=(int)(0x400),
713         DMSPEC_NT4_AND_ABOVE=(int)(0x401)
714 }
715 #else
716  { __do_not_use_enum_spoolss_DeviceModeSpecVersion=0x7FFFFFFF}
717 #define DMSPEC_NT3 ( 0x320 )
718 #define DMSPEC_WIN95_98_ME ( 0x400 )
719 #define DMSPEC_NT4_AND_ABOVE ( 0x401 )
720 #endif
721 ;
722
723 enum spoolss_DeviceModeOrientation
724 #ifndef USE_UINT_ENUMS
725  {
726         DMORIENT_PORTRAIT=(int)(0x0001),
727         DMORIENT_LANDSCAPE=(int)(0x0002)
728 }
729 #else
730  { __do_not_use_enum_spoolss_DeviceModeOrientation=0x7FFFFFFF}
731 #define DMORIENT_PORTRAIT ( 0x0001 )
732 #define DMORIENT_LANDSCAPE ( 0x0002 )
733 #endif
734 ;
735
736 enum spoolss_DeviceModePaperSize
737 #ifndef USE_UINT_ENUMS
738  {
739         DMPAPER_LETTER=(int)(0x0001),
740         DMPAPER_LETTERSMALL=(int)(0x0002),
741         DMPAPER_TABLOID=(int)(0x0003),
742         DMPAPER_LEDGER=(int)(0x0004),
743         DMPAPER_LEGAL=(int)(0x0005),
744         DMPAPER_STATEMENT=(int)(0x0006),
745         DMPAPER_EXECUTIVE=(int)(0x0007),
746         DMPAPER_A3=(int)(0x0008),
747         DMPAPER_A4=(int)(0x0009),
748         DMPAPER_A4SMALL=(int)(0x000A),
749         DMPAPER_A5=(int)(0x000B),
750         DMPAPER_B4=(int)(0x000C),
751         DMPAPER_B5=(int)(0x000D),
752         DMPAPER_FOLIO=(int)(0x000E),
753         DMPAPER_QUARTO=(int)(0x000F),
754         DMPAPER_10X14=(int)(0x0010),
755         DMPAPER_11X17=(int)(0x0011),
756         DMPAPER_NOTE=(int)(0x0012),
757         DMPAPER_ENV_9=(int)(0x0013),
758         DMPAPER_ENV_10=(int)(0x0014),
759         DMPAPER_ENV_11=(int)(0x0015),
760         DMPAPER_ENV_12=(int)(0x0016),
761         DMPAPER_ENV_14=(int)(0x0017),
762         DMPAPER_CSHEET=(int)(0x0018),
763         DMPAPER_DSHEET=(int)(0x0019),
764         DMPAPER_ESHEET=(int)(0x001A),
765         DMPAPER_ENV_DL=(int)(0x001B),
766         DMPAPER_ENV_C5=(int)(0x001C),
767         DMPAPER_ENV_C3=(int)(0x001D),
768         DMPAPER_ENV_C4=(int)(0x001E),
769         DMPAPER_ENV_C6=(int)(0x001F),
770         DMPAPER_ENV_C65=(int)(0x0020),
771         DMPAPER_ENV_B4=(int)(0x0021),
772         DMPAPER_ENV_B5=(int)(0x0022),
773         DMPAPER_ENV_B6=(int)(0x0023),
774         DMPAPER_ENV_ITALY=(int)(0x0024),
775         DMPAPER_ENV_MONARCH=(int)(0x0025),
776         DMPAPER_ENV_PERSONAL=(int)(0x0026),
777         DMPAPER_FANFOLD_US=(int)(0x0027),
778         DMPAPER_FANFOLD_STD_GERMAN=(int)(0x0028),
779         DMPAPER_FANFOLD_LGL_GERMAN=(int)(0x0029),
780         DMPAPER_DBL_JAPANESE_POSTCARD=(int)(0x0045),
781         DMPAPER_A6=(int)(0x0046),
782         DMPAPER_JENV_KAKU2=(int)(0x0047),
783         DMPAPER_JENV_KAKU3=(int)(0x0048),
784         DMPAPER_JENV_CHOU3=(int)(0x0049),
785         DMPAPER_JENV_CHOU4=(int)(0x004A),
786         DMPAPER_LETTER_ROTATED=(int)(0x004B),
787         DMPAPER_A3_ROTATED=(int)(0x004C),
788         DMPAPER_A4_ROTATED=(int)(0x004D),
789         DMPAPER_A5_ROTATED=(int)(0x004E),
790         DMPAPER_B4_JIS_ROTATED=(int)(0x004F),
791         DMPAPER_B5_JIS_ROTATED=(int)(0x0050),
792         DMPAPER_JAPANESE_POSTCARD_ROTATED=(int)(0x0051),
793         DMPAPER_DBL_JAPANESE_POSTCARD_ROTATED=(int)(0x0052),
794         DMPAPER_A6_ROTATED=(int)(0x0053),
795         DMPAPER_JENV_KAKU2_ROTATED=(int)(0x0054),
796         DMPAPER_JENV_KAKU3_ROTATED=(int)(0x0055),
797         DMPAPER_JENV_CHOU3_ROTATED=(int)(0x0056),
798         DMPAPER_JENV_CHOU4_ROTATED=(int)(0x0057),
799         DMPAPER_B6_JIS=(int)(0x0058),
800         DMPAPER_B6_JIS_ROTATED=(int)(0x0059),
801         DMPAPER_12X11=(int)(0x005A),
802         DMPAPER_JENV_YOU4=(int)(0x005B),
803         DMPAPER_JENV_YOU4_ROTATED=(int)(0x005C),
804         DMPAPER_P16K=(int)(0x005D),
805         DMPAPER_P32K=(int)(0x005E),
806         DMPAPER_P32KBIG=(int)(0x005F),
807         DMPAPER_PENV_1=(int)(0x0060),
808         DMPAPER_PENV_2=(int)(0x0061),
809         DMPAPER_PENV_3=(int)(0x0062),
810         DMPAPER_PENV_4=(int)(0x0063),
811         DMPAPER_PENV_5=(int)(0x0064),
812         DMPAPER_PENV_6=(int)(0x0065),
813         DMPAPER_PENV_7=(int)(0x0066),
814         DMPAPER_PENV_8=(int)(0x0067),
815         DMPAPER_PENV_9=(int)(0x0068),
816         DMPAPER_PENV_10=(int)(0x0069),
817         DMPAPER_P16K_ROTATED=(int)(0x006A),
818         DMPAPER_P32K_ROTATED=(int)(0x006B),
819         DMPAPER_P32KBIG_ROTATED=(int)(0x006C),
820         DMPAPER_PENV_1_ROTATED=(int)(0x006D),
821         DMPAPER_PENV_2_ROTATED=(int)(0x006E),
822         DMPAPER_PENV_3_ROTATED=(int)(0x006F),
823         DMPAPER_PENV_4_ROTATED=(int)(0x0070),
824         DMPAPER_PENV_5_ROTATED=(int)(0x0071),
825         DMPAPER_PENV_6_ROTATED=(int)(0x0072),
826         DMPAPER_PENV_7_ROTATED=(int)(0x0073),
827         DMPAPER_PENV_8_ROTATED=(int)(0x0074),
828         DMPAPER_PENV_9_ROTATED=(int)(0x0075),
829         DMPAPER_PENV_10_ROTATED=(int)(0x0076)
830 }
831 #else
832  { __do_not_use_enum_spoolss_DeviceModePaperSize=0x7FFFFFFF}
833 #define DMPAPER_LETTER ( 0x0001 )
834 #define DMPAPER_LETTERSMALL ( 0x0002 )
835 #define DMPAPER_TABLOID ( 0x0003 )
836 #define DMPAPER_LEDGER ( 0x0004 )
837 #define DMPAPER_LEGAL ( 0x0005 )
838 #define DMPAPER_STATEMENT ( 0x0006 )
839 #define DMPAPER_EXECUTIVE ( 0x0007 )
840 #define DMPAPER_A3 ( 0x0008 )
841 #define DMPAPER_A4 ( 0x0009 )
842 #define DMPAPER_A4SMALL ( 0x000A )
843 #define DMPAPER_A5 ( 0x000B )
844 #define DMPAPER_B4 ( 0x000C )
845 #define DMPAPER_B5 ( 0x000D )
846 #define DMPAPER_FOLIO ( 0x000E )
847 #define DMPAPER_QUARTO ( 0x000F )
848 #define DMPAPER_10X14 ( 0x0010 )
849 #define DMPAPER_11X17 ( 0x0011 )
850 #define DMPAPER_NOTE ( 0x0012 )
851 #define DMPAPER_ENV_9 ( 0x0013 )
852 #define DMPAPER_ENV_10 ( 0x0014 )
853 #define DMPAPER_ENV_11 ( 0x0015 )
854 #define DMPAPER_ENV_12 ( 0x0016 )
855 #define DMPAPER_ENV_14 ( 0x0017 )
856 #define DMPAPER_CSHEET ( 0x0018 )
857 #define DMPAPER_DSHEET ( 0x0019 )
858 #define DMPAPER_ESHEET ( 0x001A )
859 #define DMPAPER_ENV_DL ( 0x001B )
860 #define DMPAPER_ENV_C5 ( 0x001C )
861 #define DMPAPER_ENV_C3 ( 0x001D )
862 #define DMPAPER_ENV_C4 ( 0x001E )
863 #define DMPAPER_ENV_C6 ( 0x001F )
864 #define DMPAPER_ENV_C65 ( 0x0020 )
865 #define DMPAPER_ENV_B4 ( 0x0021 )
866 #define DMPAPER_ENV_B5 ( 0x0022 )
867 #define DMPAPER_ENV_B6 ( 0x0023 )
868 #define DMPAPER_ENV_ITALY ( 0x0024 )
869 #define DMPAPER_ENV_MONARCH ( 0x0025 )
870 #define DMPAPER_ENV_PERSONAL ( 0x0026 )
871 #define DMPAPER_FANFOLD_US ( 0x0027 )
872 #define DMPAPER_FANFOLD_STD_GERMAN ( 0x0028 )
873 #define DMPAPER_FANFOLD_LGL_GERMAN ( 0x0029 )
874 #define DMPAPER_DBL_JAPANESE_POSTCARD ( 0x0045 )
875 #define DMPAPER_A6 ( 0x0046 )
876 #define DMPAPER_JENV_KAKU2 ( 0x0047 )
877 #define DMPAPER_JENV_KAKU3 ( 0x0048 )
878 #define DMPAPER_JENV_CHOU3 ( 0x0049 )
879 #define DMPAPER_JENV_CHOU4 ( 0x004A )
880 #define DMPAPER_LETTER_ROTATED ( 0x004B )
881 #define DMPAPER_A3_ROTATED ( 0x004C )
882 #define DMPAPER_A4_ROTATED ( 0x004D )
883 #define DMPAPER_A5_ROTATED ( 0x004E )
884 #define DMPAPER_B4_JIS_ROTATED ( 0x004F )
885 #define DMPAPER_B5_JIS_ROTATED ( 0x0050 )
886 #define DMPAPER_JAPANESE_POSTCARD_ROTATED ( 0x0051 )
887 #define DMPAPER_DBL_JAPANESE_POSTCARD_ROTATED ( 0x0052 )
888 #define DMPAPER_A6_ROTATED ( 0x0053 )
889 #define DMPAPER_JENV_KAKU2_ROTATED ( 0x0054 )
890 #define DMPAPER_JENV_KAKU3_ROTATED ( 0x0055 )
891 #define DMPAPER_JENV_CHOU3_ROTATED ( 0x0056 )
892 #define DMPAPER_JENV_CHOU4_ROTATED ( 0x0057 )
893 #define DMPAPER_B6_JIS ( 0x0058 )
894 #define DMPAPER_B6_JIS_ROTATED ( 0x0059 )
895 #define DMPAPER_12X11 ( 0x005A )
896 #define DMPAPER_JENV_YOU4 ( 0x005B )
897 #define DMPAPER_JENV_YOU4_ROTATED ( 0x005C )
898 #define DMPAPER_P16K ( 0x005D )
899 #define DMPAPER_P32K ( 0x005E )
900 #define DMPAPER_P32KBIG ( 0x005F )
901 #define DMPAPER_PENV_1 ( 0x0060 )
902 #define DMPAPER_PENV_2 ( 0x0061 )
903 #define DMPAPER_PENV_3 ( 0x0062 )
904 #define DMPAPER_PENV_4 ( 0x0063 )
905 #define DMPAPER_PENV_5 ( 0x0064 )
906 #define DMPAPER_PENV_6 ( 0x0065 )
907 #define DMPAPER_PENV_7 ( 0x0066 )
908 #define DMPAPER_PENV_8 ( 0x0067 )
909 #define DMPAPER_PENV_9 ( 0x0068 )
910 #define DMPAPER_PENV_10 ( 0x0069 )
911 #define DMPAPER_P16K_ROTATED ( 0x006A )
912 #define DMPAPER_P32K_ROTATED ( 0x006B )
913 #define DMPAPER_P32KBIG_ROTATED ( 0x006C )
914 #define DMPAPER_PENV_1_ROTATED ( 0x006D )
915 #define DMPAPER_PENV_2_ROTATED ( 0x006E )
916 #define DMPAPER_PENV_3_ROTATED ( 0x006F )
917 #define DMPAPER_PENV_4_ROTATED ( 0x0070 )
918 #define DMPAPER_PENV_5_ROTATED ( 0x0071 )
919 #define DMPAPER_PENV_6_ROTATED ( 0x0072 )
920 #define DMPAPER_PENV_7_ROTATED ( 0x0073 )
921 #define DMPAPER_PENV_8_ROTATED ( 0x0074 )
922 #define DMPAPER_PENV_9_ROTATED ( 0x0075 )
923 #define DMPAPER_PENV_10_ROTATED ( 0x0076 )
924 #endif
925 ;
926
927 enum spoolss_DeviceModeDefaultSource
928 #ifndef USE_UINT_ENUMS
929  {
930         DMBIN_UPPER=(int)(0x0001),
931         DMBIN_LOWER=(int)(0x0002),
932         DMBIN_MIDDLE=(int)(0x0003),
933         DMBIN_MANUAL=(int)(0x0004),
934         DMBIN_ENVELOPE=(int)(0x0005),
935         DMBIN_ENVMANUAL=(int)(0x0006),
936         DMBIN_AUTO=(int)(0x0007),
937         DMBIN_TRACTOR=(int)(0x0008),
938         DMBIN_SMALLFMT=(int)(0x0009),
939         DMBIN_LARGEFMT=(int)(0x000a),
940         DMBIN_LARGECAPACITY=(int)(0x000b),
941         DMBIN_CASSETTE=(int)(0x000e),
942         DMBIN_FORMSOURCE=(int)(0x000f)
943 }
944 #else
945  { __do_not_use_enum_spoolss_DeviceModeDefaultSource=0x7FFFFFFF}
946 #define DMBIN_UPPER ( 0x0001 )
947 #define DMBIN_LOWER ( 0x0002 )
948 #define DMBIN_MIDDLE ( 0x0003 )
949 #define DMBIN_MANUAL ( 0x0004 )
950 #define DMBIN_ENVELOPE ( 0x0005 )
951 #define DMBIN_ENVMANUAL ( 0x0006 )
952 #define DMBIN_AUTO ( 0x0007 )
953 #define DMBIN_TRACTOR ( 0x0008 )
954 #define DMBIN_SMALLFMT ( 0x0009 )
955 #define DMBIN_LARGEFMT ( 0x000a )
956 #define DMBIN_LARGECAPACITY ( 0x000b )
957 #define DMBIN_CASSETTE ( 0x000e )
958 #define DMBIN_FORMSOURCE ( 0x000f )
959 #endif
960 ;
961
962 enum spoolss_DeviceModePrintQuality
963 #ifndef USE_UINT_ENUMS
964  {
965         DMRES_HIGH=(int)(0xfffc),
966         DMRES_MEDIUM=(int)(0xfffd),
967         DMRES_LOW=(int)(0xfffe),
968         DMRES_DRAFT=(int)(0xffff)
969 }
970 #else
971  { __do_not_use_enum_spoolss_DeviceModePrintQuality=0x7FFFFFFF}
972 #define DMRES_HIGH ( 0xfffc )
973 #define DMRES_MEDIUM ( 0xfffd )
974 #define DMRES_LOW ( 0xfffe )
975 #define DMRES_DRAFT ( 0xffff )
976 #endif
977 ;
978
979 enum spoolss_DeviceModeColor
980 #ifndef USE_UINT_ENUMS
981  {
982         DMRES_MONOCHROME=(int)(0x0001),
983         DMRES_COLOR=(int)(0x0002)
984 }
985 #else
986  { __do_not_use_enum_spoolss_DeviceModeColor=0x7FFFFFFF}
987 #define DMRES_MONOCHROME ( 0x0001 )
988 #define DMRES_COLOR ( 0x0002 )
989 #endif
990 ;
991
992 enum spoolss_DeviceModeDuplex
993 #ifndef USE_UINT_ENUMS
994  {
995         DMDUP_SIMPLEX=(int)(0x0001),
996         DMDUP_VERTICAL=(int)(0x0002),
997         DMDUP_HORIZONTAL=(int)(0x0003)
998 }
999 #else
1000  { __do_not_use_enum_spoolss_DeviceModeDuplex=0x7FFFFFFF}
1001 #define DMDUP_SIMPLEX ( 0x0001 )
1002 #define DMDUP_VERTICAL ( 0x0002 )
1003 #define DMDUP_HORIZONTAL ( 0x0003 )
1004 #endif
1005 ;
1006
1007 enum spoolss_DeviceModeTTOption
1008 #ifndef USE_UINT_ENUMS
1009  {
1010         DMTT_BITMAP=(int)(0x0001),
1011         DMTT_DOWNLOAD=(int)(0x0002),
1012         DMTT_SUBDEV=(int)(0x0003),
1013         DMTT_DOWNLOAD_OUTLINE=(int)(0x0004)
1014 }
1015 #else
1016  { __do_not_use_enum_spoolss_DeviceModeTTOption=0x7FFFFFFF}
1017 #define DMTT_BITMAP ( 0x0001 )
1018 #define DMTT_DOWNLOAD ( 0x0002 )
1019 #define DMTT_SUBDEV ( 0x0003 )
1020 #define DMTT_DOWNLOAD_OUTLINE ( 0x0004 )
1021 #endif
1022 ;
1023
1024 enum spoolss_DeviceModeCollate
1025 #ifndef USE_UINT_ENUMS
1026  {
1027         DMCOLLATE_FALSE=(int)(0x0000),
1028         DMCOLLATE_TRUE=(int)(0x0001)
1029 }
1030 #else
1031  { __do_not_use_enum_spoolss_DeviceModeCollate=0x7FFFFFFF}
1032 #define DMCOLLATE_FALSE ( 0x0000 )
1033 #define DMCOLLATE_TRUE ( 0x0001 )
1034 #endif
1035 ;
1036
1037 enum spoolss_DeviceModeNUp
1038 #ifndef USE_UINT_ENUMS
1039  {
1040         DMNUP_SYSTEM=(int)(0x00000001),
1041         DMNUP_ONEUP=(int)(0x00000002)
1042 }
1043 #else
1044  { __do_not_use_enum_spoolss_DeviceModeNUp=0x7FFFFFFF}
1045 #define DMNUP_SYSTEM ( 0x00000001 )
1046 #define DMNUP_ONEUP ( 0x00000002 )
1047 #endif
1048 ;
1049
1050 enum spoolss_DeviceModeICMMethod
1051 #ifndef USE_UINT_ENUMS
1052  {
1053         DMICMMETHOD_NONE=(int)(0x00000001),
1054         DMICMMETHOD_SYSTEM=(int)(0x00000002),
1055         DMICMMETHOD_DRIVER=(int)(0x00000003),
1056         DMICMMETHOD_DEVICE=(int)(0x00000004)
1057 }
1058 #else
1059  { __do_not_use_enum_spoolss_DeviceModeICMMethod=0x7FFFFFFF}
1060 #define DMICMMETHOD_NONE ( 0x00000001 )
1061 #define DMICMMETHOD_SYSTEM ( 0x00000002 )
1062 #define DMICMMETHOD_DRIVER ( 0x00000003 )
1063 #define DMICMMETHOD_DEVICE ( 0x00000004 )
1064 #endif
1065 ;
1066
1067 enum spoolss_DeviceModeICMIntent
1068 #ifndef USE_UINT_ENUMS
1069  {
1070         DMICM_SATURATE=(int)(0x00000001),
1071         DMICM_CONTRAST=(int)(0x00000002),
1072         DMICM_COLORIMETRIC=(int)(0x00000003),
1073         DMICM_ABS_COLORIMETRIC=(int)(0x00000004)
1074 }
1075 #else
1076  { __do_not_use_enum_spoolss_DeviceModeICMIntent=0x7FFFFFFF}
1077 #define DMICM_SATURATE ( 0x00000001 )
1078 #define DMICM_CONTRAST ( 0x00000002 )
1079 #define DMICM_COLORIMETRIC ( 0x00000003 )
1080 #define DMICM_ABS_COLORIMETRIC ( 0x00000004 )
1081 #endif
1082 ;
1083
1084 enum spoolss_DeviceModeMediaType
1085 #ifndef USE_UINT_ENUMS
1086  {
1087         DMMEDIA_STANDARD=(int)(0x00000001),
1088         DMMEDIA_TRANSPARENCY=(int)(0x00000002),
1089         DMMEDIA_GLOSSY=(int)(0x00000003)
1090 }
1091 #else
1092  { __do_not_use_enum_spoolss_DeviceModeMediaType=0x7FFFFFFF}
1093 #define DMMEDIA_STANDARD ( 0x00000001 )
1094 #define DMMEDIA_TRANSPARENCY ( 0x00000002 )
1095 #define DMMEDIA_GLOSSY ( 0x00000003 )
1096 #endif
1097 ;
1098
1099 enum spoolss_DeviceModeDitherType
1100 #ifndef USE_UINT_ENUMS
1101  {
1102         DMDITHER_NONE=(int)(0x00000001),
1103         DMDITHER_COARSE=(int)(0x00000002),
1104         DMDITHER_FINE=(int)(0x00000003),
1105         DMDITHER_LINEART=(int)(0x00000004),
1106         DMDITHER_ERRORDIFFUSION=(int)(0x00000005),
1107         DMDITHER_RESERVED6=(int)(0x00000006),
1108         DMDITHER_RESERVED7=(int)(0x00000007),
1109         DMDITHER_RESERVED8=(int)(0x00000008),
1110         DMDITHER_RESERVED9=(int)(0x00000009),
1111         DMDITHER_GRAYSCALE=(int)(0x0000000A)
1112 }
1113 #else
1114  { __do_not_use_enum_spoolss_DeviceModeDitherType=0x7FFFFFFF}
1115 #define DMDITHER_NONE ( 0x00000001 )
1116 #define DMDITHER_COARSE ( 0x00000002 )
1117 #define DMDITHER_FINE ( 0x00000003 )
1118 #define DMDITHER_LINEART ( 0x00000004 )
1119 #define DMDITHER_ERRORDIFFUSION ( 0x00000005 )
1120 #define DMDITHER_RESERVED6 ( 0x00000006 )
1121 #define DMDITHER_RESERVED7 ( 0x00000007 )
1122 #define DMDITHER_RESERVED8 ( 0x00000008 )
1123 #define DMDITHER_RESERVED9 ( 0x00000009 )
1124 #define DMDITHER_GRAYSCALE ( 0x0000000A )
1125 #endif
1126 ;
1127
1128 struct spoolss_DeviceMode {
1129         const char *devicename;/* [to_null,charset(UTF16)] */
1130         enum spoolss_DeviceModeSpecVersion specversion;
1131         uint16_t driverversion;
1132         uint16_t size;
1133         uint16_t __driverextra_length;/* [value(r->driverextra_data.length)] */
1134         uint32_t fields;
1135         enum spoolss_DeviceModeOrientation orientation;
1136         enum spoolss_DeviceModePaperSize papersize;
1137         uint16_t paperlength;
1138         uint16_t paperwidth;
1139         uint16_t scale;
1140         uint16_t copies;
1141         enum spoolss_DeviceModeDefaultSource defaultsource;
1142         enum spoolss_DeviceModePrintQuality printquality;
1143         enum spoolss_DeviceModeColor color;
1144         enum spoolss_DeviceModeDuplex duplex;
1145         uint16_t yresolution;
1146         enum spoolss_DeviceModeTTOption ttoption;
1147         enum spoolss_DeviceModeCollate collate;
1148         const char *formname;/* [to_null,charset(UTF16)] */
1149         uint16_t logpixels;
1150         uint32_t bitsperpel;
1151         uint32_t pelswidth;
1152         uint32_t pelsheight;
1153         enum spoolss_DeviceModeNUp displayflags;
1154         uint32_t displayfrequency;
1155         enum spoolss_DeviceModeICMMethod icmmethod;
1156         enum spoolss_DeviceModeICMIntent icmintent;
1157         enum spoolss_DeviceModeMediaType mediatype;
1158         enum spoolss_DeviceModeDitherType dithertype;
1159         uint32_t reserved1;
1160         uint32_t reserved2;
1161         uint32_t panningwidth;
1162         uint32_t panningheight;
1163         DATA_BLOB driverextra_data;/* [subcontext_size(__driverextra_length),subcontext(0),flag(LIBNDR_FLAG_REMAINING)] */
1164 }/* [gensize,public] */;
1165
1166 /* bitmap spoolss_EnumPrinterFlags */
1167 #define PRINTER_ENUM_DEFAULT ( 0x00000001 )
1168 #define PRINTER_ENUM_LOCAL ( 0x00000002 )
1169 #define PRINTER_ENUM_CONNECTIONS ( 0x00000004 )
1170 #define PRINTER_ENUM_FAVORITE ( 0x00000004 )
1171 #define PRINTER_ENUM_NAME ( 0x00000008 )
1172 #define PRINTER_ENUM_REMOTE ( 0x00000010 )
1173 #define PRINTER_ENUM_SHARED ( 0x00000020 )
1174 #define PRINTER_ENUM_NETWORK ( 0x00000040 )
1175 #define PRINTER_ENUM_EXPAND ( 0x00004000 )
1176 #define PRINTER_ENUM_CONTAINER ( 0x00008000 )
1177 #define PRINTER_ENUM_ICON1 ( 0x00010000 )
1178 #define PRINTER_ENUM_ICON2 ( 0x00020000 )
1179 #define PRINTER_ENUM_ICON3 ( 0x00040000 )
1180 #define PRINTER_ENUM_ICON4 ( 0x00080000 )
1181 #define PRINTER_ENUM_ICON5 ( 0x00100000 )
1182 #define PRINTER_ENUM_ICON6 ( 0x00200000 )
1183 #define PRINTER_ENUM_ICON7 ( 0x00400000 )
1184 #define PRINTER_ENUM_ICON8 ( 0x00800000 )
1185 #define PRINTER_ENUM_HIDE ( 0x01000000 )
1186
1187 /* bitmap spoolss_PrinterAttributes */
1188 #define PRINTER_ATTRIBUTE_QUEUED ( 0x00000001 )
1189 #define PRINTER_ATTRIBUTE_DIRECT ( 0x00000002 )
1190 #define PRINTER_ATTRIBUTE_DEFAULT ( 0x00000004 )
1191 #define PRINTER_ATTRIBUTE_SHARED ( 0x00000008 )
1192 #define PRINTER_ATTRIBUTE_NETWORK ( 0x00000010 )
1193 #define PRINTER_ATTRIBUTE_HIDDEN ( 0x00000020 )
1194 #define PRINTER_ATTRIBUTE_LOCAL ( 0x00000040 )
1195 #define PRINTER_ATTRIBUTE_ENABLE_DEVQ ( 0x00000080 )
1196 #define PRINTER_ATTRIBUTE_KEEPPRINTEDJOBS ( 0x00000100 )
1197 #define PRINTER_ATTRIBUTE_DO_COMPLETE_FIRST ( 0x00000200 )
1198 #define PRINTER_ATTRIBUTE_WORK_OFFLINE ( 0x00000400 )
1199 #define PRINTER_ATTRIBUTE_ENABLE_BIDI ( 0x00000800 )
1200 #define PRINTER_ATTRIBUTE_RAW_ONLY ( 0x00001000 )
1201 #define PRINTER_ATTRIBUTE_PUBLISHED ( 0x00002000 )
1202 #define PRINTER_ATTRIBUTE_FAX ( 0x00004000 )
1203 #define PRINTER_ATTRIBUTE_TS ( 0x00008000 )
1204
1205 struct spoolss_PrinterInfo1 {
1206         uint32_t flags;
1207         const char * description;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] */
1208         const char * name;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] */
1209         const char * comment;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] */
1210 }/* [gensize,public] */;
1211
1212 struct spoolss_PrinterInfo2 {
1213         const char * servername;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] */
1214         const char * printername;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] */
1215         const char * sharename;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] */
1216         const char * portname;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] */
1217         const char * drivername;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] */
1218         const char * comment;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] */
1219         const char * location;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] */
1220         struct spoolss_DeviceMode *devmode;/* [relative,subcontext(0),flag(LIBNDR_FLAG_ALIGN4)] */
1221         const char * sepfile;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] */
1222         const char * printprocessor;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] */
1223         const char * datatype;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] */
1224         const char * parameters;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] */
1225         struct spoolss_security_descriptor *secdesc;/* [relative,subcontext(0),flag(LIBNDR_FLAG_ALIGN4)] */
1226         uint32_t attributes;
1227         uint32_t priority;/* [range(0,99)] */
1228         uint32_t defaultpriority;
1229         uint32_t starttime;
1230         uint32_t untiltime;
1231         uint32_t status;
1232         uint32_t cjobs;
1233         uint32_t averageppm;
1234 }/* [gensize,public,nopush] */;
1235
1236 struct spoolss_PrinterInfo3 {
1237         struct spoolss_security_descriptor *secdesc;/* [relative,subcontext(0),flag(LIBNDR_FLAG_ALIGN4)] */
1238 }/* [gensize,public] */;
1239
1240 struct spoolss_PrinterInfo4 {
1241         const char * printername;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] */
1242         const char * servername;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] */
1243         uint32_t attributes;
1244 }/* [gensize,public] */;
1245
1246 struct spoolss_PrinterInfo5 {
1247         const char * printername;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] */
1248         const char * portname;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] */
1249         uint32_t attributes;
1250         uint32_t device_not_selected_timeout;
1251         uint32_t transmission_retry_timeout;
1252 }/* [gensize,public] */;
1253
1254 struct spoolss_PrinterInfo6 {
1255         uint32_t status;
1256 }/* [gensize,public] */;
1257
1258 /* bitmap spoolss_DsPrintAction */
1259 #define DSPRINT_PUBLISH ( 0x00000001 )
1260 #define DSPRINT_UPDATE ( 0x00000002 )
1261 #define DSPRINT_UNPUBLISH ( 0x00000004 )
1262 #define DSPRINT_REPUBLISH ( 0x00000008 )
1263 #define DSPRINT_PENDING ( 0x80000000 )
1264
1265 struct spoolss_PrinterInfo7 {
1266         const char * guid;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] */
1267         uint32_t action;
1268 }/* [gensize,public] */;
1269
1270 struct spoolss_DeviceModeInfo {
1271         struct spoolss_DeviceMode *devmode;/* [relative,subcontext(0),flag(LIBNDR_FLAG_ALIGN4)] */
1272 };
1273
1274 union spoolss_PrinterInfo {
1275         struct spoolss_PrinterInfo0 info0;/* [case(0)] */
1276         struct spoolss_PrinterInfo1 info1;/* [case] */
1277         struct spoolss_PrinterInfo2 info2;/* [case(2)] */
1278         struct spoolss_PrinterInfo3 info3;/* [case(3)] */
1279         struct spoolss_PrinterInfo4 info4;/* [case(4)] */
1280         struct spoolss_PrinterInfo5 info5;/* [case(5)] */
1281         struct spoolss_PrinterInfo6 info6;/* [case(6)] */
1282         struct spoolss_PrinterInfo7 info7;/* [case(7)] */
1283         struct spoolss_DeviceModeInfo info8;/* [case(8)] */
1284         struct spoolss_DeviceModeInfo info9;/* [case(9)] */
1285 }/* [gensize,relative_base,nodiscriminant,public,flag(LIBNDR_FLAG_RELATIVE_REVERSE)] */;
1286
1287 struct spoolss_DevmodeContainer {
1288         uint32_t _ndr_size;/* [value(_ndr_size_spoolss_DeviceMode(devmode,ndr->flags))] */
1289         struct spoolss_DeviceMode *devmode;/* [unique,subcontext_size(_ndr_size),subcontext(4)] */
1290 }/* [public] */;
1291
1292 struct spoolss_JobInfo1 {
1293         uint32_t job_id;
1294         const char * printer_name;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] */
1295         const char * server_name;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] */
1296         const char * user_name;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] */
1297         const char * document_name;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] */
1298         const char * data_type;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] */
1299         const char * text_status;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] */
1300         uint32_t status;
1301         uint32_t priority;/* [range(0,99)] */
1302         uint32_t position;
1303         uint32_t total_pages;
1304         uint32_t pages_printed;
1305         struct spoolss_Time submitted;
1306 }/* [gensize,public] */;
1307
1308 struct spoolss_JobInfo2 {
1309         uint32_t job_id;
1310         const char * printer_name;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] */
1311         const char * server_name;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] */
1312         const char * user_name;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] */
1313         const char * document_name;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] */
1314         const char * notify_name;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] */
1315         const char * data_type;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] */
1316         const char * print_processor;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] */
1317         const char * parameters;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] */
1318         const char * driver_name;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] */
1319         struct spoolss_DeviceMode *devmode;/* [relative,subcontext(0),flag(LIBNDR_FLAG_ALIGN4)] */
1320         const char * text_status;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] */
1321         struct spoolss_security_descriptor *secdesc;/* [relative,subcontext(0),flag(LIBNDR_FLAG_ALIGN4)] */
1322         uint32_t status;
1323         uint32_t priority;/* [range(0,99)] */
1324         uint32_t position;
1325         uint32_t start_time;
1326         uint32_t until_time;
1327         uint32_t total_pages;
1328         uint32_t size;
1329         struct spoolss_Time submitted;
1330         uint32_t time;
1331         uint32_t pages_printed;
1332 }/* [gensize,public] */;
1333
1334 struct spoolss_JobInfo3 {
1335         uint32_t job_id;
1336         uint32_t next_job_id;
1337         uint32_t reserved;
1338 }/* [gensize,public] */;
1339
1340 struct spoolss_JobInfo4 {
1341         uint32_t job_id;
1342         const char * printer_name;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] */
1343         const char * server_name;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] */
1344         const char * user_name;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] */
1345         const char * document_name;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] */
1346         const char * notify_name;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] */
1347         const char * data_type;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] */
1348         const char * print_processor;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] */
1349         const char * parameters;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] */
1350         const char * driver_name;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] */
1351         struct spoolss_DeviceMode *devmode;/* [relative,subcontext(0),flag(LIBNDR_FLAG_ALIGN4)] */
1352         const char * text_status;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] */
1353         struct spoolss_security_descriptor *secdesc;/* [relative,subcontext(0),flag(LIBNDR_FLAG_ALIGN4)] */
1354         uint32_t status;
1355         uint32_t priority;/* [range(0,99)] */
1356         uint32_t position;
1357         uint32_t start_time;
1358         uint32_t until_time;
1359         uint32_t total_pages;
1360         uint32_t size;
1361         struct spoolss_Time submitted;
1362         uint32_t time;
1363         uint32_t pages_printed;
1364         uint32_t size_high;
1365 }/* [gensize,public] */;
1366
1367 union spoolss_JobInfo {
1368         struct spoolss_JobInfo1 info1;/* [case] */
1369         struct spoolss_JobInfo2 info2;/* [case(2)] */
1370         struct spoolss_JobInfo3 info3;/* [case(3)] */
1371         struct spoolss_JobInfo4 info4;/* [case(4)] */
1372 }/* [gensize,relative_base,nodiscriminant,public,flag(LIBNDR_FLAG_RELATIVE_REVERSE)] */;
1373
1374 struct spoolss_SetJobInfo1 {
1375         uint32_t job_id;
1376         const char *printer_name;/* [unique,charset(UTF16)] */
1377         const char *server_name;/* [unique,charset(UTF16)] */
1378         const char *user_name;/* [unique,charset(UTF16)] */
1379         const char *document_name;/* [unique,charset(UTF16)] */
1380         const char *data_type;/* [unique,charset(UTF16)] */
1381         const char *text_status;/* [unique,charset(UTF16)] */
1382         uint32_t status;
1383         uint32_t priority;/* [range(0,99)] */
1384         uint32_t position;
1385         uint32_t total_pages;
1386         uint32_t pages_printed;
1387         struct spoolss_Time submitted;
1388 };
1389
1390 struct spoolss_SetJobInfo2 {
1391         uint32_t job_id;
1392         const char *printer_name;/* [unique,charset(UTF16)] */
1393         const char *server_name;/* [unique,charset(UTF16)] */
1394         const char *user_name;/* [unique,charset(UTF16)] */
1395         const char *document_name;/* [unique,charset(UTF16)] */
1396         const char *notify_name;/* [unique,charset(UTF16)] */
1397         const char *data_type;/* [unique,charset(UTF16)] */
1398         const char *print_processor;/* [unique,charset(UTF16)] */
1399         const char *parameters;/* [unique,charset(UTF16)] */
1400         const char *driver_name;/* [unique,charset(UTF16)] */
1401         uint32_t *_devmode_ptr;/* [unique] */
1402         const char *text_status;/* [unique,charset(UTF16)] */
1403         uint32_t *_secdesc_ptr;/* [unique] */
1404         uint32_t status;
1405         uint32_t priority;/* [range(0,99)] */
1406         uint32_t position;
1407         uint32_t start_time;
1408         uint32_t until_time;
1409         uint32_t total_pages;
1410         uint32_t size;
1411         struct spoolss_Time submitted;
1412         uint32_t time;
1413         uint32_t pages_printed;
1414 };
1415
1416 struct spoolss_SetJobInfo4 {
1417         uint32_t job_id;
1418         const char *printer_name;/* [unique,charset(UTF16)] */
1419         const char *server_name;/* [unique,charset(UTF16)] */
1420         const char *user_name;/* [unique,charset(UTF16)] */
1421         const char *document_name;/* [unique,charset(UTF16)] */
1422         const char *notify_name;/* [unique,charset(UTF16)] */
1423         const char *data_type;/* [unique,charset(UTF16)] */
1424         const char *print_processor;/* [unique,charset(UTF16)] */
1425         const char *parameters;/* [unique,charset(UTF16)] */
1426         const char *driver_name;/* [unique,charset(UTF16)] */
1427         uint32_t *_devmode_ptr;/* [unique] */
1428         const char *text_status;/* [unique,charset(UTF16)] */
1429         uint32_t *_secdesc_ptr;/* [unique] */
1430         uint32_t status;
1431         uint32_t priority;/* [range(0,99)] */
1432         uint32_t position;
1433         uint32_t start_time;
1434         uint32_t until_time;
1435         uint32_t total_pages;
1436         uint32_t size;
1437         struct spoolss_Time submitted;
1438         uint32_t time;
1439         uint32_t pages_printed;
1440         uint32_t size_high;
1441 };
1442
1443 union spoolss_SetJobInfo {
1444         struct spoolss_SetJobInfo1 *info1;/* [unique,case] */
1445         struct spoolss_SetJobInfo2 *info2;/* [unique,case(2)] */
1446         struct spoolss_JobInfo3 *info3;/* [unique,case(3)] */
1447         struct spoolss_SetJobInfo4 *info4;/* [unique,case(4)] */
1448 }/* [ms_union,public] */;
1449
1450 struct spoolss_JobInfoContainer {
1451         uint32_t level;
1452         union spoolss_SetJobInfo info;/* [switch_is(level)] */
1453 }/* [public] */;
1454
1455 enum spoolss_JobControl
1456 #ifndef USE_UINT_ENUMS
1457  {
1458         SPOOLSS_JOB_CONTROL_PAUSE=(int)(1),
1459         SPOOLSS_JOB_CONTROL_RESUME=(int)(2),
1460         SPOOLSS_JOB_CONTROL_CANCEL=(int)(3),
1461         SPOOLSS_JOB_CONTROL_RESTART=(int)(4),
1462         SPOOLSS_JOB_CONTROL_DELETE=(int)(5),
1463         SPOOLSS_JOB_CONTROL_SEND_TO_PRINTER=(int)(6),
1464         SPOOLSS_JOB_CONTROL_LAST_PAGE_EJECTED=(int)(7),
1465         SPOOLSS_JOB_CONTROL_RETAIN=(int)(8),
1466         SPOOLSS_JOB_CONTROL_RELEASE=(int)(9)
1467 }
1468 #else
1469  { __do_not_use_enum_spoolss_JobControl=0x7FFFFFFF}
1470 #define SPOOLSS_JOB_CONTROL_PAUSE ( 1 )
1471 #define SPOOLSS_JOB_CONTROL_RESUME ( 2 )
1472 #define SPOOLSS_JOB_CONTROL_CANCEL ( 3 )
1473 #define SPOOLSS_JOB_CONTROL_RESTART ( 4 )
1474 #define SPOOLSS_JOB_CONTROL_DELETE ( 5 )
1475 #define SPOOLSS_JOB_CONTROL_SEND_TO_PRINTER ( 6 )
1476 #define SPOOLSS_JOB_CONTROL_LAST_PAGE_EJECTED ( 7 )
1477 #define SPOOLSS_JOB_CONTROL_RETAIN ( 8 )
1478 #define SPOOLSS_JOB_CONTROL_RELEASE ( 9 )
1479 #endif
1480 ;
1481
1482 enum spoolss_PrinterControl
1483 #ifndef USE_UINT_ENUMS
1484  {
1485         SPOOLSS_PRINTER_CONTROL_UNPAUSE=(int)(0),
1486         SPOOLSS_PRINTER_CONTROL_PAUSE=(int)(1),
1487         SPOOLSS_PRINTER_CONTROL_RESUME=(int)(2),
1488         SPOOLSS_PRINTER_CONTROL_PURGE=(int)(3),
1489         SPOOLSS_PRINTER_CONTROL_SET_STATUS=(int)(4)
1490 }
1491 #else
1492  { __do_not_use_enum_spoolss_PrinterControl=0x7FFFFFFF}
1493 #define SPOOLSS_PRINTER_CONTROL_UNPAUSE ( 0 )
1494 #define SPOOLSS_PRINTER_CONTROL_PAUSE ( 1 )
1495 #define SPOOLSS_PRINTER_CONTROL_RESUME ( 2 )
1496 #define SPOOLSS_PRINTER_CONTROL_PURGE ( 3 )
1497 #define SPOOLSS_PRINTER_CONTROL_SET_STATUS ( 4 )
1498 #endif
1499 ;
1500
1501 struct spoolss_SetPrinterInfo0 {
1502         const char *servername;/* [unique,charset(UTF16)] */
1503         const char *printername;/* [unique,charset(UTF16)] */
1504         uint32_t cjobs;
1505         uint32_t total_jobs;
1506         uint32_t total_bytes;
1507         struct spoolss_Time time;
1508         uint32_t global_counter;
1509         uint32_t total_pages;
1510         uint32_t version;
1511         enum spoolss_Build free_build;
1512         uint32_t spooling;
1513         uint32_t max_spooling;
1514         uint32_t session_counter;
1515         uint32_t num_error_out_of_paper;
1516         uint32_t num_error_not_ready;
1517         uint32_t job_error;
1518         uint32_t number_of_processors;
1519         enum spoolss_ProcessorType processor_type;
1520         uint32_t high_part_total_bytes;
1521         uint32_t change_id;
1522         WERROR last_error;
1523         uint32_t status;
1524         uint32_t enumerate_network_printers;
1525         uint32_t c_setprinter;
1526         enum spoolss_ProcessorArchitecture processor_architecture;
1527         uint16_t processor_level;
1528         uint32_t ref_ic;
1529         uint32_t reserved2;
1530         uint32_t reserved3;
1531 };
1532
1533 struct spoolss_SetPrinterInfo1 {
1534         uint32_t flags;
1535         const char *description;/* [unique,charset(UTF16)] */
1536         const char *name;/* [unique,charset(UTF16)] */
1537         const char *comment;/* [unique,charset(UTF16)] */
1538 };
1539
1540 struct spoolss_SetPrinterInfo2 {
1541         const char *servername;/* [unique,charset(UTF16)] */
1542         const char *printername;/* [unique,charset(UTF16)] */
1543         const char *sharename;/* [unique,charset(UTF16)] */
1544         const char *portname;/* [unique,charset(UTF16)] */
1545         const char *drivername;/* [unique,charset(UTF16)] */
1546         const char *comment;/* [unique,charset(UTF16)] */
1547         const char *location;/* [unique,charset(UTF16)] */
1548         uint32_t *devmode_ptr;/* [unique] */
1549         const char *sepfile;/* [unique,charset(UTF16)] */
1550         const char *printprocessor;/* [unique,charset(UTF16)] */
1551         const char *datatype;/* [unique,charset(UTF16)] */
1552         const char *parameters;/* [unique,charset(UTF16)] */
1553         uint32_t *secdesc_ptr;/* [unique] */
1554         uint32_t attributes;
1555         uint32_t priority;/* [range(0,99)] */
1556         uint32_t defaultpriority;
1557         uint32_t starttime;
1558         uint32_t untiltime;
1559         uint32_t status;
1560         uint32_t cjobs;
1561         uint32_t averageppm;
1562 };
1563
1564 struct spoolss_SetPrinterInfo3 {
1565         uint32_t *sec_desc_ptr;/* [unique] */
1566 };
1567
1568 struct spoolss_SetPrinterInfo4 {
1569         const char *printername;/* [unique,charset(UTF16)] */
1570         const char *servername;/* [unique,charset(UTF16)] */
1571         uint32_t attributes;
1572 };
1573
1574 struct spoolss_SetPrinterInfo5 {
1575         const char *printername;/* [unique,charset(UTF16)] */
1576         const char *portname;/* [unique,charset(UTF16)] */
1577         uint32_t attributes;
1578         uint32_t device_not_selected_timeout;
1579         uint32_t transmission_retry_timeout;
1580 };
1581
1582 struct spoolss_SetPrinterInfo6 {
1583         uint32_t status;
1584 };
1585
1586 struct spoolss_SetPrinterInfo7 {
1587         const char *guid;/* [unique,charset(UTF16)] */
1588         uint32_t action;
1589 };
1590
1591 struct spoolss_SetPrinterInfo8 {
1592         uint32_t *devmode_ptr;/* [unique] */
1593 };
1594
1595 struct spoolss_SetPrinterInfo9 {
1596         uint32_t *devmode_ptr;/* [unique] */
1597 };
1598
1599 union spoolss_SetPrinterInfo {
1600         struct spoolss_SetPrinterInfo0 *info0;/* [unique,case(0)] */
1601         struct spoolss_SetPrinterInfo1 *info1;/* [unique,case] */
1602         struct spoolss_SetPrinterInfo2 *info2;/* [unique,case(2)] */
1603         struct spoolss_SetPrinterInfo3 *info3;/* [unique,case(3)] */
1604         struct spoolss_SetPrinterInfo4 *info4;/* [unique,case(4)] */
1605         struct spoolss_SetPrinterInfo5 *info5;/* [unique,case(5)] */
1606         struct spoolss_SetPrinterInfo6 *info6;/* [unique,case(6)] */
1607         struct spoolss_SetPrinterInfo7 *info7;/* [unique,case(7)] */
1608         struct spoolss_SetPrinterInfo8 *info8;/* [unique,case(8)] */
1609         struct spoolss_SetPrinterInfo9 *info9;/* [unique,case(9)] */
1610 }/* [ms_union,switch_type(uint32)] */;
1611
1612 struct spoolss_SetPrinterInfoCtr {
1613         uint32_t level;
1614         union spoolss_SetPrinterInfo info;/* [switch_is(level)] */
1615 }/* [public] */;
1616
1617 struct spoolss_StringArray {
1618         uint32_t _ndr_size;/* [value((ndr_size_spoolss_StringArray(r,ndr->flags)-4)/2)] */
1619         const char ** string;/* [flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] */
1620 }/* [public] */;
1621
1622 struct spoolss_AddDriverInfo1 {
1623         const char *driver_name;/* [unique,charset(UTF16)] */
1624 };
1625
1626 enum spoolss_DriverOSVersion
1627 #ifndef USE_UINT_ENUMS
1628  {
1629         SPOOLSS_DRIVER_VERSION_9X=(int)(0),
1630         SPOOLSS_DRIVER_VERSION_NT35=(int)(1),
1631         SPOOLSS_DRIVER_VERSION_NT4=(int)(2),
1632         SPOOLSS_DRIVER_VERSION_200X=(int)(3),
1633         SPOOLSS_DRIVER_VERSION_2012=(int)(4)
1634 }
1635 #else
1636  { __do_not_use_enum_spoolss_DriverOSVersion=0x7FFFFFFF}
1637 #define SPOOLSS_DRIVER_VERSION_9X ( 0 )
1638 #define SPOOLSS_DRIVER_VERSION_NT35 ( 1 )
1639 #define SPOOLSS_DRIVER_VERSION_NT4 ( 2 )
1640 #define SPOOLSS_DRIVER_VERSION_200X ( 3 )
1641 #define SPOOLSS_DRIVER_VERSION_2012 ( 4 )
1642 #endif
1643 ;
1644
1645 struct spoolss_AddDriverInfo2 {
1646         enum spoolss_DriverOSVersion version;
1647         const char *driver_name;/* [unique,charset(UTF16)] */
1648         const char *architecture;/* [unique,charset(UTF16)] */
1649         const char *driver_path;/* [unique,charset(UTF16)] */
1650         const char *data_file;/* [unique,charset(UTF16)] */
1651         const char *config_file;/* [unique,charset(UTF16)] */
1652 };
1653
1654 struct spoolss_AddDriverInfo3 {
1655         enum spoolss_DriverOSVersion version;
1656         const char *driver_name;/* [unique,charset(UTF16)] */
1657         const char *architecture;/* [unique,charset(UTF16)] */
1658         const char *driver_path;/* [unique,charset(UTF16)] */
1659         const char *data_file;/* [unique,charset(UTF16)] */
1660         const char *config_file;/* [unique,charset(UTF16)] */
1661         const char *help_file;/* [unique,charset(UTF16)] */
1662         const char *monitor_name;/* [unique,charset(UTF16)] */
1663         const char *default_datatype;/* [unique,charset(UTF16)] */
1664         uint32_t _ndr_size_dependent_files;/* [value(((ndr_size_spoolss_StringArray(dependent_files,ndr->flags)-4)/2))] */
1665         struct spoolss_StringArray *dependent_files;/* [unique] */
1666 };
1667
1668 struct spoolss_AddDriverInfo4 {
1669         enum spoolss_DriverOSVersion version;
1670         const char *driver_name;/* [unique,charset(UTF16)] */
1671         const char *architecture;/* [unique,charset(UTF16)] */
1672         const char *driver_path;/* [unique,charset(UTF16)] */
1673         const char *data_file;/* [unique,charset(UTF16)] */
1674         const char *config_file;/* [unique,charset(UTF16)] */
1675         const char *help_file;/* [unique,charset(UTF16)] */
1676         const char *monitor_name;/* [unique,charset(UTF16)] */
1677         const char *default_datatype;/* [unique,charset(UTF16)] */
1678         uint32_t _ndr_size_dependent_files;/* [value(((ndr_size_spoolss_StringArray(dependent_files,ndr->flags)-4)/2))] */
1679         struct spoolss_StringArray *dependent_files;/* [unique] */
1680         uint32_t _ndr_size_previous_names;/* [value(((ndr_size_spoolss_StringArray(previous_names,ndr->flags)-4)/2))] */
1681         struct spoolss_StringArray *previous_names;/* [unique] */
1682 };
1683
1684 /* bitmap spoolss_DriverAttributes */
1685 #define PRINTER_DRIVER_PACKAGE_AWARE ( 0x00000001 )
1686 #define PRINTER_DRIVER_XPS ( 0x00000002 )
1687 #define PRINTER_DRIVER_SANDBOX_ENABLED ( 0x00000004 )
1688 #define PRINTER_DRIVER_CLASS ( 0x00000008 )
1689 #define PRINTER_DRIVER_DERIVED ( 0x00000010 )
1690 #define PRINTER_DRIVER_NOT_SHAREABLE ( 0x00000020 )
1691 #define PRINTER_DRIVER_CATEGORY_FAX ( 0x00000040 )
1692 #define PRINTER_DRIVER_CATEGORY_FILE ( 0x00000080 )
1693 #define PRINTER_DRIVER_CATEGORY_VIRTUAL ( 0x00000100 )
1694 #define PRINTER_DRIVER_CATEGORY_SERVICE ( 0x00000200 )
1695 #define PRINTER_DRIVER_SOFT_RESET_REQUIRED ( 0x00000400 )
1696
1697 struct spoolss_AddDriverInfo5 {
1698         enum spoolss_DriverOSVersion version;
1699         const char *driver_name;/* [unique,charset(UTF16)] */
1700         const char *architecture;/* [unique,charset(UTF16)] */
1701         const char *driver_path;/* [unique,charset(UTF16)] */
1702         const char *data_file;/* [unique,charset(UTF16)] */
1703         const char *config_file;/* [unique,charset(UTF16)] */
1704         uint32_t driver_attributes;
1705         uint32_t config_version;
1706         uint32_t driver_version;
1707 };
1708
1709 struct spoolss_AddDriverInfo6 {
1710         enum spoolss_DriverOSVersion version;
1711         const char *driver_name;/* [unique,charset(UTF16)] */
1712         const char *architecture;/* [unique,charset(UTF16)] */
1713         const char *driver_path;/* [unique,charset(UTF16)] */
1714         const char *data_file;/* [unique,charset(UTF16)] */
1715         const char *config_file;/* [unique,charset(UTF16)] */
1716         const char *help_file;/* [unique,charset(UTF16)] */
1717         const char *monitor_name;/* [unique,charset(UTF16)] */
1718         const char *default_datatype;/* [unique,charset(UTF16)] */
1719         uint32_t _ndr_size_dependent_files;/* [value(((ndr_size_spoolss_StringArray(dependent_files,ndr->flags)-4)/2))] */
1720         struct spoolss_StringArray *dependent_files;/* [unique] */
1721         uint32_t _ndr_size_previous_names;/* [value(((ndr_size_spoolss_StringArray(previous_names,ndr->flags)-4)/2))] */
1722         struct spoolss_StringArray *previous_names;/* [unique] */
1723         NTTIME driver_date;
1724         uint64_t driver_version;
1725         const char *manufacturer_name;/* [unique,charset(UTF16)] */
1726         const char *manufacturer_url;/* [unique,charset(UTF16)] */
1727         const char *hardware_id;/* [unique,charset(UTF16)] */
1728         const char *provider;/* [unique,charset(UTF16)] */
1729 };
1730
1731 struct spoolss_AddDriverInfo8 {
1732         enum spoolss_DriverOSVersion version;
1733         const char *driver_name;/* [unique,charset(UTF16)] */
1734         const char *architecture;/* [unique,charset(UTF16)] */
1735         const char *driver_path;/* [unique,charset(UTF16)] */
1736         const char *data_file;/* [unique,charset(UTF16)] */
1737         const char *config_file;/* [unique,charset(UTF16)] */
1738         const char *help_file;/* [unique,charset(UTF16)] */
1739         const char *monitor_name;/* [unique,charset(UTF16)] */
1740         const char *default_datatype;/* [unique,charset(UTF16)] */
1741         uint32_t _ndr_size_dependent_files;/* [value(((ndr_size_spoolss_StringArray(dependent_files,ndr->flags)-4)/2))] */
1742         struct spoolss_StringArray *dependent_files;/* [unique] */
1743         uint32_t _ndr_size_previous_names;/* [value(((ndr_size_spoolss_StringArray(previous_names,ndr->flags)-4)/2))] */
1744         struct spoolss_StringArray *previous_names;/* [unique] */
1745         NTTIME driver_date;
1746         uint64_t driver_version;
1747         const char *manufacturer_name;/* [unique,charset(UTF16)] */
1748         const char *manufacturer_url;/* [unique,charset(UTF16)] */
1749         const char *hardware_id;/* [unique,charset(UTF16)] */
1750         const char *provider;/* [unique,charset(UTF16)] */
1751         const char *print_processor;/* [unique,charset(UTF16)] */
1752         const char *vendor_setup;/* [unique,charset(UTF16)] */
1753         uint32_t _ndr_size_color_profiles;/* [value(((ndr_size_spoolss_StringArray(color_profiles,ndr->flags)-4)/2))] */
1754         struct spoolss_StringArray *color_profiles;/* [unique] */
1755         const char *inf_path;/* [unique,charset(UTF16)] */
1756         uint32_t printer_driver_attributes;
1757         uint32_t _ndr_size_core_driver_dependencies;/* [value(((ndr_size_spoolss_StringArray(core_driver_dependencies,ndr->flags)-4)/2))] */
1758         struct spoolss_StringArray *core_driver_dependencies;/* [unique] */
1759         NTTIME min_inbox_driver_ver_date;
1760         uint64_t min_inbox_driver_ver_version;
1761 };
1762
1763 union spoolss_AddDriverInfo {
1764         struct spoolss_AddDriverInfo1 *info1;/* [unique,case] */
1765         struct spoolss_AddDriverInfo2 *info2;/* [unique,case(2)] */
1766         struct spoolss_AddDriverInfo3 *info3;/* [unique,case(3)] */
1767         struct spoolss_AddDriverInfo4 *info4;/* [unique,case(4)] */
1768         struct spoolss_AddDriverInfo6 *info6;/* [unique,case(6)] */
1769         struct spoolss_AddDriverInfo8 *info8;/* [unique,case(8)] */
1770 }/* [ms_union,switch_type(uint32)] */;
1771
1772 struct spoolss_AddDriverInfoCtr {
1773         uint32_t level;
1774         union spoolss_AddDriverInfo info;/* [switch_is(level)] */
1775 }/* [public] */;
1776
1777 struct spoolss_DriverInfo1 {
1778         const char * driver_name;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] */
1779 }/* [gensize,public] */;
1780
1781 struct spoolss_DriverInfo2 {
1782         enum spoolss_DriverOSVersion version;
1783         const char * driver_name;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] */
1784         const char * architecture;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] */
1785         const char * driver_path;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] */
1786         const char * data_file;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] */
1787         const char * config_file;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] */
1788 }/* [gensize,public] */;
1789
1790 struct spoolss_DriverInfo3 {
1791         enum spoolss_DriverOSVersion version;
1792         const char * driver_name;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] */
1793         const char * architecture;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] */
1794         const char * driver_path;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] */
1795         const char * data_file;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] */
1796         const char * config_file;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] */
1797         const char * help_file;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] */
1798         const char ** dependent_files;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] */
1799         const char * monitor_name;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] */
1800         const char * default_datatype;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] */
1801 }/* [gensize,public] */;
1802
1803 struct spoolss_DriverInfo4 {
1804         enum spoolss_DriverOSVersion version;
1805         const char * driver_name;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] */
1806         const char * architecture;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] */
1807         const char * driver_path;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] */
1808         const char * data_file;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] */
1809         const char * config_file;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] */
1810         const char * help_file;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] */
1811         const char ** dependent_files;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] */
1812         const char * monitor_name;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] */
1813         const char * default_datatype;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] */
1814         const char ** previous_names;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] */
1815 }/* [gensize,public] */;
1816
1817 struct spoolss_DriverInfo5 {
1818         enum spoolss_DriverOSVersion version;
1819         const char * driver_name;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] */
1820         const char * architecture;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] */
1821         const char * driver_path;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] */
1822         const char * data_file;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] */
1823         const char * config_file;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] */
1824         uint32_t driver_attributes;
1825         uint32_t config_version;
1826         uint32_t driver_version;
1827 }/* [gensize,public] */;
1828
1829 struct spoolss_DriverInfo6 {
1830         enum spoolss_DriverOSVersion version;
1831         const char * driver_name;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] */
1832         const char * architecture;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] */
1833         const char * driver_path;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] */
1834         const char * data_file;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] */
1835         const char * config_file;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] */
1836         const char * help_file;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] */
1837         const char ** dependent_files;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] */
1838         const char * monitor_name;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] */
1839         const char * default_datatype;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] */
1840         const char ** previous_names;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] */
1841         NTTIME driver_date;
1842         uint64_t driver_version;
1843         const char * manufacturer_name;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] */
1844         const char * manufacturer_url;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] */
1845         const char * hardware_id;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] */
1846         const char * provider;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] */
1847 }/* [gensize,public] */;
1848
1849 struct spoolss_DriverInfo7 {
1850         uint32_t size;
1851         enum spoolss_DriverOSVersion version;
1852         const char * driver_name;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] */
1853         const char * inf_name;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] */
1854         const char * install_source_root;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] */
1855 }/* [gensize,public] */;
1856
1857 struct spoolss_DriverInfo8 {
1858         enum spoolss_DriverOSVersion version;
1859         const char * driver_name;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] */
1860         const char * architecture;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] */
1861         const char * driver_path;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] */
1862         const char * data_file;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] */
1863         const char * config_file;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] */
1864         const char * help_file;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] */
1865         const char ** dependent_files;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] */
1866         const char * monitor_name;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] */
1867         const char * default_datatype;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] */
1868         const char ** previous_names;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] */
1869         NTTIME driver_date;
1870         uint64_t driver_version;
1871         const char * manufacturer_name;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] */
1872         const char * manufacturer_url;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] */
1873         const char * hardware_id;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] */
1874         const char * provider;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] */
1875         const char * print_processor;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] */
1876         const char * vendor_setup;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] */
1877         const char ** color_profiles;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] */
1878         const char * inf_path;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] */
1879         uint32_t printer_driver_attributes;
1880         const char ** core_driver_dependencies;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] */
1881         NTTIME min_inbox_driver_ver_date;
1882         uint64_t min_inbox_driver_ver_version;
1883 }/* [gensize,public] */;
1884
1885 enum spoolss_DriverFileType
1886 #ifndef USE_UINT_ENUMS
1887  {
1888         SPOOLSS_DRIVER_FILE_TYPE_RENDERING=(int)(0x00000000),
1889         SPOOLSS_DRIVER_FILE_TYPE_CONFIGURATION=(int)(0x00000001),
1890         SPOOLSS_DRIVER_FILE_TYPE_DATA=(int)(0x00000002),
1891         SPOOLSS_DRIVER_FILE_TYPE_HELP=(int)(0x00000003),
1892         SPOOLSS_DRIVER_FILE_TYPE_OTHER=(int)(0x00000004)
1893 }
1894 #else
1895  { __do_not_use_enum_spoolss_DriverFileType=0x7FFFFFFF}
1896 #define SPOOLSS_DRIVER_FILE_TYPE_RENDERING ( 0x00000000 )
1897 #define SPOOLSS_DRIVER_FILE_TYPE_CONFIGURATION ( 0x00000001 )
1898 #define SPOOLSS_DRIVER_FILE_TYPE_DATA ( 0x00000002 )
1899 #define SPOOLSS_DRIVER_FILE_TYPE_HELP ( 0x00000003 )
1900 #define SPOOLSS_DRIVER_FILE_TYPE_OTHER ( 0x00000004 )
1901 #endif
1902 ;
1903
1904 struct spoolss_DriverFileInfo {
1905         const char * file_name;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] */
1906         enum spoolss_DriverFileType file_type;
1907         uint32_t file_version;
1908 }/* [public] */;
1909
1910 struct spoolss_DriverInfo101 {
1911         enum spoolss_DriverOSVersion version;
1912         const char * driver_name;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] */
1913         const char * architecture;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] */
1914         struct spoolss_DriverFileInfo *file_info;/* [relative,flag(LIBNDR_FLAG_ALIGN4),size_is(file_count)] */
1915         uint32_t file_count;
1916         const char * monitor_name;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] */
1917         const char * default_datatype;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] */
1918         const char ** previous_names;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] */
1919         NTTIME driver_date;
1920         uint64_t driver_version;
1921         const char * manufacturer_name;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] */
1922         const char * manufacturer_url;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] */
1923         const char * hardware_id;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] */
1924         const char * provider;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] */
1925 }/* [gensize,nopush,public,nopull] */;
1926
1927 union spoolss_DriverInfo {
1928         struct spoolss_DriverInfo1 info1;/* [case] */
1929         struct spoolss_DriverInfo2 info2;/* [case(2)] */
1930         struct spoolss_DriverInfo3 info3;/* [case(3)] */
1931         struct spoolss_DriverInfo4 info4;/* [case(4)] */
1932         struct spoolss_DriverInfo5 info5;/* [case(5)] */
1933         struct spoolss_DriverInfo6 info6;/* [case(6)] */
1934         struct spoolss_DriverInfo7 info7;/* [case(7)] */
1935         struct spoolss_DriverInfo8 info8;/* [case(8)] */
1936         struct spoolss_DriverInfo101 info101;/* [case(101)] */
1937 }/* [gensize,relative_base,nodiscriminant,public,flag(LIBNDR_FLAG_RELATIVE_REVERSE)] */;
1938
1939 struct spoolss_DriverDirectoryInfo1 {
1940         const char * directory_name;/* [flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] */
1941 }/* [gensize,public] */;
1942
1943 union spoolss_DriverDirectoryInfo {
1944         struct spoolss_DriverDirectoryInfo1 info1;/* [case] */
1945 }/* [gensize,relative_base,nodiscriminant,public,flag(LIBNDR_FLAG_RELATIVE_REVERSE)] */;
1946
1947 struct spoolss_PrintProcessorInfo1 {
1948         const char * print_processor_name;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] */
1949 }/* [gensize,public] */;
1950
1951 union spoolss_PrintProcessorInfo {
1952         struct spoolss_PrintProcessorInfo1 info1;/* [case] */
1953 }/* [relative_base,public,nodiscriminant,flag(LIBNDR_FLAG_RELATIVE_REVERSE)] */;
1954
1955 struct spoolss_PrintProcessorDirectoryInfo1 {
1956         const char * directory_name;/* [flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] */
1957 }/* [gensize,public] */;
1958
1959 union spoolss_PrintProcessorDirectoryInfo {
1960         struct spoolss_PrintProcessorDirectoryInfo1 info1;/* [case] */
1961 }/* [gensize,relative_base,nodiscriminant,public,flag(LIBNDR_FLAG_RELATIVE_REVERSE)] */;
1962
1963 struct spoolss_DocumentInfo1 {
1964         const char *document_name;/* [unique,charset(UTF16)] */
1965         const char *output_file;/* [unique,charset(UTF16)] */
1966         const char *datatype;/* [unique,charset(UTF16)] */
1967 };
1968
1969 union spoolss_DocumentInfo {
1970         struct spoolss_DocumentInfo1 *info1;/* [unique,case] */
1971 }/* [ms_union,switch_type(uint32)] */;
1972
1973 struct spoolss_DocumentInfoCtr {
1974         uint32_t level;
1975         union spoolss_DocumentInfo info;/* [switch_is(level)] */
1976 }/* [public] */;
1977
1978 struct spoolss_OSVersion {
1979         uint32_t _ndr_size;/* [value(ndr_size_spoolss_OSVersion(r,ndr->flags))] */
1980         uint32_t major;
1981         uint32_t minor;
1982         uint32_t build;
1983         uint32_t platform_id;/* [value(2)] */
1984         const char * extra_string;/* [subcontext_size(256),subcontext(0),flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] */
1985 }/* [gensize,public] */;
1986
1987 struct spoolss_OSVersionEx {
1988         uint32_t _ndr_size;/* [value(ndr_size_spoolss_OSVersionEx(r,ndr->flags))] */
1989         uint32_t major;
1990         uint32_t minor;
1991         uint32_t build;
1992         uint32_t platform_id;/* [value(2)] */
1993         const char * extra_string;/* [subcontext_size(256),subcontext(0),flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] */
1994         uint16_t service_pack_major;
1995         uint16_t service_pack_minor;
1996         uint16_t suite_mask;
1997         uint8_t product_type;
1998         uint8_t reserved;
1999 }/* [gensize,public] */;
2000
2001 union spoolss_PrinterData {
2002         const char * string;/* [flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2),case(REG_SZ)] */
2003         DATA_BLOB binary;/* [flag(LIBNDR_FLAG_REMAINING),case(REG_BINARY)] */
2004         uint32_t value;/* [case(REG_DWORD)] */
2005         const char ** string_array;/* [flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2),case(REG_MULTI_SZ)] */
2006         DATA_BLOB data;/* [flag(LIBNDR_FLAG_REMAINING),default] */
2007 }/* [nodiscriminant,public] */;
2008
2009 enum spoolss_FormFlags
2010 #ifndef USE_UINT_ENUMS
2011  {
2012         SPOOLSS_FORM_USER=(int)(0),
2013         SPOOLSS_FORM_BUILTIN=(int)(1),
2014         SPOOLSS_FORM_PRINTER=(int)(2)
2015 }
2016 #else
2017  { __do_not_use_enum_spoolss_FormFlags=0x7FFFFFFF}
2018 #define SPOOLSS_FORM_USER ( 0 )
2019 #define SPOOLSS_FORM_BUILTIN ( 1 )
2020 #define SPOOLSS_FORM_PRINTER ( 2 )
2021 #endif
2022 ;
2023
2024 struct spoolss_FormSize {
2025         uint32_t width;
2026         uint32_t height;
2027 };
2028
2029 struct spoolss_FormArea {
2030         uint32_t left;
2031         uint32_t top;
2032         uint32_t right;
2033         uint32_t bottom;
2034 };
2035
2036 struct spoolss_FormInfo1 {
2037         enum spoolss_FormFlags flags;
2038         const char * form_name;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] */
2039         struct spoolss_FormSize size;
2040         struct spoolss_FormArea area;
2041 }/* [gensize,public] */;
2042
2043 /* bitmap spoolss_FormStringType */
2044 #define SPOOLSS_FORM_STRING_TYPE_NONE ( 0x00000001 )
2045 #define SPOOLSS_FORM_STRING_TYPE_MUI_DLL ( 0x00000002 )
2046 #define SPOOLSS_FORM_STRING_TYPE_LANG_PAIR ( 0x00000004 )
2047
2048 struct spoolss_FormInfo2 {
2049         enum spoolss_FormFlags flags;
2050         const char * form_name;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] */
2051         struct spoolss_FormSize size;
2052         struct spoolss_FormArea area;
2053         const char * keyword;/* [relative,flag(LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM)] */
2054         uint32_t string_type;
2055         const char * mui_dll;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] */
2056         uint32_t ressource_id;
2057         const char * display_name;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] */
2058         uint16_t lang_id;
2059         uint16_t unused;
2060 }/* [gensize,public] */;
2061
2062 union spoolss_FormInfo {
2063         struct spoolss_FormInfo1 info1;/* [case] */
2064         struct spoolss_FormInfo2 info2;/* [case(2)] */
2065 }/* [gensize,relative_base,nodiscriminant,public,flag(LIBNDR_FLAG_RELATIVE_REVERSE)] */;
2066
2067 struct spoolss_AddFormInfo1 {
2068         enum spoolss_FormFlags flags;
2069         const char *form_name;/* [unique,charset(UTF16)] */
2070         struct spoolss_FormSize size;
2071         struct spoolss_FormArea area;
2072 };
2073
2074 struct spoolss_AddFormInfo2 {
2075         enum spoolss_FormFlags flags;
2076         const char *form_name;/* [unique,charset(UTF16)] */
2077         struct spoolss_FormSize size;
2078         struct spoolss_FormArea area;
2079         const char *keyword;/* [unique,charset(DOS)] */
2080         uint32_t string_type;
2081         const char *mui_dll;/* [unique,charset(UTF16)] */
2082         uint32_t ressource_id;
2083         const char *display_name;/* [unique,charset(UTF16)] */
2084         uint32_t lang_id;
2085 };
2086
2087 union spoolss_AddFormInfo {
2088         struct spoolss_AddFormInfo1 *info1;/* [unique,case] */
2089         struct spoolss_AddFormInfo2 *info2;/* [unique,case(2)] */
2090 }/* [ms_union,switch_type(uint32)] */;
2091
2092 struct spoolss_AddFormInfoCtr {
2093         uint32_t level;
2094         union spoolss_AddFormInfo info;/* [switch_is(level)] */
2095 }/* [public] */;
2096
2097 struct spoolss_PortInfo1 {
2098         const char * port_name;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] */
2099 }/* [gensize,public] */;
2100
2101 /* bitmap spoolss_PortType */
2102 #define SPOOLSS_PORT_TYPE_WRITE ( 0x00000001 )
2103 #define SPOOLSS_PORT_TYPE_READ ( 0x00000002 )
2104 #define SPOOLSS_PORT_TYPE_REDIRECTED ( 0x00000004 )
2105 #define SPOOLSS_PORT_TYPE_NET_ATTACHED ( 0x00000008 )
2106
2107 struct spoolss_PortInfo2 {
2108         const char * port_name;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] */
2109         const char * monitor_name;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] */
2110         const char * description;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] */
2111         uint32_t port_type;
2112         uint32_t reserved;
2113 }/* [gensize,public] */;
2114
2115 enum spoolss_PortStatus
2116 #ifndef USE_UINT_ENUMS
2117  {
2118         PORT_STATUS_CLEAR=(int)(0x00000000),
2119         PORT_STATUS_OFFLINE=(int)(0x00000001),
2120         PORT_STATUS_PAPER_JAM=(int)(0x00000002),
2121         PORT_STATUS_PAPER_OUT=(int)(0x00000003),
2122         PORT_STATUS_OUTPUT_BIN_FULL=(int)(0x00000004),
2123         PORT_STATUS_PAPER_PROBLEM=(int)(0x00000005),
2124         PORT_STATUS_NO_TONER=(int)(0x00000006),
2125         PORT_STATUS_DOOR_OPEN=(int)(0x00000007),
2126         PORT_STATUS_USER_INTERVENTION=(int)(0x00000008),
2127         PORT_STATUS_OUT_OF_MEMORY=(int)(0x00000009),
2128         PORT_STATUS_TONER_LOW=(int)(0x0000000A),
2129         PORT_STATUS_WARMING_UP=(int)(0x0000000B),
2130         PORT_STATUS_POWER_SAVE=(int)(0x0000000C)
2131 }
2132 #else
2133  { __do_not_use_enum_spoolss_PortStatus=0x7FFFFFFF}
2134 #define PORT_STATUS_CLEAR ( 0x00000000 )
2135 #define PORT_STATUS_OFFLINE ( 0x00000001 )
2136 #define PORT_STATUS_PAPER_JAM ( 0x00000002 )
2137 #define PORT_STATUS_PAPER_OUT ( 0x00000003 )
2138 #define PORT_STATUS_OUTPUT_BIN_FULL ( 0x00000004 )
2139 #define PORT_STATUS_PAPER_PROBLEM ( 0x00000005 )
2140 #define PORT_STATUS_NO_TONER ( 0x00000006 )
2141 #define PORT_STATUS_DOOR_OPEN ( 0x00000007 )
2142 #define PORT_STATUS_USER_INTERVENTION ( 0x00000008 )
2143 #define PORT_STATUS_OUT_OF_MEMORY ( 0x00000009 )
2144 #define PORT_STATUS_TONER_LOW ( 0x0000000A )
2145 #define PORT_STATUS_WARMING_UP ( 0x0000000B )
2146 #define PORT_STATUS_POWER_SAVE ( 0x0000000C )
2147 #endif
2148 ;
2149
2150 enum spoolss_PortSeverity
2151 #ifndef USE_UINT_ENUMS
2152  {
2153         PORT_STATUS_TYPE_ERROR=(int)(0x00000001),
2154         PORT_STATUS_TYPE_WARNING=(int)(0x00000002),
2155         PORT_STATUS_TYPE_INFO=(int)(0x00000003)
2156 }
2157 #else
2158  { __do_not_use_enum_spoolss_PortSeverity=0x7FFFFFFF}
2159 #define PORT_STATUS_TYPE_ERROR ( 0x00000001 )
2160 #define PORT_STATUS_TYPE_WARNING ( 0x00000002 )
2161 #define PORT_STATUS_TYPE_INFO ( 0x00000003 )
2162 #endif
2163 ;
2164
2165 struct spoolss_PortInfo3 {
2166         enum spoolss_PortStatus status;
2167         const char * status_string;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] */
2168         enum spoolss_PortSeverity severity;
2169 }/* [gensize,public] */;
2170
2171 struct spoolss_PortInfoFF {
2172         const char * port_name;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] */
2173         DATA_BLOB monitor_data;
2174 }/* [gensize,public] */;
2175
2176 union spoolss_PortInfo {
2177         struct spoolss_PortInfo1 info1;/* [case] */
2178         struct spoolss_PortInfo2 info2;/* [case(2)] */
2179         struct spoolss_PortInfo3 info3;/* [case(3)] */
2180         struct spoolss_PortInfoFF infoFF;/* [case(0xff)] */
2181 }/* [relative_base,public,nodiscriminant,flag(LIBNDR_FLAG_RELATIVE_REVERSE)] */;
2182
2183 struct spoolss_MonitorInfo1 {
2184         const char * monitor_name;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] */
2185 }/* [gensize,public] */;
2186
2187 struct spoolss_MonitorInfo2 {
2188         const char * monitor_name;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] */
2189         const char * environment;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] */
2190         const char * dll_name;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] */
2191 }/* [gensize,public] */;
2192
2193 union spoolss_MonitorInfo {
2194         struct spoolss_MonitorInfo1 info1;/* [case] */
2195         struct spoolss_MonitorInfo2 info2;/* [case(2)] */
2196 }/* [relative_base,public,nodiscriminant,flag(LIBNDR_FLAG_RELATIVE_REVERSE)] */;
2197
2198 struct spoolss_SetPortInfo1 {
2199         const char *port_name;/* [unique,charset(UTF16)] */
2200 }/* [gensize,public] */;
2201
2202 struct spoolss_SetPortInfo2 {
2203         const char *port_name;/* [unique,charset(UTF16)] */
2204         const char *monitor_name;/* [unique,charset(UTF16)] */
2205         const char *description;/* [unique,charset(UTF16)] */
2206         uint32_t port_type;
2207         uint32_t reserved;
2208 }/* [gensize,public] */;
2209
2210 struct spoolss_SetPortInfo3 {
2211         enum spoolss_PortStatus status;
2212         const char *status_string;/* [unique,charset(UTF16)] */
2213         enum spoolss_PortSeverity severity;
2214 }/* [gensize,public] */;
2215
2216 struct spoolss_SetPortInfoFF {
2217         const char *port_name;/* [unique,charset(UTF16)] */
2218         DATA_BLOB monitor_data;
2219 }/* [gensize,public] */;
2220
2221 union spoolss_SetPortInfo {
2222         struct spoolss_SetPortInfo1 *info1;/* [unique,case] */
2223         struct spoolss_SetPortInfo2 *info2;/* [unique,case(2)] */
2224         struct spoolss_SetPortInfo3 *info3;/* [unique,case(3)] */
2225         struct spoolss_SetPortInfoFF *infoFF;/* [unique,case(0xff)] */
2226 }/* [ms_union,switch_type(uint32)] */;
2227
2228 struct spoolss_SetPortInfoContainer {
2229         uint32_t level;
2230         union spoolss_SetPrinterInfo info;/* [switch_is(level)] */
2231 }/* [public] */;
2232
2233 struct UNIVERSAL_FONT_ID {
2234         uint32_t Checksum;
2235         uint32_t Index;
2236 };
2237
2238 struct UNIVERSAL_FONT_ID_ctr {
2239         uint32_t count;
2240         struct UNIVERSAL_FONT_ID *fonts;
2241 }/* [public] */;
2242
2243 struct spoolss_AddMonitorInfo1 {
2244         const char *monitor_name;/* [unique,charset(URF16)] */
2245 };
2246
2247 struct spoolss_AddMonitorInfo2 {
2248         const char *monitor_name;/* [unique,charset(URF16)] */
2249         const char *environment;/* [unique,charset(URF16)] */
2250         const char *dll_name;/* [unique,charset(URF16)] */
2251 };
2252
2253 union spoolss_AddMonitorInfo {
2254         struct spoolss_AddMonitorInfo1 *info1;/* [unique,case] */
2255         struct spoolss_AddMonitorInfo2 *info2;/* [unique,case(2)] */
2256 }/* [ms_union,switch_type(uint32)] */;
2257
2258 struct spoolss_MonitorContainer {
2259         uint32_t level;
2260         union spoolss_MonitorInfo info;/* [switch_is(level)] */
2261 }/* [public] */;
2262
2263 struct spoolss_PrintProcDataTypesInfo1 {
2264         const char * name_array;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] */
2265 }/* [gensize,public] */;
2266
2267 union spoolss_PrintProcDataTypesInfo {
2268         struct spoolss_PrintProcDataTypesInfo1 info1;/* [case] */
2269 }/* [relative_base,public,nodiscriminant,flag(LIBNDR_FLAG_RELATIVE_REVERSE)] */;
2270
2271 /* bitmap spoolss_PrinterChangeFlags */
2272 #define PRINTER_CHANGE_ADD_PRINTER ( 0x00000001 )
2273 #define PRINTER_CHANGE_SET_PRINTER ( 0x00000002 )
2274 #define PRINTER_CHANGE_DELETE_PRINTER ( 0x00000004 )
2275 #define PRINTER_CHANGE_FAILED_CONNECTION_PRINTER ( 0x00000008 )
2276 #define PRINTER_CHANGE_ADD_JOB ( 0x00000100 )
2277 #define PRINTER_CHANGE_SET_JOB ( 0x00000200 )
2278 #define PRINTER_CHANGE_DELETE_JOB ( 0x00000400 )
2279 #define PRINTER_CHANGE_WRITE_JOB ( 0x00000800 )
2280 #define PRINTER_CHANGE_ADD_FORM ( 0x00010000 )
2281 #define PRINTER_CHANGE_SET_FORM ( 0x00020000 )
2282 #define PRINTER_CHANGE_DELETE_FORM ( 0x00040000 )
2283 #define PRINTER_CHANGE_ADD_PORT ( 0x00100000 )
2284 #define PRINTER_CHANGE_CONFIGURE_PORT ( 0x00200000 )
2285 #define PRINTER_CHANGE_DELETE_PORT ( 0x00400000 )
2286 #define PRINTER_CHANGE_ADD_PRINT_PROCESSOR ( 0x01000000 )
2287 #define PRINTER_CHANGE_DELETE_PRINT_PROCESSOR ( 0x04000000 )
2288 #define PRINTER_CHANGE_SERVER ( 0x08000000 )
2289 #define PRINTER_CHANGE_ADD_PRINTER_DRIVER ( 0x10000000 )
2290 #define PRINTER_CHANGE_SET_PRINTER_DRIVER ( 0x20000000 )
2291 #define PRINTER_CHANGE_DELETE_PRINTER_DRIVER ( 0x40000000 )
2292 #define PRINTER_CHANGE_TIMEOUT ( 0x80000000 )
2293
2294 struct spoolss_PortVarContainer {
2295         uint32_t monitor_data_size;
2296         uint8_t *monitor_data;/* [unique,size_is(monitor_data_size)] */
2297 }/* [public] */;
2298
2299 enum spoolss_JobNotifyField
2300 #ifndef USE_UINT_ENUMS
2301  {
2302         JOB_NOTIFY_FIELD_PRINTER_NAME=(int)(0x00),
2303         JOB_NOTIFY_FIELD_MACHINE_NAME=(int)(0x01),
2304         JOB_NOTIFY_FIELD_PORT_NAME=(int)(0x02),
2305         JOB_NOTIFY_FIELD_USER_NAME=(int)(0x03),
2306         JOB_NOTIFY_FIELD_NOTIFY_NAME=(int)(0x04),
2307         JOB_NOTIFY_FIELD_DATATYPE=(int)(0x05),
2308         JOB_NOTIFY_FIELD_PRINT_PROCESSOR=(int)(0x06),
2309         JOB_NOTIFY_FIELD_PARAMETERS=(int)(0x07),
2310         JOB_NOTIFY_FIELD_DRIVER_NAME=(int)(0x08),
2311         JOB_NOTIFY_FIELD_DEVMODE=(int)(0x09),
2312         JOB_NOTIFY_FIELD_STATUS=(int)(0x0a),
2313         JOB_NOTIFY_FIELD_STATUS_STRING=(int)(0x0b),
2314         JOB_NOTIFY_FIELD_SECURITY_DESCRIPTOR=(int)(0x0c),
2315         JOB_NOTIFY_FIELD_DOCUMENT=(int)(0x0d),
2316         JOB_NOTIFY_FIELD_PRIORITY=(int)(0x0e),
2317         JOB_NOTIFY_FIELD_POSITION=(int)(0x0f),
2318         JOB_NOTIFY_FIELD_SUBMITTED=(int)(0x10),
2319         JOB_NOTIFY_FIELD_START_TIME=(int)(0x11),
2320         JOB_NOTIFY_FIELD_UNTIL_TIME=(int)(0x12),
2321         JOB_NOTIFY_FIELD_TIME=(int)(0x13),
2322         JOB_NOTIFY_FIELD_TOTAL_PAGES=(int)(0x14),
2323         JOB_NOTIFY_FIELD_PAGES_PRINTED=(int)(0x15),
2324         JOB_NOTIFY_FIELD_TOTAL_BYTES=(int)(0x16),
2325         JOB_NOTIFY_FIELD_BYTES_PRINTED=(int)(0x17)
2326 }
2327 #else
2328  { __do_not_use_enum_spoolss_JobNotifyField=0x7FFFFFFF}
2329 #define JOB_NOTIFY_FIELD_PRINTER_NAME ( 0x00 )
2330 #define JOB_NOTIFY_FIELD_MACHINE_NAME ( 0x01 )
2331 #define JOB_NOTIFY_FIELD_PORT_NAME ( 0x02 )
2332 #define JOB_NOTIFY_FIELD_USER_NAME ( 0x03 )
2333 #define JOB_NOTIFY_FIELD_NOTIFY_NAME ( 0x04 )
2334 #define JOB_NOTIFY_FIELD_DATATYPE ( 0x05 )
2335 #define JOB_NOTIFY_FIELD_PRINT_PROCESSOR ( 0x06 )
2336 #define JOB_NOTIFY_FIELD_PARAMETERS ( 0x07 )
2337 #define JOB_NOTIFY_FIELD_DRIVER_NAME ( 0x08 )
2338 #define JOB_NOTIFY_FIELD_DEVMODE ( 0x09 )
2339 #define JOB_NOTIFY_FIELD_STATUS ( 0x0a )
2340 #define JOB_NOTIFY_FIELD_STATUS_STRING ( 0x0b )
2341 #define JOB_NOTIFY_FIELD_SECURITY_DESCRIPTOR ( 0x0c )
2342 #define JOB_NOTIFY_FIELD_DOCUMENT ( 0x0d )
2343 #define JOB_NOTIFY_FIELD_PRIORITY ( 0x0e )
2344 #define JOB_NOTIFY_FIELD_POSITION ( 0x0f )
2345 #define JOB_NOTIFY_FIELD_SUBMITTED ( 0x10 )
2346 #define JOB_NOTIFY_FIELD_START_TIME ( 0x11 )
2347 #define JOB_NOTIFY_FIELD_UNTIL_TIME ( 0x12 )
2348 #define JOB_NOTIFY_FIELD_TIME ( 0x13 )
2349 #define JOB_NOTIFY_FIELD_TOTAL_PAGES ( 0x14 )
2350 #define JOB_NOTIFY_FIELD_PAGES_PRINTED ( 0x15 )
2351 #define JOB_NOTIFY_FIELD_TOTAL_BYTES ( 0x16 )
2352 #define JOB_NOTIFY_FIELD_BYTES_PRINTED ( 0x17 )
2353 #endif
2354 ;
2355
2356 enum spoolss_PrintNotifyField
2357 #ifndef USE_UINT_ENUMS
2358  {
2359         PRINTER_NOTIFY_FIELD_SERVER_NAME=(int)(0x00),
2360         PRINTER_NOTIFY_FIELD_PRINTER_NAME=(int)(0x01),
2361         PRINTER_NOTIFY_FIELD_SHARE_NAME=(int)(0x02),
2362         PRINTER_NOTIFY_FIELD_PORT_NAME=(int)(0x03),
2363         PRINTER_NOTIFY_FIELD_DRIVER_NAME=(int)(0x04),
2364         PRINTER_NOTIFY_FIELD_COMMENT=(int)(0x05),
2365         PRINTER_NOTIFY_FIELD_LOCATION=(int)(0x06),
2366         PRINTER_NOTIFY_FIELD_DEVMODE=(int)(0x07),
2367         PRINTER_NOTIFY_FIELD_SEPFILE=(int)(0x08),
2368         PRINTER_NOTIFY_FIELD_PRINT_PROCESSOR=(int)(0x09),
2369         PRINTER_NOTIFY_FIELD_PARAMETERS=(int)(0x0a),
2370         PRINTER_NOTIFY_FIELD_DATATYPE=(int)(0x0b),
2371         PRINTER_NOTIFY_FIELD_SECURITY_DESCRIPTOR=(int)(0x0c),
2372         PRINTER_NOTIFY_FIELD_ATTRIBUTES=(int)(0x0d),
2373         PRINTER_NOTIFY_FIELD_PRIORITY=(int)(0x0e),
2374         PRINTER_NOTIFY_FIELD_DEFAULT_PRIORITY=(int)(0x0f),
2375         PRINTER_NOTIFY_FIELD_START_TIME=(int)(0x10),
2376         PRINTER_NOTIFY_FIELD_UNTIL_TIME=(int)(0x11),
2377         PRINTER_NOTIFY_FIELD_STATUS=(int)(0x12),
2378         PRINTER_NOTIFY_FIELD_STATUS_STRING=(int)(0x13),
2379         PRINTER_NOTIFY_FIELD_CJOBS=(int)(0x14),
2380         PRINTER_NOTIFY_FIELD_AVERAGE_PPM=(int)(0x15),
2381         PRINTER_NOTIFY_FIELD_TOTAL_PAGES=(int)(0x16),
2382         PRINTER_NOTIFY_FIELD_PAGES_PRINTED=(int)(0x17),
2383         PRINTER_NOTIFY_FIELD_TOTAL_BYTES=(int)(0x18),
2384         PRINTER_NOTIFY_FIELD_BYTES_PRINTED=(int)(0x19),
2385         PRINTER_NOTIFY_FIELD_OBJECT_GUID=(int)(0x1a),
2386         PRINTER_NOTIFY_FIELD_FRIENDLY_NAME=(int)(0x1b)
2387 }
2388 #else
2389  { __do_not_use_enum_spoolss_PrintNotifyField=0x7FFFFFFF}
2390 #define PRINTER_NOTIFY_FIELD_SERVER_NAME ( 0x00 )
2391 #define PRINTER_NOTIFY_FIELD_PRINTER_NAME ( 0x01 )
2392 #define PRINTER_NOTIFY_FIELD_SHARE_NAME ( 0x02 )
2393 #define PRINTER_NOTIFY_FIELD_PORT_NAME ( 0x03 )
2394 #define PRINTER_NOTIFY_FIELD_DRIVER_NAME ( 0x04 )
2395 #define PRINTER_NOTIFY_FIELD_COMMENT ( 0x05 )
2396 #define PRINTER_NOTIFY_FIELD_LOCATION ( 0x06 )
2397 #define PRINTER_NOTIFY_FIELD_DEVMODE ( 0x07 )
2398 #define PRINTER_NOTIFY_FIELD_SEPFILE ( 0x08 )
2399 #define PRINTER_NOTIFY_FIELD_PRINT_PROCESSOR ( 0x09 )
2400 #define PRINTER_NOTIFY_FIELD_PARAMETERS ( 0x0a )
2401 #define PRINTER_NOTIFY_FIELD_DATATYPE ( 0x0b )
2402 #define PRINTER_NOTIFY_FIELD_SECURITY_DESCRIPTOR ( 0x0c )
2403 #define PRINTER_NOTIFY_FIELD_ATTRIBUTES ( 0x0d )
2404 #define PRINTER_NOTIFY_FIELD_PRIORITY ( 0x0e )
2405 #define PRINTER_NOTIFY_FIELD_DEFAULT_PRIORITY ( 0x0f )
2406 #define PRINTER_NOTIFY_FIELD_START_TIME ( 0x10 )
2407 #define PRINTER_NOTIFY_FIELD_UNTIL_TIME ( 0x11 )
2408 #define PRINTER_NOTIFY_FIELD_STATUS ( 0x12 )
2409 #define PRINTER_NOTIFY_FIELD_STATUS_STRING ( 0x13 )
2410 #define PRINTER_NOTIFY_FIELD_CJOBS ( 0x14 )
2411 #define PRINTER_NOTIFY_FIELD_AVERAGE_PPM ( 0x15 )
2412 #define PRINTER_NOTIFY_FIELD_TOTAL_PAGES ( 0x16 )
2413 #define PRINTER_NOTIFY_FIELD_PAGES_PRINTED ( 0x17 )
2414 #define PRINTER_NOTIFY_FIELD_TOTAL_BYTES ( 0x18 )
2415 #define PRINTER_NOTIFY_FIELD_BYTES_PRINTED ( 0x19 )
2416 #define PRINTER_NOTIFY_FIELD_OBJECT_GUID ( 0x1a )
2417 #define PRINTER_NOTIFY_FIELD_FRIENDLY_NAME ( 0x1b )
2418 #endif
2419 ;
2420
2421 enum spoolss_NotifyType
2422 #ifndef USE_UINT_ENUMS
2423  {
2424         PRINTER_NOTIFY_TYPE=(int)(0x00),
2425         JOB_NOTIFY_TYPE=(int)(0x01)
2426 }
2427 #else
2428  { __do_not_use_enum_spoolss_NotifyType=0x7FFFFFFF}
2429 #define PRINTER_NOTIFY_TYPE ( 0x00 )
2430 #define JOB_NOTIFY_TYPE ( 0x01 )
2431 #endif
2432 ;
2433
2434 union spoolss_Field {
2435         uint16_t field;/* [case(PRINTER_NOTIFY_TYPE)] */
2436 }/* [noprint,nodiscriminant] */;
2437
2438 struct spoolss_NotifyOptionType {
2439         enum spoolss_NotifyType type;
2440         uint16_t u1;
2441         uint32_t u2;
2442         uint32_t u3;
2443         uint32_t count;
2444         union spoolss_Field *fields;/* [unique,switch_is(type),size_is(count)] */
2445 };
2446
2447 /* bitmap spoolssNotifyOptionFlags */
2448 #define PRINTER_NOTIFY_OPTIONS_REFRESH ( 0x00000001 )
2449
2450 struct spoolss_NotifyOption {
2451         uint32_t version;/* [value(2)] */
2452         uint32_t flags;
2453         uint32_t count;
2454         struct spoolss_NotifyOptionType *types;/* [unique,size_is(count)] */
2455 }/* [public] */;
2456
2457 struct spoolss_NotifyString {
2458         uint32_t size;
2459         const char *string;/* [unique,charset(UTF16),size_is(size/2)] */
2460 };
2461
2462 enum spoolss_NotifyTable
2463 #ifndef USE_UINT_ENUMS
2464  {
2465         NOTIFY_TABLE_DWORD=(int)(0x0001),
2466         NOTIFY_TABLE_STRING=(int)(0x0002),
2467         NOTIFY_TABLE_DEVMODE=(int)(0x0003),
2468         NOTIFY_TABLE_TIME=(int)(0x0004),
2469         NOTIFY_TABLE_SECURITYDESCRIPTOR=(int)(0x0005)
2470 }
2471 #else
2472  { __do_not_use_enum_spoolss_NotifyTable=0x7FFFFFFF}
2473 #define NOTIFY_TABLE_DWORD ( 0x0001 )
2474 #define NOTIFY_TABLE_STRING ( 0x0002 )
2475 #define NOTIFY_TABLE_DEVMODE ( 0x0003 )
2476 #define NOTIFY_TABLE_TIME ( 0x0004 )
2477 #define NOTIFY_TABLE_SECURITYDESCRIPTOR ( 0x0005 )
2478 #endif
2479 ;
2480
2481 union spoolss_NotifyData {
2482         uint32_t integer[2];/* [case] */
2483         struct spoolss_NotifyString string;/* [case(2)] */
2484         struct spoolss_DevmodeContainer devmode;/* [case(3)] */
2485         struct spoolss_TimeCtr time;/* [case(4)] */
2486         struct sec_desc_buf sd;/* [case(5)] */
2487 }/* [ms_union,switch_type(uint32)] */;
2488
2489 struct spoolss_Notify {
2490         enum spoolss_NotifyType type;
2491         union spoolss_Field field;/* [switch_is(type)] */
2492         enum spoolss_NotifyTable variable_type;
2493         uint32_t job_id;
2494         union spoolss_NotifyData data;/* [switch_is(variable_type)] */
2495 };
2496
2497 struct spoolss_NotifyInfo {
2498         uint32_t version;/* [value(2)] */
2499         uint32_t flags;
2500         uint32_t count;
2501         struct spoolss_Notify *notifies;/* [size_is(count)] */
2502 }/* [public] */;
2503
2504 union spoolss_ReplyPrinterInfo {
2505         struct spoolss_NotifyInfo *info0;/* [unique,case(0)] */
2506 }/* [ms_union,switch_type(uint32)] */;
2507
2508 /* bitmap spoolss_PrinterNotifyFlags */
2509 #define PRINTER_NOTIFY_INFO_DISCARDED ( 0x00000001 )
2510 #define PRINTER_NOTIFY_INFO_DISCARDNOTED ( 0x00010000 )
2511 #define PRINTER_NOTIFY_INFO_COLOR_MISMATCH ( 0x00080000 )
2512
2513 struct spoolss_UserLevel1 {
2514         uint32_t size;
2515         const char *client;/* [unique,charset(UTF16)] */
2516         const char *user;/* [unique,charset(UTF16)] */
2517         uint32_t build;
2518         enum spoolss_MajorVersion major;
2519         enum spoolss_MinorVersion minor;
2520         enum spoolss_ProcessorArchitecture processor;
2521 };
2522
2523 struct spoolss_UserLevel2 {
2524         uint32_t not_used;
2525 };
2526
2527 struct spoolss_UserLevel3 {
2528         uint32_t size;
2529         uint32_t flags;
2530         uint32_t size2;
2531         const char *client;/* [unique,charset(UTF16)] */
2532         const char *user;/* [unique,charset(UTF16)] */
2533         uint32_t build;
2534         enum spoolss_MajorVersion major;
2535         enum spoolss_MinorVersion minor;
2536         enum spoolss_ProcessorArchitecture processor;
2537         uint64_t reserved;
2538 };
2539
2540 union spoolss_UserLevel {
2541         struct spoolss_UserLevel1 *level1;/* [unique,case] */
2542         struct spoolss_UserLevel2 *level2;/* [unique,case(2)] */
2543         struct spoolss_UserLevel3 *level3;/* [unique,case(3)] */
2544 }/* [ms_union,switch_type(uint32)] */;
2545
2546 struct spoolss_UserLevelCtr {
2547         uint32_t level;
2548         union spoolss_UserLevel user_info;/* [switch_is(level)] */
2549 }/* [public] */;
2550
2551 /* bitmap spoolss_AccessRights */
2552 #define SERVER_ACCESS_ADMINISTER ( 0x00000001 )
2553 #define SERVER_ACCESS_ENUMERATE ( 0x00000002 )
2554 #define PRINTER_ACCESS_ADMINISTER ( 0x00000004 )
2555 #define PRINTER_ACCESS_USE ( 0x00000008 )
2556 #define JOB_ACCESS_ADMINISTER ( 0x00000010 )
2557 #define JOB_ACCESS_READ ( 0x00000020 )
2558
2559 struct spoolss_PrinterEnumValues {
2560         const char * value_name;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] */
2561         uint32_t value_name_len;/* [value(2*strlen_m_term(value_name))] */
2562         enum winreg_Type type;
2563         DATA_BLOB *data;/* [relative,subcontext_size(data_length),subcontext(0),flag(LIBNDR_FLAG_REMAINING|ndr_spoolss_PrinterEnumValues_align(r->type))] */
2564         uint32_t data_length;/* [value(data?data->length:0)] */
2565 }/* [relative_base,gensize,public] */;
2566
2567 union spoolss_KeyNames {
2568         const char ** string_array;/* [default,flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] */
2569 }/* [nodiscriminant] */;
2570
2571 /* bitmap spoolss_DeleteDriverFlags */
2572 #define DPD_DELETE_UNUSED_FILES ( 0x00000001 )
2573 #define DPD_DELETE_SPECIFIC_VERSION ( 0x00000002 )
2574 #define DPD_DELETE_ALL_FILES ( 0x00000004 )
2575
2576 enum spoolss_PortProtocol
2577 #ifndef USE_UINT_ENUMS
2578  {
2579         PROTOCOL_RAWTCP_TYPE=(int)(1),
2580         PROTOCOL_LPR_TYPE=(int)(2)
2581 }
2582 #else
2583  { __do_not_use_enum_spoolss_PortProtocol=0x7FFFFFFF}
2584 #define PROTOCOL_RAWTCP_TYPE ( 1 )
2585 #define PROTOCOL_LPR_TYPE ( 2 )
2586 #endif
2587 ;
2588
2589 struct spoolss_PortData1 {
2590         const char *portname;/* [charset(UTF16)] */
2591         uint32_t version;/* [value(0x00000001)] */
2592         enum spoolss_PortProtocol protocol;
2593         uint32_t size;/* [value(ndr_size_spoolss_PortData1(r,ndr->flags))] */
2594         uint32_t reserved;
2595         const char *hostaddress;/* [charset(UTF16)] */
2596         const char *snmpcommunity;/* [charset(UTF16)] */
2597         uint32_t dblspool;
2598         const char *queue;/* [charset(UTF16)] */
2599         const char *ip_address;/* [charset(UTF16)] */
2600         const char *hardware_address;/* [charset(UTF16)] */
2601         const char *device_type;/* [charset(UTF16)] */
2602         uint32_t port_number;
2603         uint32_t snmp_enabled;
2604         uint32_t snmp_dev_index;
2605 }/* [gensize,public] */;
2606
2607 struct spoolss_PortData2 {
2608         const char *portname;/* [charset(UTF16)] */
2609         uint32_t version;/* [value(0x00000002)] */
2610         enum spoolss_PortProtocol protocol;
2611         uint32_t size;/* [value(ndr_size_spoolss_PortData2(r,ndr->flags))] */
2612         uint32_t reserved;
2613         const char *hostaddress;/* [charset(UTF16)] */
2614         const char *snmpcommunity;/* [charset(UTF16)] */
2615         uint32_t dblspool;
2616         const char *queue;/* [charset(UTF16)] */
2617         const char *device_type;/* [charset(UTF16)] */
2618         uint32_t port_number;
2619         uint32_t snmp_enabled;
2620         uint32_t snmp_dev_index;
2621         uint32_t port_monitor_mib_index;
2622 }/* [gensize,public] */;
2623
2624 struct spoolss_MonitorUi {
2625         const char * dll_name;/* [flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] */
2626 }/* [public] */;
2627
2628 /* bitmap spoolss_AddPrinterDriverExFlags */
2629 #define APD_STRICT_UPGRADE ( 0x00000001 )
2630 #define APD_STRICT_DOWNGRADE ( 0x00000002 )
2631 #define APD_COPY_ALL_FILES ( 0x00000004 )
2632 #define APD_COPY_NEW_FILES ( 0x00000008 )
2633 #define APD_COPY_FROM_DIRECTORY ( 0x00000010 )
2634 #define APD_DONT_COPY_FILES_TO_CLUSTER ( 0x00001000 )
2635 #define APD_COPY_TO_ALL_SPOOLERS ( 0x00002000 )
2636 #define APD_RETURN_BLOCKING_STATUS_CODE ( 0x00010000 )
2637
2638 enum BIDI_TYPE
2639 #ifndef USE_UINT_ENUMS
2640  {
2641         BIDI_NULL=(int)(0x00000000),
2642         BIDI_INT=(int)(0x00000001),
2643         BIDI_FLOAT=(int)(0x00000002),
2644         BIDI_BOOL=(int)(0x00000003),
2645         BIDI_STRING=(int)(0x00000004),
2646         BIDI_TEXT=(int)(0x00000005),
2647         BIDI_ENUM=(int)(0x00000006),
2648         BIDI_BLOB=(int)(0x00000007)
2649 }
2650 #else
2651  { __do_not_use_enum_BIDI_TYPE=0x7FFFFFFF}
2652 #define BIDI_NULL ( 0x00000000 )
2653 #define BIDI_INT ( 0x00000001 )
2654 #define BIDI_FLOAT ( 0x00000002 )
2655 #define BIDI_BOOL ( 0x00000003 )
2656 #define BIDI_STRING ( 0x00000004 )
2657 #define BIDI_TEXT ( 0x00000005 )
2658 #define BIDI_ENUM ( 0x00000006 )
2659 #define BIDI_BLOB ( 0x00000007 )
2660 #endif
2661 ;
2662
2663 struct RPC_BINARY_CONTAINER {
2664         uint32_t cbBuf;
2665         uint8_t *pszString;/* [unique,size_is(cbBuf)] */
2666 };
2667
2668 union RPC_BIDI_DATA_u {
2669         uint32_t bData;/* [case(BIDI_NULL)] */
2670         uint32_t iData;/* [case(BIDI_INT)] */
2671         const char *sData;/* [unique,charset(UTF16),case(BIDI_STRING)] */
2672         struct RPC_BINARY_CONTAINER biData;/* [case(BIDI_BLOB)] */
2673 }/* [ms_union,switch_type(uint32)] */;
2674
2675 struct RPC_BIDI_DATA {
2676         uint32_t dwBidiType;
2677         union RPC_BIDI_DATA_u u;/* [switch_is(dwBidiType)] */
2678 };
2679
2680 struct RPC_BIDI_REQUEST_DATA {
2681         uint32_t dwReqNumber;
2682         const char *pSchema;/* [unique,charset(UTF16)] */
2683         struct RPC_BIDI_DATA data;
2684 };
2685
2686 struct RPC_BIDI_REQUEST_CONTAINER {
2687         uint32_t Version;/* [value] */
2688         uint32_t Flags;
2689         uint32_t Count;
2690         struct RPC_BIDI_REQUEST_DATA **aData;/* [unique,size_is(Count)] */
2691 }/* [public] */;
2692
2693 struct RPC_BIDI_RESPONSE_DATA {
2694         uint32_t dwResult;
2695         uint32_t dwReqNumber;
2696         const char *pSchema;/* [unique,charset(UTF16)] */
2697         struct RPC_BIDI_DATA data;
2698 };
2699
2700 struct RPC_BIDI_RESPONSE_CONTAINER {
2701         uint32_t Version;/* [value] */
2702         uint32_t Flags;
2703         uint32_t Count;
2704         struct RPC_BIDI_RESPONSE_DATA **aData;/* [unique,size_is(Count)] */
2705 }/* [public] */;
2706
2707 struct spoolss_CorePrinterDriver {
2708         struct GUID core_driver_guid;
2709         NTTIME driver_date;
2710         uint64_t driver_version;
2711         const char *formname;/* [charset(UTF8)] */
2712 }/* [public] */;
2713
2714 enum RPC_EPrintPropertyType
2715 #ifndef USE_UINT_ENUMS
2716  {
2717         kRpcPropertyTypeString=(int)(1),
2718         kRpcPropertyTypeInt32=(int)(2),
2719         kRpcPropertyTypeInt64=(int)(3),
2720         kRpcPropertyTypeByte=(int)(4),
2721         kRpcPropertyTypeBuffer=(int)(5)
2722 }
2723 #else
2724  { __do_not_use_enum_RPC_EPrintPropertyType=0x7FFFFFFF}
2725 #define kRpcPropertyTypeString ( 1 )
2726 #define kRpcPropertyTypeInt32 ( 2 )
2727 #define kRpcPropertyTypeInt64 ( 3 )
2728 #define kRpcPropertyTypeByte ( 4 )
2729 #define kRpcPropertyTypeBuffer ( 5 )
2730 #endif
2731 ;
2732
2733 struct propertyBlob {
2734         uint32_t cbBuf;
2735         uint8_t *pBuf;/* [unique,size_is(cbBuf)] */
2736 };
2737
2738 union RPC_PrintPropertyValueUnion {
2739         const char *propertyString;/* [unique,charset(UTF16),case(kRpcPropertyTypeString)] */
2740         uint32_t propertyInt32;/* [case(kRpcPropertyTypeInt32)] */
2741         uint64_t propertyInt64;/* [case(kRpcPropertyTypeInt64)] */
2742         uint8_t propertyByte;/* [case(kRpcPropertyTypeByte)] */
2743         struct propertyBlob propertyBlob;/* [case(kRpcPropertyTypeBuffer)] */
2744 }/* [ms_union,switch_type(RPC_EPrintPropertyType)] */;
2745
2746 struct RPC_PrintPropertyValue {
2747         enum RPC_EPrintPropertyType ePropertyType;
2748         union RPC_PrintPropertyValueUnion value;/* [switch_is(ePropertyType)] */
2749 }/* [public] */;
2750
2751 struct RPC_PrintNamedProperty {
2752         const char *propertyName;/* [unique,charset(UTF16)] */
2753         struct RPC_PrintPropertyValue propertyValue;
2754 }/* [public] */;
2755
2756
2757 struct _spoolss_EnumPrinters {
2758         struct {
2759                 uint32_t flags;
2760                 const char *server;/* [unique,charset(UTF16)] */
2761                 uint32_t level;
2762                 DATA_BLOB *buffer;/* [unique] */
2763                 uint32_t offered;
2764         } in;
2765
2766         struct {
2767                 DATA_BLOB *info;/* [unique] */
2768                 uint32_t *needed;/* [ref] */
2769                 uint32_t *count;/* [ref] */
2770                 WERROR result;
2771         } out;
2772
2773 };
2774
2775
2776 struct __spoolss_EnumPrinters {
2777         struct {
2778                 uint32_t level;
2779                 uint32_t count;
2780         } in;
2781
2782         struct {
2783                 union spoolss_PrinterInfo *info;/* [switch_is(level)] */
2784         } out;
2785
2786 };
2787
2788
2789 struct spoolss_EnumPrinters {
2790         struct {
2791                 uint32_t flags;
2792                 const char *server;/* [unique,charset(UTF16)] */
2793                 uint32_t level;
2794                 DATA_BLOB *buffer;/* [unique] */
2795                 uint32_t offered;
2796         } in;
2797
2798         struct {
2799                 uint32_t *count;/* [ref] */
2800                 union spoolss_PrinterInfo **info;/* [ref,switch_is(level),size_is(,*count)] */
2801                 uint32_t *needed;/* [ref] */
2802                 WERROR result;
2803         } out;
2804
2805 };
2806
2807
2808 struct spoolss_OpenPrinter {
2809         struct {
2810                 const char *printername;/* [unique,charset(UTF16)] */
2811                 const char *datatype;/* [unique,charset(UTF16)] */
2812                 struct spoolss_DevmodeContainer devmode_ctr;
2813                 uint32_t access_mask;
2814         } in;
2815
2816         struct {
2817                 struct policy_handle *handle;/* [ref] */
2818                 WERROR result;
2819         } out;
2820
2821 };
2822
2823
2824 struct spoolss_SetJob {
2825         struct {
2826                 struct policy_handle *handle;/* [ref] */
2827                 uint32_t job_id;
2828                 struct spoolss_JobInfoContainer *ctr;/* [unique] */
2829                 enum spoolss_JobControl command;
2830         } in;
2831
2832         struct {
2833                 WERROR result;
2834         } out;
2835
2836 };
2837
2838
2839 struct spoolss_GetJob {
2840         struct {
2841                 struct policy_handle *handle;/* [ref] */
2842                 uint32_t job_id;
2843                 uint32_t level;
2844                 DATA_BLOB *buffer;/* [unique] */
2845                 uint32_t offered;
2846         } in;
2847
2848         struct {
2849                 union spoolss_JobInfo *info;/* [unique,subcontext_size(offered),subcontext(4),switch_is(level)] */
2850                 uint32_t *needed;/* [ref] */
2851                 WERROR result;
2852         } out;
2853
2854 };
2855
2856
2857 struct _spoolss_EnumJobs {
2858         struct {
2859                 struct policy_handle *handle;/* [ref] */
2860                 uint32_t firstjob;
2861                 uint32_t numjobs;
2862                 uint32_t level;
2863                 DATA_BLOB *buffer;/* [unique] */
2864                 uint32_t offered;
2865         } in;
2866
2867         struct {
2868                 DATA_BLOB *info;/* [unique] */
2869                 uint32_t *needed;/* [ref] */
2870                 uint32_t *count;/* [ref] */
2871                 WERROR result;
2872         } out;
2873
2874 };
2875
2876
2877 struct __spoolss_EnumJobs {
2878         struct {
2879                 uint32_t level;
2880                 uint32_t count;
2881         } in;
2882
2883         struct {
2884                 union spoolss_JobInfo *info;/* [switch_is(level)] */
2885         } out;
2886
2887 };
2888
2889
2890 struct spoolss_EnumJobs {
2891         struct {
2892                 struct policy_handle *handle;/* [ref] */
2893                 uint32_t firstjob;
2894                 uint32_t numjobs;
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_JobInfo **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_AddPrinter {
2911         struct {
2912                 const char *server;/* [unique,charset(UTF16)] */
2913                 struct spoolss_SetPrinterInfoCtr *info_ctr;/* [ref] */
2914                 struct spoolss_DevmodeContainer *devmode_ctr;/* [ref] */
2915                 struct sec_desc_buf *secdesc_ctr;/* [ref] */
2916         } in;
2917
2918         struct {
2919                 struct policy_handle *handle;/* [ref] */
2920                 WERROR result;
2921         } out;
2922
2923 };
2924
2925
2926 struct spoolss_DeletePrinter {
2927         struct {
2928                 struct policy_handle *handle;/* [ref] */
2929         } in;
2930
2931         struct {
2932                 WERROR result;
2933         } out;
2934
2935 };
2936
2937
2938 struct spoolss_SetPrinter {
2939         struct {
2940                 struct policy_handle *handle;/* [ref] */
2941                 struct spoolss_SetPrinterInfoCtr *info_ctr;/* [ref] */
2942                 struct spoolss_DevmodeContainer *devmode_ctr;/* [ref] */
2943                 struct sec_desc_buf *secdesc_ctr;/* [ref] */
2944                 enum spoolss_PrinterControl command;
2945         } in;
2946
2947         struct {
2948                 WERROR result;
2949         } out;
2950
2951 };
2952
2953
2954 struct spoolss_GetPrinter {
2955         struct {
2956                 struct policy_handle *handle;/* [ref] */
2957                 uint32_t level;
2958                 DATA_BLOB *buffer;/* [unique] */
2959                 uint32_t offered;
2960         } in;
2961
2962         struct {
2963                 union spoolss_PrinterInfo *info;/* [unique,subcontext_size(offered),subcontext(4),switch_is(level)] */
2964                 uint32_t *needed;/* [ref] */
2965                 WERROR result;
2966         } out;
2967
2968 };
2969
2970
2971 struct spoolss_AddPrinterDriver {
2972         struct {
2973                 const char *servername;/* [unique,charset(UTF16)] */
2974                 struct spoolss_AddDriverInfoCtr *info_ctr;/* [ref] */
2975         } in;
2976
2977         struct {
2978                 WERROR result;
2979         } out;
2980
2981 };
2982
2983
2984 struct _spoolss_EnumPrinterDrivers {
2985         struct {
2986                 const char *server;/* [unique,charset(UTF16)] */
2987                 const char *environment;/* [unique,charset(UTF16)] */
2988                 uint32_t level;
2989                 DATA_BLOB *buffer;/* [unique] */
2990                 uint32_t offered;
2991         } in;
2992
2993         struct {
2994                 DATA_BLOB *info;/* [unique] */
2995                 uint32_t *needed;/* [ref] */
2996                 uint32_t *count;/* [ref] */
2997                 WERROR result;
2998         } out;
2999
3000 };
3001
3002
3003 struct __spoolss_EnumPrinterDrivers {
3004         struct {
3005                 uint32_t level;
3006                 uint32_t count;
3007         } in;
3008
3009         struct {
3010                 union spoolss_DriverInfo *info;/* [switch_is(level)] */
3011         } out;
3012
3013 };
3014
3015
3016 struct spoolss_EnumPrinterDrivers {
3017         struct {
3018                 const char *server;/* [unique,charset(UTF16)] */
3019                 const char *environment;/* [unique,charset(UTF16)] */
3020                 uint32_t level;
3021                 DATA_BLOB *buffer;/* [unique] */
3022                 uint32_t offered;
3023         } in;
3024
3025         struct {
3026                 uint32_t *count;/* [ref] */
3027                 union spoolss_DriverInfo **info;/* [ref,switch_is(level),size_is(,*count)] */
3028                 uint32_t *needed;/* [ref] */
3029                 WERROR result;
3030         } out;
3031
3032 };
3033
3034
3035 struct spoolss_GetPrinterDriver {
3036         struct {
3037                 struct policy_handle *handle;/* [ref] */
3038                 const char *architecture;/* [unique,charset(UTF16)] */
3039                 uint32_t level;
3040                 DATA_BLOB *buffer;/* [unique] */
3041                 uint32_t offered;
3042         } in;
3043
3044         struct {
3045                 union spoolss_DriverInfo *info;/* [unique,subcontext_size(offered),subcontext(4),switch_is(level)] */
3046                 uint32_t *needed;/* [ref] */
3047                 WERROR result;
3048         } out;
3049
3050 };
3051
3052
3053 struct spoolss_GetPrinterDriverDirectory {
3054         struct {
3055                 const char *server;/* [unique,charset(UTF16)] */
3056                 const char *environment;/* [unique,charset(UTF16)] */
3057                 uint32_t level;
3058                 DATA_BLOB *buffer;/* [unique] */
3059                 uint32_t offered;
3060         } in;
3061
3062         struct {
3063                 union spoolss_DriverDirectoryInfo *info;/* [unique,subcontext_size(offered),subcontext(4),switch_is(level)] */
3064                 uint32_t *needed;/* [ref] */
3065                 WERROR result;
3066         } out;
3067
3068 };
3069
3070
3071 struct spoolss_DeletePrinterDriver {
3072         struct {
3073                 const char *server;/* [unique,charset(UTF16)] */
3074                 const char *architecture;/* [charset(UTF16)] */
3075                 const char *driver;/* [charset(UTF16)] */
3076         } in;
3077
3078         struct {
3079                 WERROR result;
3080         } out;
3081
3082 };
3083
3084
3085 struct spoolss_AddPrintProcessor {
3086         struct {
3087                 const char *server;/* [unique,charset(UTF16)] */
3088                 const char *architecture;/* [charset(UTF16)] */
3089                 const char *path_name;/* [charset(UTF16)] */
3090                 const char *print_processor_name;/* [charset(UTF16)] */
3091         } in;
3092
3093         struct {
3094                 WERROR result;
3095         } out;
3096
3097 };
3098
3099
3100 struct _spoolss_EnumPrintProcessors {
3101         struct {
3102                 const char *servername;/* [unique,charset(UTF16)] */
3103                 const char *environment;/* [unique,charset(UTF16)] */
3104                 uint32_t level;
3105                 DATA_BLOB *buffer;/* [unique] */
3106                 uint32_t offered;
3107         } in;
3108
3109         struct {
3110                 DATA_BLOB *info;/* [unique] */
3111                 uint32_t *needed;/* [ref] */
3112                 uint32_t *count;/* [ref] */
3113                 WERROR result;
3114         } out;
3115
3116 };
3117
3118
3119 struct __spoolss_EnumPrintProcessors {
3120         struct {
3121                 uint32_t level;
3122                 uint32_t count;
3123         } in;
3124
3125         struct {
3126                 union spoolss_PrintProcessorInfo *info;/* [switch_is(level)] */
3127         } out;
3128
3129 };
3130
3131
3132 struct spoolss_EnumPrintProcessors {
3133         struct {
3134                 const char *servername;/* [unique,charset(UTF16)] */
3135                 const char *environment;/* [unique,charset(UTF16)] */
3136                 uint32_t level;
3137                 DATA_BLOB *buffer;/* [unique] */
3138                 uint32_t offered;
3139         } in;
3140
3141         struct {
3142                 uint32_t *count;/* [ref] */
3143                 union spoolss_PrintProcessorInfo **info;/* [ref,switch_is(level),size_is(,*count)] */
3144                 uint32_t *needed;/* [ref] */
3145                 WERROR result;
3146         } out;
3147
3148 };
3149
3150
3151 struct spoolss_GetPrintProcessorDirectory {
3152         struct {
3153                 const char *server;/* [unique,charset(UTF16)] */
3154                 const char *environment;/* [unique,charset(UTF16)] */
3155                 uint32_t level;
3156                 DATA_BLOB *buffer;/* [unique] */
3157                 uint32_t offered;
3158         } in;
3159
3160         struct {
3161                 union spoolss_PrintProcessorDirectoryInfo *info;/* [unique,subcontext_size(offered),subcontext(4),switch_is(level)] */
3162                 uint32_t *needed;/* [ref] */
3163                 WERROR result;
3164         } out;
3165
3166 };
3167
3168
3169 struct spoolss_StartDocPrinter {
3170         struct {
3171                 struct policy_handle *handle;/* [ref] */
3172                 struct spoolss_DocumentInfoCtr *info_ctr;/* [ref] */
3173         } in;
3174
3175         struct {
3176                 uint32_t *job_id;/* [ref] */
3177                 WERROR result;
3178         } out;
3179
3180 };
3181
3182
3183 struct spoolss_StartPagePrinter {
3184         struct {
3185                 struct policy_handle *handle;/* [ref] */
3186         } in;
3187
3188         struct {
3189                 WERROR result;
3190         } out;
3191
3192 };
3193
3194
3195 struct spoolss_WritePrinter {
3196         struct {
3197                 struct policy_handle *handle;/* [ref] */
3198                 DATA_BLOB data;
3199                 uint32_t _data_size;/* [value(r->in.data.length)] */
3200         } in;
3201
3202         struct {
3203                 uint32_t *num_written;/* [ref] */
3204                 WERROR result;
3205         } out;
3206
3207 };
3208
3209
3210 struct spoolss_EndPagePrinter {
3211         struct {
3212                 struct policy_handle *handle;/* [ref] */
3213         } in;
3214
3215         struct {
3216                 WERROR result;
3217         } out;
3218
3219 };
3220
3221
3222 struct spoolss_AbortPrinter {
3223         struct {
3224                 struct policy_handle *handle;/* [ref] */
3225         } in;
3226
3227         struct {
3228                 WERROR result;
3229         } out;
3230
3231 };
3232
3233
3234 struct spoolss_ReadPrinter {
3235         struct {
3236                 struct policy_handle *handle;/* [ref] */
3237                 uint32_t data_size;
3238         } in;
3239
3240         struct {
3241                 uint8_t *data;/* [ref,size_is(data_size)] */
3242                 uint32_t *_data_size;/* [ref] */
3243                 WERROR result;
3244         } out;
3245
3246 };
3247
3248
3249 struct spoolss_EndDocPrinter {
3250         struct {
3251                 struct policy_handle *handle;/* [ref] */
3252         } in;
3253
3254         struct {
3255                 WERROR result;
3256         } out;
3257
3258 };
3259
3260
3261 struct spoolss_AddJob {
3262         struct {
3263                 struct policy_handle *handle;/* [ref] */
3264                 uint32_t level;
3265                 uint32_t offered;
3266                 uint8_t *buffer;/* [unique,size_is(offered)] */
3267         } in;
3268
3269         struct {
3270                 uint32_t *needed;/* [ref] */
3271                 uint8_t *buffer;/* [unique,size_is(offered)] */
3272                 WERROR result;
3273         } out;
3274
3275 };
3276
3277
3278 struct spoolss_ScheduleJob {
3279         struct {
3280                 struct policy_handle *handle;/* [ref] */
3281                 uint32_t jobid;
3282         } in;
3283
3284         struct {
3285                 WERROR result;
3286         } out;
3287
3288 };
3289
3290
3291 struct spoolss_GetPrinterData {
3292         struct {
3293                 struct policy_handle *handle;/* [ref] */
3294                 const char *value_name;/* [charset(UTF16)] */
3295                 uint32_t offered;
3296         } in;
3297
3298         struct {
3299                 enum winreg_Type *type;/* [ref] */
3300                 uint8_t *data;/* [ref,size_is(offered)] */
3301                 uint32_t *needed;/* [ref] */
3302                 WERROR result;
3303         } out;
3304
3305 };
3306
3307
3308 struct spoolss_SetPrinterData {
3309         struct {
3310                 struct policy_handle *handle;/* [ref] */
3311                 const char *value_name;/* [charset(UTF16)] */
3312                 enum winreg_Type type;
3313                 uint8_t *data;/* [ref,size_is(offered)] */
3314                 uint32_t offered;
3315         } in;
3316
3317         struct {
3318                 WERROR result;
3319         } out;
3320
3321 };
3322
3323
3324 struct spoolss_WaitForPrinterChange {
3325         struct {
3326                 WERROR result;
3327         } out;
3328
3329 };
3330
3331
3332 struct spoolss_ClosePrinter {
3333         struct {
3334                 struct policy_handle *handle;/* [ref] */
3335         } in;
3336
3337         struct {
3338                 struct policy_handle *handle;/* [ref] */
3339                 WERROR result;
3340         } out;
3341
3342 };
3343
3344
3345 struct spoolss_AddForm {
3346         struct {
3347                 struct policy_handle *handle;/* [ref] */
3348                 struct spoolss_AddFormInfoCtr *info_ctr;/* [ref] */
3349         } in;
3350
3351         struct {
3352                 WERROR result;
3353         } out;
3354
3355 };
3356
3357
3358 struct spoolss_DeleteForm {
3359         struct {
3360                 struct policy_handle *handle;/* [ref] */
3361                 const char *form_name;/* [charset(UTF16)] */
3362         } in;
3363
3364         struct {
3365                 WERROR result;
3366         } out;
3367
3368 };
3369
3370
3371 struct spoolss_GetForm {
3372         struct {
3373                 struct policy_handle *handle;/* [ref] */
3374                 const char *form_name;/* [charset(UTF16)] */
3375                 uint32_t level;
3376                 DATA_BLOB *buffer;/* [unique] */
3377                 uint32_t offered;
3378         } in;
3379
3380         struct {
3381                 union spoolss_FormInfo *info;/* [unique,subcontext_size(offered),subcontext(4),switch_is(level)] */
3382                 uint32_t *needed;/* [ref] */
3383                 WERROR result;
3384         } out;
3385
3386 };
3387
3388
3389 struct spoolss_SetForm {
3390         struct {
3391                 struct policy_handle *handle;/* [ref] */
3392                 const char *form_name;/* [charset(UTF16)] */
3393                 struct spoolss_AddFormInfoCtr *info_ctr;/* [ref] */
3394         } in;
3395
3396         struct {
3397                 WERROR result;
3398         } out;
3399
3400 };
3401
3402
3403 struct _spoolss_EnumForms {
3404         struct {
3405                 struct policy_handle *handle;/* [ref] */
3406                 uint32_t level;
3407                 DATA_BLOB *buffer;/* [unique] */
3408                 uint32_t offered;
3409         } in;
3410
3411         struct {
3412                 DATA_BLOB *info;/* [unique] */
3413                 uint32_t *needed;/* [ref] */
3414                 uint32_t *count;/* [ref] */
3415                 WERROR result;
3416         } out;
3417
3418 };
3419
3420
3421 struct __spoolss_EnumForms {
3422         struct {
3423                 uint32_t level;
3424                 uint32_t count;
3425         } in;
3426
3427         struct {
3428                 union spoolss_FormInfo *info;/* [switch_is(level)] */
3429         } out;
3430
3431 };
3432
3433
3434 struct spoolss_EnumForms {
3435         struct {
3436                 struct policy_handle *handle;/* [ref] */
3437                 uint32_t level;
3438                 DATA_BLOB *buffer;/* [unique] */
3439                 uint32_t offered;
3440         } in;
3441
3442         struct {
3443                 uint32_t *count;/* [ref] */
3444                 union spoolss_FormInfo **info;/* [ref,switch_is(level),size_is(,*count)] */
3445                 uint32_t *needed;/* [ref] */
3446                 WERROR result;
3447         } out;
3448
3449 };
3450
3451
3452 struct _spoolss_EnumPorts {
3453         struct {
3454                 const char *servername;/* [unique,charset(UTF16)] */
3455                 uint32_t level;
3456                 DATA_BLOB *buffer;/* [unique] */
3457                 uint32_t offered;
3458         } in;
3459
3460         struct {
3461                 DATA_BLOB *info;/* [unique] */
3462                 uint32_t *needed;/* [ref] */
3463                 uint32_t *count;/* [ref] */
3464                 WERROR result;
3465         } out;
3466
3467 };
3468
3469
3470 struct __spoolss_EnumPorts {
3471         struct {
3472                 uint32_t level;
3473                 uint32_t count;
3474         } in;
3475
3476         struct {
3477                 union spoolss_PortInfo *info;/* [switch_is(level)] */
3478         } out;
3479
3480 };
3481
3482
3483 struct spoolss_EnumPorts {
3484         struct {
3485                 const char *servername;/* [unique,charset(UTF16)] */
3486                 uint32_t level;
3487                 DATA_BLOB *buffer;/* [unique] */
3488                 uint32_t offered;
3489         } in;
3490
3491         struct {
3492                 uint32_t *count;/* [ref] */
3493                 union spoolss_PortInfo **info;/* [ref,switch_is(level),size_is(,*count)] */
3494                 uint32_t *needed;/* [ref] */
3495                 WERROR result;
3496         } out;
3497
3498 };
3499
3500
3501 struct _spoolss_EnumMonitors {
3502         struct {
3503                 const char *servername;/* [unique,charset(UTF16)] */
3504                 uint32_t level;
3505                 DATA_BLOB *buffer;/* [unique] */
3506                 uint32_t offered;
3507         } in;
3508
3509         struct {
3510                 DATA_BLOB *info;/* [unique] */
3511                 uint32_t *needed;/* [ref] */
3512                 uint32_t *count;/* [ref] */
3513                 WERROR result;
3514         } out;
3515
3516 };
3517
3518
3519 struct __spoolss_EnumMonitors {
3520         struct {
3521                 uint32_t level;
3522                 uint32_t count;
3523         } in;
3524
3525         struct {
3526                 union spoolss_MonitorInfo *info;/* [switch_is(level)] */
3527         } out;
3528
3529 };
3530
3531
3532 struct spoolss_EnumMonitors {
3533         struct {
3534                 const char *servername;/* [unique,charset(UTF16)] */
3535                 uint32_t level;
3536                 DATA_BLOB *buffer;/* [unique] */
3537                 uint32_t offered;
3538         } in;
3539
3540         struct {
3541                 uint32_t *count;/* [ref] */
3542                 union spoolss_MonitorInfo **info;/* [ref,switch_is(level),size_is(,*count)] */
3543                 uint32_t *needed;/* [ref] */
3544                 WERROR result;
3545         } out;
3546
3547 };
3548
3549
3550 struct spoolss_AddPort {
3551         struct {
3552                 const char *server_name;/* [unique,charset(UTF16)] */
3553                 uint32_t unknown;
3554                 const char *monitor_name;/* [charset(UTF16)] */
3555         } in;
3556
3557         struct {
3558                 WERROR result;
3559         } out;
3560
3561 };
3562
3563
3564 struct spoolss_ConfigurePort {
3565         struct {
3566                 WERROR result;
3567         } out;
3568
3569 };
3570
3571
3572 struct spoolss_DeletePort {
3573         struct {
3574                 const char *server_name;/* [unique,charset(UTF16)] */
3575                 uint32_t ptr;
3576                 const char *port_name;/* [ref,charset(UTF16)] */
3577         } in;
3578
3579         struct {
3580                 WERROR result;
3581         } out;
3582
3583 };
3584
3585
3586 struct spoolss_CreatePrinterIC {
3587         struct {
3588                 struct policy_handle *handle;/* [ref] */
3589                 struct spoolss_DevmodeContainer *devmode_ctr;/* [ref] */
3590         } in;
3591
3592         struct {
3593                 struct policy_handle *gdi_handle;/* [ref] */
3594                 WERROR result;
3595         } out;
3596
3597 };
3598
3599
3600 struct spoolss_PlayGDIScriptOnPrinterIC {
3601         struct {
3602                 struct policy_handle *gdi_handle;/* [ref] */
3603                 uint8_t *pIn;/* [ref,size_is(cIn)] */
3604                 uint32_t cIn;
3605                 uint32_t cOut;
3606                 uint32_t ul;
3607         } in;
3608
3609         struct {
3610                 uint8_t *pOut;/* [ref,size_is(cOut)] */
3611                 WERROR result;
3612         } out;
3613
3614 };
3615
3616
3617 struct spoolss_DeletePrinterIC {
3618         struct {
3619                 struct policy_handle *gdi_handle;/* [ref] */
3620         } in;
3621
3622         struct {
3623                 struct policy_handle *gdi_handle;/* [ref] */
3624                 WERROR result;
3625         } out;
3626
3627 };
3628
3629
3630 struct spoolss_AddPrinterConnection {
3631         struct {
3632                 WERROR result;
3633         } out;
3634
3635 };
3636
3637
3638 struct spoolss_DeletePrinterConnection {
3639         struct {
3640                 WERROR result;
3641         } out;
3642
3643 };
3644
3645
3646 struct spoolss_PrinterMessageBox {
3647         struct {
3648                 WERROR result;
3649         } out;
3650
3651 };
3652
3653
3654 struct spoolss_AddMonitor {
3655         struct {
3656                 WERROR result;
3657         } out;
3658
3659 };
3660
3661
3662 struct spoolss_DeleteMonitor {
3663         struct {
3664                 WERROR result;
3665         } out;
3666
3667 };
3668
3669
3670 struct spoolss_DeletePrintProcessor {
3671         struct {
3672                 const char *server;/* [unique,charset(UTF16)] */
3673                 const char *architecture;/* [unique,charset(UTF16)] */
3674                 const char *print_processor_name;/* [charset(UTF16)] */
3675         } in;
3676
3677         struct {
3678                 WERROR result;
3679         } out;
3680
3681 };
3682
3683
3684 struct spoolss_AddPrintProvidor {
3685         struct {
3686                 WERROR result;
3687         } out;
3688
3689 };
3690
3691
3692 struct spoolss_DeletePrintProvidor {
3693         struct {
3694                 WERROR result;
3695         } out;
3696
3697 };
3698
3699
3700 struct _spoolss_EnumPrintProcDataTypes {
3701         struct {
3702                 const char *servername;/* [unique,charset(UTF16)] */
3703                 const char *print_processor_name;/* [unique,charset(UTF16)] */
3704                 uint32_t level;
3705                 DATA_BLOB *buffer;/* [unique] */
3706                 uint32_t offered;
3707         } in;
3708
3709         struct {
3710                 DATA_BLOB *info;/* [unique] */
3711                 uint32_t *needed;/* [ref] */
3712                 uint32_t *count;/* [ref] */
3713                 WERROR result;
3714         } out;
3715
3716 };
3717
3718
3719 struct __spoolss_EnumPrintProcDataTypes {
3720         struct {
3721                 uint32_t level;
3722                 uint32_t count;
3723         } in;
3724
3725         struct {
3726                 union spoolss_PrintProcDataTypesInfo *info;/* [switch_is(level)] */
3727         } out;
3728
3729 };
3730
3731
3732 struct spoolss_EnumPrintProcDataTypes {
3733         struct {
3734                 const char *servername;/* [unique,charset(UTF16)] */
3735                 const char *print_processor_name;/* [unique,charset(UTF16)] */
3736                 uint32_t level;
3737                 DATA_BLOB *buffer;/* [unique] */
3738                 uint32_t offered;
3739         } in;
3740
3741         struct {
3742                 uint32_t *count;/* [ref] */
3743                 union spoolss_PrintProcDataTypesInfo **info;/* [ref,switch_is(level),size_is(,*count)] */
3744                 uint32_t *needed;/* [ref] */
3745                 WERROR result;
3746         } out;
3747
3748 };
3749
3750
3751 struct spoolss_ResetPrinter {
3752         struct {
3753                 struct policy_handle *handle;/* [ref] */
3754                 const char *data_type;/* [unique,charset(UTF16)] */
3755                 struct spoolss_DevmodeContainer *devmode_ctr;/* [ref] */
3756         } in;
3757
3758         struct {
3759                 WERROR result;
3760         } out;
3761
3762 };
3763
3764
3765 struct spoolss_GetPrinterDriver2 {
3766         struct {
3767                 struct policy_handle *handle;/* [ref] */
3768                 const char *architecture;/* [unique,charset(UTF16)] */
3769                 uint32_t level;
3770                 DATA_BLOB *buffer;/* [unique] */
3771                 uint32_t offered;
3772                 uint32_t client_major_version;
3773                 uint32_t client_minor_version;
3774         } in;
3775
3776         struct {
3777                 union spoolss_DriverInfo *info;/* [unique,subcontext_size(offered),subcontext(4),switch_is(level)] */
3778                 uint32_t *needed;/* [ref] */
3779                 uint32_t *server_major_version;/* [ref] */
3780                 uint32_t *server_minor_version;/* [ref] */
3781                 WERROR result;
3782         } out;
3783
3784 };
3785
3786
3787 struct spoolss_FindFirstPrinterChangeNotification {
3788         struct {
3789                 WERROR result;
3790         } out;
3791
3792 };
3793
3794
3795 struct spoolss_FindNextPrinterChangeNotification {
3796         struct {
3797                 WERROR result;
3798         } out;
3799
3800 };
3801
3802
3803 struct spoolss_FindClosePrinterNotify {
3804         struct {
3805                 struct policy_handle *handle;/* [ref] */
3806         } in;
3807
3808         struct {
3809                 WERROR result;
3810         } out;
3811
3812 };
3813
3814
3815 struct spoolss_RouterFindFirstPrinterChangeNotificationOld {
3816         struct {
3817                 WERROR result;
3818         } out;
3819
3820 };
3821
3822
3823 struct spoolss_ReplyOpenPrinter {
3824         struct {
3825                 const char *server_name;/* [charset(UTF16)] */
3826                 uint32_t printer_local;
3827                 enum winreg_Type type;
3828                 uint32_t bufsize;/* [range(0,512)] */
3829                 uint8_t *buffer;/* [unique,size_is(bufsize)] */
3830         } in;
3831
3832         struct {
3833                 struct policy_handle *handle;/* [ref] */
3834                 WERROR result;
3835         } out;
3836
3837 };
3838
3839
3840 struct spoolss_RouterReplyPrinter {
3841         struct {
3842                 struct policy_handle *handle;/* [ref] */
3843                 uint32_t flags;
3844                 uint32_t bufsize;/* [range(0,512)] */
3845                 uint8_t *buffer;/* [unique,size_is(bufsize)] */
3846         } in;
3847
3848         struct {
3849                 WERROR result;
3850         } out;
3851
3852 };
3853
3854
3855 struct spoolss_ReplyClosePrinter {
3856         struct {
3857                 struct policy_handle *handle;/* [ref] */
3858         } in;
3859
3860         struct {
3861                 struct policy_handle *handle;/* [ref] */
3862                 WERROR result;
3863         } out;
3864
3865 };
3866
3867
3868 struct spoolss_AddPortEx {
3869         struct {
3870                 const char *servername;/* [unique,charset(UTF16)] */
3871                 struct spoolss_SetPortInfoContainer *port_ctr;/* [ref] */
3872                 struct spoolss_PortVarContainer *port_var_ctr;/* [ref] */
3873                 const char *monitor_name;/* [unique,charset(UTF16)] */
3874         } in;
3875
3876         struct {
3877                 WERROR result;
3878         } out;
3879
3880 };
3881
3882
3883 struct spoolss_RouterFindFirstPrinterChangeNotification {
3884         struct {
3885                 WERROR result;
3886         } out;
3887
3888 };
3889
3890
3891 struct spoolss_SpoolerInit {
3892         struct {
3893                 WERROR result;
3894         } out;
3895
3896 };
3897
3898
3899 struct spoolss_ResetPrinterEx {
3900         struct {
3901                 WERROR result;
3902         } out;
3903
3904 };
3905
3906
3907 struct spoolss_RemoteFindFirstPrinterChangeNotifyEx {
3908         struct {
3909                 struct policy_handle *handle;/* [ref] */
3910                 uint32_t flags;
3911                 uint32_t options;
3912                 const char *local_machine;/* [unique,charset(UTF16)] */
3913                 uint32_t printer_local;
3914                 struct spoolss_NotifyOption *notify_options;/* [unique] */
3915         } in;
3916
3917         struct {
3918                 WERROR result;
3919         } out;
3920
3921 };
3922
3923
3924 struct spoolss_RouterReplyPrinterEx {
3925         struct {
3926                 struct policy_handle *handle;/* [ref] */
3927                 uint32_t color;
3928                 uint32_t flags;
3929                 uint32_t reply_type;
3930                 union spoolss_ReplyPrinterInfo info;/* [switch_is(reply_type)] */
3931         } in;
3932
3933         struct {
3934                 uint32_t *reply_result;/* [ref] */
3935                 WERROR result;
3936         } out;
3937
3938 };
3939
3940
3941 struct spoolss_RouterRefreshPrinterChangeNotify {
3942         struct {
3943                 struct policy_handle *handle;/* [ref] */
3944                 uint32_t change_low;
3945                 struct spoolss_NotifyOption *options;/* [unique] */
3946         } in;
3947
3948         struct {
3949                 struct spoolss_NotifyInfo **info;/* [ref] */
3950                 WERROR result;
3951         } out;
3952
3953 };
3954
3955
3956 struct spoolss_44 {
3957         struct {
3958                 WERROR result;
3959         } out;
3960
3961 };
3962
3963
3964 struct spoolss_OpenPrinterEx {
3965         struct {
3966                 const char *printername;/* [unique,charset(UTF16)] */
3967                 const char *datatype;/* [unique,charset(UTF16)] */
3968                 struct spoolss_DevmodeContainer devmode_ctr;
3969                 uint32_t access_mask;
3970                 struct spoolss_UserLevelCtr userlevel_ctr;
3971         } in;
3972
3973         struct {
3974                 struct policy_handle *handle;/* [ref] */
3975                 WERROR result;
3976         } out;
3977
3978 };
3979
3980
3981 struct spoolss_AddPrinterEx {
3982         struct {
3983                 const char *server;/* [unique,charset(UTF16)] */
3984                 struct spoolss_SetPrinterInfoCtr *info_ctr;/* [ref] */
3985                 struct spoolss_DevmodeContainer *devmode_ctr;/* [ref] */
3986                 struct sec_desc_buf *secdesc_ctr;/* [ref] */
3987                 struct spoolss_UserLevelCtr *userlevel_ctr;/* [ref] */
3988         } in;
3989
3990         struct {
3991                 struct policy_handle *handle;/* [ref] */
3992                 WERROR result;
3993         } out;
3994
3995 };
3996
3997
3998 struct spoolss_SetPort {
3999         struct {
4000                 const char *servername;/* [unique,charset(UTF16)] */
4001                 const char *port_name;/* [unique,charset(UTF16)] */
4002                 struct spoolss_SetPortInfoContainer *port_ctr;/* [ref] */
4003         } in;
4004
4005         struct {
4006                 WERROR result;
4007         } out;
4008
4009 };
4010
4011
4012 struct spoolss_EnumPrinterData {
4013         struct {
4014                 struct policy_handle *handle;/* [ref] */
4015                 uint32_t enum_index;
4016                 uint32_t value_offered;
4017                 uint32_t data_offered;
4018         } in;
4019
4020         struct {
4021                 const char *value_name;/* [charset(UTF16),size_is(value_offered/2)] */
4022                 uint32_t *value_needed;/* [ref] */
4023                 enum winreg_Type *type;/* [ref] */
4024                 uint8_t *data;/* [ref,flag(LIBNDR_PRINT_ARRAY_HEX),size_is(data_offered)] */
4025                 uint32_t *data_needed;/* [ref] */
4026                 WERROR result;
4027         } out;
4028
4029 };
4030
4031
4032 struct spoolss_DeletePrinterData {
4033         struct {
4034                 struct policy_handle *handle;/* [ref] */
4035                 const char *value_name;/* [charset(UTF16)] */
4036         } in;
4037
4038         struct {
4039                 WERROR result;
4040         } out;
4041
4042 };
4043
4044
4045 struct spoolss_4a {
4046         struct {
4047                 WERROR result;
4048         } out;
4049
4050 };
4051
4052
4053 struct spoolss_4b {
4054         struct {
4055                 WERROR result;
4056         } out;
4057
4058 };
4059
4060
4061 struct spoolss_4c {
4062         struct {
4063                 WERROR result;
4064         } out;
4065
4066 };
4067
4068
4069 struct spoolss_SetPrinterDataEx {
4070         struct {
4071                 struct policy_handle *handle;/* [ref] */
4072                 const char *key_name;/* [charset(UTF16)] */
4073                 const char *value_name;/* [charset(UTF16)] */
4074                 enum winreg_Type type;
4075                 uint8_t *data;/* [ref,size_is(offered)] */
4076                 uint32_t offered;
4077         } in;
4078
4079         struct {
4080                 WERROR result;
4081         } out;
4082
4083 };
4084
4085
4086 struct spoolss_GetPrinterDataEx {
4087         struct {
4088                 struct policy_handle *handle;/* [ref] */
4089                 const char *key_name;/* [charset(UTF16)] */
4090                 const char *value_name;/* [charset(UTF16)] */
4091                 uint32_t offered;
4092         } in;
4093
4094         struct {
4095                 enum winreg_Type *type;/* [ref] */
4096                 uint8_t *data;/* [ref,size_is(offered)] */
4097                 uint32_t *needed;/* [ref] */
4098                 WERROR result;
4099         } out;
4100
4101 };
4102
4103
4104 struct _spoolss_EnumPrinterDataEx {
4105         struct {
4106                 struct policy_handle *handle;/* [ref] */
4107                 const char *key_name;/* [charset(UTF16)] */
4108                 uint32_t offered;
4109         } in;
4110
4111         struct {
4112                 DATA_BLOB info;
4113                 uint32_t *needed;/* [ref] */
4114                 uint32_t *count;/* [ref] */
4115                 WERROR result;
4116         } out;
4117
4118 };
4119
4120
4121 struct __spoolss_EnumPrinterDataEx {
4122         struct {
4123                 uint32_t count;
4124         } in;
4125
4126         struct {
4127                 struct spoolss_PrinterEnumValues *info;
4128         } out;
4129
4130 };
4131
4132
4133 struct spoolss_EnumPrinterDataEx {
4134         struct {
4135                 struct policy_handle *handle;/* [ref] */
4136                 const char *key_name;/* [charset(UTF16)] */
4137                 uint32_t offered;
4138         } in;
4139
4140         struct {
4141                 uint32_t *count;/* [ref] */
4142                 struct spoolss_PrinterEnumValues **info;/* [ref,size_is(,*count)] */
4143                 uint32_t *needed;/* [ref] */
4144                 WERROR result;
4145         } out;
4146
4147 };
4148
4149
4150 struct spoolss_EnumPrinterKey {
4151         struct {
4152                 struct policy_handle *handle;/* [ref] */
4153                 const char *key_name;/* [charset(UTF16)] */
4154                 uint32_t offered;
4155         } in;
4156
4157         struct {
4158                 uint32_t *_ndr_size;/* [ref] */
4159                 union spoolss_KeyNames *key_buffer;/* [subcontext_size(*_ndr_size*2),ref,subcontext(0),switch_is(*_ndr_size)] */
4160                 uint32_t *needed;/* [ref] */
4161                 WERROR result;
4162         } out;
4163
4164 };
4165
4166
4167 struct spoolss_DeletePrinterDataEx {
4168         struct {
4169                 struct policy_handle *handle;/* [ref] */
4170                 const char *key_name;/* [charset(UTF16)] */
4171                 const char *value_name;/* [charset(UTF16)] */
4172         } in;
4173
4174         struct {
4175                 WERROR result;
4176         } out;
4177
4178 };
4179
4180
4181 struct spoolss_DeletePrinterKey {
4182         struct {
4183                 struct policy_handle *handle;/* [ref] */
4184                 const char *key_name;/* [charset(UTF16)] */
4185         } in;
4186
4187         struct {
4188                 WERROR result;
4189         } out;
4190
4191 };
4192
4193
4194 struct spoolss_53 {
4195         struct {
4196                 WERROR result;
4197         } out;
4198
4199 };
4200
4201
4202 struct spoolss_DeletePrinterDriverEx {
4203         struct {
4204                 const char *server;/* [unique,charset(UTF16)] */
4205                 const char *architecture;/* [charset(UTF16)] */
4206                 const char *driver;/* [charset(UTF16)] */
4207                 uint32_t delete_flags;
4208                 uint32_t version;
4209         } in;
4210
4211         struct {
4212                 WERROR result;
4213         } out;
4214
4215 };
4216
4217
4218 struct spoolss_AddPerMachineConnection {
4219         struct {
4220                 const char *server;/* [unique,charset(UTF16)] */
4221                 const char *printername;/* [ref,charset(UTF16)] */
4222                 const char *printserver;/* [ref,charset(UTF16)] */
4223                 const char *provider;/* [ref,charset(UTF16)] */
4224         } in;
4225
4226         struct {
4227                 WERROR result;
4228         } out;
4229
4230 };
4231
4232
4233 struct spoolss_DeletePerMachineConnection {
4234         struct {
4235                 const char *server;/* [unique,charset(UTF16)] */
4236                 const char *printername;/* [ref,charset(UTF16)] */
4237         } in;
4238
4239         struct {
4240                 WERROR result;
4241         } out;
4242
4243 };
4244
4245
4246 struct spoolss_EnumPerMachineConnections {
4247         struct {
4248                 WERROR result;
4249         } out;
4250
4251 };
4252
4253
4254 struct spoolss_XcvData {
4255         struct {
4256                 struct policy_handle *handle;/* [ref] */
4257                 const char *function_name;/* [charset(UTF16)] */
4258                 DATA_BLOB in_data;
4259                 uint32_t _in_data_length;/* [value(r->in.in_data.length)] */
4260                 uint32_t out_data_size;
4261                 uint32_t *status_code;/* [ref] */
4262         } in;
4263
4264         struct {
4265                 uint8_t *out_data;/* [ref,size_is(out_data_size)] */
4266                 uint32_t *needed;/* [ref] */
4267                 uint32_t *status_code;/* [ref] */
4268                 WERROR result;
4269         } out;
4270
4271 };
4272
4273
4274 struct spoolss_AddPrinterDriverEx {
4275         struct {
4276                 const char *servername;/* [unique,charset(UTF16)] */
4277                 struct spoolss_AddDriverInfoCtr *info_ctr;/* [ref] */
4278                 uint32_t flags;
4279         } in;
4280
4281         struct {
4282                 WERROR result;
4283         } out;
4284
4285 };
4286
4287
4288 struct spoolss_5a {
4289         struct {
4290                 WERROR result;
4291         } out;
4292
4293 };
4294
4295
4296 struct spoolss_5b {
4297         struct {
4298                 WERROR result;
4299         } out;
4300
4301 };
4302
4303
4304 struct spoolss_5c {
4305         struct {
4306                 WERROR result;
4307         } out;
4308
4309 };
4310
4311
4312 struct spoolss_5d {
4313         struct {
4314                 WERROR result;
4315         } out;
4316
4317 };
4318
4319
4320 struct spoolss_5e {
4321         struct {
4322                 WERROR result;
4323         } out;
4324
4325 };
4326
4327
4328 struct spoolss_5f {
4329         struct {
4330                 WERROR result;
4331         } out;
4332
4333 };
4334
4335
4336 struct spoolss_60 {
4337         struct {
4338                 WERROR result;
4339         } out;
4340
4341 };
4342
4343
4344 struct spoolss_RpcSendRecvBidiData {
4345         struct {
4346                 struct policy_handle hPrinter;
4347                 const char *pAction;/* [unique,charset(UTF16)] */
4348                 struct RPC_BIDI_REQUEST_CONTAINER *pReqData;/* [ref] */
4349         } in;
4350
4351         struct {
4352                 struct RPC_BIDI_RESPONSE_CONTAINER **ppRespData;/* [ref] */
4353                 WERROR result;
4354         } out;
4355
4356 };
4357
4358
4359 struct spoolss_62 {
4360         struct {
4361                 WERROR result;
4362         } out;
4363
4364 };
4365
4366
4367 struct spoolss_63 {
4368         struct {
4369                 WERROR result;
4370         } out;
4371
4372 };
4373
4374
4375 struct spoolss_64 {
4376         struct {
4377                 WERROR result;
4378         } out;
4379
4380 };
4381
4382
4383 struct spoolss_65 {
4384         struct {
4385                 WERROR result;
4386         } out;
4387
4388 };
4389
4390
4391 struct spoolss_GetCorePrinterDrivers {
4392         struct {
4393                 const char *servername;/* [unique,charset(UTF16)] */
4394                 const char *architecture;/* [ref,charset(UTF16)] */
4395                 uint32_t core_driver_size;
4396                 const char *core_driver_dependencies;/* [ref,charset(UTF16),size_is(core_driver_size)] */
4397                 uint32_t core_printer_driver_count;
4398         } in;
4399
4400         struct {
4401                 struct spoolss_CorePrinterDriver *core_printer_drivers;/* [ref,size_is(core_printer_driver_count)] */
4402                 WERROR result;
4403         } out;
4404
4405 };
4406
4407
4408 struct spoolss_67 {
4409         struct {
4410                 WERROR result;
4411         } out;
4412
4413 };
4414
4415
4416 struct spoolss_GetPrinterDriverPackagePath {
4417         struct {
4418                 const char *servername;/* [unique,charset(UTF16)] */
4419                 const char *architecture;/* [ref,charset(UTF16)] */
4420                 const char *language;/* [unique,charset(UTF16)] */
4421                 const char *package_id;/* [ref,charset(UTF16)] */
4422                 uint32_t driver_package_cab_size;
4423                 const char *driver_package_cab;/* [unique,charset(UTF16),size_is(driver_package_cab_size)] */
4424         } in;
4425
4426         struct {
4427                 uint32_t *required;/* [ref] */
4428                 const char *driver_package_cab;/* [unique,charset(UTF16),size_is(driver_package_cab_size)] */
4429                 WERROR result;
4430         } out;
4431
4432 };
4433
4434
4435 struct spoolss_69 {
4436         struct {
4437                 WERROR result;
4438         } out;
4439
4440 };
4441
4442
4443 struct spoolss_6a {
4444         struct {
4445                 WERROR result;
4446         } out;
4447
4448 };
4449
4450
4451 struct spoolss_6b {
4452         struct {
4453                 WERROR result;
4454         } out;
4455
4456 };
4457
4458
4459 struct spoolss_6c {
4460         struct {
4461                 WERROR result;
4462         } out;
4463
4464 };
4465
4466
4467 struct spoolss_6d {
4468         struct {
4469                 WERROR result;
4470         } out;
4471
4472 };
4473
4474
4475 struct spoolss_RpcGetJobNamedPropertyValue {
4476         struct {
4477                 struct policy_handle *hPrinter;/* [ref] */
4478                 uint32_t JobId;
4479                 const char *pszName;/* [ref,charset(UTF16)] */
4480         } in;
4481
4482         struct {
4483                 struct RPC_PrintPropertyValue *pValue;/* [ref] */
4484                 WERROR result;
4485         } out;
4486
4487 };
4488
4489
4490 struct spoolss_RpcSetJobNamedProperty {
4491         struct {
4492                 struct policy_handle *hPrinter;/* [ref] */
4493                 uint32_t JobId;
4494                 struct RPC_PrintNamedProperty *pProperty;/* [ref] */
4495         } in;
4496
4497         struct {
4498                 WERROR result;
4499         } out;
4500
4501 };
4502
4503
4504 struct spoolss_RpcDeleteJobNamedProperty {
4505         struct {
4506                 struct policy_handle *hPrinter;/* [ref] */
4507                 uint32_t JobId;
4508                 const char *pszName;/* [ref,charset(UTF16)] */
4509         } in;
4510
4511         struct {
4512                 WERROR result;
4513         } out;
4514
4515 };
4516
4517
4518 struct spoolss_RpcEnumJobNamedProperties {
4519         struct {
4520                 struct policy_handle *hPrinter;/* [ref] */
4521                 uint32_t JobId;
4522         } in;
4523
4524         struct {
4525                 uint32_t *pcProperties;/* [ref] */
4526                 struct RPC_PrintNamedProperty **ppProperties;/* [ref,size_is(,*pcProperties)] */
4527                 WERROR result;
4528         } out;
4529
4530 };
4531
4532 #endif /* _HEADER_spoolss */
4533 #endif /* _PIDL_HEADER_spoolss */