I need to be able to determine if a node was activated as a result of a user click(as opposed to a programatic activation or other automatic behavior).
I have looked at the Click event of the UltraTree, but this seems to be triggered after the AfterActivate(and AfterSelect) events. So setting a flag in the click event and then inspecting it in the AfterActivate event can't work.
You could use the MouseDown event, which also has the benefit of giving you the client coordinates of the point at which the user clicked. This can be passed to the UltraTree.GetNodeFromPoint method to hit test for a node.