9a9495b046eb9c22930a1d2a33a616f984839453
[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         [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         typedef struct {
191                 uint32 foo;
192         } spoolss_Devmode;
193
194         typedef struct {
195                 uint32 size;
196                 spoolss_Devmode *devmode;
197         } spoolss_DevmodeContainer;
198
199         WERROR spoolss_OpenPrinter(
200                 [in] unistr *printername,
201                 [in] unistr *datatype,
202                 [in] spoolss_DevmodeContainer devmode_ctr,
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         [noprint,nopull,nopush] WERROR spoolss_EnumJobs(
250                 [in,ref] policy_handle *handle,
251                 [in]     uint32 firstjob,
252                 [in]     uint32 numjobs,
253                 [in]     uint32 level,
254                 [in]     DATA_BLOB *buffer,
255                 /* [out,subcontext(4),switch_is(level)] spoolss_JobInfo *info[count],*/
256                 [out,subcontext(4),switch_is(level)] spoolss_JobInfo **info,
257                 [in,out,ref] uint32 *buf_size,
258                 [out]    uint32 count
259         );
260
261         /******************/
262         /* Function: 0x05 */
263         WERROR spoolss_AddPrinter(
264                 /* This function is not implemented in Samba 3 as no
265                    clients have been observed using it. */
266         );
267
268         /******************/
269         /* Function: 0x06 */
270         WERROR spoolss_DeletePrinter(
271         );
272
273         /******************/
274         /* Function: 0x07 */
275         WERROR spoolss_SetPrinter(
276         );
277
278         /******************/
279         /* Function: 0x08 */
280         WERROR spoolss_GetPrinter(
281                 [in,ref]     policy_handle *handle,
282                 [in]         uint32 level,
283                 [in]         DATA_BLOB *buffer,
284                 [out,subcontext(4),switch_is(level)] spoolss_PrinterInfo *info,
285                 [in,out,ref] uint32 *buf_size
286         );
287
288         /******************/
289         /* Function: 0x09 */
290         WERROR spoolss_AddPrinterDriver(
291         );
292
293         typedef struct {
294                 [relative] nstring *driver_name;
295         } spoolss_DriverInfo1;
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         } spoolss_DriverInfo2;
305
306         typedef struct {
307                 uint32 version;
308                 [relative] nstring *driver_name;
309                 [relative] nstring *architecture;
310                 [relative] nstring *driver_path;
311                 [relative] nstring *data_file;
312                 [relative] nstring *config_file;
313                 [relative] nstring *help_file;
314                 [relative] nstring *dependent_files; /* array */
315                 [relative] nstring *monitor_name;
316                 [relative] nstring *default_datatype;
317         } spoolss_DriverInfo3;
318
319         typedef [nodiscriminant,public] union {
320                 [case(1)] spoolss_DriverInfo1 info1;
321                 [case(2)] spoolss_DriverInfo2 info2;
322                 [case(3)] spoolss_DriverInfo3 info3;
323         } spoolss_DriverInfo;
324
325         /******************/
326         /* Function: 0x0a */
327         [noprint,nopull,nopush] WERROR spoolss_EnumPrinterDrivers(
328                 [in] unistr *server,
329                 [in] unistr *environment,
330                 [in] uint32 level,
331                 [in] DATA_BLOB *buffer,
332                 /* [out,subcontext(4),switch_is(level)] spoolss_DriverInfo *info[count],*/
333                 [out,subcontext(4),switch_is(level)] spoolss_DriverInfo **info,
334                 [in,out,ref] uint32 *buf_size,
335                 [out] uint32 count
336         );
337
338         /******************/
339         /* Function: 0x0b */
340         WERROR spoolss_GetPrinterDriver(
341         );
342
343         /******************/
344         /* Function: 0x0c */
345         WERROR spoolss_GetPrinterDriverDirectory(
346         );
347
348         /******************/
349         /* Function: 0x0d */
350         WERROR spoolss_DeletePrinterDriver(
351                 [in,ref] policy_handle *handle,
352                 [in] unistr *server,
353                 [in] unistr architecture,
354                 [in] unistr driver
355         );
356
357         /******************/
358         /* Function: 0x0e */
359         WERROR spoolss_AddPrintProcessor(
360         );
361
362         /******************/
363         /* Function: 0x0f */
364         WERROR spoolss_EnumPrintProcessors(
365         );
366
367         /******************/
368         /* Function: 0x10 */
369         WERROR spoolss_GetPrintProcessorDirectory(
370         );
371
372         /******************/
373         /* Function: 0x11 */
374         WERROR spoolss_StartDocPrinter(
375         );
376
377         /******************/
378         /* Function: 0x12 */
379         WERROR spoolss_StartPagePrinter(
380                 [in,ref] policy_handle *handle          
381         );
382
383         /******************/
384         /* Function: 0x13 */
385         WERROR spoolss_WritePrinter(
386         );
387
388         /******************/
389         /* Function: 0x14 */
390         WERROR spoolss_EndPagePrinter(
391                 [in,ref] policy_handle *handle          
392         );
393
394         /******************/
395         /* Function: 0x15 */
396         WERROR spoolss_AbortPrinter(
397         );
398
399         /******************/
400         /* Function: 0x16 */
401         WERROR spoolss_ReadPrinter(
402         );
403
404         /******************/
405         /* Function: 0x17 */
406         WERROR spoolss_EndDocPrinter(
407         );
408
409         /******************/
410         /* Function: 0x18 */
411         WERROR spoolss_AddJob(
412         );
413
414         /******************/
415         /* Function: 0x19 */
416         WERROR spoolss_ScheduleJob(
417         );
418
419         /******************/
420         /* Function: 0x1a */
421         WERROR spoolss_GetPrinterData(
422                 [in,ref] policy_handle *handle,
423                 [in] unistr value_name,
424                 [out] uint32 type,
425                 [out] DATA_BLOB buffer,
426                 [in,out,ref] uint32 *buf_size
427         );
428
429         /******************/
430         /* Function: 0x1b */
431         WERROR spoolss_SetPrinterData(  
432                 [in,ref] policy_handle *handle,
433                 [in] unistr value_name,
434                 [in] uint32 type,
435                 [in] DATA_BLOB buffer,
436                 [in] uint32 real_len
437         );
438
439         /******************/
440         /* Function: 0x1c */
441         WERROR spoolss_WaitForPrinterChange(
442         );
443
444         /******************/
445         /* Function: 0x1d */
446         WERROR spoolss_ClosePrinter(
447                 [in,out,ref]     policy_handle *handle
448         );
449
450         typedef struct {
451                 uint32 flags;
452                 [relative] unistr *formname;
453                 uint32 width;
454                 uint32 length;
455                 uint32 left;
456                 uint32 top;
457                 uint32 right;
458                 uint32 bottom;
459         } spoolss_AddFormInfo1;
460
461         typedef union {
462                 [case(1)] spoolss_AddFormInfo1 *info1;
463         } spoolss_AddFormInfo;
464
465         /******************/
466         /* Function: 0x1e */
467         WERROR spoolss_AddForm(
468                 [in,ref] policy_handle *handle,
469                 [in] uint32 level,
470                 [in,switch_is(level)] spoolss_AddFormInfo info
471         );
472
473         /******************/
474         /* Function: 0x1f */
475         WERROR spoolss_DeleteForm(
476                 [in,ref] policy_handle *handle,
477                 [in] unistr formname
478         );
479
480         /******************/
481         /* Function: 0x20 */
482         typedef struct {
483                 uint32 flags;
484                 [relative] nstring *formname;
485                 uint32 width;
486                 uint32 length;
487                 uint32 left;
488                 uint32 top;
489                 uint32 right;
490                 uint32 bottom;
491         } spoolss_FormInfo1;
492
493         WERROR spoolss_GetForm(
494                 [in,ref] policy_handle *handle,
495                 [in] unistr formname,
496                 [in] uint32 level,
497                 [in] DATA_BLOB *buffer,
498                 [out,subcontext(4),switch_is(level)] spoolss_FormInfo *info,
499                 [in,out,ref] uint32 *buf_size
500         );
501
502         typedef struct {
503                 uint32 flags;
504                 unistr *formname;
505                 uint32 width;
506                 uint32 length;
507                 uint32 left;
508                 uint32 top;
509                 uint32 right;
510                 uint32 bottom;
511         } spoolss_SetFormInfo1;
512
513         typedef union {
514                 [case(1)] spoolss_AddFormInfo1 *info1;
515         } spoolss_SetFormInfo;
516
517         /******************/
518         /* Function: 0x21 */
519         WERROR spoolss_SetForm(
520                 [in,ref] policy_handle *handle,
521                 [in] unistr formname,
522                 [in] uint32 level,
523                 [in,switch_is(level)] spoolss_SetFormInfo info
524         );
525
526         typedef [nodiscriminant,public] union {
527                 [case(1)] spoolss_FormInfo1 info1;
528         } spoolss_FormInfo;
529
530         /******************/
531         /* Function: 0x22 */
532         [noprint,nopull,nopush] WERROR spoolss_EnumForms(
533                 [in,ref] policy_handle *handle,
534                 [in] uint32 level,
535                 [in] DATA_BLOB *buffer,
536                 /* [out,subcontext(4),switch_is(level)] spoolss_FormInfo *info[count],*/
537                 [out,subcontext(4),switch_is(level)] spoolss_FormInfo **info,
538                 [in,out,ref] uint32 *buf_size,
539                 [out] uint32 count
540         );
541
542         typedef [flag(RELATIVE_CURRENT)] struct {
543                 [relative] nstring *port_name;
544         } spoolss_PortInfo1;
545
546         typedef struct {
547                 [relative] nstring *port_name;
548                 [relative] nstring *monitor_name;
549                 [relative] nstring *description;
550                 uint32 port_type;
551                 uint32 reserved;
552         } spoolss_PortInfo2;
553
554         typedef [nondiscriminant,public] union {
555                 [case(1)] spoolss_PortInfo1 info1;
556                 [case(2)] spoolss_PortInfo2 info2;
557         } spoolss_PortInfo;
558
559         /******************/
560         /* Function: 0x23 */
561         [noprint,nopull,nopush] WERROR spoolss_EnumPorts(
562                 [in] unistr *servername,
563                 [in] uint32 level,
564                 [in] DATA_BLOB *buffer,
565                 /* [out,subcontext(4),switch_is(level)] spoolss_PortInfo *info[count], */
566                 [out,subcontext(4),switch_is(level)] spoolss_PortInfo **info,
567                 [in,out,ref] uint32 *buf_size,
568                 [out] uint32 count
569         );
570
571         /******************/
572         /* Function: 0x24 */
573         WERROR spoolss_EnumMonitors(
574         );
575
576         /******************/
577         /* Function: 0x25 */
578         WERROR spoolss_AddPort(
579         );
580
581         /******************/
582         /* Function: 0x26 */
583         WERROR spoolss_ConfigurePort(
584         );
585
586         /******************/
587         /* Function: 0x27 */
588         WERROR spoolss_DeletePort(
589         );
590
591         /******************/
592         /* Function: 0x28 */
593         WERROR spoolss_CreatePrinterIC(
594         );
595
596         /******************/
597         /* Function: 0x29 */
598         WERROR spoolss_PlayGDIScriptOnPrinterIC(
599         );
600
601         /******************/
602         /* Function: 0x2a */
603         WERROR spoolss_DeletePrinterIC(
604         );
605
606         /******************/
607         /* Function: 0x2b */
608         WERROR spoolss_AddPrinterConnection(
609         );
610
611         /******************/
612         /* Function: 0x2c */
613         WERROR spoolss_DeletePrinterConnection(
614         );
615
616         /******************/
617         /* Function: 0x2d */
618         WERROR spoolss_PrinterMessageBox(
619                 /* Marked as obsolete in MSDN.  "Not necessary and has
620                    no effect". */
621         );
622
623         /******************/
624         /* Function: 0x2e */
625         WERROR spoolss_AddMonitor(
626         );
627
628         /******************/
629         /* Function: 0x2f */
630         WERROR spoolss_DeleteMonitor(
631         );
632
633         /******************/
634         /* Function: 0x30 */
635         WERROR spoolss_DeletePrintProcessor(
636         );
637
638         /******************/
639         /* Function: 0x31 */
640         WERROR spoolss_AddPrintProvidor(
641         );
642
643         /******************/
644         /* Function: 0x32 */
645         WERROR spoolss_DeletePrintProvidor(
646         );
647
648         /******************/
649         /* Function: 0x33 */
650         WERROR spoolss_EnumPrintProcDataTypes(
651         );
652
653         /******************/
654         /* Function: 0x34 */
655         WERROR spoolss_ResetPrinter(
656         );
657
658         /******************/
659         /* Function: 0x35 */
660         WERROR spoolss_GetPrinterDriver2(
661                 [in,ref] policy_handle *handle,
662                 [in] unistr *architecture,
663                 [in] uint32 level,
664                 [in,out] DATA_BLOB *buffer,
665                 [in,out,ref] uint32 *buf_size,
666                 [in] uint32 client_major_version,
667                 [in] uint32 client_minor_version,
668                 [out] uint32 server_major_version,
669                 [out] uint32 server_minor_version
670         );
671
672         /******************/
673         /* Function: 0x36 */
674         WERROR spoolss_FindFirstPrinterChangeNotification(
675         );
676
677         /******************/
678         /* Function: 0x37 */
679         WERROR spoolss_FindNextPrinterChangeNotification(
680         );
681
682         /******************/
683         /* Function: 0x38 */
684         WERROR spoolss_FindClosePrinterNotify(
685         );
686
687         /******************/
688         /* Function: 0x39 */
689         WERROR spoolss_RouterFindFirstPrinterChangeNotificationOld(
690         );
691
692         /******************/
693         /* Function: 0x3a */
694         WERROR spoolss_ReplyOpenPrinter(
695         );
696
697         /******************/
698         /* Function: 0x3b */
699         WERROR spoolss_RouterReplyPrinter(
700         );
701
702         /******************/
703         /* Function: 0x3c */
704         WERROR spoolss_ReplyClosePrinter(
705         );
706
707         /******************/
708         /* Function: 0x3d */
709         WERROR spoolss_AddPortEx(
710         );
711
712         /******************/
713         /* Function: 0x3e */
714         WERROR spoolss_RouterFindFirstPrinterChangeNotification(
715         );
716
717         /******************/
718         /* Function: 0x3f */
719         WERROR spoolss_SpoolerInit(
720         );
721
722         /******************/
723         /* Function: 0x40 */
724         WERROR spoolss_ResetPrinterEx(
725         );
726
727         /******************/
728         /* Function: 0x41 */
729         WERROR spoolss_RemoteFindFirstPrinterChangeNotifyEx(
730         );
731
732         /******************/
733         /* Function: 0x42 */
734         WERROR spoolss_RouterRefreshPrinterChangeNotification(
735         );
736
737         /******************/
738         /* Function: 0x43 */
739         WERROR spoolss_RemoteFindNextPrinterChangeNotifyEx(
740         );
741
742         /******************/
743         /* Function: 0x44 */
744         WERROR spoolss_44(
745         );
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 }