#include "idl_types.h" /* old s3 spoolss tdb on-disc interface definitions */ [ pointer_default(unique), helpstring("s3 printing tdb formats"), uuid("a025d3cb-c605-40d6-86e1-4cff18e7dd94"), helper("../librpc/ndr/ndr_ntprinting.h") ] interface ntprinting { /* Samba 3 tdb storage format: forms * "dddddddd" */ typedef [flag(NDR_NOALIGN),public] struct { uint32 position; uint32 flag; uint32 width; uint32 length; uint32 left; uint32 top; uint32 right; uint32 bottom; } ntprinting_form; [public] void decode_ntprinting_form( [in] ntprinting_form form ); /* * First the string flags and then the Samba 3 tdb storage * format: drivers * "dffffffff" followed by a remaining buffer of "f" array */ typedef [flag(NDR_NOALIGN),public] struct { [skip_noinit] uint32 string_flags; uint32 version; [flag(ndr_ntprinting_string_flags(r->string_flags))] string name; [flag(ndr_ntprinting_string_flags(r->string_flags))] string environment; [flag(ndr_ntprinting_string_flags(r->string_flags))] string driverpath; [flag(ndr_ntprinting_string_flags(r->string_flags))] string datafile; [flag(ndr_ntprinting_string_flags(r->string_flags))] string configfile; [flag(ndr_ntprinting_string_flags(r->string_flags))] string helpfile; [flag(ndr_ntprinting_string_flags(r->string_flags))] string monitorname; [flag(ndr_ntprinting_string_flags(r->string_flags))] string defaultdatatype; [flag((ndr_ntprinting_string_flags(r->string_flags)&~STR_NULLTERM)|STR_NOTERM|NDR_REMAINING)] string_array dependent_files; } ntprinting_driver; [public] void decode_ntprinting_driver( [in] ntprinting_driver driver ); /* Samba 3 tdb storage format: devicemode * "p" ptr to devicemode * "ffwwwwwwwwwwwwwwwwwwdddddddddddddd" * "p" ptr to devicemode private data * "B" private data blob */ typedef [flag(NDR_NOALIGN),public] struct { [skip_noinit] uint32 string_flags; /* uint32 devicemode_ptr; */ [flag(ndr_ntprinting_string_flags(r->string_flags))] string devicename; [flag(ndr_ntprinting_string_flags(r->string_flags))] string formname; uint16 specversion; uint16 driverversion; uint16 size; uint16 driverextra; uint16 orientation; uint16 papersize; uint16 paperlength; uint16 paperwidth; uint16 scale; uint16 copies; uint16 defaultsource; uint16 printquality; uint16 color; uint16 duplex; uint16 yresolution; uint16 ttoption; uint16 collate; uint16 logpixels; uint32 fields; uint32 bitsperpel; uint32 pelswidth; uint32 pelsheight; uint32 displayflags; uint32 displayfrequency; uint32 icmmethod; uint32 icmintent; uint32 mediatype; uint32 dithertype; uint32 reserved1; uint32 reserved2; uint32 panningwidth; uint32 panningheight; DATA_BLOB *nt_dev_private; } ntprinting_devicemode; /* * First the string flags and then the Samba 3 tdb storage * format: printer_data * "p" ptr to printer_data * "fdB" */ typedef [flag(NDR_NOALIGN),public] struct { [skip_noinit] uint32 string_flags; uint32 ptr; [flag(ndr_ntprinting_string_flags(r->string_flags))] string name; uint32 type; DATA_BLOB data; } ntprinting_printer_data; /* * First the string flags and then the Samba 3 tdb storage * format: printer_info * "dddddddddddfffffPfffff" */ typedef [flag(NDR_NOALIGN),public] struct { [skip_noinit] uint32 string_flags; uint32 attributes; uint32 priority; uint32 default_priority; uint32 starttime; uint32 untiltime; uint32 status; uint32 cjobs; uint32 averageppm; uint32 changeid; uint32 c_setprinter; uint32 setuptime; [flag(ndr_ntprinting_string_flags(r->string_flags))] string servername; [flag(ndr_ntprinting_string_flags(r->string_flags))] string printername; [flag(ndr_ntprinting_string_flags(r->string_flags))] string sharename; [flag(ndr_ntprinting_string_flags(r->string_flags))] string portname; [flag(ndr_ntprinting_string_flags(r->string_flags))] string drivername; [flag(ndr_ntprinting_string_flags(r->string_flags))] string comment; [flag(ndr_ntprinting_string_flags(r->string_flags))] string location; [flag(ndr_ntprinting_string_flags(r->string_flags))] string sepfile; [flag(ndr_ntprinting_string_flags(r->string_flags))] string printprocessor; [flag(ndr_ntprinting_string_flags(r->string_flags))] string datatype; [flag(ndr_ntprinting_string_flags(r->string_flags))] string parameters; } ntprinting_printer_info; /* Abstract Samba 3 printer * printer_info * followed by ntprinting_devicemode * followed by remaining buffer of ntprinting_printer_data array */ typedef [flag(NDR_NOALIGN),public,nopull] struct { ntprinting_printer_info info; ntprinting_devicemode *devmode; uint32 count; ntprinting_printer_data printer_data[count]; } ntprinting_printer; [public] void decode_ntprinting_printer( [in] ntprinting_printer printer ); }