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