Hello,<br><br>I sent a reply privately, but for the list&#39;s benefit, I&#39;ll send a copy here too.  With luck, everything I say is wrong and somebody will have a solution. :)  <br><br>I fear that things with IRTDUpdateEvent have changed with recent versions of excel (since Excel 2007? I guess that&#39;s not so &#39;recent&#39; anymore...). <br>
<br>While hunting around for news of interface changes, I came across this thread in a java forum:<br>

<br><a href="http://www.nevaobject.com/phpbb3/viewtopic.php?t=516" target="_blank">http://www.nevaobject.com/phpbb3/viewtopic.php?t=516</a><br><br>The part that worries me is this comment:<br><br>&quot;<span>Apparently in Excel 12 (Excel 2007) the <span>RTD</span> 
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&#39;t really know whether it is a bug in Excel 12 or a feature.&quot;<br><br>So
 far I haven&#39;t been able to confirm this against the MSDN information...
 But if this is true, it does explain the problem being seen.  Many 
older examples on the web, and pywin32+makepy treat this interface as 
IDispatch, and wrap it accordingly.  <br>
<br>I don&#39;t think we can fix this with pywin32 as it is right now. My understanding is that it relies on IDispatch support. May need to look at comtypes (<a href="http://starship.python.net/crew/theller/comtypes/" target="_blank">http://starship.python.net/crew/theller/comtypes/</a>) to wrap the (new?) IRTDUpdateEvent objects, or maybe a C extension. :( </span><br>

<br> It&#39;s a pity, since everything else appears to still work.  Just the 
callback object Excel supplies no longer seems to support all the 
interfaces it advertises (I&#39;m betting makepy wouldn&#39;t even try to build 
the IDispatch wrapper if QueryInterface said it wasn&#39;t supported).<br><br>I don&#39;t currently have a copy of Office, with my daily job being in 
linux land these days, so even though I&#39;d like to, I doubt I&#39;ll be much help fixing this. <br><br>Regards,<br>Chris.<br><br><br><br><div class="gmail_quote">On 7 April 2012 13:19, John S <span dir="ltr">&lt;<a href="mailto:js.20120405@gmail.com">js.20120405@gmail.com</a>&gt;</span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">I&#39;m trying to implement excelRTDserver.py (<a href="http://www.math.uiuc.edu/%7Egfrancis/illimath/windows/aszgard_mini/movpy-2.0.0-py2.4.4/movpy/lib/win32com/demos/excelRTDServer.py" target="_blank">http://www.math.uiuc.edu/~gfrancis/illimath/windows/aszgard_mini/movpy-2.0.0-py2.4.4/movpy/lib/win32com/demos/excelRTDServer.py</a>). I&#39;m running Excel 2010 (32bit) so I change the EXCEL_TLB_MINOR value to 7. The add-in is visible in the Excel add-ins list and if I enter =RTD(&quot;Python.RTD.TimeServer&quot;,&quot;&quot;,&quot;seconds&quot;,&quot;5&quot;) into a cell, I get the current time. But it never updates. If I change the &quot;5&quot; to another number, I get an update but after the initial change it never updates.<br>

<br>I&#39;ve isolated the problem to an exception raised when the callback object returned by Excel is attempted to be cast into a IRTDUpdateEvent object. This was discussed on this list previously (<a href="http://mail.python.org/pipermail/python-win32/2011-March/011324.html" target="_blank">http://mail.python.org/pipermail/python-win32/2011-March/011324.html</a>) but no solution. I tried the suggested solution of using CastTo, but when EnsureDispatch is called within gencache.py it raises the exception at the first line within the try statement (ti = disp._oleobj_.GetTypeInfo()).<br>

<br>So my question is how do I get the callback object to work? Any help would be greatly appreciated.<br>
<br></blockquote></div>