
/* Python wrapper functions auto-generated by pidl */
#include <Python.h>
#include "includes.h"
#include <pytalloc.h>
#include "librpc/rpc/pyrpc.h"
#include "librpc/rpc/pyrpc_util.h"
#include "librpc/gen_ndr/ndr_ntprinting.h"
#include "librpc/gen_ndr/ndr_ntprinting_c.h"

staticforward PyTypeObject ntprinting_form_Type;
staticforward PyTypeObject ntprinting_driver_Type;
staticforward PyTypeObject ntprinting_devicemode_Type;
staticforward PyTypeObject ntprinting_printer_data_Type;
staticforward PyTypeObject ntprinting_printer_info_Type;
staticforward PyTypeObject ntprinting_printer_Type;
staticforward PyTypeObject ntprinting_InterfaceType;

void initntprinting(void);static PyTypeObject *Object_Type;
static PyTypeObject *ClientConnection_Type;

static PyObject *py_ntprinting_form_get_position(PyObject *obj, void *closure)
{
	struct ntprinting_form *object = (struct ntprinting_form *)py_talloc_get_ptr(obj);
	PyObject *py_position;
	py_position = PyInt_FromLong(object->position);
	return py_position;
}

static int py_ntprinting_form_set_position(PyObject *py_obj, PyObject *value, void *closure)
{
	struct ntprinting_form *object = (struct ntprinting_form *)py_talloc_get_ptr(py_obj);
	PY_CHECK_TYPE(&PyInt_Type, value, return -1;);
	object->position = PyInt_AsLong(value);
	return 0;
}

static PyObject *py_ntprinting_form_get_flag(PyObject *obj, void *closure)
{
	struct ntprinting_form *object = (struct ntprinting_form *)py_talloc_get_ptr(obj);
	PyObject *py_flag;
	py_flag = PyInt_FromLong(object->flag);
	return py_flag;
}

static int py_ntprinting_form_set_flag(PyObject *py_obj, PyObject *value, void *closure)
{
	struct ntprinting_form *object = (struct ntprinting_form *)py_talloc_get_ptr(py_obj);
	PY_CHECK_TYPE(&PyInt_Type, value, return -1;);
	object->flag = PyInt_AsLong(value);
	return 0;
}

static PyObject *py_ntprinting_form_get_width(PyObject *obj, void *closure)
{
	struct ntprinting_form *object = (struct ntprinting_form *)py_talloc_get_ptr(obj);
	PyObject *py_width;
	py_width = PyInt_FromLong(object->width);
	return py_width;
}

static int py_ntprinting_form_set_width(PyObject *py_obj, PyObject *value, void *closure)
{
	struct ntprinting_form *object = (struct ntprinting_form *)py_talloc_get_ptr(py_obj);
	PY_CHECK_TYPE(&PyInt_Type, value, return -1;);
	object->width = PyInt_AsLong(value);
	return 0;
}

static PyObject *py_ntprinting_form_get_length(PyObject *obj, void *closure)
{
	struct ntprinting_form *object = (struct ntprinting_form *)py_talloc_get_ptr(obj);
	PyObject *py_length;
	py_length = PyInt_FromLong(object->length);
	return py_length;
}

static int py_ntprinting_form_set_length(PyObject *py_obj, PyObject *value, void *closure)
{
	struct ntprinting_form *object = (struct ntprinting_form *)py_talloc_get_ptr(py_obj);
	PY_CHECK_TYPE(&PyInt_Type, value, return -1;);
	object->length = PyInt_AsLong(value);
	return 0;
}

static PyObject *py_ntprinting_form_get_left(PyObject *obj, void *closure)
{
	struct ntprinting_form *object = (struct ntprinting_form *)py_talloc_get_ptr(obj);
	PyObject *py_left;
	py_left = PyInt_FromLong(object->left);
	return py_left;
}

static int py_ntprinting_form_set_left(PyObject *py_obj, PyObject *value, void *closure)
{
	struct ntprinting_form *object = (struct ntprinting_form *)py_talloc_get_ptr(py_obj);
	PY_CHECK_TYPE(&PyInt_Type, value, return -1;);
	object->left = PyInt_AsLong(value);
	return 0;
}

static PyObject *py_ntprinting_form_get_top(PyObject *obj, void *closure)
{
	struct ntprinting_form *object = (struct ntprinting_form *)py_talloc_get_ptr(obj);
	PyObject *py_top;
	py_top = PyInt_FromLong(object->top);
	return py_top;
}

static int py_ntprinting_form_set_top(PyObject *py_obj, PyObject *value, void *closure)
{
	struct ntprinting_form *object = (struct ntprinting_form *)py_talloc_get_ptr(py_obj);
	PY_CHECK_TYPE(&PyInt_Type, value, return -1;);
	object->top = PyInt_AsLong(value);
	return 0;
}

static PyObject *py_ntprinting_form_get_right(PyObject *obj, void *closure)
{
	struct ntprinting_form *object = (struct ntprinting_form *)py_talloc_get_ptr(obj);
	PyObject *py_right;
	py_right = PyInt_FromLong(object->right);
	return py_right;
}

static int py_ntprinting_form_set_right(PyObject *py_obj, PyObject *value, void *closure)
{
	struct ntprinting_form *object = (struct ntprinting_form *)py_talloc_get_ptr(py_obj);
	PY_CHECK_TYPE(&PyInt_Type, value, return -1;);
	object->right = PyInt_AsLong(value);
	return 0;
}

static PyObject *py_ntprinting_form_get_bottom(PyObject *obj, void *closure)
{
	struct ntprinting_form *object = (struct ntprinting_form *)py_talloc_get_ptr(obj);
	PyObject *py_bottom;
	py_bottom = PyInt_FromLong(object->bottom);
	return py_bottom;
}

static int py_ntprinting_form_set_bottom(PyObject *py_obj, PyObject *value, void *closure)
{
	struct ntprinting_form *object = (struct ntprinting_form *)py_talloc_get_ptr(py_obj);
	PY_CHECK_TYPE(&PyInt_Type, value, return -1;);
	object->bottom = PyInt_AsLong(value);
	return 0;
}

static PyGetSetDef py_ntprinting_form_getsetters[] = {
	{ discard_const_p(char, "position"), py_ntprinting_form_get_position, py_ntprinting_form_set_position },
	{ discard_const_p(char, "flag"), py_ntprinting_form_get_flag, py_ntprinting_form_set_flag },
	{ discard_const_p(char, "width"), py_ntprinting_form_get_width, py_ntprinting_form_set_width },
	{ discard_const_p(char, "length"), py_ntprinting_form_get_length, py_ntprinting_form_set_length },
	{ discard_const_p(char, "left"), py_ntprinting_form_get_left, py_ntprinting_form_set_left },
	{ discard_const_p(char, "top"), py_ntprinting_form_get_top, py_ntprinting_form_set_top },
	{ discard_const_p(char, "right"), py_ntprinting_form_get_right, py_ntprinting_form_set_right },
	{ discard_const_p(char, "bottom"), py_ntprinting_form_get_bottom, py_ntprinting_form_set_bottom },
	{ NULL }
};

static PyObject *py_ntprinting_form_new(PyTypeObject *type, PyObject *args, PyObject *kwargs)
{
	return py_talloc_new(struct ntprinting_form, type);
}

static PyObject *py_ntprinting_form_ndr_pack(PyObject *py_obj)
{
	struct ntprinting_form *object = (struct ntprinting_form *)py_talloc_get_ptr(py_obj);
	DATA_BLOB blob;
	enum ndr_err_code err;
	err = ndr_push_struct_blob(&blob, py_talloc_get_mem_ctx(py_obj), object, (ndr_push_flags_fn_t)ndr_push_ntprinting_form);
	if (err != NDR_ERR_SUCCESS) {
		PyErr_SetNdrError(err);
		return NULL;
	}

	return PyString_FromStringAndSize((char *)blob.data, blob.length);
}

static PyObject *py_ntprinting_form_ndr_unpack(PyObject *py_obj, PyObject *args)
{
	struct ntprinting_form *object = (struct ntprinting_form *)py_talloc_get_ptr(py_obj);
	DATA_BLOB blob;
	enum ndr_err_code err;
	if (!PyArg_ParseTuple(args, "s#:__ndr_unpack__", &blob.data, &blob.length))
		return NULL;

	err = ndr_pull_struct_blob_all(&blob, py_talloc_get_mem_ctx(py_obj), object, (ndr_pull_flags_fn_t)ndr_pull_ntprinting_form);
	if (err != NDR_ERR_SUCCESS) {
		PyErr_SetNdrError(err);
		return NULL;
	}

	Py_RETURN_NONE;
}

static PyObject *py_ntprinting_form_ndr_print(PyObject *py_obj)
{
	struct ntprinting_form *object = (struct ntprinting_form *)py_talloc_get_ptr(py_obj);
	PyObject *ret;
	char *retstr;

	retstr = ndr_print_struct_string(py_talloc_get_mem_ctx(py_obj), (ndr_print_fn_t)ndr_print_ntprinting_form, "ntprinting_form", object);
	ret = PyString_FromString(retstr);
	talloc_free(retstr);

	return ret;
}

static PyMethodDef py_ntprinting_form_methods[] = {
	{ "__ndr_pack__", (PyCFunction)py_ntprinting_form_ndr_pack, METH_NOARGS, "S.ndr_pack(object) -> blob\nNDR pack" },
	{ "__ndr_unpack__", (PyCFunction)py_ntprinting_form_ndr_unpack, METH_VARARGS, "S.ndr_unpack(class, blob) -> None\nNDR unpack" },
	{ "__ndr_print__", (PyCFunction)py_ntprinting_form_ndr_print, METH_VARARGS, "S.ndr_print(object) -> None\nNDR print" },
	{ NULL, NULL, 0, NULL }
};


static PyTypeObject ntprinting_form_Type = {
	PyObject_HEAD_INIT(NULL) 0,
	.tp_name = "ntprinting.form",
	.tp_getset = py_ntprinting_form_getsetters,
	.tp_methods = py_ntprinting_form_methods,
	.tp_flags = Py_TPFLAGS_DEFAULT | Py_TPFLAGS_BASETYPE,
	.tp_basicsize = sizeof(py_talloc_Object),
	.tp_new = py_ntprinting_form_new,
};


static PyObject *py_ntprinting_driver_get_version(PyObject *obj, void *closure)
{
	struct ntprinting_driver *object = (struct ntprinting_driver *)py_talloc_get_ptr(obj);
	PyObject *py_version;
	py_version = PyInt_FromLong(object->version);
	return py_version;
}

static int py_ntprinting_driver_set_version(PyObject *py_obj, PyObject *value, void *closure)
{
	struct ntprinting_driver *object = (struct ntprinting_driver *)py_talloc_get_ptr(py_obj);
	PY_CHECK_TYPE(&PyInt_Type, value, return -1;);
	object->version = PyInt_AsLong(value);
	return 0;
}

static PyObject *py_ntprinting_driver_get_name(PyObject *obj, void *closure)
{
	struct ntprinting_driver *object = (struct ntprinting_driver *)py_talloc_get_ptr(obj);
	PyObject *py_name;
	py_name = PyString_FromStringOrNULL(object->name);
	return py_name;
}

static int py_ntprinting_driver_set_name(PyObject *py_obj, PyObject *value, void *closure)
{
	struct ntprinting_driver *object = (struct ntprinting_driver *)py_talloc_get_ptr(py_obj);
	object->name = talloc_strdup(py_talloc_get_mem_ctx(py_obj), PyString_AS_STRING(value));
	return 0;
}

static PyObject *py_ntprinting_driver_get_environment(PyObject *obj, void *closure)
{
	struct ntprinting_driver *object = (struct ntprinting_driver *)py_talloc_get_ptr(obj);
	PyObject *py_environment;
	py_environment = PyString_FromStringOrNULL(object->environment);
	return py_environment;
}

static int py_ntprinting_driver_set_environment(PyObject *py_obj, PyObject *value, void *closure)
{
	struct ntprinting_driver *object = (struct ntprinting_driver *)py_talloc_get_ptr(py_obj);
	object->environment = talloc_strdup(py_talloc_get_mem_ctx(py_obj), PyString_AS_STRING(value));
	return 0;
}

static PyObject *py_ntprinting_driver_get_driverpath(PyObject *obj, void *closure)
{
	struct ntprinting_driver *object = (struct ntprinting_driver *)py_talloc_get_ptr(obj);
	PyObject *py_driverpath;
	py_driverpath = PyString_FromStringOrNULL(object->driverpath);
	return py_driverpath;
}

static int py_ntprinting_driver_set_driverpath(PyObject *py_obj, PyObject *value, void *closure)
{
	struct ntprinting_driver *object = (struct ntprinting_driver *)py_talloc_get_ptr(py_obj);
	object->driverpath = talloc_strdup(py_talloc_get_mem_ctx(py_obj), PyString_AS_STRING(value));
	return 0;
}

static PyObject *py_ntprinting_driver_get_datafile(PyObject *obj, void *closure)
{
	struct ntprinting_driver *object = (struct ntprinting_driver *)py_talloc_get_ptr(obj);
	PyObject *py_datafile;
	py_datafile = PyString_FromStringOrNULL(object->datafile);
	return py_datafile;
}

static int py_ntprinting_driver_set_datafile(PyObject *py_obj, PyObject *value, void *closure)
{
	struct ntprinting_driver *object = (struct ntprinting_driver *)py_talloc_get_ptr(py_obj);
	object->datafile = talloc_strdup(py_talloc_get_mem_ctx(py_obj), PyString_AS_STRING(value));
	return 0;
}

static PyObject *py_ntprinting_driver_get_configfile(PyObject *obj, void *closure)
{
	struct ntprinting_driver *object = (struct ntprinting_driver *)py_talloc_get_ptr(obj);
	PyObject *py_configfile;
	py_configfile = PyString_FromStringOrNULL(object->configfile);
	return py_configfile;
}

static int py_ntprinting_driver_set_configfile(PyObject *py_obj, PyObject *value, void *closure)
{
	struct ntprinting_driver *object = (struct ntprinting_driver *)py_talloc_get_ptr(py_obj);
	object->configfile = talloc_strdup(py_talloc_get_mem_ctx(py_obj), PyString_AS_STRING(value));
	return 0;
}

static PyObject *py_ntprinting_driver_get_helpfile(PyObject *obj, void *closure)
{
	struct ntprinting_driver *object = (struct ntprinting_driver *)py_talloc_get_ptr(obj);
	PyObject *py_helpfile;
	py_helpfile = PyString_FromStringOrNULL(object->helpfile);
	return py_helpfile;
}

static int py_ntprinting_driver_set_helpfile(PyObject *py_obj, PyObject *value, void *closure)
{
	struct ntprinting_driver *object = (struct ntprinting_driver *)py_talloc_get_ptr(py_obj);
	object->helpfile = talloc_strdup(py_talloc_get_mem_ctx(py_obj), PyString_AS_STRING(value));
	return 0;
}

static PyObject *py_ntprinting_driver_get_monitorname(PyObject *obj, void *closure)
{
	struct ntprinting_driver *object = (struct ntprinting_driver *)py_talloc_get_ptr(obj);
	PyObject *py_monitorname;
	py_monitorname = PyString_FromStringOrNULL(object->monitorname);
	return py_monitorname;
}

static int py_ntprinting_driver_set_monitorname(PyObject *py_obj, PyObject *value, void *closure)
{
	struct ntprinting_driver *object = (struct ntprinting_driver *)py_talloc_get_ptr(py_obj);
	object->monitorname = talloc_strdup(py_talloc_get_mem_ctx(py_obj), PyString_AS_STRING(value));
	return 0;
}

static PyObject *py_ntprinting_driver_get_defaultdatatype(PyObject *obj, void *closure)
{
	struct ntprinting_driver *object = (struct ntprinting_driver *)py_talloc_get_ptr(obj);
	PyObject *py_defaultdatatype;
	py_defaultdatatype = PyString_FromStringOrNULL(object->defaultdatatype);
	return py_defaultdatatype;
}

static int py_ntprinting_driver_set_defaultdatatype(PyObject *py_obj, PyObject *value, void *closure)
{
	struct ntprinting_driver *object = (struct ntprinting_driver *)py_talloc_get_ptr(py_obj);
	object->defaultdatatype = talloc_strdup(py_talloc_get_mem_ctx(py_obj), PyString_AS_STRING(value));
	return 0;
}

static PyObject *py_ntprinting_driver_get_dependent_files(PyObject *obj, void *closure)
{
	struct ntprinting_driver *object = (struct ntprinting_driver *)py_talloc_get_ptr(obj);
	PyObject *py_dependent_files;
	py_dependent_files = PyCObject_FromTallocPtr(object->dependent_files);
	return py_dependent_files;
}

static int py_ntprinting_driver_set_dependent_files(PyObject *py_obj, PyObject *value, void *closure)
{
	struct ntprinting_driver *object = (struct ntprinting_driver *)py_talloc_get_ptr(py_obj);
	object->dependent_files = PyCObject_AsVoidPtr(value);
	return 0;
}

static PyGetSetDef py_ntprinting_driver_getsetters[] = {
	{ discard_const_p(char, "version"), py_ntprinting_driver_get_version, py_ntprinting_driver_set_version },
	{ discard_const_p(char, "name"), py_ntprinting_driver_get_name, py_ntprinting_driver_set_name },
	{ discard_const_p(char, "environment"), py_ntprinting_driver_get_environment, py_ntprinting_driver_set_environment },
	{ discard_const_p(char, "driverpath"), py_ntprinting_driver_get_driverpath, py_ntprinting_driver_set_driverpath },
	{ discard_const_p(char, "datafile"), py_ntprinting_driver_get_datafile, py_ntprinting_driver_set_datafile },
	{ discard_const_p(char, "configfile"), py_ntprinting_driver_get_configfile, py_ntprinting_driver_set_configfile },
	{ discard_const_p(char, "helpfile"), py_ntprinting_driver_get_helpfile, py_ntprinting_driver_set_helpfile },
	{ discard_const_p(char, "monitorname"), py_ntprinting_driver_get_monitorname, py_ntprinting_driver_set_monitorname },
	{ discard_const_p(char, "defaultdatatype"), py_ntprinting_driver_get_defaultdatatype, py_ntprinting_driver_set_defaultdatatype },
	{ discard_const_p(char, "dependent_files"), py_ntprinting_driver_get_dependent_files, py_ntprinting_driver_set_dependent_files },
	{ NULL }
};

static PyObject *py_ntprinting_driver_new(PyTypeObject *type, PyObject *args, PyObject *kwargs)
{
	return py_talloc_new(struct ntprinting_driver, type);
}

static PyObject *py_ntprinting_driver_ndr_pack(PyObject *py_obj)
{
	struct ntprinting_driver *object = (struct ntprinting_driver *)py_talloc_get_ptr(py_obj);
	DATA_BLOB blob;
	enum ndr_err_code err;
	err = ndr_push_struct_blob(&blob, py_talloc_get_mem_ctx(py_obj), object, (ndr_push_flags_fn_t)ndr_push_ntprinting_driver);
	if (err != NDR_ERR_SUCCESS) {
		PyErr_SetNdrError(err);
		return NULL;
	}

	return PyString_FromStringAndSize((char *)blob.data, blob.length);
}

static PyObject *py_ntprinting_driver_ndr_unpack(PyObject *py_obj, PyObject *args)
{
	struct ntprinting_driver *object = (struct ntprinting_driver *)py_talloc_get_ptr(py_obj);
	DATA_BLOB blob;
	enum ndr_err_code err;
	if (!PyArg_ParseTuple(args, "s#:__ndr_unpack__", &blob.data, &blob.length))
		return NULL;

	err = ndr_pull_struct_blob_all(&blob, py_talloc_get_mem_ctx(py_obj), object, (ndr_pull_flags_fn_t)ndr_pull_ntprinting_driver);
	if (err != NDR_ERR_SUCCESS) {
		PyErr_SetNdrError(err);
		return NULL;
	}

	Py_RETURN_NONE;
}

static PyObject *py_ntprinting_driver_ndr_print(PyObject *py_obj)
{
	struct ntprinting_driver *object = (struct ntprinting_driver *)py_talloc_get_ptr(py_obj);
	PyObject *ret;
	char *retstr;

	retstr = ndr_print_struct_string(py_talloc_get_mem_ctx(py_obj), (ndr_print_fn_t)ndr_print_ntprinting_driver, "ntprinting_driver", object);
	ret = PyString_FromString(retstr);
	talloc_free(retstr);

	return ret;
}

static PyMethodDef py_ntprinting_driver_methods[] = {
	{ "__ndr_pack__", (PyCFunction)py_ntprinting_driver_ndr_pack, METH_NOARGS, "S.ndr_pack(object) -> blob\nNDR pack" },
	{ "__ndr_unpack__", (PyCFunction)py_ntprinting_driver_ndr_unpack, METH_VARARGS, "S.ndr_unpack(class, blob) -> None\nNDR unpack" },
	{ "__ndr_print__", (PyCFunction)py_ntprinting_driver_ndr_print, METH_VARARGS, "S.ndr_print(object) -> None\nNDR print" },
	{ NULL, NULL, 0, NULL }
};


static PyTypeObject ntprinting_driver_Type = {
	PyObject_HEAD_INIT(NULL) 0,
	.tp_name = "ntprinting.driver",
	.tp_getset = py_ntprinting_driver_getsetters,
	.tp_methods = py_ntprinting_driver_methods,
	.tp_flags = Py_TPFLAGS_DEFAULT | Py_TPFLAGS_BASETYPE,
	.tp_basicsize = sizeof(py_talloc_Object),
	.tp_new = py_ntprinting_driver_new,
};


static PyObject *py_ntprinting_devicemode_get_devicename(PyObject *obj, void *closure)
{
	struct ntprinting_devicemode *object = (struct ntprinting_devicemode *)py_talloc_get_ptr(obj);
	PyObject *py_devicename;
	py_devicename = PyString_FromStringOrNULL(object->devicename);
	return py_devicename;
}

static int py_ntprinting_devicemode_set_devicename(PyObject *py_obj, PyObject *value, void *closure)
{
	struct ntprinting_devicemode *object = (struct ntprinting_devicemode *)py_talloc_get_ptr(py_obj);
	object->devicename = talloc_strdup(py_talloc_get_mem_ctx(py_obj), PyString_AS_STRING(value));
	return 0;
}

static PyObject *py_ntprinting_devicemode_get_formname(PyObject *obj, void *closure)
{
	struct ntprinting_devicemode *object = (struct ntprinting_devicemode *)py_talloc_get_ptr(obj);
	PyObject *py_formname;
	py_formname = PyString_FromStringOrNULL(object->formname);
	return py_formname;
}

static int py_ntprinting_devicemode_set_formname(PyObject *py_obj, PyObject *value, void *closure)
{
	struct ntprinting_devicemode *object = (struct ntprinting_devicemode *)py_talloc_get_ptr(py_obj);
	object->formname = talloc_strdup(py_talloc_get_mem_ctx(py_obj), PyString_AS_STRING(value));
	return 0;
}

static PyObject *py_ntprinting_devicemode_get_specversion(PyObject *obj, void *closure)
{
	struct ntprinting_devicemode *object = (struct ntprinting_devicemode *)py_talloc_get_ptr(obj);
	PyObject *py_specversion;
	py_specversion = PyInt_FromLong(object->specversion);
	return py_specversion;
}

static int py_ntprinting_devicemode_set_specversion(PyObject *py_obj, PyObject *value, void *closure)
{
	struct ntprinting_devicemode *object = (struct ntprinting_devicemode *)py_talloc_get_ptr(py_obj);
	PY_CHECK_TYPE(&PyInt_Type, value, return -1;);
	object->specversion = PyInt_AsLong(value);
	return 0;
}

static PyObject *py_ntprinting_devicemode_get_driverversion(PyObject *obj, void *closure)
{
	struct ntprinting_devicemode *object = (struct ntprinting_devicemode *)py_talloc_get_ptr(obj);
	PyObject *py_driverversion;
	py_driverversion = PyInt_FromLong(object->driverversion);
	return py_driverversion;
}

static int py_ntprinting_devicemode_set_driverversion(PyObject *py_obj, PyObject *value, void *closure)
{
	struct ntprinting_devicemode *object = (struct ntprinting_devicemode *)py_talloc_get_ptr(py_obj);
	PY_CHECK_TYPE(&PyInt_Type, value, return -1;);
	object->driverversion = PyInt_AsLong(value);
	return 0;
}

static PyObject *py_ntprinting_devicemode_get_size(PyObject *obj, void *closure)
{
	struct ntprinting_devicemode *object = (struct ntprinting_devicemode *)py_talloc_get_ptr(obj);
	PyObject *py_size;
	py_size = PyInt_FromLong(object->size);
	return py_size;
}

static int py_ntprinting_devicemode_set_size(PyObject *py_obj, PyObject *value, void *closure)
{
	struct ntprinting_devicemode *object = (struct ntprinting_devicemode *)py_talloc_get_ptr(py_obj);
	PY_CHECK_TYPE(&PyInt_Type, value, return -1;);
	object->size = PyInt_AsLong(value);
	return 0;
}

static PyObject *py_ntprinting_devicemode_get_driverextra(PyObject *obj, void *closure)
{
	struct ntprinting_devicemode *object = (struct ntprinting_devicemode *)py_talloc_get_ptr(obj);
	PyObject *py_driverextra;
	py_driverextra = PyInt_FromLong(object->driverextra);
	return py_driverextra;
}

static int py_ntprinting_devicemode_set_driverextra(PyObject *py_obj, PyObject *value, void *closure)
{
	struct ntprinting_devicemode *object = (struct ntprinting_devicemode *)py_talloc_get_ptr(py_obj);
	PY_CHECK_TYPE(&PyInt_Type, value, return -1;);
	object->driverextra = PyInt_AsLong(value);
	return 0;
}

static PyObject *py_ntprinting_devicemode_get_orientation(PyObject *obj, void *closure)
{
	struct ntprinting_devicemode *object = (struct ntprinting_devicemode *)py_talloc_get_ptr(obj);
	PyObject *py_orientation;
	py_orientation = PyInt_FromLong(object->orientation);
	return py_orientation;
}

static int py_ntprinting_devicemode_set_orientation(PyObject *py_obj, PyObject *value, void *closure)
{
	struct ntprinting_devicemode *object = (struct ntprinting_devicemode *)py_talloc_get_ptr(py_obj);
	PY_CHECK_TYPE(&PyInt_Type, value, return -1;);
	object->orientation = PyInt_AsLong(value);
	return 0;
}

static PyObject *py_ntprinting_devicemode_get_papersize(PyObject *obj, void *closure)
{
	struct ntprinting_devicemode *object = (struct ntprinting_devicemode *)py_talloc_get_ptr(obj);
	PyObject *py_papersize;
	py_papersize = PyInt_FromLong(object->papersize);
	return py_papersize;
}

static int py_ntprinting_devicemode_set_papersize(PyObject *py_obj, PyObject *value, void *closure)
{
	struct ntprinting_devicemode *object = (struct ntprinting_devicemode *)py_talloc_get_ptr(py_obj);
	PY_CHECK_TYPE(&PyInt_Type, value, return -1;);
	object->papersize = PyInt_AsLong(value);
	return 0;
}

static PyObject *py_ntprinting_devicemode_get_paperlength(PyObject *obj, void *closure)
{
	struct ntprinting_devicemode *object = (struct ntprinting_devicemode *)py_talloc_get_ptr(obj);
	PyObject *py_paperlength;
	py_paperlength = PyInt_FromLong(object->paperlength);
	return py_paperlength;
}

static int py_ntprinting_devicemode_set_paperlength(PyObject *py_obj, PyObject *value, void *closure)
{
	struct ntprinting_devicemode *object = (struct ntprinting_devicemode *)py_talloc_get_ptr(py_obj);
	PY_CHECK_TYPE(&PyInt_Type, value, return -1;);
	object->paperlength = PyInt_AsLong(value);
	return 0;
}

static PyObject *py_ntprinting_devicemode_get_paperwidth(PyObject *obj, void *closure)
{
	struct ntprinting_devicemode *object = (struct ntprinting_devicemode *)py_talloc_get_ptr(obj);
	PyObject *py_paperwidth;
	py_paperwidth = PyInt_FromLong(object->paperwidth);
	return py_paperwidth;
}

static int py_ntprinting_devicemode_set_paperwidth(PyObject *py_obj, PyObject *value, void *closure)
{
	struct ntprinting_devicemode *object = (struct ntprinting_devicemode *)py_talloc_get_ptr(py_obj);
	PY_CHECK_TYPE(&PyInt_Type, value, return -1;);
	object->paperwidth = PyInt_AsLong(value);
	return 0;
}

static PyObject *py_ntprinting_devicemode_get_scale(PyObject *obj, void *closure)
{
	struct ntprinting_devicemode *object = (struct ntprinting_devicemode *)py_talloc_get_ptr(obj);
	PyObject *py_scale;
	py_scale = PyInt_FromLong(object->scale);
	return py_scale;
}

static int py_ntprinting_devicemode_set_scale(PyObject *py_obj, PyObject *value, void *closure)
{
	struct ntprinting_devicemode *object = (struct ntprinting_devicemode *)py_talloc_get_ptr(py_obj);
	PY_CHECK_TYPE(&PyInt_Type, value, return -1;);
	object->scale = PyInt_AsLong(value);
	return 0;
}

static PyObject *py_ntprinting_devicemode_get_copies(PyObject *obj, void *closure)
{
	struct ntprinting_devicemode *object = (struct ntprinting_devicemode *)py_talloc_get_ptr(obj);
	PyObject *py_copies;
	py_copies = PyInt_FromLong(object->copies);
	return py_copies;
}

static int py_ntprinting_devicemode_set_copies(PyObject *py_obj, PyObject *value, void *closure)
{
	struct ntprinting_devicemode *object = (struct ntprinting_devicemode *)py_talloc_get_ptr(py_obj);
	PY_CHECK_TYPE(&PyInt_Type, value, return -1;);
	object->copies = PyInt_AsLong(value);
	return 0;
}

static PyObject *py_ntprinting_devicemode_get_defaultsource(PyObject *obj, void *closure)
{
	struct ntprinting_devicemode *object = (struct ntprinting_devicemode *)py_talloc_get_ptr(obj);
	PyObject *py_defaultsource;
	py_defaultsource = PyInt_FromLong(object->defaultsource);
	return py_defaultsource;
}

static int py_ntprinting_devicemode_set_defaultsource(PyObject *py_obj, PyObject *value, void *closure)
{
	struct ntprinting_devicemode *object = (struct ntprinting_devicemode *)py_talloc_get_ptr(py_obj);
	PY_CHECK_TYPE(&PyInt_Type, value, return -1;);
	object->defaultsource = PyInt_AsLong(value);
	return 0;
}

static PyObject *py_ntprinting_devicemode_get_printquality(PyObject *obj, void *closure)
{
	struct ntprinting_devicemode *object = (struct ntprinting_devicemode *)py_talloc_get_ptr(obj);
	PyObject *py_printquality;
	py_printquality = PyInt_FromLong(object->printquality);
	return py_printquality;
}

static int py_ntprinting_devicemode_set_printquality(PyObject *py_obj, PyObject *value, void *closure)
{
	struct ntprinting_devicemode *object = (struct ntprinting_devicemode *)py_talloc_get_ptr(py_obj);
	PY_CHECK_TYPE(&PyInt_Type, value, return -1;);
	object->printquality = PyInt_AsLong(value);
	return 0;
}

static PyObject *py_ntprinting_devicemode_get_color(PyObject *obj, void *closure)
{
	struct ntprinting_devicemode *object = (struct ntprinting_devicemode *)py_talloc_get_ptr(obj);
	PyObject *py_color;
	py_color = PyInt_FromLong(object->color);
	return py_color;
}

static int py_ntprinting_devicemode_set_color(PyObject *py_obj, PyObject *value, void *closure)
{
	struct ntprinting_devicemode *object = (struct ntprinting_devicemode *)py_talloc_get_ptr(py_obj);
	PY_CHECK_TYPE(&PyInt_Type, value, return -1;);
	object->color = PyInt_AsLong(value);
	return 0;
}

static PyObject *py_ntprinting_devicemode_get_duplex(PyObject *obj, void *closure)
{
	struct ntprinting_devicemode *object = (struct ntprinting_devicemode *)py_talloc_get_ptr(obj);
	PyObject *py_duplex;
	py_duplex = PyInt_FromLong(object->duplex);
	return py_duplex;
}

static int py_ntprinting_devicemode_set_duplex(PyObject *py_obj, PyObject *value, void *closure)
{
	struct ntprinting_devicemode *object = (struct ntprinting_devicemode *)py_talloc_get_ptr(py_obj);
	PY_CHECK_TYPE(&PyInt_Type, value, return -1;);
	object->duplex = PyInt_AsLong(value);
	return 0;
}

static PyObject *py_ntprinting_devicemode_get_yresolution(PyObject *obj, void *closure)
{
	struct ntprinting_devicemode *object = (struct ntprinting_devicemode *)py_talloc_get_ptr(obj);
	PyObject *py_yresolution;
	py_yresolution = PyInt_FromLong(object->yresolution);
	return py_yresolution;
}

static int py_ntprinting_devicemode_set_yresolution(PyObject *py_obj, PyObject *value, void *closure)
{
	struct ntprinting_devicemode *object = (struct ntprinting_devicemode *)py_talloc_get_ptr(py_obj);
	PY_CHECK_TYPE(&PyInt_Type, value, return -1;);
	object->yresolution = PyInt_AsLong(value);
	return 0;
}

static PyObject *py_ntprinting_devicemode_get_ttoption(PyObject *obj, void *closure)
{
	struct ntprinting_devicemode *object = (struct ntprinting_devicemode *)py_talloc_get_ptr(obj);
	PyObject *py_ttoption;
	py_ttoption = PyInt_FromLong(object->ttoption);
	return py_ttoption;
}

static int py_ntprinting_devicemode_set_ttoption(PyObject *py_obj, PyObject *value, void *closure)
{
	struct ntprinting_devicemode *object = (struct ntprinting_devicemode *)py_talloc_get_ptr(py_obj);
	PY_CHECK_TYPE(&PyInt_Type, value, return -1;);
	object->ttoption = PyInt_AsLong(value);
	return 0;
}

static PyObject *py_ntprinting_devicemode_get_collate(PyObject *obj, void *closure)
{
	struct ntprinting_devicemode *object = (struct ntprinting_devicemode *)py_talloc_get_ptr(obj);
	PyObject *py_collate;
	py_collate = PyInt_FromLong(object->collate);
	return py_collate;
}

static int py_ntprinting_devicemode_set_collate(PyObject *py_obj, PyObject *value, void *closure)
{
	struct ntprinting_devicemode *object = (struct ntprinting_devicemode *)py_talloc_get_ptr(py_obj);
	PY_CHECK_TYPE(&PyInt_Type, value, return -1;);
	object->collate = PyInt_AsLong(value);
	return 0;
}

static PyObject *py_ntprinting_devicemode_get_logpixels(PyObject *obj, void *closure)
{
	struct ntprinting_devicemode *object = (struct ntprinting_devicemode *)py_talloc_get_ptr(obj);
	PyObject *py_logpixels;
	py_logpixels = PyInt_FromLong(object->logpixels);
	return py_logpixels;
}

static int py_ntprinting_devicemode_set_logpixels(PyObject *py_obj, PyObject *value, void *closure)
{
	struct ntprinting_devicemode *object = (struct ntprinting_devicemode *)py_talloc_get_ptr(py_obj);
	PY_CHECK_TYPE(&PyInt_Type, value, return -1;);
	object->logpixels = PyInt_AsLong(value);
	return 0;
}

static PyObject *py_ntprinting_devicemode_get_fields(PyObject *obj, void *closure)
{
	struct ntprinting_devicemode *object = (struct ntprinting_devicemode *)py_talloc_get_ptr(obj);
	PyObject *py_fields;
	py_fields = PyInt_FromLong(object->fields);
	return py_fields;
}

static int py_ntprinting_devicemode_set_fields(PyObject *py_obj, PyObject *value, void *closure)
{
	struct ntprinting_devicemode *object = (struct ntprinting_devicemode *)py_talloc_get_ptr(py_obj);
	PY_CHECK_TYPE(&PyInt_Type, value, return -1;);
	object->fields = PyInt_AsLong(value);
	return 0;
}

static PyObject *py_ntprinting_devicemode_get_bitsperpel(PyObject *obj, void *closure)
{
	struct ntprinting_devicemode *object = (struct ntprinting_devicemode *)py_talloc_get_ptr(obj);
	PyObject *py_bitsperpel;
	py_bitsperpel = PyInt_FromLong(object->bitsperpel);
	return py_bitsperpel;
}

static int py_ntprinting_devicemode_set_bitsperpel(PyObject *py_obj, PyObject *value, void *closure)
{
	struct ntprinting_devicemode *object = (struct ntprinting_devicemode *)py_talloc_get_ptr(py_obj);
	PY_CHECK_TYPE(&PyInt_Type, value, return -1;);
	object->bitsperpel = PyInt_AsLong(value);
	return 0;
}

static PyObject *py_ntprinting_devicemode_get_pelswidth(PyObject *obj, void *closure)
{
	struct ntprinting_devicemode *object = (struct ntprinting_devicemode *)py_talloc_get_ptr(obj);
	PyObject *py_pelswidth;
	py_pelswidth = PyInt_FromLong(object->pelswidth);
	return py_pelswidth;
}

static int py_ntprinting_devicemode_set_pelswidth(PyObject *py_obj, PyObject *value, void *closure)
{
	struct ntprinting_devicemode *object = (struct ntprinting_devicemode *)py_talloc_get_ptr(py_obj);
	PY_CHECK_TYPE(&PyInt_Type, value, return -1;);
	object->pelswidth = PyInt_AsLong(value);
	return 0;
}

static PyObject *py_ntprinting_devicemode_get_pelsheight(PyObject *obj, void *closure)
{
	struct ntprinting_devicemode *object = (struct ntprinting_devicemode *)py_talloc_get_ptr(obj);
	PyObject *py_pelsheight;
	py_pelsheight = PyInt_FromLong(object->pelsheight);
	return py_pelsheight;
}

static int py_ntprinting_devicemode_set_pelsheight(PyObject *py_obj, PyObject *value, void *closure)
{
	struct ntprinting_devicemode *object = (struct ntprinting_devicemode *)py_talloc_get_ptr(py_obj);
	PY_CHECK_TYPE(&PyInt_Type, value, return -1;);
	object->pelsheight = PyInt_AsLong(value);
	return 0;
}

static PyObject *py_ntprinting_devicemode_get_displayflags(PyObject *obj, void *closure)
{
	struct ntprinting_devicemode *object = (struct ntprinting_devicemode *)py_talloc_get_ptr(obj);
	PyObject *py_displayflags;
	py_displayflags = PyInt_FromLong(object->displayflags);
	return py_displayflags;
}

static int py_ntprinting_devicemode_set_displayflags(PyObject *py_obj, PyObject *value, void *closure)
{
	struct ntprinting_devicemode *object = (struct ntprinting_devicemode *)py_talloc_get_ptr(py_obj);
	PY_CHECK_TYPE(&PyInt_Type, value, return -1;);
	object->displayflags = PyInt_AsLong(value);
	return 0;
}

static PyObject *py_ntprinting_devicemode_get_displayfrequency(PyObject *obj, void *closure)
{
	struct ntprinting_devicemode *object = (struct ntprinting_devicemode *)py_talloc_get_ptr(obj);
	PyObject *py_displayfrequency;
	py_displayfrequency = PyInt_FromLong(object->displayfrequency);
	return py_displayfrequency;
}

static int py_ntprinting_devicemode_set_displayfrequency(PyObject *py_obj, PyObject *value, void *closure)
{
	struct ntprinting_devicemode *object = (struct ntprinting_devicemode *)py_talloc_get_ptr(py_obj);
	PY_CHECK_TYPE(&PyInt_Type, value, return -1;);
	object->displayfrequency = PyInt_AsLong(value);
	return 0;
}

static PyObject *py_ntprinting_devicemode_get_icmmethod(PyObject *obj, void *closure)
{
	struct ntprinting_devicemode *object = (struct ntprinting_devicemode *)py_talloc_get_ptr(obj);
	PyObject *py_icmmethod;
	py_icmmethod = PyInt_FromLong(object->icmmethod);
	return py_icmmethod;
}

static int py_ntprinting_devicemode_set_icmmethod(PyObject *py_obj, PyObject *value, void *closure)
{
	struct ntprinting_devicemode *object = (struct ntprinting_devicemode *)py_talloc_get_ptr(py_obj);
	PY_CHECK_TYPE(&PyInt_Type, value, return -1;);
	object->icmmethod = PyInt_AsLong(value);
	return 0;
}

static PyObject *py_ntprinting_devicemode_get_icmintent(PyObject *obj, void *closure)
{
	struct ntprinting_devicemode *object = (struct ntprinting_devicemode *)py_talloc_get_ptr(obj);
	PyObject *py_icmintent;
	py_icmintent = PyInt_FromLong(object->icmintent);
	return py_icmintent;
}

static int py_ntprinting_devicemode_set_icmintent(PyObject *py_obj, PyObject *value, void *closure)
{
	struct ntprinting_devicemode *object = (struct ntprinting_devicemode *)py_talloc_get_ptr(py_obj);
	PY_CHECK_TYPE(&PyInt_Type, value, return -1;);
	object->icmintent = PyInt_AsLong(value);
	return 0;
}

static PyObject *py_ntprinting_devicemode_get_mediatype(PyObject *obj, void *closure)
{
	struct ntprinting_devicemode *object = (struct ntprinting_devicemode *)py_talloc_get_ptr(obj);
	PyObject *py_mediatype;
	py_mediatype = PyInt_FromLong(object->mediatype);
	return py_mediatype;
}

static int py_ntprinting_devicemode_set_mediatype(PyObject *py_obj, PyObject *value, void *closure)
{
	struct ntprinting_devicemode *object = (struct ntprinting_devicemode *)py_talloc_get_ptr(py_obj);
	PY_CHECK_TYPE(&PyInt_Type, value, return -1;);
	object->mediatype = PyInt_AsLong(value);
	return 0;
}

static PyObject *py_ntprinting_devicemode_get_dithertype(PyObject *obj, void *closure)
{
	struct ntprinting_devicemode *object = (struct ntprinting_devicemode *)py_talloc_get_ptr(obj);
	PyObject *py_dithertype;
	py_dithertype = PyInt_FromLong(object->dithertype);
	return py_dithertype;
}

static int py_ntprinting_devicemode_set_dithertype(PyObject *py_obj, PyObject *value, void *closure)
{
	struct ntprinting_devicemode *object = (struct ntprinting_devicemode *)py_talloc_get_ptr(py_obj);
	PY_CHECK_TYPE(&PyInt_Type, value, return -1;);
	object->dithertype = PyInt_AsLong(value);
	return 0;
}

static PyObject *py_ntprinting_devicemode_get_reserved1(PyObject *obj, void *closure)
{
	struct ntprinting_devicemode *object = (struct ntprinting_devicemode *)py_talloc_get_ptr(obj);
	PyObject *py_reserved1;
	py_reserved1 = PyInt_FromLong(object->reserved1);
	return py_reserved1;
}

static int py_ntprinting_devicemode_set_reserved1(PyObject *py_obj, PyObject *value, void *closure)
{
	struct ntprinting_devicemode *object = (struct ntprinting_devicemode *)py_talloc_get_ptr(py_obj);
	PY_CHECK_TYPE(&PyInt_Type, value, return -1;);
	object->reserved1 = PyInt_AsLong(value);
	return 0;
}

static PyObject *py_ntprinting_devicemode_get_reserved2(PyObject *obj, void *closure)
{
	struct ntprinting_devicemode *object = (struct ntprinting_devicemode *)py_talloc_get_ptr(obj);
	PyObject *py_reserved2;
	py_reserved2 = PyInt_FromLong(object->reserved2);
	return py_reserved2;
}

static int py_ntprinting_devicemode_set_reserved2(PyObject *py_obj, PyObject *value, void *closure)
{
	struct ntprinting_devicemode *object = (struct ntprinting_devicemode *)py_talloc_get_ptr(py_obj);
	PY_CHECK_TYPE(&PyInt_Type, value, return -1;);
	object->reserved2 = PyInt_AsLong(value);
	return 0;
}

static PyObject *py_ntprinting_devicemode_get_panningwidth(PyObject *obj, void *closure)
{
	struct ntprinting_devicemode *object = (struct ntprinting_devicemode *)py_talloc_get_ptr(obj);
	PyObject *py_panningwidth;
	py_panningwidth = PyInt_FromLong(object->panningwidth);
	return py_panningwidth;
}

static int py_ntprinting_devicemode_set_panningwidth(PyObject *py_obj, PyObject *value, void *closure)
{
	struct ntprinting_devicemode *object = (struct ntprinting_devicemode *)py_talloc_get_ptr(py_obj);
	PY_CHECK_TYPE(&PyInt_Type, value, return -1;);
	object->panningwidth = PyInt_AsLong(value);
	return 0;
}

static PyObject *py_ntprinting_devicemode_get_panningheight(PyObject *obj, void *closure)
{
	struct ntprinting_devicemode *object = (struct ntprinting_devicemode *)py_talloc_get_ptr(obj);
	PyObject *py_panningheight;
	py_panningheight = PyInt_FromLong(object->panningheight);
	return py_panningheight;
}

static int py_ntprinting_devicemode_set_panningheight(PyObject *py_obj, PyObject *value, void *closure)
{
	struct ntprinting_devicemode *object = (struct ntprinting_devicemode *)py_talloc_get_ptr(py_obj);
	PY_CHECK_TYPE(&PyInt_Type, value, return -1;);
	object->panningheight = PyInt_AsLong(value);
	return 0;
}

static PyObject *py_ntprinting_devicemode_get_nt_dev_private(PyObject *obj, void *closure)
{
	struct ntprinting_devicemode *object = (struct ntprinting_devicemode *)py_talloc_get_ptr(obj);
	PyObject *py_nt_dev_private;
	if (object->nt_dev_private == NULL) {
		py_nt_dev_private = Py_None;
		Py_INCREF(py_nt_dev_private);
	} else {
		py_nt_dev_private = PyString_FromStringAndSize((char *)(*object->nt_dev_private).data, (*object->nt_dev_private).length);
	}
	return py_nt_dev_private;
}

static int py_ntprinting_devicemode_set_nt_dev_private(PyObject *py_obj, PyObject *value, void *closure)
{
	struct ntprinting_devicemode *object = (struct ntprinting_devicemode *)py_talloc_get_ptr(py_obj);
	talloc_unlink(py_talloc_get_mem_ctx(py_obj), object->nt_dev_private);
	if (value == Py_None) {
		object->nt_dev_private = NULL;
	} else {
		object->nt_dev_private = talloc_ptrtype(py_talloc_get_mem_ctx(py_obj), object->nt_dev_private);
		*object->nt_dev_private = data_blob_talloc(py_talloc_get_mem_ctx(py_obj), PyString_AS_STRING(value), PyString_GET_SIZE(value));
	}
	return 0;
}

static PyGetSetDef py_ntprinting_devicemode_getsetters[] = {
	{ discard_const_p(char, "devicename"), py_ntprinting_devicemode_get_devicename, py_ntprinting_devicemode_set_devicename },
	{ discard_const_p(char, "formname"), py_ntprinting_devicemode_get_formname, py_ntprinting_devicemode_set_formname },
	{ discard_const_p(char, "specversion"), py_ntprinting_devicemode_get_specversion, py_ntprinting_devicemode_set_specversion },
	{ discard_const_p(char, "driverversion"), py_ntprinting_devicemode_get_driverversion, py_ntprinting_devicemode_set_driverversion },
	{ discard_const_p(char, "size"), py_ntprinting_devicemode_get_size, py_ntprinting_devicemode_set_size },
	{ discard_const_p(char, "driverextra"), py_ntprinting_devicemode_get_driverextra, py_ntprinting_devicemode_set_driverextra },
	{ discard_const_p(char, "orientation"), py_ntprinting_devicemode_get_orientation, py_ntprinting_devicemode_set_orientation },
	{ discard_const_p(char, "papersize"), py_ntprinting_devicemode_get_papersize, py_ntprinting_devicemode_set_papersize },
	{ discard_const_p(char, "paperlength"), py_ntprinting_devicemode_get_paperlength, py_ntprinting_devicemode_set_paperlength },
	{ discard_const_p(char, "paperwidth"), py_ntprinting_devicemode_get_paperwidth, py_ntprinting_devicemode_set_paperwidth },
	{ discard_const_p(char, "scale"), py_ntprinting_devicemode_get_scale, py_ntprinting_devicemode_set_scale },
	{ discard_const_p(char, "copies"), py_ntprinting_devicemode_get_copies, py_ntprinting_devicemode_set_copies },
	{ discard_const_p(char, "defaultsource"), py_ntprinting_devicemode_get_defaultsource, py_ntprinting_devicemode_set_defaultsource },
	{ discard_const_p(char, "printquality"), py_ntprinting_devicemode_get_printquality, py_ntprinting_devicemode_set_printquality },
	{ discard_const_p(char, "color"), py_ntprinting_devicemode_get_color, py_ntprinting_devicemode_set_color },
	{ discard_const_p(char, "duplex"), py_ntprinting_devicemode_get_duplex, py_ntprinting_devicemode_set_duplex },
	{ discard_const_p(char, "yresolution"), py_ntprinting_devicemode_get_yresolution, py_ntprinting_devicemode_set_yresolution },
	{ discard_const_p(char, "ttoption"), py_ntprinting_devicemode_get_ttoption, py_ntprinting_devicemode_set_ttoption },
	{ discard_const_p(char, "collate"), py_ntprinting_devicemode_get_collate, py_ntprinting_devicemode_set_collate },
	{ discard_const_p(char, "logpixels"), py_ntprinting_devicemode_get_logpixels, py_ntprinting_devicemode_set_logpixels },
	{ discard_const_p(char, "fields"), py_ntprinting_devicemode_get_fields, py_ntprinting_devicemode_set_fields },
	{ discard_const_p(char, "bitsperpel"), py_ntprinting_devicemode_get_bitsperpel, py_ntprinting_devicemode_set_bitsperpel },
	{ discard_const_p(char, "pelswidth"), py_ntprinting_devicemode_get_pelswidth, py_ntprinting_devicemode_set_pelswidth },
	{ discard_const_p(char, "pelsheight"), py_ntprinting_devicemode_get_pelsheight, py_ntprinting_devicemode_set_pelsheight },
	{ discard_const_p(char, "displayflags"), py_ntprinting_devicemode_get_displayflags, py_ntprinting_devicemode_set_displayflags },
	{ discard_const_p(char, "displayfrequency"), py_ntprinting_devicemode_get_displayfrequency, py_ntprinting_devicemode_set_displayfrequency },
	{ discard_const_p(char, "icmmethod"), py_ntprinting_devicemode_get_icmmethod, py_ntprinting_devicemode_set_icmmethod },
	{ discard_const_p(char, "icmintent"), py_ntprinting_devicemode_get_icmintent, py_ntprinting_devicemode_set_icmintent },
	{ discard_const_p(char, "mediatype"), py_ntprinting_devicemode_get_mediatype, py_ntprinting_devicemode_set_mediatype },
	{ discard_const_p(char, "dithertype"), py_ntprinting_devicemode_get_dithertype, py_ntprinting_devicemode_set_dithertype },
	{ discard_const_p(char, "reserved1"), py_ntprinting_devicemode_get_reserved1, py_ntprinting_devicemode_set_reserved1 },
	{ discard_const_p(char, "reserved2"), py_ntprinting_devicemode_get_reserved2, py_ntprinting_devicemode_set_reserved2 },
	{ discard_const_p(char, "panningwidth"), py_ntprinting_devicemode_get_panningwidth, py_ntprinting_devicemode_set_panningwidth },
	{ discard_const_p(char, "panningheight"), py_ntprinting_devicemode_get_panningheight, py_ntprinting_devicemode_set_panningheight },
	{ discard_const_p(char, "nt_dev_private"), py_ntprinting_devicemode_get_nt_dev_private, py_ntprinting_devicemode_set_nt_dev_private },
	{ NULL }
};

static PyObject *py_ntprinting_devicemode_new(PyTypeObject *type, PyObject *args, PyObject *kwargs)
{
	return py_talloc_new(struct ntprinting_devicemode, type);
}

static PyObject *py_ntprinting_devicemode_ndr_pack(PyObject *py_obj)
{
	struct ntprinting_devicemode *object = (struct ntprinting_devicemode *)py_talloc_get_ptr(py_obj);
	DATA_BLOB blob;
	enum ndr_err_code err;
	err = ndr_push_struct_blob(&blob, py_talloc_get_mem_ctx(py_obj), object, (ndr_push_flags_fn_t)ndr_push_ntprinting_devicemode);
	if (err != NDR_ERR_SUCCESS) {
		PyErr_SetNdrError(err);
		return NULL;
	}

	return PyString_FromStringAndSize((char *)blob.data, blob.length);
}

static PyObject *py_ntprinting_devicemode_ndr_unpack(PyObject *py_obj, PyObject *args)
{
	struct ntprinting_devicemode *object = (struct ntprinting_devicemode *)py_talloc_get_ptr(py_obj);
	DATA_BLOB blob;
	enum ndr_err_code err;
	if (!PyArg_ParseTuple(args, "s#:__ndr_unpack__", &blob.data, &blob.length))
		return NULL;

	err = ndr_pull_struct_blob_all(&blob, py_talloc_get_mem_ctx(py_obj), object, (ndr_pull_flags_fn_t)ndr_pull_ntprinting_devicemode);
	if (err != NDR_ERR_SUCCESS) {
		PyErr_SetNdrError(err);
		return NULL;
	}

	Py_RETURN_NONE;
}

static PyObject *py_ntprinting_devicemode_ndr_print(PyObject *py_obj)
{
	struct ntprinting_devicemode *object = (struct ntprinting_devicemode *)py_talloc_get_ptr(py_obj);
	PyObject *ret;
	char *retstr;

	retstr = ndr_print_struct_string(py_talloc_get_mem_ctx(py_obj), (ndr_print_fn_t)ndr_print_ntprinting_devicemode, "ntprinting_devicemode", object);
	ret = PyString_FromString(retstr);
	talloc_free(retstr);

	return ret;
}

static PyMethodDef py_ntprinting_devicemode_methods[] = {
	{ "__ndr_pack__", (PyCFunction)py_ntprinting_devicemode_ndr_pack, METH_NOARGS, "S.ndr_pack(object) -> blob\nNDR pack" },
	{ "__ndr_unpack__", (PyCFunction)py_ntprinting_devicemode_ndr_unpack, METH_VARARGS, "S.ndr_unpack(class, blob) -> None\nNDR unpack" },
	{ "__ndr_print__", (PyCFunction)py_ntprinting_devicemode_ndr_print, METH_VARARGS, "S.ndr_print(object) -> None\nNDR print" },
	{ NULL, NULL, 0, NULL }
};


static PyTypeObject ntprinting_devicemode_Type = {
	PyObject_HEAD_INIT(NULL) 0,
	.tp_name = "ntprinting.devicemode",
	.tp_getset = py_ntprinting_devicemode_getsetters,
	.tp_methods = py_ntprinting_devicemode_methods,
	.tp_flags = Py_TPFLAGS_DEFAULT | Py_TPFLAGS_BASETYPE,
	.tp_basicsize = sizeof(py_talloc_Object),
	.tp_new = py_ntprinting_devicemode_new,
};


static PyObject *py_ntprinting_printer_data_get_ptr(PyObject *obj, void *closure)
{
	struct ntprinting_printer_data *object = (struct ntprinting_printer_data *)py_talloc_get_ptr(obj);
	PyObject *py_ptr;
	py_ptr = PyInt_FromLong(object->ptr);
	return py_ptr;
}

static int py_ntprinting_printer_data_set_ptr(PyObject *py_obj, PyObject *value, void *closure)
{
	struct ntprinting_printer_data *object = (struct ntprinting_printer_data *)py_talloc_get_ptr(py_obj);
	PY_CHECK_TYPE(&PyInt_Type, value, return -1;);
	object->ptr = PyInt_AsLong(value);
	return 0;
}

static PyObject *py_ntprinting_printer_data_get_name(PyObject *obj, void *closure)
{
	struct ntprinting_printer_data *object = (struct ntprinting_printer_data *)py_talloc_get_ptr(obj);
	PyObject *py_name;
	py_name = PyString_FromStringOrNULL(object->name);
	return py_name;
}

static int py_ntprinting_printer_data_set_name(PyObject *py_obj, PyObject *value, void *closure)
{
	struct ntprinting_printer_data *object = (struct ntprinting_printer_data *)py_talloc_get_ptr(py_obj);
	object->name = talloc_strdup(py_talloc_get_mem_ctx(py_obj), PyString_AS_STRING(value));
	return 0;
}

static PyObject *py_ntprinting_printer_data_get_type(PyObject *obj, void *closure)
{
	struct ntprinting_printer_data *object = (struct ntprinting_printer_data *)py_talloc_get_ptr(obj);
	PyObject *py_type;
	py_type = PyInt_FromLong(object->type);
	return py_type;
}

static int py_ntprinting_printer_data_set_type(PyObject *py_obj, PyObject *value, void *closure)
{
	struct ntprinting_printer_data *object = (struct ntprinting_printer_data *)py_talloc_get_ptr(py_obj);
	PY_CHECK_TYPE(&PyInt_Type, value, return -1;);
	object->type = PyInt_AsLong(value);
	return 0;
}

static PyObject *py_ntprinting_printer_data_get_data(PyObject *obj, void *closure)
{
	struct ntprinting_printer_data *object = (struct ntprinting_printer_data *)py_talloc_get_ptr(obj);
	PyObject *py_data;
	py_data = PyString_FromStringAndSize((char *)(object->data).data, (object->data).length);
	return py_data;
}

static int py_ntprinting_printer_data_set_data(PyObject *py_obj, PyObject *value, void *closure)
{
	struct ntprinting_printer_data *object = (struct ntprinting_printer_data *)py_talloc_get_ptr(py_obj);
	object->data = data_blob_talloc(py_talloc_get_mem_ctx(py_obj), PyString_AS_STRING(value), PyString_GET_SIZE(value));
	return 0;
}

static PyGetSetDef py_ntprinting_printer_data_getsetters[] = {
	{ discard_const_p(char, "ptr"), py_ntprinting_printer_data_get_ptr, py_ntprinting_printer_data_set_ptr },
	{ discard_const_p(char, "name"), py_ntprinting_printer_data_get_name, py_ntprinting_printer_data_set_name },
	{ discard_const_p(char, "type"), py_ntprinting_printer_data_get_type, py_ntprinting_printer_data_set_type },
	{ discard_const_p(char, "data"), py_ntprinting_printer_data_get_data, py_ntprinting_printer_data_set_data },
	{ NULL }
};

static PyObject *py_ntprinting_printer_data_new(PyTypeObject *type, PyObject *args, PyObject *kwargs)
{
	return py_talloc_new(struct ntprinting_printer_data, type);
}

static PyObject *py_ntprinting_printer_data_ndr_pack(PyObject *py_obj)
{
	struct ntprinting_printer_data *object = (struct ntprinting_printer_data *)py_talloc_get_ptr(py_obj);
	DATA_BLOB blob;
	enum ndr_err_code err;
	err = ndr_push_struct_blob(&blob, py_talloc_get_mem_ctx(py_obj), object, (ndr_push_flags_fn_t)ndr_push_ntprinting_printer_data);
	if (err != NDR_ERR_SUCCESS) {
		PyErr_SetNdrError(err);
		return NULL;
	}

	return PyString_FromStringAndSize((char *)blob.data, blob.length);
}

static PyObject *py_ntprinting_printer_data_ndr_unpack(PyObject *py_obj, PyObject *args)
{
	struct ntprinting_printer_data *object = (struct ntprinting_printer_data *)py_talloc_get_ptr(py_obj);
	DATA_BLOB blob;
	enum ndr_err_code err;
	if (!PyArg_ParseTuple(args, "s#:__ndr_unpack__", &blob.data, &blob.length))
		return NULL;

	err = ndr_pull_struct_blob_all(&blob, py_talloc_get_mem_ctx(py_obj), object, (ndr_pull_flags_fn_t)ndr_pull_ntprinting_printer_data);
	if (err != NDR_ERR_SUCCESS) {
		PyErr_SetNdrError(err);
		return NULL;
	}

	Py_RETURN_NONE;
}

static PyObject *py_ntprinting_printer_data_ndr_print(PyObject *py_obj)
{
	struct ntprinting_printer_data *object = (struct ntprinting_printer_data *)py_talloc_get_ptr(py_obj);
	PyObject *ret;
	char *retstr;

	retstr = ndr_print_struct_string(py_talloc_get_mem_ctx(py_obj), (ndr_print_fn_t)ndr_print_ntprinting_printer_data, "ntprinting_printer_data", object);
	ret = PyString_FromString(retstr);
	talloc_free(retstr);

	return ret;
}

static PyMethodDef py_ntprinting_printer_data_methods[] = {
	{ "__ndr_pack__", (PyCFunction)py_ntprinting_printer_data_ndr_pack, METH_NOARGS, "S.ndr_pack(object) -> blob\nNDR pack" },
	{ "__ndr_unpack__", (PyCFunction)py_ntprinting_printer_data_ndr_unpack, METH_VARARGS, "S.ndr_unpack(class, blob) -> None\nNDR unpack" },
	{ "__ndr_print__", (PyCFunction)py_ntprinting_printer_data_ndr_print, METH_VARARGS, "S.ndr_print(object) -> None\nNDR print" },
	{ NULL, NULL, 0, NULL }
};


static PyTypeObject ntprinting_printer_data_Type = {
	PyObject_HEAD_INIT(NULL) 0,
	.tp_name = "ntprinting.printer_data",
	.tp_getset = py_ntprinting_printer_data_getsetters,
	.tp_methods = py_ntprinting_printer_data_methods,
	.tp_flags = Py_TPFLAGS_DEFAULT | Py_TPFLAGS_BASETYPE,
	.tp_basicsize = sizeof(py_talloc_Object),
	.tp_new = py_ntprinting_printer_data_new,
};


static PyObject *py_ntprinting_printer_info_get_attributes(PyObject *obj, void *closure)
{
	struct ntprinting_printer_info *object = (struct ntprinting_printer_info *)py_talloc_get_ptr(obj);
	PyObject *py_attributes;
	py_attributes = PyInt_FromLong(object->attributes);
	return py_attributes;
}

static int py_ntprinting_printer_info_set_attributes(PyObject *py_obj, PyObject *value, void *closure)
{
	struct ntprinting_printer_info *object = (struct ntprinting_printer_info *)py_talloc_get_ptr(py_obj);
	PY_CHECK_TYPE(&PyInt_Type, value, return -1;);
	object->attributes = PyInt_AsLong(value);
	return 0;
}

static PyObject *py_ntprinting_printer_info_get_priority(PyObject *obj, void *closure)
{
	struct ntprinting_printer_info *object = (struct ntprinting_printer_info *)py_talloc_get_ptr(obj);
	PyObject *py_priority;
	py_priority = PyInt_FromLong(object->priority);
	return py_priority;
}

static int py_ntprinting_printer_info_set_priority(PyObject *py_obj, PyObject *value, void *closure)
{
	struct ntprinting_printer_info *object = (struct ntprinting_printer_info *)py_talloc_get_ptr(py_obj);
	PY_CHECK_TYPE(&PyInt_Type, value, return -1;);
	object->priority = PyInt_AsLong(value);
	return 0;
}

static PyObject *py_ntprinting_printer_info_get_default_priority(PyObject *obj, void *closure)
{
	struct ntprinting_printer_info *object = (struct ntprinting_printer_info *)py_talloc_get_ptr(obj);
	PyObject *py_default_priority;
	py_default_priority = PyInt_FromLong(object->default_priority);
	return py_default_priority;
}

static int py_ntprinting_printer_info_set_default_priority(PyObject *py_obj, PyObject *value, void *closure)
{
	struct ntprinting_printer_info *object = (struct ntprinting_printer_info *)py_talloc_get_ptr(py_obj);
	PY_CHECK_TYPE(&PyInt_Type, value, return -1;);
	object->default_priority = PyInt_AsLong(value);
	return 0;
}

static PyObject *py_ntprinting_printer_info_get_starttime(PyObject *obj, void *closure)
{
	struct ntprinting_printer_info *object = (struct ntprinting_printer_info *)py_talloc_get_ptr(obj);
	PyObject *py_starttime;
	py_starttime = PyInt_FromLong(object->starttime);
	return py_starttime;
}

static int py_ntprinting_printer_info_set_starttime(PyObject *py_obj, PyObject *value, void *closure)
{
	struct ntprinting_printer_info *object = (struct ntprinting_printer_info *)py_talloc_get_ptr(py_obj);
	PY_CHECK_TYPE(&PyInt_Type, value, return -1;);
	object->starttime = PyInt_AsLong(value);
	return 0;
}

static PyObject *py_ntprinting_printer_info_get_untiltime(PyObject *obj, void *closure)
{
	struct ntprinting_printer_info *object = (struct ntprinting_printer_info *)py_talloc_get_ptr(obj);
	PyObject *py_untiltime;
	py_untiltime = PyInt_FromLong(object->untiltime);
	return py_untiltime;
}

static int py_ntprinting_printer_info_set_untiltime(PyObject *py_obj, PyObject *value, void *closure)
{
	struct ntprinting_printer_info *object = (struct ntprinting_printer_info *)py_talloc_get_ptr(py_obj);
	PY_CHECK_TYPE(&PyInt_Type, value, return -1;);
	object->untiltime = PyInt_AsLong(value);
	return 0;
}

static PyObject *py_ntprinting_printer_info_get_status(PyObject *obj, void *closure)
{
	struct ntprinting_printer_info *object = (struct ntprinting_printer_info *)py_talloc_get_ptr(obj);
	PyObject *py_status;
	py_status = PyInt_FromLong(object->status);
	return py_status;
}

static int py_ntprinting_printer_info_set_status(PyObject *py_obj, PyObject *value, void *closure)
{
	struct ntprinting_printer_info *object = (struct ntprinting_printer_info *)py_talloc_get_ptr(py_obj);
	PY_CHECK_TYPE(&PyInt_Type, value, return -1;);
	object->status = PyInt_AsLong(value);
	return 0;
}

static PyObject *py_ntprinting_printer_info_get_cjobs(PyObject *obj, void *closure)
{
	struct ntprinting_printer_info *object = (struct ntprinting_printer_info *)py_talloc_get_ptr(obj);
	PyObject *py_cjobs;
	py_cjobs = PyInt_FromLong(object->cjobs);
	return py_cjobs;
}

static int py_ntprinting_printer_info_set_cjobs(PyObject *py_obj, PyObject *value, void *closure)
{
	struct ntprinting_printer_info *object = (struct ntprinting_printer_info *)py_talloc_get_ptr(py_obj);
	PY_CHECK_TYPE(&PyInt_Type, value, return -1;);
	object->cjobs = PyInt_AsLong(value);
	return 0;
}

static PyObject *py_ntprinting_printer_info_get_averageppm(PyObject *obj, void *closure)
{
	struct ntprinting_printer_info *object = (struct ntprinting_printer_info *)py_talloc_get_ptr(obj);
	PyObject *py_averageppm;
	py_averageppm = PyInt_FromLong(object->averageppm);
	return py_averageppm;
}

static int py_ntprinting_printer_info_set_averageppm(PyObject *py_obj, PyObject *value, void *closure)
{
	struct ntprinting_printer_info *object = (struct ntprinting_printer_info *)py_talloc_get_ptr(py_obj);
	PY_CHECK_TYPE(&PyInt_Type, value, return -1;);
	object->averageppm = PyInt_AsLong(value);
	return 0;
}

static PyObject *py_ntprinting_printer_info_get_changeid(PyObject *obj, void *closure)
{
	struct ntprinting_printer_info *object = (struct ntprinting_printer_info *)py_talloc_get_ptr(obj);
	PyObject *py_changeid;
	py_changeid = PyInt_FromLong(object->changeid);
	return py_changeid;
}

static int py_ntprinting_printer_info_set_changeid(PyObject *py_obj, PyObject *value, void *closure)
{
	struct ntprinting_printer_info *object = (struct ntprinting_printer_info *)py_talloc_get_ptr(py_obj);
	PY_CHECK_TYPE(&PyInt_Type, value, return -1;);
	object->changeid = PyInt_AsLong(value);
	return 0;
}

static PyObject *py_ntprinting_printer_info_get_c_setprinter(PyObject *obj, void *closure)
{
	struct ntprinting_printer_info *object = (struct ntprinting_printer_info *)py_talloc_get_ptr(obj);
	PyObject *py_c_setprinter;
	py_c_setprinter = PyInt_FromLong(object->c_setprinter);
	return py_c_setprinter;
}

static int py_ntprinting_printer_info_set_c_setprinter(PyObject *py_obj, PyObject *value, void *closure)
{
	struct ntprinting_printer_info *object = (struct ntprinting_printer_info *)py_talloc_get_ptr(py_obj);
	PY_CHECK_TYPE(&PyInt_Type, value, return -1;);
	object->c_setprinter = PyInt_AsLong(value);
	return 0;
}

static PyObject *py_ntprinting_printer_info_get_setuptime(PyObject *obj, void *closure)
{
	struct ntprinting_printer_info *object = (struct ntprinting_printer_info *)py_talloc_get_ptr(obj);
	PyObject *py_setuptime;
	py_setuptime = PyInt_FromLong(object->setuptime);
	return py_setuptime;
}

static int py_ntprinting_printer_info_set_setuptime(PyObject *py_obj, PyObject *value, void *closure)
{
	struct ntprinting_printer_info *object = (struct ntprinting_printer_info *)py_talloc_get_ptr(py_obj);
	PY_CHECK_TYPE(&PyInt_Type, value, return -1;);
	object->setuptime = PyInt_AsLong(value);
	return 0;
}

static PyObject *py_ntprinting_printer_info_get_servername(PyObject *obj, void *closure)
{
	struct ntprinting_printer_info *object = (struct ntprinting_printer_info *)py_talloc_get_ptr(obj);
	PyObject *py_servername;
	py_servername = PyString_FromStringOrNULL(object->servername);
	return py_servername;
}

static int py_ntprinting_printer_info_set_servername(PyObject *py_obj, PyObject *value, void *closure)
{
	struct ntprinting_printer_info *object = (struct ntprinting_printer_info *)py_talloc_get_ptr(py_obj);
	object->servername = talloc_strdup(py_talloc_get_mem_ctx(py_obj), PyString_AS_STRING(value));
	return 0;
}

static PyObject *py_ntprinting_printer_info_get_printername(PyObject *obj, void *closure)
{
	struct ntprinting_printer_info *object = (struct ntprinting_printer_info *)py_talloc_get_ptr(obj);
	PyObject *py_printername;
	py_printername = PyString_FromStringOrNULL(object->printername);
	return py_printername;
}

static int py_ntprinting_printer_info_set_printername(PyObject *py_obj, PyObject *value, void *closure)
{
	struct ntprinting_printer_info *object = (struct ntprinting_printer_info *)py_talloc_get_ptr(py_obj);
	object->printername = talloc_strdup(py_talloc_get_mem_ctx(py_obj), PyString_AS_STRING(value));
	return 0;
}

static PyObject *py_ntprinting_printer_info_get_sharename(PyObject *obj, void *closure)
{
	struct ntprinting_printer_info *object = (struct ntprinting_printer_info *)py_talloc_get_ptr(obj);
	PyObject *py_sharename;
	py_sharename = PyString_FromStringOrNULL(object->sharename);
	return py_sharename;
}

static int py_ntprinting_printer_info_set_sharename(PyObject *py_obj, PyObject *value, void *closure)
{
	struct ntprinting_printer_info *object = (struct ntprinting_printer_info *)py_talloc_get_ptr(py_obj);
	object->sharename = talloc_strdup(py_talloc_get_mem_ctx(py_obj), PyString_AS_STRING(value));
	return 0;
}

static PyObject *py_ntprinting_printer_info_get_portname(PyObject *obj, void *closure)
{
	struct ntprinting_printer_info *object = (struct ntprinting_printer_info *)py_talloc_get_ptr(obj);
	PyObject *py_portname;
	py_portname = PyString_FromStringOrNULL(object->portname);
	return py_portname;
}

static int py_ntprinting_printer_info_set_portname(PyObject *py_obj, PyObject *value, void *closure)
{
	struct ntprinting_printer_info *object = (struct ntprinting_printer_info *)py_talloc_get_ptr(py_obj);
	object->portname = talloc_strdup(py_talloc_get_mem_ctx(py_obj), PyString_AS_STRING(value));
	return 0;
}

static PyObject *py_ntprinting_printer_info_get_drivername(PyObject *obj, void *closure)
{
	struct ntprinting_printer_info *object = (struct ntprinting_printer_info *)py_talloc_get_ptr(obj);
	PyObject *py_drivername;
	py_drivername = PyString_FromStringOrNULL(object->drivername);
	return py_drivername;
}

static int py_ntprinting_printer_info_set_drivername(PyObject *py_obj, PyObject *value, void *closure)
{
	struct ntprinting_printer_info *object = (struct ntprinting_printer_info *)py_talloc_get_ptr(py_obj);
	object->drivername = talloc_strdup(py_talloc_get_mem_ctx(py_obj), PyString_AS_STRING(value));
	return 0;
}

static PyObject *py_ntprinting_printer_info_get_comment(PyObject *obj, void *closure)
{
	struct ntprinting_printer_info *object = (struct ntprinting_printer_info *)py_talloc_get_ptr(obj);
	PyObject *py_comment;
	py_comment = PyString_FromStringOrNULL(object->comment);
	return py_comment;
}

static int py_ntprinting_printer_info_set_comment(PyObject *py_obj, PyObject *value, void *closure)
{
	struct ntprinting_printer_info *object = (struct ntprinting_printer_info *)py_talloc_get_ptr(py_obj);
	object->comment = talloc_strdup(py_talloc_get_mem_ctx(py_obj), PyString_AS_STRING(value));
	return 0;
}

static PyObject *py_ntprinting_printer_info_get_location(PyObject *obj, void *closure)
{
	struct ntprinting_printer_info *object = (struct ntprinting_printer_info *)py_talloc_get_ptr(obj);
	PyObject *py_location;
	py_location = PyString_FromStringOrNULL(object->location);
	return py_location;
}

static int py_ntprinting_printer_info_set_location(PyObject *py_obj, PyObject *value, void *closure)
{
	struct ntprinting_printer_info *object = (struct ntprinting_printer_info *)py_talloc_get_ptr(py_obj);
	object->location = talloc_strdup(py_talloc_get_mem_ctx(py_obj), PyString_AS_STRING(value));
	return 0;
}

static PyObject *py_ntprinting_printer_info_get_sepfile(PyObject *obj, void *closure)
{
	struct ntprinting_printer_info *object = (struct ntprinting_printer_info *)py_talloc_get_ptr(obj);
	PyObject *py_sepfile;
	py_sepfile = PyString_FromStringOrNULL(object->sepfile);
	return py_sepfile;
}

static int py_ntprinting_printer_info_set_sepfile(PyObject *py_obj, PyObject *value, void *closure)
{
	struct ntprinting_printer_info *object = (struct ntprinting_printer_info *)py_talloc_get_ptr(py_obj);
	object->sepfile = talloc_strdup(py_talloc_get_mem_ctx(py_obj), PyString_AS_STRING(value));
	return 0;
}

static PyObject *py_ntprinting_printer_info_get_printprocessor(PyObject *obj, void *closure)
{
	struct ntprinting_printer_info *object = (struct ntprinting_printer_info *)py_talloc_get_ptr(obj);
	PyObject *py_printprocessor;
	py_printprocessor = PyString_FromStringOrNULL(object->printprocessor);
	return py_printprocessor;
}

static int py_ntprinting_printer_info_set_printprocessor(PyObject *py_obj, PyObject *value, void *closure)
{
	struct ntprinting_printer_info *object = (struct ntprinting_printer_info *)py_talloc_get_ptr(py_obj);
	object->printprocessor = talloc_strdup(py_talloc_get_mem_ctx(py_obj), PyString_AS_STRING(value));
	return 0;
}

static PyObject *py_ntprinting_printer_info_get_datatype(PyObject *obj, void *closure)
{
	struct ntprinting_printer_info *object = (struct ntprinting_printer_info *)py_talloc_get_ptr(obj);
	PyObject *py_datatype;
	py_datatype = PyString_FromStringOrNULL(object->datatype);
	return py_datatype;
}

static int py_ntprinting_printer_info_set_datatype(PyObject *py_obj, PyObject *value, void *closure)
{
	struct ntprinting_printer_info *object = (struct ntprinting_printer_info *)py_talloc_get_ptr(py_obj);
	object->datatype = talloc_strdup(py_talloc_get_mem_ctx(py_obj), PyString_AS_STRING(value));
	return 0;
}

static PyObject *py_ntprinting_printer_info_get_parameters(PyObject *obj, void *closure)
{
	struct ntprinting_printer_info *object = (struct ntprinting_printer_info *)py_talloc_get_ptr(obj);
	PyObject *py_parameters;
	py_parameters = PyString_FromStringOrNULL(object->parameters);
	return py_parameters;
}

static int py_ntprinting_printer_info_set_parameters(PyObject *py_obj, PyObject *value, void *closure)
{
	struct ntprinting_printer_info *object = (struct ntprinting_printer_info *)py_talloc_get_ptr(py_obj);
	object->parameters = talloc_strdup(py_talloc_get_mem_ctx(py_obj), PyString_AS_STRING(value));
	return 0;
}

static PyGetSetDef py_ntprinting_printer_info_getsetters[] = {
	{ discard_const_p(char, "attributes"), py_ntprinting_printer_info_get_attributes, py_ntprinting_printer_info_set_attributes },
	{ discard_const_p(char, "priority"), py_ntprinting_printer_info_get_priority, py_ntprinting_printer_info_set_priority },
	{ discard_const_p(char, "default_priority"), py_ntprinting_printer_info_get_default_priority, py_ntprinting_printer_info_set_default_priority },
	{ discard_const_p(char, "starttime"), py_ntprinting_printer_info_get_starttime, py_ntprinting_printer_info_set_starttime },
	{ discard_const_p(char, "untiltime"), py_ntprinting_printer_info_get_untiltime, py_ntprinting_printer_info_set_untiltime },
	{ discard_const_p(char, "status"), py_ntprinting_printer_info_get_status, py_ntprinting_printer_info_set_status },
	{ discard_const_p(char, "cjobs"), py_ntprinting_printer_info_get_cjobs, py_ntprinting_printer_info_set_cjobs },
	{ discard_const_p(char, "averageppm"), py_ntprinting_printer_info_get_averageppm, py_ntprinting_printer_info_set_averageppm },
	{ discard_const_p(char, "changeid"), py_ntprinting_printer_info_get_changeid, py_ntprinting_printer_info_set_changeid },
	{ discard_const_p(char, "c_setprinter"), py_ntprinting_printer_info_get_c_setprinter, py_ntprinting_printer_info_set_c_setprinter },
	{ discard_const_p(char, "setuptime"), py_ntprinting_printer_info_get_setuptime, py_ntprinting_printer_info_set_setuptime },
	{ discard_const_p(char, "servername"), py_ntprinting_printer_info_get_servername, py_ntprinting_printer_info_set_servername },
	{ discard_const_p(char, "printername"), py_ntprinting_printer_info_get_printername, py_ntprinting_printer_info_set_printername },
	{ discard_const_p(char, "sharename"), py_ntprinting_printer_info_get_sharename, py_ntprinting_printer_info_set_sharename },
	{ discard_const_p(char, "portname"), py_ntprinting_printer_info_get_portname, py_ntprinting_printer_info_set_portname },
	{ discard_const_p(char, "drivername"), py_ntprinting_printer_info_get_drivername, py_ntprinting_printer_info_set_drivername },
	{ discard_const_p(char, "comment"), py_ntprinting_printer_info_get_comment, py_ntprinting_printer_info_set_comment },
	{ discard_const_p(char, "location"), py_ntprinting_printer_info_get_location, py_ntprinting_printer_info_set_location },
	{ discard_const_p(char, "sepfile"), py_ntprinting_printer_info_get_sepfile, py_ntprinting_printer_info_set_sepfile },
	{ discard_const_p(char, "printprocessor"), py_ntprinting_printer_info_get_printprocessor, py_ntprinting_printer_info_set_printprocessor },
	{ discard_const_p(char, "datatype"), py_ntprinting_printer_info_get_datatype, py_ntprinting_printer_info_set_datatype },
	{ discard_const_p(char, "parameters"), py_ntprinting_printer_info_get_parameters, py_ntprinting_printer_info_set_parameters },
	{ NULL }
};

static PyObject *py_ntprinting_printer_info_new(PyTypeObject *type, PyObject *args, PyObject *kwargs)
{
	return py_talloc_new(struct ntprinting_printer_info, type);
}

static PyObject *py_ntprinting_printer_info_ndr_pack(PyObject *py_obj)
{
	struct ntprinting_printer_info *object = (struct ntprinting_printer_info *)py_talloc_get_ptr(py_obj);
	DATA_BLOB blob;
	enum ndr_err_code err;
	err = ndr_push_struct_blob(&blob, py_talloc_get_mem_ctx(py_obj), object, (ndr_push_flags_fn_t)ndr_push_ntprinting_printer_info);
	if (err != NDR_ERR_SUCCESS) {
		PyErr_SetNdrError(err);
		return NULL;
	}

	return PyString_FromStringAndSize((char *)blob.data, blob.length);
}

static PyObject *py_ntprinting_printer_info_ndr_unpack(PyObject *py_obj, PyObject *args)
{
	struct ntprinting_printer_info *object = (struct ntprinting_printer_info *)py_talloc_get_ptr(py_obj);
	DATA_BLOB blob;
	enum ndr_err_code err;
	if (!PyArg_ParseTuple(args, "s#:__ndr_unpack__", &blob.data, &blob.length))
		return NULL;

	err = ndr_pull_struct_blob_all(&blob, py_talloc_get_mem_ctx(py_obj), object, (ndr_pull_flags_fn_t)ndr_pull_ntprinting_printer_info);
	if (err != NDR_ERR_SUCCESS) {
		PyErr_SetNdrError(err);
		return NULL;
	}

	Py_RETURN_NONE;
}

static PyObject *py_ntprinting_printer_info_ndr_print(PyObject *py_obj)
{
	struct ntprinting_printer_info *object = (struct ntprinting_printer_info *)py_talloc_get_ptr(py_obj);
	PyObject *ret;
	char *retstr;

	retstr = ndr_print_struct_string(py_talloc_get_mem_ctx(py_obj), (ndr_print_fn_t)ndr_print_ntprinting_printer_info, "ntprinting_printer_info", object);
	ret = PyString_FromString(retstr);
	talloc_free(retstr);

	return ret;
}

static PyMethodDef py_ntprinting_printer_info_methods[] = {
	{ "__ndr_pack__", (PyCFunction)py_ntprinting_printer_info_ndr_pack, METH_NOARGS, "S.ndr_pack(object) -> blob\nNDR pack" },
	{ "__ndr_unpack__", (PyCFunction)py_ntprinting_printer_info_ndr_unpack, METH_VARARGS, "S.ndr_unpack(class, blob) -> None\nNDR unpack" },
	{ "__ndr_print__", (PyCFunction)py_ntprinting_printer_info_ndr_print, METH_VARARGS, "S.ndr_print(object) -> None\nNDR print" },
	{ NULL, NULL, 0, NULL }
};


static PyTypeObject ntprinting_printer_info_Type = {
	PyObject_HEAD_INIT(NULL) 0,
	.tp_name = "ntprinting.printer_info",
	.tp_getset = py_ntprinting_printer_info_getsetters,
	.tp_methods = py_ntprinting_printer_info_methods,
	.tp_flags = Py_TPFLAGS_DEFAULT | Py_TPFLAGS_BASETYPE,
	.tp_basicsize = sizeof(py_talloc_Object),
	.tp_new = py_ntprinting_printer_info_new,
};


static PyObject *py_ntprinting_printer_get_info(PyObject *obj, void *closure)
{
	struct ntprinting_printer *object = (struct ntprinting_printer *)py_talloc_get_ptr(obj);
	PyObject *py_info;
	py_info = py_talloc_reference_ex(&ntprinting_printer_info_Type, py_talloc_get_mem_ctx(obj), &object->info);
	return py_info;
}

static int py_ntprinting_printer_set_info(PyObject *py_obj, PyObject *value, void *closure)
{
	struct ntprinting_printer *object = (struct ntprinting_printer *)py_talloc_get_ptr(py_obj);
	PY_CHECK_TYPE(&ntprinting_printer_info_Type, value, return -1;);
	if (talloc_reference(py_talloc_get_mem_ctx(py_obj), py_talloc_get_mem_ctx(value)) == NULL) {
		PyErr_NoMemory();
		return -1;
	}
	object->info = *(struct ntprinting_printer_info *)py_talloc_get_ptr(value);
	return 0;
}

static PyObject *py_ntprinting_printer_get_devmode(PyObject *obj, void *closure)
{
	struct ntprinting_printer *object = (struct ntprinting_printer *)py_talloc_get_ptr(obj);
	PyObject *py_devmode;
	if (object->devmode == NULL) {
		py_devmode = Py_None;
		Py_INCREF(py_devmode);
	} else {
		py_devmode = py_talloc_reference_ex(&ntprinting_devicemode_Type, object->devmode, object->devmode);
	}
	return py_devmode;
}

static int py_ntprinting_printer_set_devmode(PyObject *py_obj, PyObject *value, void *closure)
{
	struct ntprinting_printer *object = (struct ntprinting_printer *)py_talloc_get_ptr(py_obj);
	talloc_unlink(py_talloc_get_mem_ctx(py_obj), object->devmode);
	if (value == Py_None) {
		object->devmode = NULL;
	} else {
		object->devmode = NULL;
		PY_CHECK_TYPE(&ntprinting_devicemode_Type, value, return -1;);
		if (talloc_reference(py_talloc_get_mem_ctx(py_obj), py_talloc_get_mem_ctx(value)) == NULL) {
			PyErr_NoMemory();
			return -1;
		}
		object->devmode = (struct ntprinting_devicemode *)py_talloc_get_ptr(value);
	}
	return 0;
}

static PyObject *py_ntprinting_printer_get_count(PyObject *obj, void *closure)
{
	struct ntprinting_printer *object = (struct ntprinting_printer *)py_talloc_get_ptr(obj);
	PyObject *py_count;
	py_count = PyInt_FromLong(object->count);
	return py_count;
}

static int py_ntprinting_printer_set_count(PyObject *py_obj, PyObject *value, void *closure)
{
	struct ntprinting_printer *object = (struct ntprinting_printer *)py_talloc_get_ptr(py_obj);
	PY_CHECK_TYPE(&PyInt_Type, value, return -1;);
	object->count = PyInt_AsLong(value);
	return 0;
}

static PyObject *py_ntprinting_printer_get_printer_data(PyObject *obj, void *closure)
{
	struct ntprinting_printer *object = (struct ntprinting_printer *)py_talloc_get_ptr(obj);
	PyObject *py_printer_data;
	py_printer_data = PyList_New(object->count);
	if (py_printer_data == NULL) {
		return NULL;
	}
	{
		int printer_data_cntr_0;
		for (printer_data_cntr_0 = 0; printer_data_cntr_0 < object->count; printer_data_cntr_0++) {
			PyObject *py_printer_data_0;
			py_printer_data_0 = py_talloc_reference_ex(&ntprinting_printer_data_Type, object->printer_data, &object->printer_data[printer_data_cntr_0]);
			PyList_SetItem(py_printer_data, printer_data_cntr_0, py_printer_data_0);
		}
	}
	return py_printer_data;
}

static int py_ntprinting_printer_set_printer_data(PyObject *py_obj, PyObject *value, void *closure)
{
	struct ntprinting_printer *object = (struct ntprinting_printer *)py_talloc_get_ptr(py_obj);
	PY_CHECK_TYPE(&PyList_Type, value, return -1;);
	{
		int printer_data_cntr_0;
		object->printer_data = talloc_array_ptrtype(py_talloc_get_mem_ctx(py_obj), object->printer_data, PyList_GET_SIZE(value));
		if (!object->printer_data) { return -1;; }
		talloc_set_name_const(object->printer_data, "ARRAY: object->printer_data");
		for (printer_data_cntr_0 = 0; printer_data_cntr_0 < PyList_GET_SIZE(value); printer_data_cntr_0++) {
			PY_CHECK_TYPE(&ntprinting_printer_data_Type, PyList_GET_ITEM(value, printer_data_cntr_0), return -1;);
			if (talloc_reference(object->printer_data, py_talloc_get_mem_ctx(PyList_GET_ITEM(value, printer_data_cntr_0))) == NULL) {
				PyErr_NoMemory();
				return -1;
			}
			object->printer_data[printer_data_cntr_0] = *(struct ntprinting_printer_data *)py_talloc_get_ptr(PyList_GET_ITEM(value, printer_data_cntr_0));
		}
	}
	return 0;
}

static PyGetSetDef py_ntprinting_printer_getsetters[] = {
	{ discard_const_p(char, "info"), py_ntprinting_printer_get_info, py_ntprinting_printer_set_info },
	{ discard_const_p(char, "devmode"), py_ntprinting_printer_get_devmode, py_ntprinting_printer_set_devmode },
	{ discard_const_p(char, "count"), py_ntprinting_printer_get_count, py_ntprinting_printer_set_count },
	{ discard_const_p(char, "printer_data"), py_ntprinting_printer_get_printer_data, py_ntprinting_printer_set_printer_data },
	{ NULL }
};

static PyObject *py_ntprinting_printer_new(PyTypeObject *type, PyObject *args, PyObject *kwargs)
{
	return py_talloc_new(struct ntprinting_printer, type);
}

static PyObject *py_ntprinting_printer_ndr_pack(PyObject *py_obj)
{
	struct ntprinting_printer *object = (struct ntprinting_printer *)py_talloc_get_ptr(py_obj);
	DATA_BLOB blob;
	enum ndr_err_code err;
	err = ndr_push_struct_blob(&blob, py_talloc_get_mem_ctx(py_obj), object, (ndr_push_flags_fn_t)ndr_push_ntprinting_printer);
	if (err != NDR_ERR_SUCCESS) {
		PyErr_SetNdrError(err);
		return NULL;
	}

	return PyString_FromStringAndSize((char *)blob.data, blob.length);
}

static PyObject *py_ntprinting_printer_ndr_unpack(PyObject *py_obj, PyObject *args)
{
	struct ntprinting_printer *object = (struct ntprinting_printer *)py_talloc_get_ptr(py_obj);
	DATA_BLOB blob;
	enum ndr_err_code err;
	if (!PyArg_ParseTuple(args, "s#:__ndr_unpack__", &blob.data, &blob.length))
		return NULL;

	err = ndr_pull_struct_blob_all(&blob, py_talloc_get_mem_ctx(py_obj), object, (ndr_pull_flags_fn_t)ndr_pull_ntprinting_printer);
	if (err != NDR_ERR_SUCCESS) {
		PyErr_SetNdrError(err);
		return NULL;
	}

	Py_RETURN_NONE;
}

static PyObject *py_ntprinting_printer_ndr_print(PyObject *py_obj)
{
	struct ntprinting_printer *object = (struct ntprinting_printer *)py_talloc_get_ptr(py_obj);
	PyObject *ret;
	char *retstr;

	retstr = ndr_print_struct_string(py_talloc_get_mem_ctx(py_obj), (ndr_print_fn_t)ndr_print_ntprinting_printer, "ntprinting_printer", object);
	ret = PyString_FromString(retstr);
	talloc_free(retstr);

	return ret;
}

static PyMethodDef py_ntprinting_printer_methods[] = {
	{ "__ndr_pack__", (PyCFunction)py_ntprinting_printer_ndr_pack, METH_NOARGS, "S.ndr_pack(object) -> blob\nNDR pack" },
	{ "__ndr_unpack__", (PyCFunction)py_ntprinting_printer_ndr_unpack, METH_VARARGS, "S.ndr_unpack(class, blob) -> None\nNDR unpack" },
	{ "__ndr_print__", (PyCFunction)py_ntprinting_printer_ndr_print, METH_VARARGS, "S.ndr_print(object) -> None\nNDR print" },
	{ NULL, NULL, 0, NULL }
};


static PyTypeObject ntprinting_printer_Type = {
	PyObject_HEAD_INIT(NULL) 0,
	.tp_name = "ntprinting.printer",
	.tp_getset = py_ntprinting_printer_getsetters,
	.tp_methods = py_ntprinting_printer_methods,
	.tp_flags = Py_TPFLAGS_DEFAULT | Py_TPFLAGS_BASETYPE,
	.tp_basicsize = sizeof(py_talloc_Object),
	.tp_new = py_ntprinting_printer_new,
};


static bool pack_py_decode_ntprinting_form_args_in(PyObject *args, PyObject *kwargs, struct decode_ntprinting_form *r)
{
	PyObject *py_form;
	const char *kwnames[] = {
		"form", NULL
	};

	if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O:decode_ntprinting_form", discard_const_p(char *, kwnames), &py_form)) {
		return false;
	}

	PY_CHECK_TYPE(&ntprinting_form_Type, py_form, return false;);
	if (talloc_reference(r, py_talloc_get_mem_ctx(py_form)) == NULL) {
		PyErr_NoMemory();
		return false;
	}
	r->in.form = *(struct ntprinting_form *)py_talloc_get_ptr(py_form);
	return true;
}

static PyObject *unpack_py_decode_ntprinting_form_args_out(struct decode_ntprinting_form *r)
{
	PyObject *result;
	result = Py_None;
	Py_INCREF(result);
	return result;
}

static bool pack_py_decode_ntprinting_driver_args_in(PyObject *args, PyObject *kwargs, struct decode_ntprinting_driver *r)
{
	PyObject *py_driver;
	const char *kwnames[] = {
		"driver", NULL
	};

	if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O:decode_ntprinting_driver", discard_const_p(char *, kwnames), &py_driver)) {
		return false;
	}

	PY_CHECK_TYPE(&ntprinting_driver_Type, py_driver, return false;);
	if (talloc_reference(r, py_talloc_get_mem_ctx(py_driver)) == NULL) {
		PyErr_NoMemory();
		return false;
	}
	r->in.driver = *(struct ntprinting_driver *)py_talloc_get_ptr(py_driver);
	return true;
}

static PyObject *unpack_py_decode_ntprinting_driver_args_out(struct decode_ntprinting_driver *r)
{
	PyObject *result;
	result = Py_None;
	Py_INCREF(result);
	return result;
}

static bool pack_py_decode_ntprinting_printer_args_in(PyObject *args, PyObject *kwargs, struct decode_ntprinting_printer *r)
{
	PyObject *py_printer;
	const char *kwnames[] = {
		"printer", NULL
	};

	if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O:decode_ntprinting_printer", discard_const_p(char *, kwnames), &py_printer)) {
		return false;
	}

	PY_CHECK_TYPE(&ntprinting_printer_Type, py_printer, return false;);
	if (talloc_reference(r, py_talloc_get_mem_ctx(py_printer)) == NULL) {
		PyErr_NoMemory();
		return false;
	}
	r->in.printer = *(struct ntprinting_printer *)py_talloc_get_ptr(py_printer);
	return true;
}

static PyObject *unpack_py_decode_ntprinting_printer_args_out(struct decode_ntprinting_printer *r)
{
	PyObject *result;
	result = Py_None;
	Py_INCREF(result);
	return result;
}

const struct PyNdrRpcMethodDef py_ndr_ntprinting_methods[] = {
	{ "decode_ntprinting_form", "S.decode_ntprinting_form(form) -> None", (py_dcerpc_call_fn)dcerpc_decode_ntprinting_form_r, (py_data_pack_fn)pack_py_decode_ntprinting_form_args_in, (py_data_unpack_fn)unpack_py_decode_ntprinting_form_args_out, 0, &ndr_table_ntprinting },
	{ "decode_ntprinting_driver", "S.decode_ntprinting_driver(driver) -> None", (py_dcerpc_call_fn)dcerpc_decode_ntprinting_driver_r, (py_data_pack_fn)pack_py_decode_ntprinting_driver_args_in, (py_data_unpack_fn)unpack_py_decode_ntprinting_driver_args_out, 1, &ndr_table_ntprinting },
	{ "decode_ntprinting_printer", "S.decode_ntprinting_printer(printer) -> None", (py_dcerpc_call_fn)dcerpc_decode_ntprinting_printer_r, (py_data_pack_fn)pack_py_decode_ntprinting_printer_args_in, (py_data_unpack_fn)unpack_py_decode_ntprinting_printer_args_out, 2, &ndr_table_ntprinting },
	{ NULL }
};

static PyObject *interface_ntprinting_new(PyTypeObject *type, PyObject *args, PyObject *kwargs)
{
	return py_dcerpc_interface_init_helper(type, args, kwargs, &ndr_table_ntprinting);
}

#define PY_DOC_NTPRINTING "s3 printing tdb formats"
static PyTypeObject ntprinting_InterfaceType = {
	PyObject_HEAD_INIT(NULL) 0,
	.tp_name = "ntprinting.ntprinting",
	.tp_basicsize = sizeof(dcerpc_InterfaceObject),
	.tp_doc = "ntprinting(binding, lp_ctx=None, credentials=None) -> connection\n"
"\n"
"binding should be a DCE/RPC binding string (for example: ncacn_ip_tcp:127.0.0.1)\n"
"lp_ctx should be a path to a smb.conf file or a param.LoadParm object\n"
"credentials should be a credentials.Credentials object.\n\n"PY_DOC_NTPRINTING,
	.tp_flags = Py_TPFLAGS_DEFAULT | Py_TPFLAGS_BASETYPE,
	.tp_new = interface_ntprinting_new,
};

static PyMethodDef ntprinting_methods[] = {
	{ NULL, NULL, 0, NULL }
};

void initntprinting(void)
{
	PyObject *m;
	PyObject *dep_talloc;
	PyObject *dep_samba_dcerpc_base;

	dep_talloc = PyImport_ImportModule("talloc");
	if (dep_talloc == NULL)
		return;

	dep_samba_dcerpc_base = PyImport_ImportModule("samba.dcerpc.base");
	if (dep_samba_dcerpc_base == NULL)
		return;

	Object_Type = (PyTypeObject *)PyObject_GetAttrString(dep_talloc, "Object");
	if (Object_Type == NULL)
		return;

	ClientConnection_Type = (PyTypeObject *)PyObject_GetAttrString(dep_samba_dcerpc_base, "ClientConnection");
	if (ClientConnection_Type == NULL)
		return;

	ntprinting_form_Type.tp_base = Object_Type;

	ntprinting_driver_Type.tp_base = Object_Type;

	ntprinting_devicemode_Type.tp_base = Object_Type;

	ntprinting_printer_data_Type.tp_base = Object_Type;

	ntprinting_printer_info_Type.tp_base = Object_Type;

	ntprinting_printer_Type.tp_base = Object_Type;

	ntprinting_InterfaceType.tp_base = ClientConnection_Type;

	if (PyType_Ready(&ntprinting_form_Type) < 0)
		return;
	if (PyType_Ready(&ntprinting_driver_Type) < 0)
		return;
	if (PyType_Ready(&ntprinting_devicemode_Type) < 0)
		return;
	if (PyType_Ready(&ntprinting_printer_data_Type) < 0)
		return;
	if (PyType_Ready(&ntprinting_printer_info_Type) < 0)
		return;
	if (PyType_Ready(&ntprinting_printer_Type) < 0)
		return;
	if (PyType_Ready(&ntprinting_InterfaceType) < 0)
		return;
	if (!PyInterface_AddNdrRpcMethods(&ntprinting_InterfaceType, py_ndr_ntprinting_methods))
		return;

#ifdef PY_FORM_PATCH
	PY_FORM_PATCH(&ntprinting_form_Type);
#endif
#ifdef PY_DRIVER_PATCH
	PY_DRIVER_PATCH(&ntprinting_driver_Type);
#endif
#ifdef PY_DEVICEMODE_PATCH
	PY_DEVICEMODE_PATCH(&ntprinting_devicemode_Type);
#endif
#ifdef PY_PRINTER_DATA_PATCH
	PY_PRINTER_DATA_PATCH(&ntprinting_printer_data_Type);
#endif
#ifdef PY_PRINTER_INFO_PATCH
	PY_PRINTER_INFO_PATCH(&ntprinting_printer_info_Type);
#endif
#ifdef PY_PRINTER_PATCH
	PY_PRINTER_PATCH(&ntprinting_printer_Type);
#endif
#ifdef PY_NTPRINTING_PATCH
	PY_NTPRINTING_PATCH(&ntprinting_InterfaceType);
#endif

	m = Py_InitModule3("ntprinting", ntprinting_methods, "ntprinting DCE/RPC");
	if (m == NULL)
		return;

	Py_INCREF((PyObject *)(void *)&ntprinting_form_Type);
	PyModule_AddObject(m, "form", (PyObject *)(void *)&ntprinting_form_Type);
	Py_INCREF((PyObject *)(void *)&ntprinting_driver_Type);
	PyModule_AddObject(m, "driver", (PyObject *)(void *)&ntprinting_driver_Type);
	Py_INCREF((PyObject *)(void *)&ntprinting_devicemode_Type);
	PyModule_AddObject(m, "devicemode", (PyObject *)(void *)&ntprinting_devicemode_Type);
	Py_INCREF((PyObject *)(void *)&ntprinting_printer_data_Type);
	PyModule_AddObject(m, "printer_data", (PyObject *)(void *)&ntprinting_printer_data_Type);
	Py_INCREF((PyObject *)(void *)&ntprinting_printer_info_Type);
	PyModule_AddObject(m, "printer_info", (PyObject *)(void *)&ntprinting_printer_info_Type);
	Py_INCREF((PyObject *)(void *)&ntprinting_printer_Type);
	PyModule_AddObject(m, "printer", (PyObject *)(void *)&ntprinting_printer_Type);
	Py_INCREF((PyObject *)(void *)&ntprinting_InterfaceType);
	PyModule_AddObject(m, "ntprinting", (PyObject *)(void *)&ntprinting_InterfaceType);
#ifdef PY_MOD_NTPRINTING_PATCH
	PY_MOD_NTPRINTING_PATCH(m);
#endif

}
