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
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 0213 9 , 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 ) ;
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:16:12 +00:00
BOOL result = False ;
2002-05-17 02:34:49 +00:00
2002-10-21 04:16:12 +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:16:12 +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:16:12 +00:00
if ( ! to_struct ( form , dict_copy , py_FORM ) )
goto done ;
2002-05-20 08:09:19 +00:00
2002-10-21 04:47:29 +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 ) ;
init_unistr2 ( & form - > name , name , strlen ( name ) + 1 ) ;
2002-10-21 04:16:12 +00:00
result = True ;
done :
Py_DECREF ( dict_copy ) ;
return result ;
2002-04-05 05:48:01 +00:00
}