2002-04-05 05:48:01 +00:00
/*
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
2007-07-09 19:25:36 +00:00
the Free Software Foundation ; either version 3 of the License , or
2002-04-05 05:48:01 +00:00
( 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
2007-07-10 00:52:41 +00:00
along with this program . If not , see < http : //www.gnu.org/licenses/>.
2002-04-05 05:48:01 +00:00
*/
# 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 ) ;
2002-05-17 02:34:49 +00:00
PyDict_SetItemString ( * dict , " level " , PyInt_FromLong ( 1 ) ) ;
2002-04-05 05:48:01 +00:00
return True ;
}
BOOL py_to_FORM ( FORM * form , PyObject * dict )
{
2002-05-20 08:09:19 +00:00
PyObject * obj , * dict_copy = PyDict_Copy ( dict ) ;
2002-05-17 02:34:49 +00:00
char * name ;
2002-10-21 04:21:05 +00:00
BOOL result = False ;
2002-05-17 02:34:49 +00:00
2002-10-21 04:21:05 +00:00
if ( ! ( obj = PyDict_GetItemString ( dict_copy , " name " ) ) | |
! PyString_Check ( obj ) )
goto done ;
2002-05-27 06:28:45 +00:00
2002-10-21 04:21:05 +00:00
PyDict_DelItemString ( dict_copy , " name " ) ;
if ( ! ( obj = PyDict_GetItemString ( dict_copy , " level " ) ) | |
! PyInt_Check ( obj ) )
goto done ;
2002-05-17 02:34:49 +00:00
2002-05-20 08:09:19 +00:00
PyDict_DelItemString ( dict_copy , " level " ) ;
2002-10-21 04:21:05 +00:00
if ( ! to_struct ( form , dict_copy , py_FORM ) )
goto done ;
2002-05-20 08:09:19 +00:00
2002-10-21 04:50:32 +00:00
/* 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 " ) ;
2002-05-17 02:34:49 +00:00
name = PyString_AsString ( obj ) ;
2003-09-25 21:26:16 +00:00
init_unistr2 ( & form - > name , name , UNI_STR_TERMINATE ) ;
2002-05-17 02:34:49 +00:00
2002-10-21 04:21:05 +00:00
result = True ;
done :
Py_DECREF ( dict_copy ) ;
return result ;
2002-04-05 05:48:01 +00:00
}