r25598: Add missing become_root/unbecome_root around calls of add_aliases.
[samba.git] / source / python / py_spoolss.h
1 /* 
2    Python wrappers for DCERPC/SMB client routines.
3
4    Copyright (C) Tim Potter, 2002
5    
6    This program is free software; you can redistribute it and/or modify
7    it under the terms of the GNU General Public License as published by
8    the Free Software Foundation; either version 3 of the License, or
9    (at your option) any later version.
10    
11    This program is distributed in the hope that it will be useful,
12    but WITHOUT ANY WARRANTY; without even the implied warranty of
13    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14    GNU General Public License for more details.
15    
16    You should have received a copy of the GNU General Public License
17    along with this program.  If not, see <http://www.gnu.org/licenses/>.
18 */
19
20 #ifndef _PY_SPOOLSS_H
21 #define _PY_SPOOLSS_H
22
23 #include "python/py_common.h"
24
25 /* Spoolss policy handle object */
26
27 typedef struct {
28         PyObject_HEAD
29         struct rpc_pipe_client *cli;
30         TALLOC_CTX *mem_ctx;
31         POLICY_HND pol;
32 } spoolss_policy_hnd_object;
33      
34 /* Exceptions raised by this module */
35
36 extern PyTypeObject spoolss_policy_hnd_type;
37
38 extern PyObject *spoolss_error, *spoolss_werror;
39
40 /* The following definitions come from python/py_spoolss_common.c */
41
42 PyObject *new_spoolss_policy_hnd_object(struct cli_state *cli, 
43                                         TALLOC_CTX *mem_ctx, POLICY_HND *pol);
44
45 /* The following definitions come from python/py_spoolss_drivers.c  */
46
47 PyObject *spoolss_enumprinterdrivers(PyObject *self, PyObject *args,
48                                      PyObject *kw);
49 PyObject *spoolss_hnd_getprinterdriver(PyObject *self, PyObject *args,
50                                    PyObject *kw);
51 PyObject *spoolss_getprinterdriverdir(PyObject *self, PyObject *args, 
52                                       PyObject *kw);
53 PyObject *spoolss_addprinterdriver(PyObject *self, PyObject *args,
54                                    PyObject *kw);
55 PyObject *spoolss_addprinterdriverex(PyObject *self, PyObject *args,
56                                              PyObject *kw);
57 PyObject *spoolss_deleteprinterdriver(PyObject *self, PyObject *args,
58                                       PyObject *kw);
59 PyObject *spoolss_deleteprinterdriverex(PyObject *self, PyObject *args,
60                                         PyObject *kw);
61
62 /* The following definitions come from python/py_spoolss_drivers_conv.c  */
63
64 BOOL py_from_DRIVER_INFO_1(PyObject **dict, DRIVER_INFO_1 *info);
65 BOOL py_to_DRIVER_INFO_1(DRIVER_INFO_1 *info, PyObject *dict);
66 BOOL py_from_DRIVER_INFO_2(PyObject **dict, DRIVER_INFO_2 *info);
67 BOOL py_to_DRIVER_INFO_2(DRIVER_INFO_2 *info, PyObject *dict);
68 BOOL py_from_DRIVER_INFO_3(PyObject **dict, DRIVER_INFO_3 *info);
69 BOOL py_to_DRIVER_INFO_3(DRIVER_INFO_3 *info, PyObject *dict,
70                          TALLOC_CTX *mem_ctx);
71 BOOL py_from_DRIVER_INFO_6(PyObject **dict, DRIVER_INFO_6 *info);
72 BOOL py_to_DRIVER_INFO_6(DRIVER_INFO_6 *info, PyObject *dict);
73 BOOL py_from_DRIVER_DIRECTORY_1(PyObject **dict, DRIVER_DIRECTORY_1 *info);
74 BOOL py_to_DRIVER_DIRECTORY_1(DRIVER_DIRECTORY_1 *info, PyObject *dict);
75
76 /* The following definitions come from python/py_spoolss_forms.c  */
77
78 PyObject *spoolss_hnd_addform(PyObject *self, PyObject *args, PyObject *kw);
79 PyObject *spoolss_hnd_getform(PyObject *self, PyObject *args, PyObject *kw);
80 PyObject *spoolss_hnd_setform(PyObject *self, PyObject *args, PyObject *kw);
81 PyObject *spoolss_hnd_deleteform(PyObject *self, PyObject *args, PyObject *kw);
82 PyObject *spoolss_hnd_enumforms(PyObject *self, PyObject *args, PyObject *kw);
83
84 /* The following definitions come from python/py_spoolss_forms_conv.c  */
85
86 BOOL py_from_FORM_1(PyObject **dict, FORM_1 *form);
87 BOOL py_to_FORM(FORM *form, PyObject *dict);
88
89 /* The following definitions come from python/py_spoolss_jobs.c  */
90
91 PyObject *spoolss_hnd_enumjobs(PyObject *self, PyObject *args, PyObject *kw);
92 PyObject *spoolss_hnd_setjob(PyObject *self, PyObject *args, PyObject *kw);
93 PyObject *spoolss_hnd_getjob(PyObject *self, PyObject *args, PyObject *kw);
94 PyObject *spoolss_hnd_startpageprinter(PyObject *self, PyObject *args, PyObject *kw);
95 PyObject *spoolss_hnd_endpageprinter(PyObject *self, PyObject *args, PyObject *kw);
96 PyObject *spoolss_hnd_startdocprinter(PyObject *self, PyObject *args, PyObject *kw);
97 PyObject *spoolss_hnd_enddocprinter(PyObject *self, PyObject *args, PyObject *kw);
98 PyObject *spoolss_hnd_writeprinter(PyObject *self, PyObject *args, PyObject *kw);
99 PyObject *spoolss_hnd_addjob(PyObject *self, PyObject *args, PyObject *kw);
100
101 /* The following definitions come from python/py_spoolss_jobs_conv.c  */
102
103 BOOL py_from_JOB_INFO_1(PyObject **dict, JOB_INFO_1 *info);
104 BOOL py_to_JOB_INFO_1(JOB_INFO_1 *info, PyObject *dict);
105 BOOL py_from_JOB_INFO_2(PyObject **dict, JOB_INFO_2 *info);
106 BOOL py_to_JOB_INFO_2(JOB_INFO_2 *info, PyObject *dict);
107 BOOL py_from_DOC_INFO_1(PyObject **dict, DOC_INFO_1 *info);
108 BOOL py_to_DOC_INFO_1(DOC_INFO_1 *info, PyObject *dict);
109
110 /* The following definitions come from python/py_spoolss_ports.c  */
111
112 PyObject *spoolss_enumports(PyObject *self, PyObject *args, PyObject *kw);
113
114 /* The following definitions come from python/py_spoolss_ports_conv.c  */
115
116 BOOL py_from_PORT_INFO_1(PyObject **dict, PORT_INFO_1 *info);
117 BOOL py_to_PORT_INFO_1(PORT_INFO_1 *info, PyObject *dict);
118 BOOL py_from_PORT_INFO_2(PyObject **dict, PORT_INFO_2 *info);
119 BOOL py_to_PORT_INFO_2(PORT_INFO_2 *info, PyObject *dict);
120
121 /* The following definitions come from python/py_spoolss_printerdata.c  */
122
123 PyObject *spoolss_hnd_getprinterdata(PyObject *self, PyObject *args, PyObject *kw);
124 PyObject *spoolss_hnd_setprinterdata(PyObject *self, PyObject *args, PyObject *kw);
125 PyObject *spoolss_hnd_enumprinterdata(PyObject *self, PyObject *args, PyObject *kw);
126 PyObject *spoolss_hnd_deleteprinterdata(PyObject *self, PyObject *args, PyObject *kw);
127 PyObject *spoolss_hnd_getprinterdataex(PyObject *self, PyObject *args, PyObject *kw);
128 PyObject *spoolss_hnd_setprinterdataex(PyObject *self, PyObject *args, PyObject *kw);
129 PyObject *spoolss_hnd_enumprinterdataex(PyObject *self, PyObject *args, PyObject *kw);
130 PyObject *spoolss_hnd_deleteprinterdataex(PyObject *self, PyObject *args, PyObject *kw);
131 PyObject *spoolss_hnd_enumprinterkey(PyObject *self, PyObject *args,
132                                      PyObject *kw);
133 PyObject *spoolss_hnd_deleteprinterkey(PyObject *self, PyObject *args,
134                                        PyObject *kw);
135
136 /* The following definitions come from python/py_spoolss_printers.c  */
137
138 PyObject *spoolss_openprinter(PyObject *self, PyObject *args, PyObject *kw);
139 PyObject *spoolss_closeprinter(PyObject *self, PyObject *args);
140 PyObject *spoolss_hnd_getprinter(PyObject *self, PyObject *args, PyObject *kw);
141 PyObject *spoolss_hnd_setprinter(PyObject *self, PyObject *args, PyObject *kw);
142 PyObject *spoolss_enumprinters(PyObject *self, PyObject *args, PyObject *kw);
143 PyObject *spoolss_addprinterex(PyObject *self, PyObject *args, PyObject *kw);
144
145 /* The following definitions come from python/py_spoolss_printers_conv.c  */
146
147 BOOL py_from_DEVICEMODE(PyObject **dict, DEVICEMODE *devmode);
148 BOOL py_to_DEVICEMODE(DEVICEMODE *devmode, PyObject *dict);
149 BOOL py_from_PRINTER_INFO_0(PyObject **dict, PRINTER_INFO_0 *info);
150 BOOL py_to_PRINTER_INFO_0(PRINTER_INFO_0 *info, PyObject *dict);
151 BOOL py_from_PRINTER_INFO_1(PyObject **dict, PRINTER_INFO_1 *info);
152 BOOL py_to_PRINTER_INFO_1(PRINTER_INFO_1 *info, PyObject *dict);
153 BOOL py_from_PRINTER_INFO_2(PyObject **dict, PRINTER_INFO_2 *info);
154 BOOL py_to_PRINTER_INFO_2(PRINTER_INFO_2 *info, PyObject *dict,
155                           TALLOC_CTX *mem_ctx);
156 BOOL py_from_PRINTER_INFO_3(PyObject **dict, PRINTER_INFO_3 *info);
157 BOOL py_to_PRINTER_INFO_3(PRINTER_INFO_3 *info, PyObject *dict,
158                           TALLOC_CTX *mem_ctx);
159
160 #endif /* _PY_SPOOLSS_H */