Update of /cvsroot/pywin32/pywin32/com/win32com/client
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv26448/client
Modified Files:
genpy.py
Log Message:
Fix [ 1202308 ] genpy.py doesn't catch all dispatchable interfaces.
Index: genpy.py
===================================================================
RCS file: /cvsroot/pywin32/pywin32/com/win32com/client/genpy.py,v
retrieving revision 1.46
retrieving revision 1.47
diff -C2 -d -r1.46 -r1.47
*** genpy.py 12 Apr 2005 04:27:08 -0000 1.46
--- genpy.py 27 Jun 2005 12:40:05 -0000 1.47
***************
*** 24,28 ****
error = "makepy.error"
! makepy_version = "0.4.93" # Written to generated file.
GEN_FULL="full"
--- 24,28 ----
error = "makepy.error"
! makepy_version = "0.4.94" # Written to generated file.
GEN_FULL="full"
***************
*** 678,682 ****
for info, info_type, refType, doc, refAttr, flags in coclass_info:
# sys.stderr.write("Attr typeflags for coclass referenced object %s=%d (%d), typekind=%d\n" % (name, refAttr.wTypeFlags, refAttr.wTypeFlags & pythoncom.TYPEFLAG_FDUAL,refAttr.typekind))
! if refAttr.typekind == pythoncom.TKIND_DISPATCH:
clsid = refAttr[0]
if oleItems.has_key(clsid):
--- 678,683 ----
for info, info_type, refType, doc, refAttr, flags in coclass_info:
# sys.stderr.write("Attr typeflags for coclass referenced object %s=%d (%d), typekind=%d\n" % (name, refAttr.wTypeFlags, refAttr.wTypeFlags & pythoncom.TYPEFLAG_FDUAL,refAttr.typekind))
! if refAttr.typekind == pythoncom.TKIND_DISPATCH or \
! (refAttr.typekind == pythoncom.TKIND_INTERFACE and refAttr[11] & pythoncom.TYPEFLAG_FDISPATCHABLE):
clsid = refAttr[0]
if oleItems.has_key(clsid):
***************
*** 704,712 ****
info, infotype, doc, attr = type_info_tuple
oleItem = vtableItem = None
! if infotype == pythoncom.TKIND_DISPATCH:
oleItem = DispatchItem(info, attr, doc)
# If this DISPATCH interface dual, then build that too.
if (attr.wTypeFlags & pythoncom.TYPEFLAG_FDUAL):
- # sys.stderr.write("interface " + doc[0] + " is not dual\n");
# Get the vtable interface
refhtype = info.GetRefTypeOfImplType(-1)
--- 705,713 ----
info, infotype, doc, attr = type_info_tuple
oleItem = vtableItem = None
! if infotype == pythoncom.TKIND_DISPATCH or \
! (infotype == pythoncom.TKIND_INTERFACE and attr[11] & pythoncom.TYPEFLAG_FDISPATCHABLE):
oleItem = DispatchItem(info, attr, doc)
# If this DISPATCH interface dual, then build that too.
if (attr.wTypeFlags & pythoncom.TYPEFLAG_FDUAL):
# Get the vtable interface
refhtype = info.GetRefTypeOfImplType(-1)
|