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