question

Upvotes
Accepted
1 0 0 2

How to insert AdxRtList call in synchronous code?

Hi I am following the tutorial COM APIs for use in Microsoft Office and looking at Tutorial 2 AdxRtList. I understand that after the function is called with .StartUpdates in myRtGetExample then the result is returned asynchronously via callback to the myRtGet_OnImage function. I can see this might be appropriate if e.g. updating a spreadhsheet while you keep working in it. But if you are running some code and need the AdxRtList result BEFORE proceeding any further, how do you "make it synchronous"? I have stumbled on something which seems to work but don't know if it's the correct approach. The idea is to have a Boolean module level variable called task_finished_ which I set to false before the AdxRtList call and then loop after the call until task_finished_ = True. Meanwhile the callback myRtGet_OnImage sets task_finished_ = True before exiting.

Dim WithEvents myRTGet As AdfinXRtLib.AdxRtList

Private task_finished_ As Boolean

Sub myRtGetExample()

  task_finished_ = False

  Set myRTGet = CreateAdxRtList()

  With myRTGet

    Source = "IDN"

    .RegisterItems "EUR=", "BID"

    .StartUpdates RT_MODE_IMAGE

  End With



  While Not task_finished_

    Sleep 1000

    DoEvents

    Wend

End Sub

Private Sub myRtGet_OnImage(ByVal DataStatus As AdfinXRtLib.RT_DataStatus)

  Debug.Print myRTGet.Value("EUR=", "BID")

  task_finished_ = True

End Sub

As I said, it seems to work but I don't know if that's the right way to do it or if there is a better approach ... Thanks

eikoneikon-com-api
icon clock
10 |1500

Up to 2 attachments (including images) can be used with a maximum of 512.0 KiB each and 1.0 MiB total.

@george34

Thank you for your participation in the forum.

Is the reply below satisfactory in resolving your query?

If yes, please click the 'Accept' text next to the reply. This will guide all community members who have a similar question. Otherwise please post again offering further insight into your question.

Thanks,

AHS

@george34

Thank you for your participation in the forum.

Is the reply below satisfactory in resolving your query?

If yes, please click the 'Accept' text next to the reply. This will guide all community members who have a similar question. Otherwise please post again offering further insight into your question.

Thanks,

AHS

Please be informed that a reply has been verified as correct in answering the question, and has been marked as such.

Thanks,

AHS

1 Answer

· Write an Answer
Upvotes
Accepted
4.6k 26 7 22

@george34 yep, that's one of the approaches. It depends on your task, of course, but I would still recommend using it asynchronously most of the time.

As an example of broad async approach, check out this article.

icon clock
10 |1500

Up to 2 attachments (including images) can be used with a maximum of 512.0 KiB each and 1.0 MiB total.

Write an Answer

Hint: Notify or tag a user in this post by typing @username.

Up to 2 attachments (including images) can be used with a maximum of 512.0 KiB each and 1.0 MiB total.