[ctypes-commit] ctypes/comtypes automation.py,1.10,1.11
Brought to you by:
theller
From: Thomas H. <th...@us...> - 2005-03-16 10:18:28
|
Update of /cvsroot/ctypes/ctypes/comtypes In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv1610 Modified Files: automation.py Log Message: Fix VARIANT._set_value for bool and long. Index: automation.py =================================================================== RCS file: /cvsroot/ctypes/ctypes/comtypes/automation.py,v retrieving revision 1.10 retrieving revision 1.11 diff -C2 -d -r1.10 -r1.11 *** automation.py 10 Mar 2005 14:36:19 -0000 1.10 --- automation.py 16 Mar 2005 10:18:14 -0000 1.11 *************** *** 151,164 **** if value is None: self.vt = VT_NULL elif isinstance(value, int): self.vt = VT_I4 self._.VT_I4 = value elif isinstance(value, long): - self.vt = VT_I4 u = self._ u.VT_I4 = value ! if u.VT_I4 != value: ! self.vt = VT_R8 ! u.VT_R8 = float(value) elif isinstance(value, float): self.vt = VT_R8 --- 151,174 ---- if value is None: self.vt = VT_NULL + # since bool is a subclass of int, this check must be first + elif isinstance(value, bool): + self.vt = VT_BOOL + self._.VT_BOOL = value elif isinstance(value, int): self.vt = VT_I4 self._.VT_I4 = value elif isinstance(value, long): u = self._ u.VT_I4 = value ! if u.VT_I4 == value: ! self.vt = VT_I4 ! return ! if value >= 0: ! u.VT_UI4 = value ! if u.VT_UI4 == value: ! self.vt = VT_UI4 ! return ! self.vt = VT_R8 ! u.VT_R8 = float(value) elif isinstance(value, float): self.vt = VT_R8 *************** *** 171,177 **** value = unicode(value) self._.c_void_p = _oleaut32.SysAllocStringLen(value, len(value)) - elif isinstance(value, bool): - self.vt = VT_BOOL - self._.VT_BOOL = value elif isinstance(value, datetime.datetime): delta = value - _com_null_date --- 181,184 ---- |