[pywin32-checkins] pywin32/win32/src PyDEVMODE.cpp,1.1,1.2 PyWinObjects.h,1.7,1.8
OLD project page for the Python extensions for Windows
                
                Brought to you by:
                
                    mhammond
                    
                
            
            
        
        
        
    | 
      
      
      From: Roger U. <ru...@us...> - 2004-09-10 04:17:16
      
     | 
| Update of /cvsroot/pywin32/pywin32/win32/src In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv28251/win32/src Modified Files: PyDEVMODE.cpp PyWinObjects.h Log Message: Add a method to PyDEVMODE to propagate changes when an Api function modifies a DEVMODE, use null PyObject pointer for manually handled properties Index: PyWinObjects.h =================================================================== RCS file: /cvsroot/pywin32/pywin32/win32/src/PyWinObjects.h,v retrieving revision 1.7 retrieving revision 1.8 diff -C2 -d -r1.7 -r1.8 *** PyWinObjects.h 7 Sep 2004 04:27:02 -0000 1.7 --- PyWinObjects.h 10 Sep 2004 03:40:21 -0000 1.8 *************** *** 239,243 **** --- 239,247 ---- static PyObject *Clear(PyObject *self, PyObject *args); static PyObject *tp_new(PyTypeObject *, PyObject *, PyObject *); + // use this where a function modifies a passed-in PyDEVMODE to make changes visible to Python + void modify_in_place(void) + {memcpy(&devmode, pdevmode, pdevmode->dmSize);} PDEVMODE GetDEVMODE(void); + PyObject *obdummy; protected: // Pointer to variable length DEVMODE with dmDriverExtra bytes allocated at end, always use this externally Index: PyDEVMODE.cpp =================================================================== RCS file: /cvsroot/pywin32/pywin32/win32/src/PyDEVMODE.cpp,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** PyDEVMODE.cpp 7 Sep 2004 04:27:04 -0000 1.1 --- PyDEVMODE.cpp 10 Sep 2004 03:40:21 -0000 1.2 *************** *** 1,6 **** --- 1,8 ---- + // @doc - This file contains autoduck documentation #include "PyWinTypes.h" #include "structmember.h" #include "PyWinObjects.h" + // @object PyDEVMODE|Python object wrapping a DEVMODE structure struct PyMethodDef PyDEVMODE::methods[] = { {"Clear", PyDEVMODE::Clear, 1}, // @pymeth Clear|Resets all members of the structure *************** *** 11,15 **** struct PyMemberDef PyDEVMODE::members[] = { // DeviceName is a dummy so it will show up in property list, get and set handle manually ! {"DeviceName", T_OBJECT, 0, 0, "String of at most 32 chars"}, {"SpecVersion", T_USHORT, OFF(devmode.dmSpecVersion), 0, "Should always be set to DM_SPECVERSION"}, {"DriverVersion", T_USHORT, OFF(devmode.dmDriverVersion), 0, ""}, --- 13,17 ---- struct PyMemberDef PyDEVMODE::members[] = { // DeviceName is a dummy so it will show up in property list, get and set handle manually ! {"DeviceName", T_OBJECT, OFF(obdummy), 0, "String of at most 32 chars"}, {"SpecVersion", T_USHORT, OFF(devmode.dmSpecVersion), 0, "Should always be set to DM_SPECVERSION"}, {"DriverVersion", T_USHORT, OFF(devmode.dmDriverVersion), 0, ""}, *************** *** 34,39 **** {"YResolution", T_SHORT, OFF(devmode.dmYResolution), 0, "Vertical printer resolution in DPI - if this is set, PrintQuality indicates horizontal DPI"}, {"TTOption", T_SHORT, OFF(devmode.dmTTOption), 0, "TrueType options: DMTT_BITMAP, DMTT_DOWNLOAD, DMTT_DOWNLOAD_OUTLINE, DMTT_SUBDEV"}, ! {"Collate", T_SHORT, OFF(devmode.dmCollate), 0, "DMCOLLATE_TRUE or DMCOLLATE_FLASE"}, ! {"FormName", T_OBJECT, 0, 0, "String of at most 32 chars"}, // same semantics as DeviceName {"LogPixels", T_USHORT, OFF(devmode.dmLogPixels), 0, "Pixels per inch (only for display devices)"}, {"BitsPerPel", T_ULONG, OFF(devmode.dmBitsPerPel), 0, "Color resolution in bits per pixel"}, --- 36,41 ---- {"YResolution", T_SHORT, OFF(devmode.dmYResolution), 0, "Vertical printer resolution in DPI - if this is set, PrintQuality indicates horizontal DPI"}, {"TTOption", T_SHORT, OFF(devmode.dmTTOption), 0, "TrueType options: DMTT_BITMAP, DMTT_DOWNLOAD, DMTT_DOWNLOAD_OUTLINE, DMTT_SUBDEV"}, ! {"Collate", T_SHORT, OFF(devmode.dmCollate), 0, "DMCOLLATE_TRUE or DMCOLLATE_FLASE"}, ! {"FormName", T_OBJECT, OFF(obdummy), 0, "String of at most 32 chars"}, // same semantics as DeviceName {"LogPixels", T_USHORT, OFF(devmode.dmLogPixels), 0, "Pixels per inch (only for display devices)"}, {"BitsPerPel", T_ULONG, OFF(devmode.dmBitsPerPel), 0, "Color resolution in bits per pixel"}, *************** *** 51,60 **** {"PanningWidth", T_ULONG, OFF(devmode.dmPanningWidth), 0, ""}, {"PanningHeight", T_ULONG, OFF(devmode.dmPanningHeight), 0, ""}, ! {"DriverData", T_OBJECT, OFF(devmode)+sizeof(DEVMODE), 0, "Driver data appended to end of structure"}, {NULL} }; - - // @object PyDEVMODE|Python object wrapping a DEVMODE structure PYWINTYPES_EXPORT PyTypeObject PyDEVMODEType = { --- 53,60 ---- {"PanningWidth", T_ULONG, OFF(devmode.dmPanningWidth), 0, ""}, {"PanningHeight", T_ULONG, OFF(devmode.dmPanningHeight), 0, ""}, ! {"DriverData", T_OBJECT, OFF(obdummy), 0, "Driver data appended to end of structure"}, {NULL} }; PYWINTYPES_EXPORT PyTypeObject PyDEVMODEType = { *************** *** 110,113 **** --- 110,114 ---- else; memcpy(pdevmode, pdm, pdm->dmSize + pdm->dmDriverExtra); + obdummy=NULL; _Py_NewReference(this); } *************** *** 124,127 **** --- 125,129 ---- devmode.dmSize=dmSize; devmode.dmSpecVersion=DM_SPECVERSION; + obdummy=NULL; _Py_NewReference(this); } *************** *** 140,143 **** --- 142,146 ---- devmode.dmSpecVersion=DM_SPECVERSION; devmode.dmDriverExtra=dmDriverExtra; + obdummy=NULL; _Py_NewReference(this); } *************** *** 168,171 **** --- 171,175 ---- } + // @pymethod |PyDEVMODE|Clear|Resets all members of the structure PyObject *PyDEVMODE::Clear(PyObject *self, PyObject *args) { |