summaryrefslogtreecommitdiff
path: root/librpc/idl/ntprinting.idl
blob: 8152144fca4ea3049c82373fd0d4c7bb5b0207b6 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
#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] 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] 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] 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] 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
		);
}