First commit of the spoolss code to the HEAD branch.
[nivanova/samba-autobuild/.git] / source3 / include / nt_printing.h
1 #define ORIENTATION      0x00000001L
2 #define PAPERSIZE        0x00000002L
3 #define PAPERLENGTH      0x00000004L
4 #define PAPERWIDTH       0x00000008L
5 #define SCALE            0x00000010L
6 #define COPIES           0x00000100L
7 #define DEFAULTSOURCE    0x00000200L
8 #define PRINTQUALITY     0x00000400L
9 #define COLOR            0x00000800L
10 #define DUPLEX           0x00001000L
11 #define YRESOLUTION      0x00002000L
12 #define TTOPTION         0x00004000L
13 #define COLLATE          0x00008000L
14 #define FORMNAME         0x00010000L
15 #define LOGPIXELS        0x00020000L
16 #define BITSPERPEL       0x00040000L
17 #define PELSWIDTH        0x00080000L
18 #define PELSHEIGHT       0x00100000L
19 #define DISPLAYFLAGS     0x00200000L
20 #define DISPLAYFREQUENCY 0x00400000L
21 #define PANNINGWIDTH     0x00800000L
22 #define PANNINGHEIGHT    0x01000000L
23
24 #define ORIENT_PORTRAIT   1
25 #define ORIENT_LANDSCAPE  2
26
27 #define PAPER_FIRST                PAPER_LETTER
28 #define PAPER_LETTER               1  /* Letter 8 1/2 x 11 in               */
29 #define PAPER_LETTERSMALL          2  /* Letter Small 8 1/2 x 11 in         */
30 #define PAPER_TABLOID              3  /* Tabloid 11 x 17 in                 */
31 #define PAPER_LEDGER               4  /* Ledger 17 x 11 in                  */
32 #define PAPER_LEGAL                5  /* Legal 8 1/2 x 14 in                */
33 #define PAPER_STATEMENT            6  /* Statement 5 1/2 x 8 1/2 in         */
34 #define PAPER_EXECUTIVE            7  /* Executive 7 1/4 x 10 1/2 in        */
35 #define PAPER_A3                   8  /* A3 297 x 420 mm                    */
36 #define PAPER_A4                   9  /* A4 210 x 297 mm                    */
37 #define PAPER_A4SMALL             10  /* A4 Small 210 x 297 mm              */
38 #define PAPER_A5                  11  /* A5 148 x 210 mm                    */
39 #define PAPER_B4                  12  /* B4 (JIS) 250 x 354                 */
40 #define PAPER_B5                  13  /* B5 (JIS) 182 x 257 mm              */
41 #define PAPER_FOLIO               14  /* Folio 8 1/2 x 13 in                */
42 #define PAPER_QUARTO              15  /* Quarto 215 x 275 mm                */
43 #define PAPER_10X14               16  /* 10x14 in                           */
44 #define PAPER_11X17               17  /* 11x17 in                           */
45 #define PAPER_NOTE                18  /* Note 8 1/2 x 11 in                 */
46 #define PAPER_ENV_9               19  /* Envelope #9 3 7/8 x 8 7/8          */
47 #define PAPER_ENV_10              20  /* Envelope #10 4 1/8 x 9 1/2         */
48 #define PAPER_ENV_11              21  /* Envelope #11 4 1/2 x 10 3/8        */
49 #define PAPER_ENV_12              22  /* Envelope #12 4 \276 x 11           */
50 #define PAPER_ENV_14              23  /* Envelope #14 5 x 11 1/2            */
51 #define PAPER_CSHEET              24  /* C size sheet                       */
52 #define PAPER_DSHEET              25  /* D size sheet                       */
53 #define PAPER_ESHEET              26  /* E size sheet                       */
54 #define PAPER_ENV_DL              27  /* Envelope DL 110 x 220mm            */
55 #define PAPER_ENV_C5              28  /* Envelope C5 162 x 229 mm           */
56 #define PAPER_ENV_C3              29  /* Envelope C3  324 x 458 mm          */
57 #define PAPER_ENV_C4              30  /* Envelope C4  229 x 324 mm          */
58 #define PAPER_ENV_C6              31  /* Envelope C6  114 x 162 mm          */
59 #define PAPER_ENV_C65             32  /* Envelope C65 114 x 229 mm          */
60 #define PAPER_ENV_B4              33  /* Envelope B4  250 x 353 mm          */
61 #define PAPER_ENV_B5              34  /* Envelope B5  176 x 250 mm          */
62 #define PAPER_ENV_B6              35  /* Envelope B6  176 x 125 mm          */
63 #define PAPER_ENV_ITALY           36  /* Envelope 110 x 230 mm              */
64 #define PAPER_ENV_MONARCH         37  /* Envelope Monarch 3.875 x 7.5 in    */
65 #define PAPER_ENV_PERSONAL        38  /* 6 3/4 Envelope 3 5/8 x 6 1/2 in    */
66 #define PAPER_FANFOLD_US          39  /* US Std Fanfold 14 7/8 x 11 in      */
67 #define PAPER_FANFOLD_STD_GERMAN  40  /* German Std Fanfold 8 1/2 x 12 in   */
68 #define PAPER_FANFOLD_LGL_GERMAN  41  /* German Legal Fanfold 8 1/2 x 13 in */
69
70 #define PAPER_LAST                PAPER_FANFOLD_LGL_GERMAN
71 #define PAPER_USER                256
72
73 #define BIN_FIRST         BIN_UPPER
74 #define BIN_UPPER         1
75 #define BIN_ONLYONE       1
76 #define BIN_LOWER         2
77 #define BIN_MIDDLE        3
78 #define BIN_MANUAL        4
79 #define BIN_ENVELOPE      5
80 #define BIN_ENVMANUAL     6
81 #define BIN_AUTO          7
82 #define BIN_TRACTOR       8
83 #define BIN_SMALLFMT      9
84 #define BIN_LARGEFMT      10
85 #define BIN_LARGECAPACITY 11
86 #define BIN_CASSETTE      14
87 #define BIN_FORMSOURCE    15
88 #define BIN_LAST          BIN_FORMSOURCE
89
90 #define BIN_USER          256     /* device specific bins start here */
91
92 #define RES_DRAFT         (-1)
93 #define RES_LOW           (-2)
94 #define RES_MEDIUM        (-3)
95 #define RES_HIGH          (-4)
96
97 #define COLOR_MONOCHROME  1
98 #define COLOR_COLOR       2
99
100 #define DUP_SIMPLEX    1
101 #define DUP_VERTICAL   2
102 #define DUP_HORIZONTAL 3
103
104 #define TT_BITMAP     1       /* print TT fonts as graphics */
105 #define TT_DOWNLOAD   2       /* download TT fonts as soft fonts */
106 #define TT_SUBDEV     3       /* substitute device fonts for TT fonts */
107
108 #define COLLATE_FALSE  0
109 #define COLLATE_TRUE   1
110
111 typedef struct nt_printer_driver_info_level_3
112 {
113         uint32 cversion;
114
115         fstring name;
116         fstring environment;
117         fstring driverpath;
118         fstring datafile;
119         fstring configfile;
120         fstring helpfile;
121         fstring monitorname;
122         fstring defaultdatatype;
123         char    **dependentfiles;
124
125 } NT_PRINTER_DRIVER_INFO_LEVEL_3;
126
127 typedef struct nt_printer_driver_info_level
128 {
129         NT_PRINTER_DRIVER_INFO_LEVEL_3 *info_3;
130 } NT_PRINTER_DRIVER_INFO_LEVEL;
131
132 typedef struct nt_printer_param
133 {
134         fstring value;
135         uint32 type;
136         uint8 *data;
137         int data_len;
138         struct nt_printer_param *next;
139 } NT_PRINTER_PARAM;
140
141 typedef struct ntdevicemode
142 {
143         fstring devicename;
144         uint16  specversion;
145         uint16  driverversion;
146         uint16  size;
147         uint16  driverextra;
148         uint32  fields;
149         uint16  orientation;
150         uint16  papersize;
151         uint16  paperlength;
152         uint16  paperwidth;
153         uint16  scale;
154         uint16  copies;
155         uint16  defaultsource;
156         uint16  printquality;
157         uint16  color;
158         uint16  duplex;
159         uint16  yresolution;
160         uint16  ttoption;
161         uint16  collate;
162         fstring formname;
163         uint16  logpixels;
164         uint32  bitsperpel;
165         uint32  pelswidth;
166         uint32  pelsheight;
167         uint32  displayflags;
168         uint32  displayfrequency;
169         uint32  icmmethod;
170         uint32  icmintent;
171         uint32  mediatype;
172         uint32  dithertype;
173         uint32  reserved1;
174         uint32  reserved2;
175         uint32  panningwidth;
176         uint32  panningheight;
177         uint8   *private;
178 } NT_DEVICEMODE; 
179
180 typedef struct nt_printer_info_level_2
181 {
182         uint32 attributes;
183         uint32 priority;
184         uint32 default_priority;
185         uint32 starttime;
186         uint32 untiltime;
187         uint32 status;
188         uint32 cjobs;
189         uint32 averageppm;
190         fstring servername;
191         fstring printername;
192         fstring sharename;
193         fstring portname;
194         fstring drivername;
195         fstring comment;
196         fstring location;
197         NT_DEVICEMODE *devmode;
198         fstring sepfile;
199         fstring printprocessor;
200         fstring datatype;
201         fstring parameters;
202         NT_PRINTER_PARAM *specific;
203         /* SEC_DESC_BUF *secdesc; */
204         /* not used but ... and how ??? */
205 } NT_PRINTER_INFO_LEVEL_2;
206
207 typedef struct nt_printer_info_level
208 {
209         NT_PRINTER_INFO_LEVEL_2 *info_2;
210 } NT_PRINTER_INFO_LEVEL;
211
212 typedef struct
213 {
214         char name[100];
215         uint32 flag;
216         uint32 width;
217         uint32 length;
218         uint32 left;
219         uint32 top;
220         uint32 right;
221         uint32 bottom;
222 } nt_forms_struct;
223
224 /*
225 typedef struct _form
226 {
227        uint32 flags;
228        uint32 name_ptr;
229        uint32 size_x;
230        uint32 size_y;
231        uint32 left;
232        uint32 top;
233        uint32 right;
234        uint32 bottom;
235        UNISTR2 name;
236 } FORM;
237 */