r5489: hide handwritten pull/push/print code from the caller
[jelmer/samba4-debian.git] / source / librpc / idl / spoolss.idl
1 #include "idl_types.h"
2
3 /*
4   spoolss interface definitions
5 */
6
7 [ uuid("12345678-1234-abcd-ef00-0123456789ab"),
8   version(1.0),
9   endpoint("ncacn_np:[\\pipe\\spoolss]"),
10   pointer_default(unique),
11   helpstring("Spooler SubSystem"),
12   depends(security)
13 ] interface spoolss
14 {
15         typedef struct {
16                 uint16 year;
17                 uint16 month;
18                 uint16 day_of_week;
19                 uint16 day;
20                 uint16 hour;
21                 uint16 minute;
22                 uint16 second;
23                 uint16 millisecond;
24         } spoolss_Time;
25
26         typedef struct {
27                 [relative] nstring *printername;
28                 [relative] nstring *servername;
29                 uint32 cjobs;
30                 uint32 total_jobs;
31                 uint32 total_bytes;
32                 spoolss_Time time;              
33                 uint32 global_counter;
34                 uint32 total_pages;
35                 uint32 version;
36                 uint32 unknown10;
37                 uint32 unknown11;
38                 uint32 unknown12;
39                 uint32 session_counter;
40                 uint32 unknown14;
41                 uint32 printer_errors;
42                 uint32 unknown16;
43                 uint32 unknown17;
44                 uint32 unknown18;
45                 uint32 unknown19;
46                 uint32 change_id;
47                 uint32 unknown21;
48                 uint32 status;
49                 uint32 unknown23;
50                 uint32 c_setprinter;
51                 uint16 unknown25;
52                 uint16 unknown26;
53                 uint32 unknown27;
54                 uint32 unknown28;
55                 uint32 unknown29;
56         } spoolss_PrinterInfo0;
57
58         typedef struct {
59                 string32 devicename;
60                 uint16 specversion;
61                 uint16 driverversion;
62                 uint16 size;
63                 uint16 driverextra;
64                 uint32 fields;
65                 uint16 orientation;
66                 uint16 papersize;
67                 uint16 paperlength;
68                 uint16 paperwidth;
69                 uint16 scale;
70                 uint16 copies;
71                 uint16 defaultsource;
72                 uint16 printquality;
73                 uint16 color;
74                 uint16 duplex;
75                 uint16 yresolution;
76                 uint16 ttoption;
77                 uint16 collate;
78                 string32 formname;
79                 uint16 logpixels;
80                 uint32 bitsperpel;
81                 uint32 pelswidth;
82                 uint32 pelsheight;
83                 uint32 displayflags;
84                 uint32 displayfrequency;
85                 uint32 icmmethod;
86                 uint32 icmintent;
87                 uint32 mediatype;
88                 uint32 dithertype;
89                 uint32 reserved1;
90                 uint32 reserved2;
91                 uint32 panningwidth;
92                 uint32 panningheight;
93                 uint8  private[driverextra];
94         } spoolss_DeviceMode;
95
96         typedef [public] struct {
97                 uint32 flags;
98                 [relative] nstring *name;
99                 [relative] nstring *description;
100                 [relative] nstring *comment;
101         } spoolss_PrinterInfo1;
102
103         typedef [public] struct {
104                 [relative] nstring *servername;
105                 [relative] nstring *printername;
106                 [relative] nstring *sharename;
107                 [relative] nstring *portname;
108                 [relative] nstring *drivername;
109                 [relative] nstring *comment;
110                 [relative] nstring *location;
111                 [relative] spoolss_DeviceMode *devmode;
112                 [relative] nstring *sepfile;
113                 [relative] nstring *printprocessor;
114                 [relative] nstring *datatype;
115                 [relative] nstring *parameters;
116                 [relative,subcontext(0)] security_descriptor *secdesc;
117                 uint32 attributes;
118                 uint32 priority;
119                 uint32 defaultpriority;
120                 uint32 starttime;
121                 uint32 untiltime;
122                 uint32 status;
123                 uint32 cjobs;
124                 uint32 averageppm;
125         } spoolss_PrinterInfo2;
126
127         typedef struct {
128                 uint32 flags;
129                 [subcontext(0)] security_descriptor secdesc;
130         } spoolss_PrinterInfo3;
131
132         typedef struct {
133                 [relative] nstring *printername;
134                 [relative] nstring *servername;
135                 uint32 attributes;
136         } spoolss_PrinterInfo4;
137
138         typedef [public] struct {
139                 [relative] nstring *printername;
140                 [relative] nstring *portname;
141                 uint32 attributes;
142                 uint32 device_not_selected_timeout;
143                 uint32 transmission_retry_timeout;
144         } spoolss_PrinterInfo5;
145
146         typedef struct {
147                 uint32 unknown;
148         } spoolss_PrinterInfo6;
149
150         typedef struct {
151                 [relative] nstring *guid; /* text form of printer guid */
152                 uint32 action;
153         } spoolss_PrinterInfo7;
154
155         typedef [nodiscriminant,public] union {
156                 [case(0)] spoolss_PrinterInfo0 info0;
157                 [case(1)] spoolss_PrinterInfo1 info1;
158                 [case(2)] spoolss_PrinterInfo2 info2;
159                 [case(3)] spoolss_PrinterInfo3 info3;
160                 [case(4)] spoolss_PrinterInfo4 info4;
161                 [case(5)] spoolss_PrinterInfo5 info5;
162                 [case(6)] spoolss_PrinterInfo6 info6;
163                 [case(7)] spoolss_PrinterInfo7 info7;
164         } spoolss_PrinterInfo;
165
166         const int PRINTER_ENUM_DEFAULT     = 0x00000001;
167         const int PRINTER_ENUM_LOCAL       = 0x00000002;
168         const int PRINTER_ENUM_CONNECTIONS = 0x00000004;
169         const int PRINTER_ENUM_FAVORITE    = 0x00000004;
170         const int PRINTER_ENUM_NAME        = 0x00000008;
171         const int PRINTER_ENUM_REMOTE      = 0x00000010;
172         const int PRINTER_ENUM_SHARED      = 0x00000020;
173         const int PRINTER_ENUM_NETWORK     = 0x00000040;
174
175         /******************/
176         /* Function: 0x00 */
177         [noprint,nopull,nopush] WERROR spoolss_EnumPrinters(
178                 [in] uint32 flags,
179                 [in] unistr *server,
180                 [in] uint32 level,
181                 [in] DATA_BLOB *buffer,
182                 /* [out,subcontext(4),switch_is(level)] spoolss_PrinterInfo *info[count],*/
183                 [out,subcontext(4),switch_is(level)] spoolss_PrinterInfo **info,
184                 [in,out,ref] uint32 *buf_size,
185                 [out] uint32 count
186         );
187
188         /******************/
189         /* Function: 0x01 */
190         WERROR spoolss_OpenPrinter(
191                 [in] unistr *server,
192                 [in] unistr *printer,
193                 [in] DATA_BLOB *buffer,
194                 [in] uint32 access_mask,
195                 [out,ref]   policy_handle *handle
196         );
197
198         /******************/
199         /* Function: 0x02 */
200         WERROR spoolss_SetJob(
201                 [in,ref] policy_handle *handle,
202                 [in] uint32 job_id,
203                 [in] uint32 level,
204                 [in] uint32 command
205         );
206
207         /******************/
208         /* Function: 0x03 */
209         WERROR spoolss_GetJob(
210                 [in,ref] policy_handle *handle,
211                 [in] uint32 job_id,
212                 [in] uint32 level,
213                 [in] DATA_BLOB *buffer,
214                 [out,subcontext(4),switch_is(level)] spoolss_JobInfo *info,
215                 [in,out,ref] uint32 *buf_size
216         );
217
218         typedef struct {
219                 uint32 job_id;
220                 [relative] nstring *printer_name;
221                 [relative] nstring *server_name;
222                 [relative] nstring *user_name;
223                 [relative] nstring *document_name;
224                 [relative] nstring *data_type;
225                 [relative] nstring *text_status;
226                 uint32 status;
227                 uint32 priority;
228                 uint32 position;
229                 uint32 total_pages;
230                 uint32 pages_printed;
231                 spoolss_Time time;
232         } spoolss_JobInfo1;
233
234         typedef [nodiscriminant,public] union {
235                 [case(1)] spoolss_JobInfo1 info1;
236         } spoolss_JobInfo;
237
238         /******************/
239         /* Function: 0x04 */
240         [noprint,nopull,nopush] WERROR spoolss_EnumJobs(
241                 [in,ref] policy_handle *handle,
242                 [in]     uint32 firstjob,
243                 [in]     uint32 numjobs,
244                 [in]     uint32 level,
245                 [in]     DATA_BLOB *buffer,
246                 /* [out,subcontext(4),switch_is(level)] spoolss_JobInfo *info[count],*/
247                 [out,subcontext(4),switch_is(level)] spoolss_JobInfo **info,
248                 [in,out,ref] uint32 *buf_size,
249                 [out]    uint32 count
250         );
251
252         /******************/
253         /* Function: 0x05 */
254         WERROR spoolss_AddPrinter(
255                 /* This function is not implemented in Samba 3 as no
256                    clients have been observed using it. */
257         );
258
259         /******************/
260         /* Function: 0x06 */
261         WERROR spoolss_DeletePrinter(
262         );
263
264         /******************/
265         /* Function: 0x07 */
266         WERROR spoolss_SetPrinter(
267         );
268
269         /******************/
270         /* Function: 0x08 */
271         WERROR spoolss_GetPrinter(
272                 [in,ref]     policy_handle *handle,
273                 [in]         uint32 level,
274                 [in]         DATA_BLOB *buffer,
275                 [out,subcontext(4),switch_is(level)] spoolss_PrinterInfo *info,
276                 [in,out,ref] uint32 *buf_size
277         );
278
279         /******************/
280         /* Function: 0x09 */
281         WERROR spoolss_AddPrinterDriver(
282         );
283
284         typedef struct {
285                 [relative] nstring *driver_name;
286         } spoolss_DriverInfo1;
287
288         typedef struct {
289                 uint32 version;
290                 [relative] nstring *driver_name;
291                 [relative] nstring *architecture;
292                 [relative] nstring *driver_path;
293                 [relative] nstring *data_file;
294                 [relative] nstring *config_file;
295         } spoolss_DriverInfo2;
296
297         typedef struct {
298                 uint32 version;
299                 [relative] nstring *driver_name;
300                 [relative] nstring *architecture;
301                 [relative] nstring *driver_path;
302                 [relative] nstring *data_file;
303                 [relative] nstring *config_file;
304                 [relative] nstring *help_file;
305                 [relative] nstring *dependent_files; /* array */
306                 [relative] nstring *monitor_name;
307                 [relative] nstring *default_datatype;
308         } spoolss_DriverInfo3;
309
310         typedef [nodiscriminant,public] union {
311                 [case(1)] spoolss_DriverInfo1 info1;
312                 [case(2)] spoolss_DriverInfo2 info2;
313                 [case(3)] spoolss_DriverInfo3 info3;
314         } spoolss_DriverInfo;
315
316         /******************/
317         /* Function: 0x0a */
318         [noprint,nopull,nopush] WERROR spoolss_EnumPrinterDrivers(
319                 [in] unistr *server,
320                 [in] unistr *environment,
321                 [in] uint32 level,
322                 [in] DATA_BLOB *buffer,
323                 /* [out,subcontext(4),switch_is(level)] spoolss_DriverInfo *info[count],*/
324                 [out,subcontext(4),switch_is(level)] spoolss_DriverInfo **info,
325                 [in,out,ref] uint32 *buf_size,
326                 [out] uint32 count
327         );
328
329         /******************/
330         /* Function: 0x0b */
331         WERROR spoolss_GetPrinterDriver(
332         );
333
334         /******************/
335         /* Function: 0x0c */
336         WERROR spoolss_GetPrinterDriverDirectory(
337         );
338
339         /******************/
340         /* Function: 0x0d */
341         WERROR spoolss_DeletePrinterDriver(
342                 [in,ref] policy_handle *handle,
343                 [in] unistr *server,
344                 [in] unistr architecture,
345                 [in] unistr driver
346         );
347
348         /******************/
349         /* Function: 0x0e */
350         WERROR spoolss_AddPrintProcessor(
351         );
352
353         /******************/
354         /* Function: 0x0f */
355         WERROR spoolss_EnumPrintProcessors(
356         );
357
358         /******************/
359         /* Function: 0x10 */
360         WERROR spoolss_GetPrintProcessorDirectory(
361         );
362
363         /******************/
364         /* Function: 0x11 */
365         WERROR spoolss_StartDocPrinter(
366         );
367
368         /******************/
369         /* Function: 0x12 */
370         WERROR spoolss_StartPagePrinter(
371                 [in,ref] policy_handle *handle          
372         );
373
374         /******************/
375         /* Function: 0x13 */
376         WERROR spoolss_WritePrinter(
377         );
378
379         /******************/
380         /* Function: 0x14 */
381         WERROR spoolss_EndPagePrinter(
382                 [in,ref] policy_handle *handle          
383         );
384
385         /******************/
386         /* Function: 0x15 */
387         WERROR spoolss_AbortPrinter(
388         );
389
390         /******************/
391         /* Function: 0x16 */
392         WERROR spoolss_ReadPrinter(
393         );
394
395         /******************/
396         /* Function: 0x17 */
397         WERROR spoolss_EndDocPrinter(
398         );
399
400         /******************/
401         /* Function: 0x18 */
402         WERROR spoolss_AddJob(
403         );
404
405         /******************/
406         /* Function: 0x19 */
407         WERROR spoolss_ScheduleJob(
408         );
409
410         /******************/
411         /* Function: 0x1a */
412         WERROR spoolss_GetPrinterData(
413                 [in,ref] policy_handle *handle,
414                 [in] unistr value_name,
415                 [out] uint32 type,
416                 [out] DATA_BLOB buffer,
417                 [in,out,ref] uint32 *buf_size
418         );
419
420         /******************/
421         /* Function: 0x1b */
422         WERROR spoolss_SetPrinterData(  
423                 [in,ref] policy_handle *handle,
424                 [in] unistr value_name,
425                 [in] uint32 type,
426                 [in] DATA_BLOB buffer,
427                 [in] uint32 real_len
428         );
429
430         /******************/
431         /* Function: 0x1c */
432         WERROR spoolss_WaitForPrinterChange(
433         );
434
435         /******************/
436         /* Function: 0x1d */
437         WERROR spoolss_ClosePrinter(
438                 [in,out,ref]     policy_handle *handle
439         );
440
441         typedef struct {
442                 uint32 flags;
443                 [relative] unistr *formname;
444                 uint32 width;
445                 uint32 length;
446                 uint32 left;
447                 uint32 top;
448                 uint32 right;
449                 uint32 bottom;
450         } spoolss_AddFormInfo1;
451
452         typedef union {
453                 [case(1)] spoolss_AddFormInfo1 *info1;
454         } spoolss_AddFormInfo;
455
456         /******************/
457         /* Function: 0x1e */
458         WERROR spoolss_AddForm(
459                 [in,ref] policy_handle *handle,
460                 [in] uint32 level,
461                 [in,switch_is(level)] spoolss_AddFormInfo info
462         );
463
464         /******************/
465         /* Function: 0x1f */
466         WERROR spoolss_DeleteForm(
467                 [in,ref] policy_handle *handle,
468                 [in] unistr formname
469         );
470
471         /******************/
472         /* Function: 0x20 */
473         typedef struct {
474                 uint32 flags;
475                 [relative] nstring *formname;
476                 uint32 width;
477                 uint32 length;
478                 uint32 left;
479                 uint32 top;
480                 uint32 right;
481                 uint32 bottom;
482         } spoolss_FormInfo1;
483
484         WERROR spoolss_GetForm(
485                 [in,ref] policy_handle *handle,
486                 [in] unistr formname,
487                 [in] uint32 level,
488                 [in] DATA_BLOB *buffer,
489                 [out,subcontext(4),switch_is(level)] spoolss_FormInfo *info,
490                 [in,out,ref] uint32 *buf_size
491         );
492
493         typedef struct {
494                 uint32 flags;
495                 unistr *formname;
496                 uint32 width;
497                 uint32 length;
498                 uint32 left;
499                 uint32 top;
500                 uint32 right;
501                 uint32 bottom;
502         } spoolss_SetFormInfo1;
503
504         typedef union {
505                 [case(1)] spoolss_AddFormInfo1 *info1;
506         } spoolss_SetFormInfo;
507
508         /******************/
509         /* Function: 0x21 */
510         WERROR spoolss_SetForm(
511                 [in,ref] policy_handle *handle,
512                 [in] unistr formname,
513                 [in] uint32 level,
514                 [in,switch_is(level)] spoolss_SetFormInfo info
515         );
516
517         typedef [nodiscriminant,public] union {
518                 [case(1)] spoolss_FormInfo1 info1;
519         } spoolss_FormInfo;
520
521         /******************/
522         /* Function: 0x22 */
523         [noprint,nopull,nopush] WERROR spoolss_EnumForms(
524                 [in,ref] policy_handle *handle,
525                 [in] uint32 level,
526                 [in] DATA_BLOB *buffer,
527                 /* [out,subcontext(4),switch_is(level)] spoolss_FormInfo *info[count],*/
528                 [out,subcontext(4),switch_is(level)] spoolss_FormInfo **info,
529                 [in,out,ref] uint32 *buf_size,
530                 [out] uint32 count
531         );
532
533         typedef [flag(RELATIVE_CURRENT)] struct {
534                 [relative] nstring *port_name;
535         } spoolss_PortInfo1;
536
537         typedef struct {
538                 [relative] nstring *port_name;
539                 [relative] nstring *monitor_name;
540                 [relative] nstring *description;
541                 uint32 port_type;
542                 uint32 reserved;
543         } spoolss_PortInfo2;
544
545         typedef [nondiscriminant,public] union {
546                 [case(1)] spoolss_PortInfo1 info1;
547                 [case(2)] spoolss_PortInfo2 info2;
548         } spoolss_PortInfo;
549
550         /******************/
551         /* Function: 0x23 */
552         [noprint,nopull,nopush] WERROR spoolss_EnumPorts(
553                 [in] unistr *servername,
554                 [in] uint32 level,
555                 [in] DATA_BLOB *buffer,
556                 /* [out,subcontext(4),switch_is(level)] spoolss_PortInfo *info[count], */
557                 [out,subcontext(4),switch_is(level)] spoolss_PortInfo **info,
558                 [in,out,ref] uint32 *buf_size,
559                 [out] uint32 count
560         );
561
562         /******************/
563         /* Function: 0x24 */
564         WERROR spoolss_EnumMonitors(
565         );
566
567         /******************/
568         /* Function: 0x25 */
569         WERROR spoolss_AddPort(
570         );
571
572         /******************/
573         /* Function: 0x26 */
574         WERROR spoolss_ConfigurePort(
575         );
576
577         /******************/
578         /* Function: 0x27 */
579         WERROR spoolss_DeletePort(
580         );
581
582         /******************/
583         /* Function: 0x28 */
584         WERROR spoolss_CreatePrinterIC(
585         );
586
587         /******************/
588         /* Function: 0x29 */
589         WERROR spoolss_PlayGDIScriptOnPrinterIC(
590         );
591
592         /******************/
593         /* Function: 0x2a */
594         WERROR spoolss_DeletePrinterIC(
595         );
596
597         /******************/
598         /* Function: 0x2b */
599         WERROR spoolss_AddPrinterConnection(
600         );
601
602         /******************/
603         /* Function: 0x2c */
604         WERROR spoolss_DeletePrinterConnection(
605         );
606
607         /******************/
608         /* Function: 0x2d */
609         WERROR spoolss_PrinterMessageBox(
610                 /* Marked as obsolete in MSDN.  "Not necessary and has
611                    no effect". */
612         );
613
614         /******************/
615         /* Function: 0x2e */
616         WERROR spoolss_AddMonitor(
617         );
618
619         /******************/
620         /* Function: 0x2f */
621         WERROR spoolss_DeleteMonitor(
622         );
623
624         /******************/
625         /* Function: 0x30 */
626         WERROR spoolss_DeletePrintProcessor(
627         );
628
629         /******************/
630         /* Function: 0x31 */
631         WERROR spoolss_AddPrintProvidor(
632         );
633
634         /******************/
635         /* Function: 0x32 */
636         WERROR spoolss_DeletePrintProvidor(
637         );
638
639         /******************/
640         /* Function: 0x33 */
641         WERROR spoolss_EnumPrintProcDataTypes(
642         );
643
644         /******************/
645         /* Function: 0x34 */
646         WERROR spoolss_ResetPrinter(
647         );
648
649         /******************/
650         /* Function: 0x35 */
651         WERROR spoolss_GetPrinterDriver2(
652                 [in,ref] policy_handle *handle,
653                 [in] unistr *architecture,
654                 [in] uint32 level,
655                 [in,out] DATA_BLOB *buffer,
656                 [in,out,ref] uint32 *buf_size,
657                 [in] uint32 client_major_version,
658                 [in] uint32 client_minor_version,
659                 [out] uint32 server_major_version,
660                 [out] uint32 server_minor_version
661         );
662
663         /******************/
664         /* Function: 0x36 */
665         WERROR spoolss_FindFirstPrinterChangeNotification(
666         );
667
668         /******************/
669         /* Function: 0x37 */
670         WERROR spoolss_FindNextPrinterChangeNotification(
671         );
672
673         /******************/
674         /* Function: 0x38 */
675         WERROR spoolss_FindClosePrinterNotify(
676         );
677
678         /******************/
679         /* Function: 0x39 */
680         WERROR spoolss_RouterFindFirstPrinterChangeNotificationOld(
681         );
682
683         /******************/
684         /* Function: 0x3a */
685         WERROR spoolss_ReplyOpenPrinter(
686         );
687
688         /******************/
689         /* Function: 0x3b */
690         WERROR spoolss_RouterReplyPrinter(
691         );
692
693         /******************/
694         /* Function: 0x3c */
695         WERROR spoolss_ReplyClosePrinter(
696         );
697
698         /******************/
699         /* Function: 0x3d */
700         WERROR spoolss_AddPortEx(
701         );
702
703         /******************/
704         /* Function: 0x3e */
705         WERROR spoolss_RouterFindFirstPrinterChangeNotification(
706         );
707
708         /******************/
709         /* Function: 0x3f */
710         WERROR spoolss_SpoolerInit(
711         );
712
713         /******************/
714         /* Function: 0x40 */
715         WERROR spoolss_ResetPrinterEx(
716         );
717
718         /******************/
719         /* Function: 0x41 */
720         WERROR spoolss_RemoteFindFirstPrinterChangeNotifyEx(
721         );
722
723         /******************/
724         /* Function: 0x42 */
725         WERROR spoolss_RouterRefreshPrinterChangeNotification(
726         );
727
728         /******************/
729         /* Function: 0x43 */
730         WERROR spoolss_RemoteFindNextPrinterChangeNotifyEx(
731         );
732
733         /******************/
734         /* Function: 0x44 */
735         WERROR spoolss_44(
736         );
737
738         typedef struct {
739                 uint32 foo;
740         } spoolss_Devmode;
741
742         typedef struct {
743                 uint32 size;
744                 spoolss_Devmode *devmode;
745         } spoolss_DevmodeContainer;
746
747         typedef struct {
748                 uint32 size;
749                 unistr *client;
750                 unistr *user;
751                 uint32 build;
752                 uint32 major;
753                 uint32 minor;
754                 uint32 processor;
755         } spoolss_UserLevel1;
756
757         typedef union {
758                 [case(1)]  spoolss_UserLevel1 *level1;
759         } spoolss_UserLevel;
760
761         /******************/
762         /* Function: 0x45 */
763         WERROR spoolss_OpenPrinterEx(
764                 [in]                  unistr *printername,
765                 [in]                  unistr *datatype,
766                 [in]                  spoolss_DevmodeContainer devmode_ctr,
767                 [in]                  uint32 access_mask,
768                 [in]                  uint32 level,
769                 [in,switch_is(level)] spoolss_UserLevel userlevel,
770                 [out,ref]             policy_handle *handle
771         );
772
773         /******************/
774         /* Function: 0x46 */
775         WERROR spoolss_AddPrinterEx(
776                 [in] unistr *server,
777                 [in] uint32 level,
778                 [in,switch_is(level)] spoolss_PrinterInfo *info,
779                 [in] spoolss_DevmodeContainer devmode_ctr,
780                 [in] security_descriptor *secdesc,
781                 [in] uint32 ulevel,
782                 [in,switch_is(ulevel)] spoolss_UserLevel userlevel
783         );
784
785         /******************/
786         /* Function: 0x47 */
787         WERROR spoolss_47(
788         );
789
790         /******************/
791         /* Function: 0x48 */
792         WERROR spoolss_EnumPrinterData(
793                 [in,ref] policy_handle *handle,
794                 [in]     uint32 enum_index,
795                 [in]     uint32 value_offered,
796                 [out]    lstring value_name,
797                 [out]    uint32 value_needed,
798                 [out]    uint32 printerdata_type,
799                 [out]    DATA_BLOB buffer,
800                 [in,out,ref] uint32 *data_size
801         );
802
803         /******************/
804         /* Function: 0x49 */
805         WERROR spoolss_DeletePrinterData(
806                 [in,ref] policy_handle *handle,
807                 [in] unistr value_name
808         );
809
810         /******************/
811         /* Function: 0x4a */
812         WERROR spoolss_4a(
813         );
814
815         /******************/
816         /* Function: 0x4b */
817         WERROR spoolss_4b(
818         );
819
820         /******************/
821         /* Function: 0x4c */
822         WERROR spoolss_4c(
823         );
824
825         /******************/
826         /* Function: 0x4d */
827         WERROR spoolss_SetPrinterDataEx(
828                 [in,ref] policy_handle *handle,
829                 [in] unistr key_name,
830                 [in] unistr value_name,
831                 [in] uint32 type,
832                 [in] DATA_BLOB buffer,
833                 [in,out,ref] uint32 *buf_size
834         );
835
836         /******************/
837         /* Function: 0x4e */
838         WERROR spoolss_GetPrinterDataEx(
839                 [in,ref] policy_handle *handle,
840                 [in] unistr key_name,
841                 [in] unistr value_name,
842                 [out] uint32 type,
843                 [out] DATA_BLOB buffer,
844                 [in,out,ref] uint32 *buf_size
845         );
846
847         /******************/
848         /* Function: 0x4f */
849         WERROR spoolss_EnumPrinterDataEx(
850                 [in,ref] policy_handle *handle,
851                 [in] unistr key_name,
852                 [out] DATA_BLOB buffer,
853                 [in,out] uint32 buf_size,
854                 [out] uint32 count
855         );
856
857         /******************/
858         /* Function: 0x50 */
859         WERROR spoolss_EnumPrinterKey(
860         );
861
862         /******************/
863         /* Function: 0x51 */
864         WERROR spoolss_DeletePrinterDataEx(
865                 [in,ref] policy_handle *handle,
866                 [in] unistr key_name,
867                 [in] unistr value_name
868         );
869
870         /******************/
871         /* Function: 0x52 */
872         WERROR spoolss_DeletePrinterKey(
873         );
874
875         /******************/
876         /* Function: 0x53 */
877         WERROR spoolss_53(
878         );
879
880         /******************/
881         /* Function: 0x54 */
882         WERROR spoolss_DeletePrinterDriverEx(
883         );
884
885         /******************/
886         /* Function: 0x55 */
887         WERROR spoolss_55(
888         );
889
890         /******************/
891         /* Function: 0x56 */
892         WERROR spoolss_56(
893         );
894
895         /******************/
896         /* Function: 0x57 */
897         WERROR spoolss_57(
898         );
899
900         /******************/
901         /* Function: 0x58 */
902         WERROR spoolss_58(
903         );
904
905         /******************/
906         /* Function: 0x59 */
907         WERROR spoolss_AddPrinterDriverEx(
908         );
909
910         /******************/
911         /* Function: 0x5a */
912         WERROR spoolss_5a(
913         );
914
915         /******************/
916         /* Function: 0x5b */
917         WERROR spoolss_5b(
918         );
919
920         /******************/
921         /* Function: 0x5c */
922         WERROR spoolss_5c(
923         );
924
925         /******************/
926         /* Function: 0x5d */
927         WERROR spoolss_5d(
928         );
929
930         /******************/
931         /* Function: 0x5e */
932         WERROR spoolss_5e(
933         );
934
935         /******************/
936         /* Function: 0x5f */
937         WERROR spoolss_5f(
938         );
939 }