2 Python wrappers for DCERPC/SMB client routines.
4 Copyright (C) Tim Potter, 2002
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.
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.
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.
21 #include "python/py_spoolss.h"
22 #include "python/py_conv.h"
24 /* Structure/hash conversions */
26 struct pyconv py_DRIVER_INFO_1
[] = {
27 { "name", PY_UNISTR
, offsetof(DRIVER_INFO_1
, name
) },
31 struct pyconv py_DRIVER_INFO_2
[] = {
32 { "version", PY_UINT32
, offsetof(DRIVER_INFO_2
, version
) },
33 { "name", PY_UNISTR
, offsetof(DRIVER_INFO_2
, name
) },
34 { "architecture", PY_UNISTR
, offsetof(DRIVER_INFO_2
, architecture
) },
35 { "driver_path", PY_UNISTR
, offsetof(DRIVER_INFO_2
, driverpath
) },
36 { "data_file", PY_UNISTR
, offsetof(DRIVER_INFO_2
, datafile
) },
37 { "config_file", PY_UNISTR
, offsetof(DRIVER_INFO_2
, configfile
) },
41 struct pyconv py_DRIVER_INFO_3
[] = {
42 { "version", PY_UINT32
, offsetof(DRIVER_INFO_3
, version
) },
43 { "name", PY_UNISTR
, offsetof(DRIVER_INFO_3
, name
) },
44 { "architecture", PY_UNISTR
, offsetof(DRIVER_INFO_3
, architecture
) },
45 { "driver_path", PY_UNISTR
, offsetof(DRIVER_INFO_3
, driverpath
) },
46 { "data_file", PY_UNISTR
, offsetof(DRIVER_INFO_3
, datafile
) },
47 { "config_file", PY_UNISTR
, offsetof(DRIVER_INFO_3
, configfile
) },
48 { "help_file", PY_UNISTR
, offsetof(DRIVER_INFO_3
, helpfile
) },
50 { "monitor_name", PY_UNISTR
, offsetof(DRIVER_INFO_3
, monitorname
) },
51 { "default_datatype", PY_UNISTR
, offsetof(DRIVER_INFO_3
, defaultdatatype
) },
55 struct pyconv py_DRIVER_INFO_6
[] = {
56 { "version", PY_UINT32
, offsetof(DRIVER_INFO_6
, version
) },
57 { "name", PY_UNISTR
, offsetof(DRIVER_INFO_6
, name
) },
58 { "architecture", PY_UNISTR
, offsetof(DRIVER_INFO_6
, architecture
) },
59 { "driver_path", PY_UNISTR
, offsetof(DRIVER_INFO_6
, driverpath
) },
60 { "data_file", PY_UNISTR
, offsetof(DRIVER_INFO_6
, datafile
) },
61 { "config_file", PY_UNISTR
, offsetof(DRIVER_INFO_6
, configfile
) },
62 { "help_file", PY_UNISTR
, offsetof(DRIVER_INFO_6
, helpfile
) },
64 { "monitor_name", PY_UNISTR
, offsetof(DRIVER_INFO_6
, monitorname
) },
65 { "default_datatype", PY_UNISTR
, offsetof(DRIVER_INFO_6
, defaultdatatype
) },
67 { "padding", PY_UINT32
, offsetof(DRIVER_INFO_6
, padding
) },
68 { "driver_version_low", PY_UINT32
, offsetof(DRIVER_INFO_6
, driver_version_low
) },
69 { "driver_version_high", PY_UINT32
, offsetof(DRIVER_INFO_6
, driver_version_high
) },
70 { "mfg_name", PY_UNISTR
, offsetof(DRIVER_INFO_6
, mfgname
) },
71 { "oem_url", PY_UNISTR
, offsetof(DRIVER_INFO_6
, oem_url
) },
72 { "hardware_id", PY_UNISTR
, offsetof(DRIVER_INFO_6
, hardware_id
) },
73 { "provider", PY_UNISTR
, offsetof(DRIVER_INFO_6
, provider
) },
78 struct pyconv py_DRIVER_DIRECTORY_1
[] = {
79 { "name", PY_UNISTR
, offsetof(DRIVER_DIRECTORY_1
, name
) },
83 BOOL
py_from_DRIVER_INFO_1(PyObject
**dict
, DRIVER_INFO_1
*info
)
85 *dict
= from_struct(info
, py_DRIVER_INFO_1
);
86 PyDict_SetItemString(*dict
, "level", PyInt_FromLong(1));
90 BOOL
py_to_DRIVER_INFO_1(DRIVER_INFO_1
*info
, PyObject
*dict
)
95 BOOL
py_from_DRIVER_INFO_2(PyObject
**dict
, DRIVER_INFO_2
*info
)
97 *dict
= from_struct(info
, py_DRIVER_INFO_2
);
98 PyDict_SetItemString(*dict
, "level", PyInt_FromLong(2));
102 BOOL
py_to_DRIVER_INFO_2(DRIVER_INFO_2
*info
, PyObject
*dict
)
107 BOOL
py_from_DRIVER_INFO_3(PyObject
**dict
, DRIVER_INFO_3
*info
)
109 *dict
= from_struct(info
, py_DRIVER_INFO_3
);
110 PyDict_SetItemString(*dict
, "level", PyInt_FromLong(3));
114 BOOL
py_to_DRIVER_INFO_3(DRIVER_INFO_3
*info
, PyObject
*dict
)
116 PyObject
*dict_copy
= PyDict_Copy(dict
);
119 PyDict_DelItemString(dict_copy
, "level");
120 result
= to_struct(info
, dict_copy
, py_DRIVER_INFO_3
);
122 Py_DECREF(dict_copy
);
126 BOOL
py_from_DRIVER_INFO_6(PyObject
**dict
, DRIVER_INFO_6
*info
)
128 *dict
= from_struct(info
, py_DRIVER_INFO_6
);
129 PyDict_SetItemString(*dict
, "level", PyInt_FromLong(6));
133 BOOL
py_to_DRIVER_INFO_6(DRIVER_INFO_6
*info
, PyObject
*dict
)
138 BOOL
py_from_DRIVER_DIRECTORY_1(PyObject
**dict
, DRIVER_DIRECTORY_1
*info
)
140 *dict
= from_struct(info
, py_DRIVER_DIRECTORY_1
);
141 PyDict_SetItemString(*dict
, "level", PyInt_FromLong(1));
145 BOOL
py_to_DRIVER_DIRECTORY_1(DRIVER_DIRECTORY_1
*info
, PyObject
*dict
)