Hi, I'm testing the excelRTDServer.py example RTD Server (TimeServer):
Win7-SP1 64-Bit Excel 2007 32-Bit Python 2.6.6 32-Bit pywin32-216 and get a generic COM exception when the RTD server tries to notify Excel of data changes (from the trace collector): Traceback (most recent call last): File "C:\Python26\Lib\threading.py", line 532, in __bootstrap_inner self.run() File "C:\Python26\Lib\threading.py", line 736, in run self.function(*self.args, **self.kwargs) File "C:\Data\svnwork\tavendo\mymepad\research\semweb\python\excelRTDServer.py", line 378, in Update self.SignalExcel() File "C:\Data\svnwork\tavendo\mymepad\research\semweb\python\excelRTDServer.py", line 153, in SignalExcel self.__callback.UpdateNotify() File "C:\Python26\lib\site-packages\win32com\gen_py\00020813-0000-0000-C000-000000000046x0x1x6.py", line 17088, in UpdateNotify return self._oleobj_.InvokeTypes(10, LCID, 1, (24, 0), (),) com_error: (-2147352567, 'Ausnahmefehler aufgetreten.', (0, None, None, None, 0, 0), None) The COM Error is: "generic COM exception 0x80020009" The callpath that leads to the exception is: excelRTDServer.py ============== L281 ff: class TimeServer(ExcelRTDServer): .. def __init__(self): .. self.ticker = threading.Timer(self.INTERVAL, self.Update) .. L330 ff: def Update(self): .. self.SignalExcel() .. L129 ff: def SignalExcel(self): .. self.__callback.UpdateNotify() .. site-packages\win32com\gen_py\00020813-0000-0000-C000-000000000046x0x1x6.py ================================================================= Line 17080 ff: class IRTDUpdateEvent(DispatchBaseClass): .. def UpdateNotify(self): return self._oleobj_.InvokeTypes(10, LCID, 1, (24, 0), (),) .. ***** After some Googling, the best hint I came up with is: "Apparently in Excel 12 (Excel 2007) the RTD callback object that implements dual IRTDUpdateEvent interface throws exception (generic COM exception 0x80020009) when is called via IDispatch. If you use v-table binding the call to UpdateNotify succeeds. I don?t really know whether it is a bug in Excel 12 or a feature." http://www.nevaobject.com/phpbb3/viewtopic.php?t=516 To check if that is the problem, I'd like to do the callback not via IDispatch, but via VTable. Is that possible in pywin32? Thanks alot, Tobias
_______________________________________________ python-win32 mailing list python-win32@python.org http://mail.python.org/mailman/listinfo/python-win32