#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; void decode_ntprinting_form( [in] ntprinting_form form ); /* Samba 3 tdb storage format: drivers * "dffffffff" followed by a remaining buffer of "f" array */ typedef [flag(NDR_NOALIGN),public] struct { uint32 version; utf8string name; utf8string environment; utf8string driverpath; utf8string datafile; utf8string configfile; utf8string helpfile; utf8string monitorname; utf8string defaultdatatype; [flag(STR_UTF8|STR_NOTERM|NDR_REMAINING)] string_array dependent_files; } ntprinting_driver; 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 { /* uint32 devicemode_ptr; */ utf8string devicename; utf8string 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; /* Samba 3 tdb storage format: printer_data * "p" ptr to printer_data * "fdB" */ typedef [flag(NDR_NOALIGN),public] struct { uint32 ptr; utf8string name; uint32 type; DATA_BLOB data; } ntprinting_printer_data; /* Samba 3 tdb storage format: printer_info * "dddddddddddfffffPfffff" */ typedef [flag(NDR_NOALIGN),public] struct { uint32 attributes; uint32 priority; uint32 default_priority; uint32 starttime; uint32 untiltime; uint32 status; uint32 cjobs; uint32 averageppm; uint32 changeid; uint32 c_setprinter; uint32 setuptime; utf8string servername; utf8string printername; utf8string sharename; utf8string portname; utf8string drivername; utf8string comment; utf8string location; utf8string sepfile; utf8string printprocessor; utf8string datatype; utf8string 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; void decode_ntprinting_printer( [in] ntprinting_printer printer ); }