[pywin32-bugs] makepy.py generates incomplete class for a COM interface
OLD project page for the Python extensions for Windows
Brought to you by:
mhammond
From: Vladimir B. <no...@gm...> - 2009-06-20 01:08:09
|
Hello, I think makepy/gen_py generates incomplete information for LabVIEW 8.6. Some functions available if late binding is used are unavailable with early binding. According visual studio COM object browser, the LabVIEW container defines an Application class and an _IApplication interface with the same set of functions and properties. Makepy correctly generates a class for Application, but most of the methods are missing from the _IApplication class. For example the GetVIReference function is missing (see snippet at the end). GetVIReference works, however, if late binding is used. This problem is solved if I replace in the python file generated by makepy "class _IApplication(DispatchBaseClass):" with "class _IApplication(Application):", since the Application class has all the methods. ------ In [2]: import win32com.client In [3]: lv = win32com.client.Dispatch("LabVIEW.Application") In [4]: lv Out[4]: <win32com.gen_py.LabVIEW 8.0 Type Library._IApplication instance at 0x29116696> In [5]: vi = lv.GetVIReference("C:\\test.vi") --------------------------------------------------------------------------- AttributeError Traceback (most recent call last) C:\Documents and Settings\f28\<ipython console> in <module>() C:\Python26\lib\site-packages\win32com\client\__init__.pyc in __getattr__(self, attr) 452 args=self._prop_map_get_.get(attr) 453 if args is None: --> 454 raise AttributeError, "'%s' object has no attribute '%s'" % (repr(self), attr) 455 return self._ApplyTypes_(*args) 456 AttributeError: '<win32com.gen_py.LabVIEW 8.0 Type Library._IApplication instance at 0x29116696>' object has no attribute 'GetVIReference' ------ Is this really a bug or am I doing something wrong? Thanks, Vladimir |