Despite the simple nature of TipLink, it is a very advanced template with nearly 1500 lines of code!
One question that some developers have asked is "Why do I need TipLink?"
Well there are the obvious and simple reasons such as it only takes a few minutes to provide your program users with runtime abilities to turn tooltips On/Off or change from Balloon to Normal tooltip styles.
It is equally easy to see the value in being able to have user preferences automatically saved and restored (you DO have better things to do with your programming time don't you?)
Of course one of the main reasons to use TipLink is to synchronize tooltip behavior and styles between the various advanced 3rd party tooltip controllers.
But you say to yourself "It can't be that hard - I could do this with a few lines of code"
Could you?
In a threaded environment, if the user has windows open beyond the Appframe, and changes tooltip shapes or wants to turn them On or Off, you have to send a command to EVERY tooltip controller on EVERY window if you want them to all behave the same.
TipLink does this in a thread safe manner without your even needing to worry about it!
Your users expect to have tooltips and they expect them to behave like non-Clarion applications.
If your program has two or three different shape styles displayed or everything does not have the same look and feel, then your custom programming creation may take a back seat to an inferior product when it is evaluated for purchase.
TipLink is one of those "buy it - put it in your program - and forget about the problem it solves" templates.