pywin32-checkins Mailing List for Python for Windows Extensions (Page 83)
OLD project page for the Python extensions for Windows
Brought to you by:
mhammond
You can subscribe to this list here.
2003 |
Jan
|
Feb
|
Mar
|
Apr
(2) |
May
(1) |
Jun
(6) |
Jul
(50) |
Aug
(11) |
Sep
(24) |
Oct
(184) |
Nov
(118) |
Dec
(22) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2004 |
Jan
(31) |
Feb
(25) |
Mar
(34) |
Apr
(105) |
May
(49) |
Jun
(38) |
Jul
(39) |
Aug
(7) |
Sep
(98) |
Oct
(79) |
Nov
(20) |
Dec
(17) |
2005 |
Jan
(66) |
Feb
(32) |
Mar
(43) |
Apr
(30) |
May
(58) |
Jun
(30) |
Jul
(16) |
Aug
(4) |
Sep
(21) |
Oct
(42) |
Nov
(11) |
Dec
(14) |
2006 |
Jan
(42) |
Feb
(30) |
Mar
(22) |
Apr
(1) |
May
(9) |
Jun
(15) |
Jul
(20) |
Aug
(9) |
Sep
(8) |
Oct
(1) |
Nov
(9) |
Dec
(43) |
2007 |
Jan
(52) |
Feb
(45) |
Mar
(20) |
Apr
(12) |
May
(59) |
Jun
(39) |
Jul
(35) |
Aug
(31) |
Sep
(17) |
Oct
(20) |
Nov
(4) |
Dec
(4) |
2008 |
Jan
(28) |
Feb
(111) |
Mar
(4) |
Apr
(27) |
May
(40) |
Jun
(27) |
Jul
(32) |
Aug
(94) |
Sep
(87) |
Oct
(153) |
Nov
(336) |
Dec
(331) |
2009 |
Jan
(298) |
Feb
(127) |
Mar
(20) |
Apr
(8) |
May
|
Jun
(10) |
Jul
(6) |
Aug
|
Sep
(2) |
Oct
(2) |
Nov
|
Dec
(1) |
2010 |
Jan
(7) |
Feb
(1) |
Mar
|
Apr
|
May
(15) |
Jun
(4) |
Jul
(3) |
Aug
(28) |
Sep
(1) |
Oct
(19) |
Nov
(16) |
Dec
(6) |
2011 |
Jan
(2) |
Feb
(18) |
Mar
(17) |
Apr
(12) |
May
(5) |
Jun
(11) |
Jul
(7) |
Aug
(2) |
Sep
(2) |
Oct
(4) |
Nov
(4) |
Dec
|
2012 |
Jan
(6) |
Feb
(2) |
Mar
|
Apr
(8) |
May
(4) |
Jun
(3) |
Jul
(13) |
Aug
(27) |
Sep
(8) |
Oct
(9) |
Nov
(3) |
Dec
(2) |
2013 |
Jan
|
Feb
(1) |
Mar
(5) |
Apr
(10) |
May
|
Jun
(2) |
Jul
|
Aug
|
Sep
|
Oct
|
Nov
(1) |
Dec
(9) |
2014 |
Jan
(2) |
Feb
(4) |
Mar
(4) |
Apr
(1) |
May
(4) |
Jun
(2) |
Jul
|
Aug
|
Sep
|
Oct
(2) |
Nov
|
Dec
(1) |
2015 |
Jan
(1) |
Feb
|
Mar
|
Apr
(6) |
May
(2) |
Jun
|
Jul
|
Aug
(1) |
Sep
|
Oct
|
Nov
|
Dec
|
2016 |
Jan
(3) |
Feb
(2) |
Mar
|
Apr
(3) |
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
2017 |
Jan
|
Feb
|
Mar
(1) |
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
(1) |
Oct
|
Nov
|
Dec
|
From: Sidnei da S. <dre...@us...> - 2008-02-06 01:48:12
|
Update of /cvsroot/pywin32/pywin32/com/win32comext/bits/test In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv31830/test Log Message: Directory /cvsroot/pywin32/pywin32/com/win32comext/bits/test added to the repository --> Using per-directory sticky tag `sidnei-bits' |
From: Sidnei da S. <dre...@us...> - 2008-02-06 01:47:54
|
Update of /cvsroot/pywin32/pywin32/com/win32comext/bits/src In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv31475/src Log Message: Directory /cvsroot/pywin32/pywin32/com/win32comext/bits/src added to the repository --> Using per-directory sticky tag `sidnei-bits' |
From: Sidnei da S. <dre...@us...> - 2008-02-06 01:47:01
|
Update of /cvsroot/pywin32/pywin32/com/win32comext/bits In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv31117/bits Log Message: Directory /cvsroot/pywin32/pywin32/com/win32comext/bits added to the repository --> Using per-directory sticky tag `sidnei-bits' |
From: Roger U. <ru...@us...> - 2008-01-26 17:38:29
|
Update of /cvsroot/pywin32/pywin32/Pythonwin In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv25281 Modified Files: win32util.cpp Log Message: Fix issue with Italic and Underline (bug #1879894) Index: win32util.cpp =================================================================== RCS file: /cvsroot/pywin32/pywin32/Pythonwin/win32util.cpp,v retrieving revision 1.12 retrieving revision 1.13 diff -C2 -d -r1.12 -r1.13 *** win32util.cpp 20 Oct 2007 05:23:14 -0000 1.12 --- win32util.cpp 26 Jan 2008 17:38:32 -0000 1.13 *************** *** 317,325 **** v = PyDict_GetItemString (font_props, (char *)szFontItalic); ! if (v != NULL && v != Py_None) pLF->lfItalic = TRUE; v = PyDict_GetItemString (font_props, (char *)szFontUnderline); ! if (v != NULL && v != Py_None) pLF->lfUnderline = TRUE; return TRUE; --- 317,325 ---- v = PyDict_GetItemString (font_props, (char *)szFontItalic); ! if (v != NULL && PyObject_IsTrue(v)) pLF->lfItalic = TRUE; v = PyDict_GetItemString (font_props, (char *)szFontUnderline); ! if (v != NULL && PyObject_IsTrue(v)) pLF->lfUnderline = TRUE; return TRUE; |
From: Mark H. <mha...@us...> - 2008-01-22 12:29:52
|
Update of /cvsroot/pywin32/pywin32/Pythonwin In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv10418 Modified Files: win32uiExt.h Log Message: hack around strange compiler error using vs2008 Index: win32uiExt.h =================================================================== RCS file: /cvsroot/pywin32/pywin32/Pythonwin/win32uiExt.h,v retrieving revision 1.12 retrieving revision 1.13 diff -C2 -d -r1.12 -r1.13 *** win32uiExt.h 3 Jun 2007 12:35:58 -0000 1.12 --- win32uiExt.h 22 Jan 2008 12:29:50 -0000 1.13 *************** *** 395,398 **** --- 395,409 ---- }; + // ack - compile error in MFC9, and only for ON_WM_NCHITTEST! + #if _MFC_VER >= 0x0900 + #undef ON_WM_NCHITTEST + // from afxmsg_.h - the UINT was originally LRESULT + #define ON_WM_NCHITTEST() \ + { WM_NCHITTEST, 0, 0, 0, AfxSig_l_p, \ + (AFX_PMSG)(AFX_PMSGW) \ + (static_cast< UINT (AFX_MSG_CALL CWnd::*)(CPoint) > (&ThisClass :: OnNcHitTest)) }, + + #endif + #define ThisClass CPythonWndFramework<T> template <class T> |
From: Mark H. <mha...@us...> - 2008-01-22 12:28:14
|
Update of /cvsroot/pywin32/pywin32/Pythonwin In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv10042 Modified Files: win32uimodule.cpp Log Message: happy new year :) Index: win32uimodule.cpp =================================================================== RCS file: /cvsroot/pywin32/pywin32/Pythonwin/win32uimodule.cpp,v retrieving revision 1.35 retrieving revision 1.36 diff -C2 -d -r1.35 -r1.36 *** win32uimodule.cpp 13 Jul 2007 03:02:50 -0000 1.35 --- win32uimodule.cpp 22 Jan 2008 12:28:18 -0000 1.36 *************** *** 2274,2278 **** // drop email addy - too many ppl use it for support requests for other // tools that simply embed Pythonwin... ! PyObject *copyright = PyString_FromString("Copyright 1994-2007 Mark Hammond"); PyDict_SetItemString(dict, "copyright", copyright); Py_XDECREF(copyright); --- 2274,2278 ---- // drop email addy - too many ppl use it for support requests for other // tools that simply embed Pythonwin... ! PyObject *copyright = PyString_FromString("Copyright 1994-2008 Mark Hammond"); PyDict_SetItemString(dict, "copyright", copyright); Py_XDECREF(copyright); |
From: Mark H. <mha...@us...> - 2008-01-22 12:22:10
|
Update of /cvsroot/pywin32/pywin32/com/win32comext/propsys In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv7545/propsys Added Files: __init__.py pscon.py Log Message: New win32com.propsys package for the Vista property system (used by the shell, but gets it own module as this is officially vista-or-later) --- NEW FILE: pscon.py --- # hand generated from propsys.h PET_DISCRETEVALUE = 0 PET_RANGEDVALUE = 1 PET_DEFAULTVALUE = 2 PET_ENDRANGE = 3 PDTF_DEFAULT = 0 PDTF_MULTIPLEVALUES = 0x1 PDTF_ISINNATE = 0x2 PDTF_ISGROUP = 0x4 PDTF_CANGROUPBY = 0x8 PDTF_CANSTACKBY = 0x10 PDTF_ISTREEPROPERTY = 0x20 PDTF_INCLUDEINFULLTEXTQUERY = 0x40 PDTF_ISVIEWABLE = 0x80 PDTF_ISQUERYABLE = 0x100 PDTF_ISSYSTEMPROPERTY = 0x80000000 PDTF_MASK_ALL = 0x800001ff PDVF_DEFAULT = 0 PDVF_CENTERALIGN = 0x1 PDVF_RIGHTALIGN = 0x2 PDVF_BEGINNEWGROUP = 0x4 PDVF_FILLAREA = 0x8 PDVF_SORTDESCENDING = 0x10 PDVF_SHOWONLYIFPRESENT = 0x20 PDVF_SHOWBYDEFAULT = 0x40 PDVF_SHOWINPRIMARYLIST = 0x80 PDVF_SHOWINSECONDARYLIST = 0x100 PDVF_HIDELABEL = 0x200 PDVF_HIDDEN = 0x800 PDVF_CANWRAP = 0x1000 PDVF_MASK_ALL = 0x1bff PDDT_STRING = 0 PDDT_NUMBER = 1 PDDT_BOOLEAN = 2 PDDT_DATETIME = 3 PDDT_ENUMERATED = 4 PDGR_DISCRETE = 0 PDGR_ALPHANUMERIC = 1 PDGR_SIZE = 2 PDGR_DYNAMIC = 3 PDGR_DATE = 4 PDGR_PERCENT = 5 PDGR_ENUMERATED = 6 PDFF_DEFAULT = 0 PDFF_PREFIXNAME = 0x1 PDFF_FILENAME = 0x2 PDFF_ALWAYSKB = 0x4 PDFF_RESERVED_RIGHTTOLEFT = 0x8 PDFF_SHORTTIME = 0x10 PDFF_LONGTIME = 0x20 PDFF_HIDETIME = 0x40 PDFF_SHORTDATE = 0x80 PDFF_LONGDATE = 0x100 PDFF_HIDEDATE = 0x200 PDFF_RELATIVEDATE = 0x400 PDFF_USEEDITINVITATION = 0x800 PDFF_READONLY = 0x1000 PDFF_NOAUTOREADINGORDER = 0x2000 PDSD_GENERAL = 0 PDSD_A_Z = 1 PDSD_LOWEST_HIGHEST = 2 PDSD_SMALLEST_BIGGEST = 3 PDSD_OLDEST_NEWEST = 4 PDRDT_GENERAL = 0 PDRDT_DATE = 1 PDRDT_SIZE = 2 PDRDT_COUNT = 3 PDRDT_REVISION = 4 PDRDT_LENGTH = 5 PDRDT_DURATION = 6 PDRDT_SPEED = 7 PDRDT_RATE = 8 PDRDT_RATING = 9 PDRDT_PRIORITY = 10 PDAT_DEFAULT = 0 PDAT_FIRST = 1 PDAT_SUM = 2 PDAT_AVERAGE = 3 PDAT_DATERANGE = 4 PDAT_UNION = 5 PDAT_MAX = 6 PDAT_MIN = 7 PDCOT_NONE = 0 PDCOT_STRING = 1 PDCOT_SIZE = 2 PDCOT_DATETIME = 3 PDCOT_BOOLEAN = 4 PDCOT_NUMBER = 5 PDTF_DEFAULT = 0 PDTF_MULTIPLEVALUES = 0x1 PDTF_ISINNATE = 0x2 PDTF_ISGROUP = 0x4 PDTF_CANGROUPBY = 0x8 PDTF_CANSTACKBY = 0x10 PDTF_ISTREEPROPERTY = 0x20 PDTF_INCLUDEINFULLTEXTQUERY = 0x40 PDTF_ISVIEWABLE = 0x80 PDTF_ISQUERYABLE = 0x100 PDTF_ISSYSTEMPROPERTY = 0x80000000 PDTF_MASK_ALL = 0x800001ff PDVF_DEFAULT = 0 PDVF_CENTERALIGN = 0x1 PDVF_RIGHTALIGN = 0x2 PDVF_BEGINNEWGROUP = 0x4 PDVF_FILLAREA = 0x8 PDVF_SORTDESCENDING = 0x10 PDVF_SHOWONLYIFPRESENT = 0x20 PDVF_SHOWBYDEFAULT = 0x40 PDVF_SHOWINPRIMARYLIST = 0x80 PDVF_SHOWINSECONDARYLIST = 0x100 PDVF_HIDELABEL = 0x200 PDVF_HIDDEN = 0x800 PDVF_CANWRAP = 0x1000 PDVF_MASK_ALL = 0x1bff PDDT_STRING = 0 PDDT_NUMBER = 1 PDDT_BOOLEAN = 2 PDDT_DATETIME = 3 PDDT_ENUMERATED = 4 PDGR_DISCRETE = 0 PDGR_ALPHANUMERIC = 1 PDGR_SIZE = 2 PDGR_DYNAMIC = 3 PDGR_DATE = 4 PDGR_PERCENT = 5 PDGR_ENUMERATED = 6 PDFF_DEFAULT = 0 PDFF_PREFIXNAME = 0x1 PDFF_FILENAME = 0x2 PDFF_ALWAYSKB = 0x4 PDFF_RESERVED_RIGHTTOLEFT = 0x8 PDFF_SHORTTIME = 0x10 PDFF_LONGTIME = 0x20 PDFF_HIDETIME = 0x40 PDFF_SHORTDATE = 0x80 PDFF_LONGDATE = 0x100 PDFF_HIDEDATE = 0x200 PDFF_RELATIVEDATE = 0x400 PDFF_USEEDITINVITATION = 0x800 PDFF_READONLY = 0x1000 PDFF_NOAUTOREADINGORDER = 0x2000 PDSD_GENERAL = 0 PDSD_A_Z = 1 PDSD_LOWEST_HIGHEST = 2 PDSD_SMALLEST_BIGGEST = 3 PDSD_OLDEST_NEWEST = 4 PDRDT_GENERAL = 0 PDRDT_DATE = 1 PDRDT_SIZE = 2 PDRDT_COUNT = 3 PDRDT_REVISION = 4 PDRDT_LENGTH = 5 PDRDT_DURATION = 6 PDRDT_SPEED = 7 PDRDT_RATE = 8 PDRDT_RATING = 9 PDRDT_PRIORITY = 10 PDAT_DEFAULT = 0 PDAT_FIRST = 1 PDAT_SUM = 2 PDAT_AVERAGE = 3 PDAT_DATERANGE = 4 PDAT_UNION = 5 PDAT_MAX = 6 PDAT_MIN = 7 PDCOT_NONE = 0 PDCOT_STRING = 1 PDCOT_SIZE = 2 PDCOT_DATETIME = 3 PDCOT_BOOLEAN = 4 PDCOT_NUMBER = 5 PDDT_STRING = 0 PDDT_NUMBER = 1 PDDT_BOOLEAN = 2 PDDT_DATETIME = 3 PDDT_ENUMERATED = 4 PDGR_DISCRETE = 0 PDGR_ALPHANUMERIC = 1 PDGR_SIZE = 2 PDGR_DYNAMIC = 3 PDGR_DATE = 4 PDGR_PERCENT = 5 PDGR_ENUMERATED = 6 PDFF_DEFAULT = 0 PDFF_PREFIXNAME = 0x1 PDFF_FILENAME = 0x2 PDFF_ALWAYSKB = 0x4 PDFF_RESERVED_RIGHTTOLEFT = 0x8 PDFF_SHORTTIME = 0x10 PDFF_LONGTIME = 0x20 PDFF_HIDETIME = 0x40 PDFF_SHORTDATE = 0x80 PDFF_LONGDATE = 0x100 PDFF_HIDEDATE = 0x200 PDFF_RELATIVEDATE = 0x400 PDFF_USEEDITINVITATION = 0x800 PDFF_READONLY = 0x1000 PDFF_NOAUTOREADINGORDER = 0x2000 PDSD_GENERAL = 0 PDSD_A_Z = 1 PDSD_LOWEST_HIGHEST = 2 PDSD_SMALLEST_BIGGEST = 3 PDSD_OLDEST_NEWEST = 4 PDRDT_GENERAL = 0 PDRDT_DATE = 1 PDRDT_SIZE = 2 PDRDT_COUNT = 3 PDRDT_REVISION = 4 PDRDT_LENGTH = 5 PDRDT_DURATION = 6 PDRDT_SPEED = 7 PDRDT_RATE = 8 PDRDT_RATING = 9 PDRDT_PRIORITY = 10 PDAT_DEFAULT = 0 PDAT_FIRST = 1 PDAT_SUM = 2 PDAT_AVERAGE = 3 PDAT_DATERANGE = 4 PDAT_UNION = 5 PDAT_MAX = 6 PDAT_MIN = 7 PDCOT_NONE = 0 PDCOT_STRING = 1 PDCOT_SIZE = 2 PDCOT_DATETIME = 3 PDCOT_BOOLEAN = 4 PDCOT_NUMBER = 5 PDFF_DEFAULT = 0 PDFF_PREFIXNAME = 0x1 PDFF_FILENAME = 0x2 PDFF_ALWAYSKB = 0x4 PDFF_RESERVED_RIGHTTOLEFT = 0x8 PDFF_SHORTTIME = 0x10 PDFF_LONGTIME = 0x20 PDFF_HIDETIME = 0x40 PDFF_SHORTDATE = 0x80 PDFF_LONGDATE = 0x100 PDFF_HIDEDATE = 0x200 PDFF_RELATIVEDATE = 0x400 PDFF_USEEDITINVITATION = 0x800 PDFF_READONLY = 0x1000 PDFF_NOAUTOREADINGORDER = 0x2000 PDSD_GENERAL = 0 PDSD_A_Z = 1 PDSD_LOWEST_HIGHEST = 2 PDSD_SMALLEST_BIGGEST = 3 PDSD_OLDEST_NEWEST = 4 PDRDT_GENERAL = 0 PDRDT_DATE = 1 PDRDT_SIZE = 2 PDRDT_COUNT = 3 PDRDT_REVISION = 4 PDRDT_LENGTH = 5 PDRDT_DURATION = 6 PDRDT_SPEED = 7 PDRDT_RATE = 8 PDRDT_RATING = 9 PDRDT_PRIORITY = 10 PDAT_DEFAULT = 0 PDAT_FIRST = 1 PDAT_SUM = 2 PDAT_AVERAGE = 3 PDAT_DATERANGE = 4 PDAT_UNION = 5 PDAT_MAX = 6 PDAT_MIN = 7 PDCOT_NONE = 0 PDCOT_STRING = 1 PDCOT_SIZE = 2 PDCOT_DATETIME = 3 PDCOT_BOOLEAN = 4 PDCOT_NUMBER = 5 PDRDT_GENERAL = 0 PDRDT_DATE = 1 PDRDT_SIZE = 2 PDRDT_COUNT = 3 PDRDT_REVISION = 4 PDRDT_LENGTH = 5 PDRDT_DURATION = 6 PDRDT_SPEED = 7 PDRDT_RATE = 8 PDRDT_RATING = 9 PDRDT_PRIORITY = 10 PDAT_DEFAULT = 0 PDAT_FIRST = 1 PDAT_SUM = 2 PDAT_AVERAGE = 3 PDAT_DATERANGE = 4 PDAT_UNION = 5 PDAT_MAX = 6 PDAT_MIN = 7 PDCOT_NONE = 0 PDCOT_STRING = 1 PDCOT_SIZE = 2 PDCOT_DATETIME = 3 PDCOT_BOOLEAN = 4 PDCOT_NUMBER = 5 PDSIF_DEFAULT = 0 PDSIF_ININVERTEDINDEX = 0x1 PDSIF_ISCOLUMN = 0x2 PDSIF_ISCOLUMNSPARSE = 0x4 PDCIT_NONE = 0 PDCIT_ONDISK = 1 PDCIT_INMEMORY = 2 PDEF_ALL = 0 PDEF_SYSTEM = 1 PDEF_NONSYSTEM = 2 PDEF_VIEWABLE = 3 PDEF_QUERYABLE = 4 PDEF_INFULLTEXTQUERY = 5 PDEF_COLUMN = 6 PKEY_PIDSTR_MAX = 10 # will take care of any long integer value #define GUIDSTRING_MAX (1 + 8 + 1 + 4 + 1 + 4 + 1 + 4 + 1 + 12 + 1 + 1) // "{12345678-1234-1234-1234-123456789012}" GUIDSTRING_MAX = (1 + 8 + 1 + 4 + 1 + 4 + 1 + 4 + 1 + 12 + 1 + 1) # hrm ??? #define PKEYSTR_MAX (GUIDSTRING_MAX + 1 + PKEY_PIDSTR_MAX) PKEYSTR_MAX = GUIDSTRING_MAX + 1 + PKEY_PIDSTR_MAX --- NEW FILE: __init__.py --- # this is a python package |
From: Mark H. <mha...@us...> - 2008-01-22 12:22:10
|
Update of /cvsroot/pywin32/pywin32/com/win32comext/propsys/src In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv7545/propsys/src Added Files: propsys.cpp Log Message: New win32com.propsys package for the Vista property system (used by the shell, but gets it own module as this is officially vista-or-later) --- NEW FILE: propsys.cpp --- // propsys.cpp : // $Id: propsys.cpp,v 1.1 2008/01/22 12:22:14 mhammond Exp $ // Interfaces that support the Vista IProperty* interfaces. // Although propsys.dll existed before Vista, this module didn't - so we // don't LoadLibrary() stuff that only exist in Vista - sue me/or back-port // if you care :) // This source file contains autoduck documentation. // @doc // Any python API functions that use 's#' format must use Py_ssize_t for length #define PY_SSIZE_T_CLEAN #include "propsys.h" #include "PythonCOM.h" #include "PythonCOMRegister.h" // @pymethod |propsys|PSRegisterPropertySchema| static PyObject *PyPSRegisterPropertySchema(PyObject *self, PyObject *args) { PyObject *obfname; // @pyparm unicode|filename|| if (!PyArg_ParseTuple(args, "O:PSRegisterPropertySchema", &obfname)) return NULL; WCHAR *sz; if (!PyWinObject_AsWCHAR(obfname, &sz, FALSE)) return FALSE; HRESULT hr; PY_INTERFACE_PRECALL; hr = PSRegisterPropertySchema(sz); PY_INTERFACE_POSTCALL; PyWinObject_FreeWCHAR(sz); if (FAILED(hr)) return PyCom_BuildPyException(hr); Py_INCREF(Py_None); return Py_None; } // @pymethod |propsys|PSUnregisterPropertySchema| static PyObject *PyPSUnregisterPropertySchema(PyObject *self, PyObject *args) { PyObject *obfname; // @pyparm unicode|filename|| if (!PyArg_ParseTuple(args, "O:PSUnregisterPropertySchema", &obfname)) return NULL; WCHAR *sz; if (!PyWinObject_AsWCHAR(obfname, &sz, FALSE)) return FALSE; HRESULT hr; PY_INTERFACE_PRECALL; hr = PSUnregisterPropertySchema(sz); PY_INTERFACE_POSTCALL; PyWinObject_FreeWCHAR(sz); if (FAILED(hr)) return PyCom_BuildPyException(hr); Py_INCREF(Py_None); return Py_None; } /* List of module functions */ // @module propsys|A module, encapsulating the Vista propsys interfaces static struct PyMethodDef propsys_methods[]= { { "PSRegisterPropertySchema", PyPSRegisterPropertySchema, 1 }, // @pymeth PyPSRegisterPropertySchema| { "PSUnregisterPropertySchema", PyPSUnregisterPropertySchema, 1 }, // @pymeth PyPSRegisterPropertySchema| { NULL, NULL }, }; //static const PyCom_InterfaceSupportInfo g_interfaceSupportData[] = //{ //}; /* Module initialisation */ extern "C" __declspec(dllexport) void initpropsys() { char *modName = "propsys"; PyObject *oModule; // Create the module and add the functions oModule = Py_InitModule(modName, propsys_methods); if (!oModule) /* Eeek - some serious error! */ return; PyObject *dict = PyModule_GetDict(oModule); if (!dict) return; /* Another serious error!*/ PyDict_SetItemString(dict, "error", PyWinExc_COMError); // Register all of our interfaces, gateways and IIDs. //PyCom_RegisterExtensionSupport(dict, g_interfaceSupportData, sizeof(g_interfaceSupportData)/sizeof(PyCom_InterfaceSupportInfo)); } |
From: Mark H. <mha...@us...> - 2008-01-22 12:22:10
|
Update of /cvsroot/pywin32/pywin32/com/win32comext/propsys/test In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv7545/propsys/test Added Files: testpropsys.py Log Message: New win32com.propsys package for the Vista property system (used by the shell, but gets it own module as this is officially vista-or-later) --- NEW FILE: testpropsys.py --- from win32com.propsys import propsys, pscon print "propsys was imported (sorry - that is the extent of the tests," print "but see the shell folder_view demo, which uses this module)" # that's all folks! |
From: Mark H. <mha...@us...> - 2008-01-22 12:11:56
|
Update of /cvsroot/pywin32/pywin32/com/win32com/src/extensions In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv3897/extensions Modified Files: PyIEnumGUID.cpp Log Message: Add gateway support for IEnumGUID Index: PyIEnumGUID.cpp =================================================================== RCS file: /cvsroot/pywin32/pywin32/com/win32com/src/extensions/PyIEnumGUID.cpp,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** PyIEnumGUID.cpp 2 Nov 2003 09:57:44 -0000 1.5 --- PyIEnumGUID.cpp 22 Jan 2008 12:11:59 -0000 1.6 *************** *** 146,148 **** --- 146,230 ---- GET_PYCOM_CTOR(PyIEnumGUID)); + // --------------------------------------------------- + // + // Gateway Implementation + + + STDMETHODIMP PyGEnumGUID::Next(ULONG celt, GUID __RPC_FAR *rgVar,ULONG __RPC_FAR *pCeltFetched) + { + PY_GATEWAY_METHOD; + PyObject *result, *result_tuple, *result_item; + ULONG item_index; + HRESULT hr = InvokeViaPolicy("Next", &result, "i", celt); + if ( FAILED(hr) ) + return hr; + + // Caller is expected to allocate array of GUIDs + ZeroMemory(rgVar, celt*sizeof(LPOLESTR)); + result_tuple=PySequence_Tuple(result); + if (result_tuple==NULL) + return PyCom_SetCOMErrorFromPyException(IID_IEnumGUID); + hr=S_OK; + *pCeltFetched = PyWin_SAFE_DOWNCAST(PyTuple_GET_SIZE(result_tuple), Py_ssize_t, ULONG); + if (*pCeltFetched > celt){ + PyErr_Format(PyExc_ValueError, "Received %d items , but only %d items requested", *pCeltFetched, celt); + hr=PyCom_SetCOMErrorFromPyException(IID_IEnumGUID); + } + else + for (item_index = 0; item_index < *pCeltFetched; item_index++){ + result_item = PyTuple_GET_ITEM(result_tuple, item_index); + if (!PyWinObject_AsIID(result_item, &rgVar[item_index])){ + hr=PyCom_SetCOMErrorFromPyException(IID_IEnumGUID); + break; + } + } + + Py_DECREF(result_tuple); + return hr; + } + + STDMETHODIMP PyGEnumGUID::Skip(ULONG celt) + { + PY_GATEWAY_METHOD; + return InvokeViaPolicy("Skip", NULL, "i", celt); + } + + STDMETHODIMP PyGEnumGUID::Reset(void) + { + PY_GATEWAY_METHOD; + return InvokeViaPolicy("Reset"); + } + + STDMETHODIMP PyGEnumGUID::Clone(IEnumGUID __RPC_FAR *__RPC_FAR *ppEnum) + { + PY_GATEWAY_METHOD; + PyObject * result; + HRESULT hr = InvokeViaPolicy("Clone", &result); + if ( FAILED(hr) ) + return hr; + + if ( !PyIBase::is_object(result, &PyIUnknown::type) ) + { + // the wrong kind of object was returned to us + Py_DECREF(result); + return PyCom_SetCOMErrorFromSimple(E_FAIL, IID_IEnumGUID); + } + + IUnknown *punk = ((PyIUnknown *)result)->m_obj; + if ( !punk ) + { + Py_DECREF(result); + return PyCom_SetCOMErrorFromSimple(E_FAIL, IID_IEnumGUID); + } + + Py_BEGIN_ALLOW_THREADS + hr = punk->QueryInterface(IID_IEnumGUID, (LPVOID *)ppEnum); + Py_END_ALLOW_THREADS + + // done with the result; this DECREF is also for <punk> + Py_DECREF(result); + + return PyCom_SetCOMErrorFromSimple(hr, IID_IEnumGUID); + } + #endif // NO_PYCOM_IENUMGUID |
From: Mark H. <mha...@us...> - 2008-01-22 12:11:55
|
Update of /cvsroot/pywin32/pywin32/com/win32com/src/include In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv3897/include Modified Files: PyIEnumGUID.h Log Message: Add gateway support for IEnumGUID Index: PyIEnumGUID.h =================================================================== RCS file: /cvsroot/pywin32/pywin32/com/win32com/src/include/PyIEnumGUID.h,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** PyIEnumGUID.h 2 Nov 2003 09:57:45 -0000 1.3 --- PyIEnumGUID.h 22 Jan 2008 12:11:59 -0000 1.4 *************** *** 2,5 **** --- 2,9 ---- // class PyIEnumGUID #ifndef NO_PYCOM_IENUMGUID + + #include "PythonCOM.h" + #include "PythonCOMServer.h" + class PyIEnumGUID : public PyIUnknown { *************** *** 18,21 **** --- 22,53 ---- ~PyIEnumGUID(); }; + + // --------------------------------------------------- + // + // Gateway Declaration + + class PyGEnumGUID : public PyGatewayBase, public IEnumGUID + { + protected: + PyGEnumGUID(PyObject *instance) : PyGatewayBase(instance) { ; } + PYGATEWAY_MAKE_SUPPORT(PyGEnumGUID, IEnumGUID, IID_IEnumGUID) + + // IEnumGUID + STDMETHOD(Next)( + ULONG celt, + GUID __RPC_FAR * rgelt, + ULONG __RPC_FAR * pceltFetched); + + STDMETHOD(Skip)( + ULONG celt); + + STDMETHOD(Reset)( + void); + + STDMETHOD(Clone)( + IEnumGUID __RPC_FAR *__RPC_FAR * ppenum); + + }; + #endif // NO_PYCOM_IENUMGUID |
From: Mark H. <mha...@us...> - 2008-01-22 12:11:55
|
Update of /cvsroot/pywin32/pywin32/com/win32com/src In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv3897 Modified Files: Register.cpp Log Message: Add gateway support for IEnumGUID Index: Register.cpp =================================================================== RCS file: /cvsroot/pywin32/pywin32/com/win32com/src/Register.cpp,v retrieving revision 1.17 retrieving revision 1.18 diff -C2 -d -r1.17 -r1.18 *** Register.cpp 4 Jul 2007 17:57:55 -0000 1.17 --- Register.cpp 22 Jan 2008 12:11:59 -0000 1.18 *************** *** 242,246 **** PYCOM_INTERFACE_FULL ( EnumFORMATETC), #ifndef NO_PYCOM_IENUMGUID ! PYCOM_INTERFACE_CLIENT_ONLY( EnumGUID), #endif // NO_PYCOM_IENUMGUID PYCOM_INTERFACE_CLIENT_ONLY( EnumMoniker), --- 242,246 ---- PYCOM_INTERFACE_FULL ( EnumFORMATETC), #ifndef NO_PYCOM_IENUMGUID ! PYCOM_INTERFACE_FULL( EnumGUID), #endif // NO_PYCOM_IENUMGUID PYCOM_INTERFACE_CLIENT_ONLY( EnumMoniker), |
From: Mark H. <mha...@us...> - 2008-01-22 12:09:32
|
Update of /cvsroot/pywin32/pywin32/com/win32com/src In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv2735/src Modified Files: PyComHelpers.cpp Log Message: clarify the error message if NULL is passed to PyCom_InterfaceFromPyObject Index: PyComHelpers.cpp =================================================================== RCS file: /cvsroot/pywin32/pywin32/com/win32com/src/PyComHelpers.cpp,v retrieving revision 1.14 retrieving revision 1.15 diff -C2 -d -r1.14 -r1.15 *** PyComHelpers.cpp 4 Jul 2007 18:34:56 -0000 1.14 --- PyComHelpers.cpp 22 Jan 2008 12:09:34 -0000 1.15 *************** *** 208,212 **** // don't overwrite an error message if ( !PyErr_Occurred() ) ! PyErr_SetString(PyExc_TypeError, "The Python object is invalid"); return FALSE; } --- 208,212 ---- // don't overwrite an error message if ( !PyErr_Occurred() ) ! PyErr_SetString(PyExc_TypeError, "The Python object is NULL and no error occurred"); return FALSE; } |
From: Mark H. <mha...@us...> - 2008-01-22 12:00:07
|
Update of /cvsroot/pywin32/pywin32/win32/src In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv31432 Modified Files: PySoundObjects.h Log Message: s/dsound.h/mmsystem.h/ which goes a little towards the directsound module building (still currently fails with link errors though and I can't see the lib to use - but the headers are there - strange...) Index: PySoundObjects.h =================================================================== RCS file: /cvsroot/pywin32/pywin32/win32/src/PySoundObjects.h,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** PySoundObjects.h 30 Nov 2004 21:30:29 -0000 1.1 --- PySoundObjects.h 22 Jan 2008 12:00:07 -0000 1.2 *************** *** 3,7 **** #include <windows.h> ! #include <dsound.h> class PYWINTYPES_EXPORT PyWAVEFORMATEX : public PyObject --- 3,7 ---- #include <windows.h> ! #include <mmsystem.h> class PYWINTYPES_EXPORT PyWAVEFORMATEX : public PyObject |
From: Mark H. <mha...@us...> - 2008-01-22 11:57:58
|
Update of /cvsroot/pywin32/pywin32/win32/src In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv30726 Modified Files: PythonService.cpp Log Message: _stprintf was causing link errors with vs2008/py26, so replace it with wsprintf (the module is already unicode, and we can worry about '_s' later) Index: PythonService.cpp =================================================================== RCS file: /cvsroot/pywin32/pywin32/win32/src/PythonService.cpp,v retrieving revision 1.21 retrieving revision 1.22 diff -C2 -d -r1.21 -r1.22 *** PythonService.cpp 24 Aug 2007 04:05:41 -0000 1.21 --- PythonService.cpp 22 Jan 2008 11:58:01 -0000 1.22 *************** *** 1314,1320 **** TCHAR cvtBuf[20]; ! _stprintf(cvtBuf, L"%d", errCode); ! LPTSTR lpszStrings[] = {cvtBuf, buf, L'\0'}; ! ReportError(msgCode, (LPCTSTR *)lpszStrings); } --- 1314,1320 ---- TCHAR cvtBuf[20]; ! wsprintf(cvtBuf, L"%d", errCode); ! LPTSTR lpszStrings[] = {cvtBuf, buf, L'\0'}; ! ReportError(msgCode, (LPCTSTR *)lpszStrings); } |
From: Mark H. <mha...@us...> - 2008-01-21 13:26:40
|
Update of /cvsroot/pywin32/pywin32/com/win32comext/propsys/src In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv31880/src Log Message: Directory /cvsroot/pywin32/pywin32/com/win32comext/propsys/src added to the repository |
From: Mark H. <mha...@us...> - 2008-01-21 13:26:38
|
Update of /cvsroot/pywin32/pywin32/com/win32comext/propsys/test In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv31880/test Log Message: Directory /cvsroot/pywin32/pywin32/com/win32comext/propsys/test added to the repository |
From: Mark H. <mha...@us...> - 2008-01-21 13:26:37
|
Update of /cvsroot/pywin32/pywin32/com/win32comext/propsys/demos In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv31880/demos Log Message: Directory /cvsroot/pywin32/pywin32/com/win32comext/propsys/demos added to the repository |
From: Mark H. <mha...@us...> - 2008-01-21 12:19:20
|
Update of /cvsroot/pywin32/pywin32/com/win32comext/propsys In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv9442/propsys Log Message: Directory /cvsroot/pywin32/pywin32/com/win32comext/propsys added to the repository |
From: Mark H. <mha...@us...> - 2008-01-21 11:12:01
|
Update of /cvsroot/pywin32/pywin32/win32/src In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv17292 Modified Files: win32gui.i Log Message: Add GetConsoleWindow to winxpgui (technically it exists in win2k, but this will do for now, especially given the few workaounds using GetConsoleTitle that exist) Index: win32gui.i =================================================================== RCS file: /cvsroot/pywin32/pywin32/win32/src/win32gui.i,v retrieving revision 1.113 retrieving revision 1.114 diff -C2 -d -r1.113 -r1.114 *** win32gui.i 15 Jan 2008 10:25:16 -0000 1.113 --- win32gui.i 21 Jan 2008 11:12:00 -0000 1.114 *************** *** 7324,7325 **** --- 7324,7330 ---- %} %native(EnumPropsEx) PyEnumPropsEx; + + #ifdef WINXPGUI + // strictly available in win2kpro, but this will do for now... + HWND GetConsoleWindow(); + #endif |
From: Roger U. <ru...@us...> - 2008-01-20 03:43:40
|
Update of /cvsroot/pywin32/pywin32/win32/Lib In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv25503 Modified Files: ntsecuritycon.py Log Message: Add some new constants for ACL Editor on Vista Index: ntsecuritycon.py =================================================================== RCS file: /cvsroot/pywin32/pywin32/win32/Lib/ntsecuritycon.py,v retrieving revision 1.8 retrieving revision 1.9 diff -C2 -d -r1.8 -r1.9 *** ntsecuritycon.py 2 Aug 2007 07:01:18 -0000 1.8 --- ntsecuritycon.py 20 Jan 2008 03:43:44 -0000 1.9 *************** *** 668,671 **** --- 668,675 ---- SI_MAY_WRITE = 0x10000000L SI_EDIT_ALL = (SI_EDIT_PERMS | SI_EDIT_OWNER | SI_EDIT_AUDITS) + SI_AUDITS_ELEVATION_REQUIRED = 0x02000000L + SI_VIEW_ONLY = 0x00400000L + SI_OWNER_ELEVATION_REQUIRED = 0x04000000L + SI_PERMS_ELEVATION_REQUIRED = 0x01000000L # SI_ACCESS.dwFlags |
From: Mark H. <mha...@us...> - 2008-01-15 10:25:13
|
Update of /cvsroot/pywin32/pywin32/win32/src In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv31777 Modified Files: win32gui.i Log Message: GetOpenFileName and GetSaveFileName did not release the GIL. Index: win32gui.i =================================================================== RCS file: /cvsroot/pywin32/pywin32/win32/src/win32gui.i,v retrieving revision 1.112 retrieving revision 1.113 diff -C2 -d -r1.112 -r1.113 *** win32gui.i 12 Oct 2007 00:35:09 -0000 1.112 --- win32gui.i 15 Jan 2008 10:25:16 -0000 1.113 *************** *** 6133,6137 **** return NULL; ! if (!GetSaveFileNameW(&ofn)) PyWin_SetAPIError("GetSaveFileNameW", CommDlgExtendedError()); else --- 6133,6141 ---- return NULL; ! BOOL ok; ! Py_BEGIN_ALLOW_THREADS; ! ok = GetSaveFileNameW(&ofn); ! Py_END_ALLOW_THREADS; ! if (!ok) PyWin_SetAPIError("GetSaveFileNameW", CommDlgExtendedError()); else *************** *** 6156,6160 **** return NULL; ! if (!GetOpenFileNameW(&ofn)) PyWin_SetAPIError("GetOpenFileNameW", CommDlgExtendedError()); else --- 6160,6168 ---- return NULL; ! BOOL ok; ! Py_BEGIN_ALLOW_THREADS; ! ok = GetOpenFileNameW(&ofn); ! Py_END_ALLOW_THREADS; ! if (!ok) PyWin_SetAPIError("GetOpenFileNameW", CommDlgExtendedError()); else |
From: Vernon C. <kf...@us...> - 2008-01-15 00:19:07
|
Update of /cvsroot/pywin32/pywin32 In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv3201 Modified Files: CHANGES.txt Log Message: Document inclusion of adodbapi in CVS. Index: CHANGES.txt =================================================================== RCS file: /cvsroot/pywin32/pywin32/CHANGES.txt,v retrieving revision 1.13 retrieving revision 1.14 diff -C2 -d -r1.13 -r1.14 *** CHANGES.txt 17 Dec 2007 04:08:37 -0000 1.13 --- CHANGES.txt 15 Jan 2008 00:19:10 -0000 1.14 *************** *** 8,11 **** --- 8,16 ---- Since build 210: ---------------- + * adodbapi added to pywin32 package CVS tree: + - this pure python package is a fully dbapi 2.0 compliant database access + method. This is a copy of the code from the adodbapi sourceforge project, + which will eventually become obsolete in favor of this site. Inclusion here + and maintenance of the package are by Vernon Cole. * Available for AMD64 versions of Windows. Note that this requires the |
From: Mark H. <mha...@us...> - 2008-01-14 07:41:17
|
Update of /cvsroot/pywin32/pywin32/win32/Lib In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv26766 Modified Files: win32timezone.py Log Message: Fix [ 1869457 ] doc error in win32timezone.py Index: win32timezone.py =================================================================== RCS file: /cvsroot/pywin32/pywin32/win32/Lib/win32timezone.py,v retrieving revision 1.7 retrieving revision 1.8 diff -C2 -d -r1.7 -r1.8 *** win32timezone.py 22 Feb 2007 00:20:52 -0000 1.7 --- win32timezone.py 14 Jan 2008 07:41:15 -0000 1.8 *************** *** 24,28 **** >>> import win32timezone, datetime >>> assert 'Mountain Standard Time' in win32timezone.GetTimeZoneNames() ! >>> tzi = TimeZoneInfo( 'Mountain Standard Time' ) >>> now = datetime.datetime.now( tzi ) --- 24,28 ---- >>> import win32timezone, datetime >>> assert 'Mountain Standard Time' in win32timezone.GetTimeZoneNames() ! >>> tzi = win32timezone.TimeZoneInfo( 'Mountain Standard Time' ) >>> now = datetime.datetime.now( tzi ) |
From: Mark H. <mha...@us...> - 2008-01-08 00:41:40
|
Update of /cvsroot/pywin32/pywin32/com/win32comext/shell/demos In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv16047 Added Files: explorer_browser.py Log Message: Demo of using IExplorerBrowser interface. --- NEW FILE: explorer_browser.py --- # A sample of using Vista's IExplorerBrowser interfaces... # Currently doesn't quite work: # * CPU sits at 100% while running. import pythoncom from win32com.shell import shell, shellcon import win32gui, win32con, win32api from win32com.server.util import wrap, unwrap # event handler for the browser. IExplorerBrowserEvents_Methods = """OnNavigationComplete OnNavigationFailed OnNavigationPending OnViewCreated""".split() class EventHandler: _com_interfaces_ = [shell.IID_IExplorerBrowserEvents] _public_methods_ = IExplorerBrowserEvents_Methods def OnNavigationComplete(self, pidl): print "OnNavComplete", pidl def OnNavigationFailed(self, pidl): print "OnNavigationFailed", pidl def OnNavigationPending(self, pidl): print "OnNavigationPending", pidl def OnViewCreated(self, view): print "OnViewCreated", view # And if our demo view has been registered, it may well # be that view! try: pyview = unwrap(view) print "and look - its a Python implemented view!", pyview except ValueError: pass class MainWindow: def __init__(self): message_map = { win32con.WM_DESTROY: self.OnDestroy, win32con.WM_COMMAND: self.OnCommand, win32con.WM_SIZE: self.OnSize, } # Register the Window class. wc = win32gui.WNDCLASS() hinst = wc.hInstance = win32api.GetModuleHandle(None) wc.lpszClassName = "test_explorer_browser" wc.lpfnWndProc = message_map # could also specify a wndproc. classAtom = win32gui.RegisterClass(wc) # Create the Window. style = win32con.WS_OVERLAPPEDWINDOW | win32con.WS_VISIBLE self.hwnd = win32gui.CreateWindow( classAtom, "Python IExplorerBrowser demo", style, \ 0, 0, win32con.CW_USEDEFAULT, win32con.CW_USEDEFAULT, \ 0, 0, hinst, None) eb = pythoncom.CoCreateInstance(shellcon.CLSID_ExplorerBrowser, None, pythoncom.CLSCTX_ALL, shell.IID_IExplorerBrowser) # as per MSDN docs, hook up events early self.event_cookie = eb.Advise(wrap(EventHandler())) eb.SetOptions(shellcon.EBO_SHOWFRAMES) rect = win32gui.GetClientRect(self.hwnd) # Set the flags such that the folders autoarrange and non web view is presented flags = (shellcon.FVM_LIST, shellcon.FWF_AUTOARRANGE | shellcon.FWF_NOWEBVIEW) eb.Initialize(self.hwnd, rect, (0, shellcon.FVM_DETAILS)) # And start browsing at the root of the namespace. eb.BrowseToIDList([], shellcon.SBSP_ABSOLUTE) #eb.FillFromObject(None, shellcon.EBF_NODROPTARGET); #eb.SetEmptyText("No known folders yet..."); self.eb = eb def OnCommand(self, hwnd, msg, wparam, lparam): pass def OnDestroy(self, hwnd, msg, wparam, lparam): print "tearing down ExplorerBrowser..." self.eb.Unadvise(self.event_cookie) self.eb.Destroy() self.eb = None print "shutting down app..." win32gui.PostQuitMessage(0) def OnSize(self, hwnd, msg, wparam, lparam): x = win32api.LOWORD(lparam) y = win32api.HIWORD(lparam) self.eb.SetRect(None, (0, 0, x, y)) def main(): w=MainWindow() win32gui.PumpMessages() if __name__=='__main__': main() |