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 2 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, write to the Free Software 18 Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. 19*/ 20 21#ifndef _PY_SPOOLSS_H 22#define _PY_SPOOLSS_H 23 24#include "python/py_common.h" 25 26/* Spoolss policy handle object */ 27 28typedef struct { 29 PyObject_HEAD 30 struct rpc_pipe_client *cli; 31 TALLOC_CTX *mem_ctx; 32 POLICY_HND pol; 33} spoolss_policy_hnd_object; 34 35/* Exceptions raised by this module */ 36 37extern PyTypeObject spoolss_policy_hnd_type; 38 39extern PyObject *spoolss_error, *spoolss_werror; 40 41/* The following definitions come from python/py_spoolss_common.c */ 42 43PyObject *new_spoolss_policy_hnd_object(struct cli_state *cli, 44 TALLOC_CTX *mem_ctx, POLICY_HND *pol); 45 46/* The following definitions come from python/py_spoolss_drivers.c */ 47 48PyObject *spoolss_enumprinterdrivers(PyObject *self, PyObject *args, 49 PyObject *kw); 50PyObject *spoolss_hnd_getprinterdriver(PyObject *self, PyObject *args, 51 PyObject *kw); 52PyObject *spoolss_getprinterdriverdir(PyObject *self, PyObject *args, 53 PyObject *kw); 54PyObject *spoolss_addprinterdriver(PyObject *self, PyObject *args, 55 PyObject *kw); 56PyObject *spoolss_addprinterdriverex(PyObject *self, PyObject *args, 57 PyObject *kw); 58PyObject *spoolss_deleteprinterdriver(PyObject *self, PyObject *args, 59 PyObject *kw); 60PyObject *spoolss_deleteprinterdriverex(PyObject *self, PyObject *args, 61 PyObject *kw); 62 63/* The following definitions come from python/py_spoolss_drivers_conv.c */ 64 65BOOL py_from_DRIVER_INFO_1(PyObject **dict, DRIVER_INFO_1 *info); 66BOOL py_to_DRIVER_INFO_1(DRIVER_INFO_1 *info, PyObject *dict); 67BOOL py_from_DRIVER_INFO_2(PyObject **dict, DRIVER_INFO_2 *info); 68BOOL py_to_DRIVER_INFO_2(DRIVER_INFO_2 *info, PyObject *dict); 69BOOL py_from_DRIVER_INFO_3(PyObject **dict, DRIVER_INFO_3 *info); 70BOOL py_to_DRIVER_INFO_3(DRIVER_INFO_3 *info, PyObject *dict, 71 TALLOC_CTX *mem_ctx); 72BOOL py_from_DRIVER_INFO_6(PyObject **dict, DRIVER_INFO_6 *info); 73BOOL py_to_DRIVER_INFO_6(DRIVER_INFO_6 *info, PyObject *dict); 74BOOL py_from_DRIVER_DIRECTORY_1(PyObject **dict, DRIVER_DIRECTORY_1 *info); 75BOOL py_to_DRIVER_DIRECTORY_1(DRIVER_DIRECTORY_1 *info, PyObject *dict); 76 77/* The following definitions come from python/py_spoolss_forms.c */ 78 79PyObject *spoolss_hnd_addform(PyObject *self, PyObject *args, PyObject *kw); 80PyObject *spoolss_hnd_getform(PyObject *self, PyObject *args, PyObject *kw); 81PyObject *spoolss_hnd_setform(PyObject *self, PyObject *args, PyObject *kw); 82PyObject *spoolss_hnd_deleteform(PyObject *self, PyObject *args, PyObject *kw); 83PyObject *spoolss_hnd_enumforms(PyObject *self, PyObject *args, PyObject *kw); 84 85/* The following definitions come from python/py_spoolss_forms_conv.c */ 86 87BOOL py_from_FORM_1(PyObject **dict, FORM_1 *form); 88BOOL py_to_FORM(FORM *form, PyObject *dict); 89 90/* The following definitions come from python/py_spoolss_jobs.c */ 91 92PyObject *spoolss_hnd_enumjobs(PyObject *self, PyObject *args, PyObject *kw); 93PyObject *spoolss_hnd_setjob(PyObject *self, PyObject *args, PyObject *kw); 94PyObject *spoolss_hnd_getjob(PyObject *self, PyObject *args, PyObject *kw); 95PyObject *spoolss_hnd_startpageprinter(PyObject *self, PyObject *args, PyObject *kw); 96PyObject *spoolss_hnd_endpageprinter(PyObject *self, PyObject *args, PyObject *kw); 97PyObject *spoolss_hnd_startdocprinter(PyObject *self, PyObject *args, PyObject *kw); 98PyObject *spoolss_hnd_enddocprinter(PyObject *self, PyObject *args, PyObject *kw); 99PyObject *spoolss_hnd_writeprinter(PyObject *self, PyObject *args, PyObject *kw); 100PyObject *spoolss_hnd_addjob(PyObject *self, PyObject *args, PyObject *kw); 101 102/* The following definitions come from python/py_spoolss_jobs_conv.c */ 103 104BOOL py_from_JOB_INFO_1(PyObject **dict, JOB_INFO_1 *info); 105BOOL py_to_JOB_INFO_1(JOB_INFO_1 *info, PyObject *dict); 106BOOL py_from_JOB_INFO_2(PyObject **dict, JOB_INFO_2 *info); 107BOOL py_to_JOB_INFO_2(JOB_INFO_2 *info, PyObject *dict); 108BOOL py_from_DOC_INFO_1(PyObject **dict, DOC_INFO_1 *info); 109BOOL py_to_DOC_INFO_1(DOC_INFO_1 *info, PyObject *dict); 110 111/* The following definitions come from python/py_spoolss_ports.c */ 112 113PyObject *spoolss_enumports(PyObject *self, PyObject *args, PyObject *kw); 114 115/* The following definitions come from python/py_spoolss_ports_conv.c */ 116 117BOOL py_from_PORT_INFO_1(PyObject **dict, PORT_INFO_1 *info); 118BOOL py_to_PORT_INFO_1(PORT_INFO_1 *info, PyObject *dict); 119BOOL py_from_PORT_INFO_2(PyObject **dict, PORT_INFO_2 *info); 120BOOL py_to_PORT_INFO_2(PORT_INFO_2 *info, PyObject *dict); 121 122/* The following definitions come from python/py_spoolss_printerdata.c */ 123 124PyObject *spoolss_hnd_getprinterdata(PyObject *self, PyObject *args, PyObject *kw); 125PyObject *spoolss_hnd_setprinterdata(PyObject *self, PyObject *args, PyObject *kw); 126PyObject *spoolss_hnd_enumprinterdata(PyObject *self, PyObject *args, PyObject *kw); 127PyObject *spoolss_hnd_deleteprinterdata(PyObject *self, PyObject *args, PyObject *kw); 128PyObject *spoolss_hnd_getprinterdataex(PyObject *self, PyObject *args, PyObject *kw); 129PyObject *spoolss_hnd_setprinterdataex(PyObject *self, PyObject *args, PyObject *kw); 130PyObject *spoolss_hnd_enumprinterdataex(PyObject *self, PyObject *args, PyObject *kw); 131PyObject *spoolss_hnd_deleteprinterdataex(PyObject *self, PyObject *args, PyObject *kw); 132PyObject *spoolss_hnd_enumprinterkey(PyObject *self, PyObject *args, 133 PyObject *kw); 134PyObject *spoolss_hnd_deleteprinterkey(PyObject *self, PyObject *args, 135 PyObject *kw); 136 137/* The following definitions come from python/py_spoolss_printers.c */ 138 139PyObject *spoolss_openprinter(PyObject *self, PyObject *args, PyObject *kw); 140PyObject *spoolss_closeprinter(PyObject *self, PyObject *args); 141PyObject *spoolss_hnd_getprinter(PyObject *self, PyObject *args, PyObject *kw); 142PyObject *spoolss_hnd_setprinter(PyObject *self, PyObject *args, PyObject *kw); 143PyObject *spoolss_enumprinters(PyObject *self, PyObject *args, PyObject *kw); 144PyObject *spoolss_addprinterex(PyObject *self, PyObject *args, PyObject *kw); 145 146/* The following definitions come from python/py_spoolss_printers_conv.c */ 147 148BOOL py_from_DEVICEMODE(PyObject **dict, DEVICEMODE *devmode); 149BOOL py_to_DEVICEMODE(DEVICEMODE *devmode, PyObject *dict); 150BOOL py_from_PRINTER_INFO_0(PyObject **dict, PRINTER_INFO_0 *info); 151BOOL py_to_PRINTER_INFO_0(PRINTER_INFO_0 *info, PyObject *dict); 152BOOL py_from_PRINTER_INFO_1(PyObject **dict, PRINTER_INFO_1 *info); 153BOOL py_to_PRINTER_INFO_1(PRINTER_INFO_1 *info, PyObject *dict); 154BOOL py_from_PRINTER_INFO_2(PyObject **dict, PRINTER_INFO_2 *info); 155BOOL py_to_PRINTER_INFO_2(PRINTER_INFO_2 *info, PyObject *dict, 156 TALLOC_CTX *mem_ctx); 157BOOL py_from_PRINTER_INFO_3(PyObject **dict, PRINTER_INFO_3 *info); 158BOOL py_to_PRINTER_INFO_3(PRINTER_INFO_3 *info, PyObject *dict, 159 TALLOC_CTX *mem_ctx); 160 161#endif /* _PY_SPOOLSS_H */ 162