[commit] r1759 - trunk/SDK/Java/win32com/client

GMESRC Repository Notifications gme-commit at list.isis.vanderbilt.edu
Wed Jan 4 14:33:23 CST 2012


Author: ksmyth
Date: Wed Jan  4 14:33:23 2012
New Revision: 1759

Log:
Fix setattr for dispatch values

Modified:
   trunk/SDK/Java/win32com/client/__init__.py

Modified: trunk/SDK/Java/win32com/client/__init__.py
==============================================================================
--- trunk/SDK/Java/win32com/client/__init__.py	Wed Jan  4 14:33:10 2012	(r1758)
+++ trunk/SDK/Java/win32com/client/__init__.py	Wed Jan  4 14:33:23 2012	(r1759)
@@ -28,10 +28,14 @@
 _argkludge = { 'GetXMLInfo': (jaut.Variant.VT_BSTR, jaut.Variant.VT_BSTR, jaut.Variant.VT_NULL, jaut.Variant.VT_BSTR, jaut.Variant.VT_BSTR),
 'QueryParadigm': (jaut.Variant.VT_BSTR, jaut.Variant.VT_NULL),
 'OpenObj': (jaut.Variant.VT_UNKNOWN,),
+'CreateTerritory': (jaut.Variant.VT_NULL, jaut.Variant.VT_UNKNOWN),
 }
 _getterkludge = { 'Item': 1,
 'Status': 1,
 'ObjectByPath': 1,
+'LegalChildFolderByName': 1,
+'DefinedFCOByName': 1,
+'RoleByName': 1,
 }
 
 _debug = False
@@ -48,7 +52,7 @@
     if vt in _vt_falses:
         return False
     return True
-org.isis.jaut.Variant.__nonzero__ = __nonzero__
+#org.isis.jaut.Variant.__nonzero__ = __nonzero__
 del __nonzero__
 
 def _translate_variant(v):
@@ -76,6 +80,11 @@
 	# print 'yyy' + repr(v) + repr(type(v)) + '...' + str(vt)
 	return v
 
+def _arg_map(arg):
+	if isinstance(arg, JautDispatch):
+		return arg.dispatch
+	return arg
+
 class JautDispatch(object):
 	@staticmethod
 	def CoCreateInstance(progid, clsctx):
@@ -115,7 +124,7 @@
 		return iter
 
 	def __setattr__(self, name, value):
-		self.dispatch.put(name, value)
+		self.dispatch.put(name, _arg_map(value))
 	
 	def __getattr__(self, name):
 		# fail fast
@@ -131,11 +140,7 @@
 			_dbgout.write('__getattr__: name ' + name + "\n")
 		def invoke(*args):
 			import time
-			def arg_map(arg):
-				if isinstance(arg, JautDispatch):
-					return arg.dispatch
-				return arg
-			args = [arg_map(arg) for arg in args]
+			args = [_arg_map(arg) for arg in args]
 			if name == 'Status': # workaround error in typelib: propget without retval
 				args = (jaut.Variant(jaut.Variant.create(jaut.Variant.VT_I4)),)
 				self.dispatch.invoke(name, jaut.Dispatch.DISPATCH_PROPERTYGET, args, None)


More information about the gme-commit mailing list