r5445: move FormInfo1 struct to the place where it's used
[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 [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         WERROR spoolss_EnumPrinters(
178                 [in]         uint32 flags,
179                 [in]         unistr *server,
180                 [in]         uint32 level,
181                 [in,out]     DATA_BLOB *buffer,
182                 [in,out,ref] uint32 *buf_size,
183                 [out]        uint32 count
184         );
185
186         /******************/
187         /* Function: 0x01 */
188         WERROR spoolss_OpenPrinter(
189                 [in]        unistr *server,
190                 [in]        unistr *printer,
191                 [in]        DATA_BLOB *buffer,
192                 [in]        uint32 access_mask,
193                 [out,ref]   policy_handle *handle
194         );
195
196         /******************/
197         /* Function: 0x02 */
198         WERROR spoolss_SetJob(
199                 [in,ref] policy_handle *handle,
200                 [in] uint32 job_id,
201                 [in] uint32 level,
202                 [in] uint32 command
203         );
204
205         /******************/
206         /* Function: 0x03 */
207         WERROR spoolss_GetJob(
208                 [in,ref] policy_handle *handle,
209                 [in] uint32 job_id,
210                 [in] uint32 level,
211                 [in] DATA_BLOB *buffer,
212                 [out,subcontext(4),switch_is(level)] spoolss_JobInfo *info,
213                 [in,out,ref] uint32 *buf_size
214         );
215
216         typedef struct {
217                 uint32 job_id;
218                 [relative] nstring *printer_name;
219                 [relative] nstring *server_name;
220                 [relative] nstring *user_name;
221                 [relative] nstring *document_name;
222                 [relative] nstring *data_type;
223                 [relative] nstring *text_status;
224                 uint32 status;
225                 uint32 priority;
226                 uint32 position;
227                 uint32 total_pages;
228                 uint32 pages_printed;
229                 spoolss_Time time;
230         } spoolss_JobInfo1;
231
232         typedef [nodiscriminant,public] union {
233                 [case(1)] spoolss_JobInfo1 info1;
234         } spoolss_JobInfo;
235
236         /******************/
237         /* Function: 0x04 */
238         WERROR spoolss_EnumJobs(
239                 [in,ref] policy_handle *handle,
240                 [in]     uint32 firstjob,
241                 [in]     uint32 numjobs,
242                 [in]     uint32 level,
243                 [in,out]     DATA_BLOB *buffer,
244                 [in,out,ref] uint32 *buf_size,
245                 [out]    uint32 count
246         );
247
248         /******************/
249         /* Function: 0x05 */
250         WERROR spoolss_AddPrinter(
251                 /* This function is not implemented in Samba 3 as no
252                    clients have been observed using it. */
253         );
254
255         /******************/
256         /* Function: 0x06 */
257         WERROR spoolss_DeletePrinter(
258         );
259
260         /******************/
261         /* Function: 0x07 */
262         WERROR spoolss_SetPrinter(
263         );
264
265         /******************/
266         /* Function: 0x08 */
267         WERROR spoolss_GetPrinter(
268                 [in,ref]     policy_handle *handle,
269                 [in]         uint32 level,
270                 [in]         DATA_BLOB *buffer,
271                 [out,subcontext(4),switch_is(level)] spoolss_PrinterInfo *info,
272                 [in,out,ref] uint32 *buf_size
273         );
274
275         /******************/
276         /* Function: 0x09 */
277         WERROR spoolss_AddPrinterDriver(
278         );
279
280         typedef struct {
281                 [relative] nstring *driver_name;
282         } spoolss_DriverInfo1;
283
284         typedef struct {
285                 uint32 version;
286                 [relative] nstring *driver_name;
287                 [relative] nstring *architecture;
288                 [relative] nstring *driver_path;
289                 [relative] nstring *data_file;
290                 [relative] nstring *config_file;
291         } spoolss_DriverInfo2;
292
293         typedef struct {
294                 uint32 version;
295                 [relative] nstring *driver_name;
296                 [relative] nstring *architecture;
297                 [relative] nstring *driver_path;
298                 [relative] nstring *data_file;
299                 [relative] nstring *config_file;
300                 [relative] nstring *help_file;
301                 [relative] nstring *dependent_files; /* array */
302                 [relative] nstring *monitor_name;
303                 [relative] nstring *default_datatype;
304         } spoolss_DriverInfo3;
305
306         typedef [nodiscriminant,public] union {
307                 [case(1)] spoolss_DriverInfo1 info1;
308                 [case(2)] spoolss_DriverInfo2 info2;
309                 [case(3)] spoolss_DriverInfo3 info3;
310         } spoolss_DriverInfo;
311
312         /******************/
313         /* Function: 0x0a */
314         WERROR spoolss_EnumPrinterDrivers(
315                 [in] unistr *server,
316                 [in] unistr *environment,
317                 [in] uint32 level,
318                 [in,out] DATA_BLOB *buffer,
319                 [in,out,ref] uint32 *buf_size,
320                 [out] uint32 count
321         );
322
323         /******************/
324         /* Function: 0x0b */
325         WERROR spoolss_GetPrinterDriver(
326         );
327
328         /******************/
329         /* Function: 0x0c */
330         WERROR spoolss_GetPrinterDriverDirectory(
331         );
332
333         /******************/
334         /* Function: 0x0d */
335         WERROR spoolss_DeletePrinterDriver(
336                 [in,ref] policy_handle *handle,
337                 [in] unistr *server,
338                 [in] unistr architecture,
339                 [in] unistr driver
340         );
341
342         /******************/
343         /* Function: 0x0e */
344         WERROR spoolss_AddPrintProcessor(
345         );
346
347         /******************/
348         /* Function: 0x0f */
349         WERROR spoolss_EnumPrintProcessors(
350         );
351
352         /******************/
353         /* Function: 0x10 */
354         WERROR spoolss_GetPrintProcessorDirectory(
355         );
356
357         /******************/
358         /* Function: 0x11 */
359         WERROR spoolss_StartDocPrinter(
360         );
361
362         /******************/
363         /* Function: 0x12 */
364         WERROR spoolss_StartPagePrinter(
365                 [in,ref] policy_handle *handle          
366         );
367
368         /******************/
369         /* Function: 0x13 */
370         WERROR spoolss_WritePrinter(
371         );
372
373         /******************/
374         /* Function: 0x14 */
375         WERROR spoolss_EndPagePrinter(
376                 [in,ref] policy_handle *handle          
377         );
378
379         /******************/
380         /* Function: 0x15 */
381         WERROR spoolss_AbortPrinter(
382         );
383
384         /******************/
385         /* Function: 0x16 */
386         WERROR spoolss_ReadPrinter(
387         );
388
389         /******************/
390         /* Function: 0x17 */
391         WERROR spoolss_EndDocPrinter(
392         );
393
394         /******************/
395         /* Function: 0x18 */
396         WERROR spoolss_AddJob(
397         );
398
399         /******************/
400         /* Function: 0x19 */
401         WERROR spoolss_ScheduleJob(
402         );
403
404         /******************/
405         /* Function: 0x1a */
406         WERROR spoolss_GetPrinterData(
407                 [in,ref] policy_handle *handle,
408                 [in] unistr value_name,
409                 [out] uint32 type,
410                 [out] DATA_BLOB buffer,
411                 [in,out,ref] uint32 *buf_size
412         );
413
414         /******************/
415         /* Function: 0x1b */
416         WERROR spoolss_SetPrinterData(  
417                 [in,ref] policy_handle *handle,
418                 [in] unistr value_name,
419                 [in] uint32 type,
420                 [in] DATA_BLOB buffer,
421                 [in] uint32 real_len
422         );
423
424         /******************/
425         /* Function: 0x1c */
426         WERROR spoolss_WaitForPrinterChange(
427         );
428
429         /******************/
430         /* Function: 0x1d */
431         WERROR spoolss_ClosePrinter(
432                 [in,out,ref]     policy_handle *handle
433         );
434
435         typedef struct {
436                 uint32 flags;
437                 [relative] unistr *formname;
438                 uint32 width;
439                 uint32 length;
440                 uint32 left;
441                 uint32 top;
442                 uint32 right;
443                 uint32 bottom;
444         } spoolss_AddFormInfo1;
445
446         typedef union {
447                 [case(1)] spoolss_AddFormInfo1 *info1;
448         } spoolss_AddFormInfo;
449
450         /******************/
451         /* Function: 0x1e */
452         WERROR spoolss_AddForm(
453                 [in,ref] policy_handle *handle,
454                 [in] uint32 level,
455                 [in,switch_is(level)] spoolss_AddFormInfo info
456         );
457
458         /******************/
459         /* Function: 0x1f */
460         WERROR spoolss_DeleteForm(
461                 [in,ref] policy_handle *handle,
462                 [in] unistr formname
463         );
464
465         /******************/
466         /* Function: 0x20 */
467         typedef struct {
468                 uint32 flags;
469                 [relative] nstring *formname;
470                 uint32 width;
471                 uint32 length;
472                 uint32 left;
473                 uint32 top;
474                 uint32 right;
475                 uint32 bottom;
476         } spoolss_FormInfo1;
477
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 }