py_spoolss_forms_conv.c
来自「samba-3.0.22.tar.gz 编译smb服务器的源码」· C语言 代码 · 共 92 行
C
92 行
/* Python wrappers for DCERPC/SMB client routines. Copyright (C) Tim Potter, 2002 This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.*/#include "python/py_spoolss.h"#include "python/py_conv.h"struct pyconv py_FORM[] = { { "flags", PY_UINT32, offsetof(FORM, flags) }, { "width", PY_UINT32, offsetof(FORM, size_x) }, { "length", PY_UINT32, offsetof(FORM, size_y) }, { "top", PY_UINT32, offsetof(FORM, top) }, { "left", PY_UINT32, offsetof(FORM, left) }, { "right", PY_UINT32, offsetof(FORM, right) }, { "bottom", PY_UINT32, offsetof(FORM, bottom) }, { NULL }};struct pyconv py_FORM_1[] = { { "flags", PY_UINT32, offsetof(FORM_1, flag) }, { "width", PY_UINT32, offsetof(FORM_1, width) }, { "length", PY_UINT32, offsetof(FORM_1, length) }, { "top", PY_UINT32, offsetof(FORM_1, top) }, { "left", PY_UINT32, offsetof(FORM_1, left) }, { "right", PY_UINT32, offsetof(FORM_1, right) }, { "bottom", PY_UINT32, offsetof(FORM_1, bottom) }, { "name", PY_UNISTR, offsetof(FORM_1, name) }, { NULL }};BOOL py_from_FORM_1(PyObject **dict, FORM_1 *form){ *dict = from_struct(form, py_FORM_1); PyDict_SetItemString(*dict, "level", PyInt_FromLong(1)); return True;}BOOL py_to_FORM(FORM *form, PyObject *dict){ PyObject *obj, *dict_copy = PyDict_Copy(dict); char *name; BOOL result = False; if (!(obj = PyDict_GetItemString(dict_copy, "name")) || !PyString_Check(obj)) goto done; PyDict_DelItemString(dict_copy, "name"); if (!(obj = PyDict_GetItemString(dict_copy, "level")) || !PyInt_Check(obj)) goto done; PyDict_DelItemString(dict_copy, "level"); if (!to_struct(form, dict_copy, py_FORM)) goto done; /* Careful! We can't call PyString_AsString(obj) then delete obj and still expect to have our pointer pointing somewhere useful. */ obj = PyDict_GetItemString(dict, "name"); name = PyString_AsString(obj); init_unistr2(&form->name, name, UNI_STR_TERMINATE); result = True;done: Py_DECREF(dict_copy); return result;}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?