RTD UpdateNotify()

K

Ken Rangel

Hello,

I wrote an RTD server that calls IRTDUpdateEvent.UpdateNotify() once every
time my server receives an update from my data provider. If have found
that, in certain circumstances, Excel will never call RefreshData() even
after serveral calls to UpdateNotify(). To resolve this, I made another
thread that, upon receiving new data, will call UpdateNotify() every .1
seconds until Excel calls RefreshData(). My question is this: Does one call
to UpdateNotify() neccessarily mean that Excel will call RefreshData(), or
is it possible for Excel to ignore (and forget about) some UpdateNotify()
calls.

Also, my solution seems to work well, but I am a little leery of introducing
another thread with all of this COM running around-- does anyone know the
'best practice' for calling UpdateNotify()?

Thanks in advance,

Ken Rangel
 
C

Chris Jensen [MSFT]

Helo Ken,

Excel attends to UpdateNotify with a very high priority, In fact, the
highest! The only provision for not making the RefreshData() call is that
Excel is in the middle of a recalc, or has not received the UpdateNotify()
call.

You write that "in certain circumstances Excel will never call
RefreshData() . . ."

Have you been able to identify those circumstances?

I hope you built your RTD server using the content of the following
article.

285339 HOWTO: Create a RealTimeData Server for Excel
http://support.microsoft.com/?id=285339

Give some thought to the Throttle and Heartbeat.

Try to get some log about what's happening so that you can identify when
and why Excel or your server are communicating. It might be a good thing
to add to your RTD server a log of the calls (just before and just after)
by the server to UpdateData() and include in those the count of ranges
included in the Topics safearray.

Please try to give more information on what's actually happening so we can
see if there's some reason for the symptoms you're experiencing.

Chris Jensen (Microsoft Corporation)
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top