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 ----
|