Hello David,
I will try to give you more information.
What I want to do is to transport my own information between the Overlays in the InteractiveOverlay-Collection using your concept with you transport InteractiveResult or InteractionArgument Objects.
As I understand your concept it is working the following way -> if MapControl raise an event e.g. MouseMove-Event you forward this information to the first overlay in InteractiveOverlay collection where its MapMouseEvents is raised. Afterward you forward this to the next overlay in collection and so on. All those overlays get the same InteractiveResult or InteractionArgument parameters if it is not modified in one of the overlays. So you transport information between the overlays.
In my application I have replaced Track-/-Edit and Extent-Overlay with my own Classes inherited from the according base classes. By overwriting the MouseMoveCore in Edit-Overlay I add my own interactiveResult object.
Protected Overrides Function MouseMoveCore(ByVal interactionArguments As ThinkGeo.MapSuite.DesktopEdition.InteractionArguments) As ThinkGeo.MapSuite.DesktopEdition.InteractiveResult
Dim oMyInteractiveResult As myInteractiveResult
Dim oInteractiveResult As ThinkGeo.MapSuite.DesktopEdition.InteractiveResult
oInteractiveResult = MyBase.MouseMoveCore(interactionArguments)
oMyInteractiveResult = New myInteractiveResult
oMyInteractiveResult.tag = "Dies ist ein Test"
oMyInteractiveResult.DrawThisOverlay = oInteractiveResult.DrawThisOverlay
oMyInteractiveResult.NewCurrentExtent = oInteractiveResult.NewCurrentExtent
oMyInteractiveResult.ProcessOtherOverlaysMode = oInteractiveResult.ProcessOtherOverlaysMode
Return oMyInteractiveResult
End Function
By overwriting the MouseMoveCore in Extent-Overlay I want to get my own interactiveResult object and work with my additional information.
Protected Overrides Function MouseMoveCore(ByVal interactionArguments As ThinkGeo.MapSuite.DesktopEdition.InteractionArguments) As ThinkGeo.MapSuite.DesktopEdition.InteractiveResult
Dim oInteractiveResult As ThinkGeo.MapSuite.DesktopEdition.InteractiveResult
oInteractiveResult = MyBase.MouseMoveCore(interactionArguments)
If TypeOf oInteractiveResult Is myInteractiveResult Then
'Check myInteractiveResult parameters and do something........
End If
Return oInteractiveResult
End Function
But the interactiveResult-Object type I get in Extent-Overlay is not my custom one so this did not work!