4 spoolss interface definitions
7 [ uuid(12345678-1234-abcd-ef00-0123456789ab),
10 pointer_default(unique)
39 uint32 displayfrequency;
48 uint8 private[driverextra];
51 typedef [public] struct {
53 [relative] nstring *name;
54 [relative] nstring *description;
55 [relative] nstring *comment;
56 } spoolss_PrinterInfo1;
60 [relative] nstring *name;
69 typedef [public] struct {
70 [relative] nstring *servername;
71 [relative] nstring *printername;
72 [relative] nstring *sharename;
73 [relative] nstring *portname;
74 [relative] nstring *drivername;
75 [relative] nstring *comment;
76 [relative] nstring *location;
77 [relative] spoolss_DeviceMode *devmode;
78 [relative] nstring *sepfile;
79 [relative] nstring *printprocessor;
80 [relative] nstring *datatype;
81 [relative] nstring *parameters;
82 [relative] security_descriptor *secdesc;
85 uint32 defaultpriority;
91 } spoolss_PrinterInfo2;
95 security_descriptor secdesc;
96 } spoolss_PrinterInfo3;
99 [relative] nstring *printername;
100 [relative] nstring *servername;
102 } spoolss_PrinterInfo4;
104 typedef [public] struct {
105 [relative] nstring *printername;
106 [relative] nstring *portname;
108 uint32 device_not_selected_timeout;
109 uint32 transmission_retry_timeout;
110 } spoolss_PrinterInfo5;
114 } spoolss_PrinterInfo6;
117 [relative] nstring *guid; /* text form of printer guid */
119 } spoolss_PrinterInfo7;
121 typedef [nodiscriminant,public] union {
122 [case(1)] spoolss_PrinterInfo1 info1;
123 [case(2)] spoolss_PrinterInfo2 info2;
124 [case(3)] spoolss_PrinterInfo3 info3;
125 [case(4)] spoolss_PrinterInfo4 info4;
126 [case(5)] spoolss_PrinterInfo5 info5;
127 [case(6)] spoolss_PrinterInfo6 info6;
128 [case(7)] spoolss_PrinterInfo7 info7;
129 } spoolss_PrinterInfo;
133 WERROR spoolss_EnumPrinters(
137 [in,out] DATA_BLOB *buffer,
138 [in,out,ref] uint32 *buf_size,
144 WERROR spoolss_OpenPrinter(
146 [in] unistr *printer,
147 [in] DATA_BLOB *buffer,
148 [in] uint32 access_mask,
149 [out,ref] policy_handle *handle
154 WERROR spoolss_SetJob(
155 [in,ref] policy_handle *handle,
163 WERROR spoolss_GetJob(
164 [in,ref] policy_handle *handle,
167 [in] DATA_BLOB *buffer,
168 [out,subcontext(4),switch_is(level)] spoolss_JobInfo *info,
169 [in,out,ref] uint32 *buf_size
185 [relative] nstring printer_name;
186 [relative] nstring server_name;
187 [relative] nstring user_name;
188 [relative] nstring document_name;
189 [relative] nstring data_type;
190 [relative] nstring text_status;
195 uint32 pages_printed;
199 typedef [nodiscriminant,public] union {
200 [case(1)] spoolss_JobInfo1 info1;
205 WERROR spoolss_EnumJobs(
206 [in,ref] policy_handle *handle,
207 [in] uint32 firstjob,
210 [in,out] DATA_BLOB *buffer,
211 [in,out,ref] uint32 *buf_size,
217 WERROR spoolss_AddPrinter(
218 /* This function is not implemented in Samba 3 as no
219 clients have been observed using it. */
224 WERROR spoolss_DeletePrinter(
229 WERROR spoolss_SetPrinter(
234 WERROR spoolss_GetPrinter(
235 [in,ref] policy_handle *handle,
237 [in] DATA_BLOB *buffer,
238 [out,subcontext(4),switch_is(level)] spoolss_PrinterInfo *info,
239 [in,out,ref] uint32 *buf_size
244 WERROR spoolss_AddPrinterDriver(
248 [relative] nstring *driver_name;
249 } spoolss_DriverInfo1;
253 [relative] nstring *driver_name;
254 [relative] nstring *architecture;
255 [relative] nstring *driver_path;
256 [relative] nstring *data_file;
257 [relative] nstring *config_file;
258 } spoolss_DriverInfo2;
262 [relative] nstring *driver_name;
263 [relative] nstring *architecture;
264 [relative] nstring *driver_path;
265 [relative] nstring *data_file;
266 [relative] nstring *config_file;
267 [relative] nstring *help_file;
268 [relative] nstring *dependent_files; /* array */
269 [relative] nstring *monitor_name;
270 [relative] nstring *default_datatype;
271 } spoolss_DriverInfo3;
273 typedef [nodiscriminant,public] union {
274 [case(1)] spoolss_DriverInfo1 info1;
275 [case(2)] spoolss_DriverInfo2 info2;
276 [case(3)] spoolss_DriverInfo3 info3;
277 } spoolss_DriverInfo;
281 WERROR spoolss_EnumPrinterDrivers(
283 [in] unistr *environment,
285 [in,out] DATA_BLOB *buffer,
286 [in,out,ref] uint32 *buf_size,
292 WERROR spoolss_GetPrinterDriver(
297 WERROR spoolss_GetPrinterDriverDirectory(
302 WERROR spoolss_DeletePrinterDriver(
303 [in,ref] policy_handle *handle,
305 [in] unistr architecture,
311 WERROR spoolss_AddPrintProcessor(
316 WERROR spoolss_EnumPrintProcessors(
321 WERROR spoolss_GetPrintProcessorDirectory(
326 WERROR spoolss_StartDocPrinter(
331 WERROR spoolss_StartPagePrinter(
332 [in,ref] policy_handle *handle
337 WERROR spoolss_WritePrinter(
342 WERROR spoolss_EndPagePrinter(
343 [in,ref] policy_handle *handle
348 WERROR spoolss_AbortPrinter(
353 WERROR spoolss_ReadPrinter(
358 WERROR spoolss_EndDocPrinter(
363 WERROR spoolss_AddJob(
368 WERROR spoolss_ScheduleJob(
373 WERROR spoolss_GetPrinterData(
374 [in,ref] policy_handle *handle,
375 [in] unistr value_name,
377 [out] DATA_BLOB buffer,
378 [in,out,ref] uint32 *buf_size
383 WERROR spoolss_SetPrinterData(
384 [in,ref] policy_handle *handle,
385 [in] unistr value_name,
387 [in] DATA_BLOB buffer,
393 WERROR spoolss_WaitForPrinterChange(
398 WERROR spoolss_ClosePrinter(
399 [in,out,ref] policy_handle *handle
404 [relative] unistr *name;
411 } spoolss_AddFormInfo1;
414 [case(1)] spoolss_AddFormInfo1 *info1;
415 } spoolss_AddFormInfo;
419 WERROR spoolss_AddForm(
420 [in,ref] policy_handle *handle,
422 [in,switch_is(level)] spoolss_AddFormInfo info
427 WERROR spoolss_DeleteForm(
428 [in,ref] policy_handle *handle,
434 WERROR spoolss_GetForm(
435 [in,ref] policy_handle *handle,
436 [in] unistr formname,
438 [in] DATA_BLOB *buffer,
439 [out,subcontext(4),switch_is(level)] spoolss_FormInfo *info,
440 [in,out,ref] uint32 *buf_size
445 WERROR spoolss_SetForm(
446 [in,ref] policy_handle *handle,
447 [in] unistr form_name,
449 [in,switch_is(level)] spoolss_AddFormInfo info
452 typedef [nodiscriminant,public] union {
453 [case(1)] spoolss_FormInfo1 info1;
458 WERROR spoolss_EnumForms(
459 [in,ref] policy_handle *handle,
461 [in,out] DATA_BLOB *buffer,
462 [in,out,ref] uint32 *buf_size,
468 WERROR spoolss_EnumPorts(
473 WERROR spoolss_EnumMonitors(
478 WERROR spoolss_AddPort(
483 WERROR spoolss_ConfigurePort(
488 WERROR spoolss_DeletePort(
493 WERROR spoolss_CreatePrinterIC(
498 WERROR spoolss_PlayGDIScriptOnPrinterIC(
503 WERROR spoolss_DeletePrinterIC(
508 WERROR spoolss_AddPrinterConnection(
513 WERROR spoolss_DeletePrinterConnection(
518 WERROR spoolss_PrinterMessageBox(
519 /* Marked as obsolete in MSDN. "Not necessary and has
525 WERROR spoolss_AddMonitor(
530 WERROR spoolss_DeleteMonitor(
535 WERROR spoolss_DeletePrintProcessor(
540 WERROR spoolss_AddPrintProvidor(
545 WERROR spoolss_DeletePrintProvidor(
550 WERROR spoolss_EnumPrintProcDataTypes(
555 WERROR spoolss_ResetPrinter(
560 WERROR spoolss_GetPrinterDriver2(
561 [in,ref] policy_handle *handle,
562 [in] unistr *architecture,
564 [in,out] DATA_BLOB *buffer,
565 [in,out,ref] uint32 *buf_size,
566 [in] uint32 client_major_version,
567 [in] uint32 client_minor_version,
568 [out] uint32 server_major_version,
569 [out] uint32 server_minor_version
574 WERROR spoolss_FindFirstPrinterChangeNotification(
579 WERROR spoolss_FindNextPrinterChangeNotification(
584 WERROR spoolss_FindClosePrinterNotify(
589 WERROR spoolss_RouterFindFirstPrinterChangeNotificationOld(
594 WERROR spoolss_ReplyOpenPrinter(
599 WERROR spoolss_RouterReplyPrinter(
604 WERROR spoolss_ReplyClosePrinter(
609 WERROR spoolss_AddPortEx(
614 WERROR spoolss_RouterFindFirstPrinterChangeNotification(
619 WERROR spoolss_SpoolerInit(
624 WERROR spoolss_ResetPrinterEx(
629 WERROR spoolss_RemoteFindFirstPrinterChangeNotifyEx(
634 WERROR spoolss_RouterRefreshPrinterChangeNotification(
639 WERROR spoolss_RemoteFindNextPrinterChangeNotifyEx(
653 spoolss_Devmode *devmode;
654 } spoolss_DevmodeContainer;
664 } spoolss_UserLevel1;
667 [case(1)] spoolss_UserLevel1 *level1;
672 WERROR spoolss_OpenPrinterEx(
673 [in] unistr *printername,
674 [in] unistr *datatype,
675 [in] spoolss_DevmodeContainer devmode_ctr,
676 [in] uint32 access_required,
678 [in,switch_is(level)] spoolss_UserLevel userlevel,
679 [out,ref] policy_handle *handle
684 WERROR spoolss_AddPrinterEx(
687 [in,switch_is(level)] spoolss_PrinterInfo *info,
688 [in] spoolss_DevmodeContainer devmode_ctr,
689 [in] security_descriptor *secdesc,
691 [in,switch_is(ulevel)] spoolss_UserLevel userlevel
701 WERROR spoolss_EnumPrinterData(
702 [in,ref] policy_handle *handle,
703 [in] uint32 enum_index,
704 [in] uint32 value_offered,
705 [out] lstring value_name,
706 [out] uint32 value_needed,
707 [out] uint32 printerdata_type,
708 [out] DATA_BLOB data,
709 [in,out,ref] uint32 *data_size
714 WERROR spoolss_DeletePrinterData(
715 [in,ref] policy_handle *handle,
716 [in] unistr value_name
736 WERROR spoolss_SetPrinterDataEx(
737 [in,ref] policy_handle *handle,
738 [in] unistr key_name,
739 [in] unistr value_name,
741 [in] DATA_BLOB buffer,
742 [in,out,ref] uint32 *buf_size
747 WERROR spoolss_GetPrinterDataEx(
748 [in,ref] policy_handle *handle,
749 [in] unistr key_name,
750 [in] unistr value_name,
752 [out] DATA_BLOB buffer,
753 [in,out,ref] uint32 *buf_size
758 WERROR spoolss_EnumPrinterDataEx(
759 [in,ref] policy_handle *handle
764 WERROR spoolss_EnumPrinterKey(
769 WERROR spoolss_DeletePrinterDataEx(
770 [in,ref] policy_handle *handle,
771 [in] unistr key_name,
772 [in] unistr value_name
777 WERROR spoolss_DeletePrinterKey(
787 WERROR spoolss_DeletePrinterDriverEx(
812 WERROR spoolss_AddPrinterDriverEx(